/
wf_rescue_ratio_1input.cwl
executable file
·283 lines (231 loc) · 7.48 KB
/
wf_rescue_ratio_1input.cwl
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#!/usr/bin/env cwltool
doc: |
Calculates the rescue ratio (see Gabe's protocols paper), given
two eCLIP IP samples and 2 size-matched input samples. Also returns
the reproducible peaks given these two samples. This is different from
the 1input workflow in that each INPUT is first merged together and
is used downstream instead of the 1input version, which remains unmodified.
Merged inputs are NOT used in calculating true reproducible peaks.
cwlVersion: v1.0
class: Workflow
requirements:
- class: SubworkflowFeatureRequirement
- class: MultipleInputFeatureRequirement
- class: InlineJavascriptRequirement
inputs:
rep1_name:
type: string
rep1_clip_bam_file:
type: File
rep1_peaks_bed_file:
type: File
rep2_name:
type: string
rep2_clip_bam_file:
type: File
rep2_peaks_bed_file:
type: File
input_bam_file:
type: File
species:
type: string
merged_peaks_bed:
type: string
merged_peaks_custombed:
type: string
chrom_sizes:
type: File
## DEFAULT FILENAMES ##
split_peaks_bed:
type: string
default: "temp_split_IDR_peaks.bed"
split_peaks_custombed:
type: string
default: "temp_split_IDR_peaks.custombed"
outputs:
## MAPPED READ NUMBERS ##
rep1_clip_read_num:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_clip_read_num
rep2_clip_read_num:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_clip_read_num
rep1_input_read_num:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_input_read_num
rep2_input_read_num:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_input_read_num
## INPUT NORMALIZATION 1 ##
rep1_input_normed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_input_normed_bed
rep2_input_normed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_input_normed_bed
rep1_input_normed_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_input_normed_full
rep2_input_normed_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_input_normed_full
rep1_compressed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_compressed_bed
rep2_compressed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_compressed_bed
## ENTROPY FILES ##
rep1_entropy_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_entropy_full
rep2_entropy_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_entropy_full
rep1_entropy_excess_reads:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_entropy_excess_reads
rep2_entropy_excess_reads:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_entropy_excess_reads
rep1_entropy_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_entropy_bed
rep2_entropy_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_entropy_bed
## IDR OUTPUTS ##
idr_output:
type: File
outputSource: step_get_true_reproducing_peaks/idr_output
idr_output_bed:
type: File
outputSource: step_get_true_reproducing_peaks/idr_output_bed
## ERICS SPLIT-JOIN PEAKS ##
rep1_idr_output_input_normed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_idr_output_input_normed_bed
rep2_idr_output_input_normed_bed:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_idr_output_input_normed_bed
rep1_idr_output_input_normed_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_idr_output_input_normed_full
rep2_idr_output_input_normed_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_idr_output_input_normed_full
rep1_reproducing_peaks_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep1_reproducing_peaks_full
rep2_reproducing_peaks_full:
type: File
outputSource: step_get_true_reproducing_peaks/rep2_reproducing_peaks_full
## PSEUDO REPLICATE OUTPUTS DEBUG ##
pseudo_split_rep1_clip_read_num:
type: File
outputSource: step_split_merged_bam_and_idr/rep1_clip_read_num
pseudo_split_rep2_clip_read_num:
type: File
outputSource: step_split_merged_bam_and_idr/rep2_clip_read_num
pseudo_rep1_input_read_num:
type: File
outputSource: step_split_merged_bam_and_idr/rep1_input_read_num
pseudo_rep2_input_read_num:
type: File
outputSource: step_split_merged_bam_and_idr/rep2_input_read_num
pseudo_reproducible_peaks:
type: File
outputSource: step_split_merged_bam_and_idr/merged_peaks_bed_file
## FINAL OUTPUTS ##
reproducible_peaks:
type: File
outputSource: step_get_true_reproducing_peaks/merged_peaks_bed_file
reproducible_peaks_narrowpeak:
type: File
outputSource: step_get_true_reproducing_peaks/output_narrowpeak
reproducible_peaks_bigbed:
type: File
outputSource: step_get_true_reproducing_peaks/output_bigbed
rescue_ratio:
type: File
outputSource: step_rescue_ratio/ratio
steps:
step_merge_clip_bams:
run: bams_merge.cwl
in:
rep1_bam: rep1_clip_bam_file
rep2_bam: rep2_clip_bam_file
out:
- merged_bam_file
step_get_true_reproducing_peaks:
run: wf_get_reproducible_eclip_peaks.cwl
in:
rep1_clip_bam_file: rep1_clip_bam_file
rep2_clip_bam_file: rep2_clip_bam_file
rep1_input_bam_file: input_bam_file
rep2_input_bam_file: input_bam_file
rep1_peaks_bed_file: rep1_peaks_bed_file
rep2_peaks_bed_file: rep2_peaks_bed_file
merged_peaks_bed: merged_peaks_bed
merged_peaks_custombed: merged_peaks_custombed
chrom_sizes: chrom_sizes
species: species
out:
- rep1_clip_read_num
- rep2_clip_read_num
- rep1_input_read_num
- rep2_input_read_num
- rep1_input_normed_bed
- rep2_input_normed_bed
- rep1_input_normed_full
- rep2_input_normed_full
- rep1_compressed_bed
- rep2_compressed_bed
- rep1_entropy_full
- rep2_entropy_full
- rep1_entropy_excess_reads
- rep2_entropy_excess_reads
- rep1_entropy_bed
- rep2_entropy_bed
- idr_output
- idr_output_bed
- rep1_idr_output_input_normed_bed
- rep2_idr_output_input_normed_bed
- rep1_idr_output_input_normed_full
- rep2_idr_output_input_normed_full
- rep1_reproducing_peaks_full
- rep2_reproducing_peaks_full
- merged_peaks_bed_file
- merged_peaks_custombed_file
- reproducing_peaks_count
- output_narrowpeak
- output_bigbed
step_split_merged_bam_and_idr:
run: wf_split_self_and_idr.cwl
in:
clip_bam: step_merge_clip_bams/merged_bam_file
input_bam: input_bam_file
species: species
chrom_sizes: chrom_sizes
merged_peaks_bed: split_peaks_bed
merged_peaks_custombed: split_peaks_custombed
out:
- rep1_clip_read_num
- rep2_clip_read_num
- rep1_input_read_num
- rep2_input_read_num
- merged_peaks_bed_file
- reproducing_peaks_count
step_rescue_ratio:
run: max_over_min.cwl
in:
count1: step_get_true_reproducing_peaks/reproducing_peaks_count
count2: step_split_merged_bam_and_idr/reproducing_peaks_count
output_file:
source: [rep1_name, rep2_name]
valueFrom: |
${
return self[0] + ".vs." + self[1] + ".rescue_ratio";
}
out:
- ratio