-
Notifications
You must be signed in to change notification settings - Fork 0
/
cnest.wdl
134 lines (116 loc) · 3.2 KB
/
cnest.wdl
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
version 1.0
import "./cnest_part0.wdl" as CnestPart0
import "./cnest_part1.wdl" as CnestPart1
import "./cnest_part2.wdl" as CnestPart2
import "./cnest_part3.wdl" as CnestPart3
import "./cnest_part4.wdl" as CnestPart4
workflow CnestWorkflow {
input {
String project
Array[String] samples
Int preemptible_tries = 3
#part0
File bedgz
#part1
Array[File] bam_file
Array[File] bai_file
File ref
#part3 and part 4
Int batch
Int wgs = 1
Float cor_cut = 0.9
Int cov_cut = 20
Boolean skipem = false
Int part3_addtional_mem_gb = 0
Int part4_addtional_disk_gb = 0
Int part4_addtional_mem_gb = 0
}
call CnestPart0.step0 {
input:
bedgz = bedgz
}
call CnestPart0.step1 {
input:
bed = step0.ch_bed,
project = project
}
scatter (i in range(length(samples))) {
call CnestPart1.step2 {
input:
project = project,
name = samples[i],
file_path = bam_file[i],
file_path_index = bai_file[i],
ch_ref = ref,
ch_index_bed = step1.ch_index_bed,
preemptible_tries = preemptible_tries
}
}
Array[File] list_of_bins = select_all(step2.step2_out)
call CnestPart1.tarzip_bins {
input:
list_of_bins = list_of_bins,
project = project
}
call CnestPart2.gender_qc {
input:
bin_dir = tarzip_bins.bin_zip,
index_tab = step1.ch_index_tab,
preemptible_tries = preemptible_tries
}
scatter (sample_name in samples) {
call CnestPart3.logR_ratio {
input:
project = project,
bin_dir = tarzip_bins.bin_zip,
index_tab = step1.ch_index_tab,
gender = gender_qc.gender_class,
sample_name = sample_name,
batch = batch,
wgs = wgs,
cor_cut = cor_cut,
skipem = skipem,
preemptible_tries = preemptible_tries,
addtional_mem = part3_addtional_mem_gb
}
}
scatter (sample_name in samples) {
call CnestPart4.hmm_calls {
input:
project = project,
rbinfiles = logR_ratio.rbin,
corfiles = logR_ratio.cor,
cov_file = gender_qc.mean_coverage,
index = step1.ch_index_tab,
gender = gender_qc.gender_class,
batch = batch,
wgs = wgs,
sample_name = sample_name,
cor_cut = cor_cut,
cov_cut = cov_cut,
skipem = skipem,
addtional_disk_gb = part4_addtional_disk_gb,
preemptible_tries = preemptible_tries,
addtional_mem = part4_addtional_mem_gb
}
}
output{
#part0
File out_ch_index_tab = step1.ch_index_tab
File out_ch_index = step1.ch_index
File out_ch_index_bed = step1.ch_index_bed
#part1
File out_bin_zip = tarzip_bins.bin_zip
#part2
File out_gender_qc = gender_qc.gender_qc
File out_gender_class = gender_qc.gender_class
File out_mean_coverage = gender_qc.mean_coverage
#part3
Array[File] out_cor = logR_ratio.cor
Array[File] out_logr = logR_ratio.logr
Array[File] out_rbin = logR_ratio.rbin
#part4
Array[File] mixed_calls = hmm_calls.mixed_calls
Array[File] mixed_stats = hmm_calls.mixed_stats
}
}