Repository navigation
Expand file tree
/
Copy pathsingle.Makefile
More file actions
102 lines (82 loc) · 2.88 KB
/
Copy pathsingle.Makefile
File metadata and controls
102 lines (82 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
BASE_URL := "UNSET!!!"
REF_URL := "UNSET!!!"
WORKING_SAMPLE_SIZE=2000
## Raw files related stuff
raw/%:
@echo "downloading missing raw files $@ to $$(pwd)/raw"
@mkdir -p raw
wget $(BASE_URL)/$* -P raw
checksum.raw.sha512:
sha512sum raw/* > checksum.raw.sha512
raw/.done: $(shell cat checksum.raw.sha512 | cut -f3 -d ' ')
@echo "Missing following raw files $+"
@touch $@
download: raw/.done
@:
check-raw: $(shell cat checksum.raw.sha512 | cut -f3 -d ' ')
sha512sum -c checksum.raw.sha512
## Extract related stuff
# $(shell cat checksum.extracted.sha512 | cut -f3 -d ' '): extracted/.done
extracted/.done: raw/.done
@echo "Extracting the raw tars to $$(pwd)/extracted"
@mkdir -p extracted
@find raw -type f -name "*.tar" | parallel -k tar -xf {} -C extracted
@find raw -type f -name "*.tar.gz" | parallel -k tar -xf {} -C extracted
@find raw -type f -name "*.tgz" | parallel -k tar -xzf {} -C extracted
@echo "extracted all files from raw/ to extracted/"
@touch $@
extract: extracted/.done
@:
checksum.extracted.sha512:
find extracted -type f | xargs -I {} sha512sum {} > checksum.extracted.sha512
check-extracted: extract
sha512sum -c checksum.extracted.sha512
## Flatten all reads into single directory
flattened/.done: extracted/.done
@mkdir -p flattened
@echo "Flattening the extracted files to $$(pwd)/flattened"
@find extracted -type f -not -path '*/\.*' -exec ln -sr {} -t flattened \;
@echo "flattened all files"
@touch $@
flatten: flattened/.done
@:
work_flatten/.done: flattened/.done
@echo "Sampling $(WORKING_SAMPLE_SIZE) flattened files to $$(pwd)/work_flatten"
@rm -Rf work_flatten
@mkdir work_flatten
@find flattened \( -type f -or -type l \) -name '*.fast5' | shuf | head -n $(WORKING_SAMPLE_SIZE) | parallel -k ln -Lsr {} work_flatten
@echo "sampled $(WORKING_SAMPLE_SIZE) files"
@touch $@
work_flatten: work_flatten/.done
@:
all-reads.txt: flattened/.done raw/.done
@find flattened -mindepth 1 -not -path '*/\.*' > all-reads.txt
sample: flattened/.done
@echo "Sampling the flattened files to $$(pwd)/sample"
@rm -Rf sample
@mkdir sample
@find extracted -type f -name '*.fast5' | shuf | head | parallel -k ln {} sample
@echo "sampled 10 files"
clean:
rm -Rf extracted flattened sample work_flatten dataset
ref.fasta:
@wget $(REF_URL) -O ref.fasta
.PHONY: extract download sample check-raw check-extracted tt
chiron_out/.done: work_flatten/.done
../bin/chiron_basecall $$(pwd) work_flatten chiron_out
@echo "Basecalled all files with chiron"
@touch $@
basecalled.fastq: chiron_out/.done
@cat chiron_out/result/*.fastq > basecalled.fastq
chiron_basecall: basecalled.fastq
@:
.PHONY: chiron_basecall
dataset/.done: basecalled.fastq chiron_out/.done
../bin/prepare_dataset $$(pwd)
@echo "Finished dataset preparation"
@touch $@
prepare_dataset: dataset/.done
@:
.PHONY: prepare_dataset
alignment.sam: basecalled.fastq
../bin/graphmap $$(pwd) basecalled.fastq $@