-
Notifications
You must be signed in to change notification settings - Fork 3
/
standard_pipeline.cwl
executable file
·216 lines (181 loc) · 6.42 KB
/
standard_pipeline.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
cwlVersion: v1.0
class: Workflow
doc: |
This is a workflow to go from UMI-tagged fastqs to standard bams.
It does not include collapsing, or QC
It does include modules 1 and 2
requirements:
MultipleInputFeatureRequirement: {}
ScatterFeatureRequirement: {}
SubworkflowFeatureRequirement: {}
InlineJavascriptRequirement: {}
StepInputExpressionRequirement: {}
SchemaDefRequirement:
types:
- $import: ../resources/schemas/collapsing_tools.yaml
- $import: ../resources/schemas/params/abra.yaml
- $import: ../resources/schemas/params/trimgalore.yaml
- $import: ../resources/schemas/params/print_reads.yaml
- $import: ../resources/schemas/params/mark_duplicates.yaml
- $import: ../resources/schemas/params/process_loop_umi_fastq.yaml
- $import: ../resources/schemas/params/add_or_replace_read_groups.yaml
- $import: ../resources/schemas/params/find_covered_intervals.yaml
- $import: ../resources/schemas/params/fix_mate_information.yaml
- $import: ../resources/schemas/params/base_recalibrator.yaml
inputs:
run_tools: ../resources/schemas/collapsing_tools.yaml#run_tools
abra__params: ../resources/schemas/params/abra.yaml#abra__params
trimgalore__params: ../resources/schemas/params/trimgalore.yaml#trimgalore__params
print_reads__params: ../resources/schemas/params/print_reads.yaml#print_reads__params
mark_duplicates__params: ../resources/schemas/params/mark_duplicates.yaml#mark_duplicates__params
process_loop_umi_fastq__params: ../resources/schemas/params/process_loop_umi_fastq.yaml#process_loop_umi_fastq__params
add_or_replace_read_groups__params: ../resources/schemas/params/add_or_replace_read_groups.yaml#add_or_replace_read_groups__params
find_covered_intervals__params: ../resources/schemas/params/find_covered_intervals.yaml#find_covered_intervals__params
fix_mate_information__params: ../resources/schemas/params/fix_mate_information.yaml#fix_mate_information__params
base_recalibrator__params: ../resources/schemas/params/base_recalibrator.yaml#base_recalibrator__params
fastq1: File[]
fastq2: File[]
sample_sheet: File[]
patient_id: string[]
adapter: string[]
adapter2: string[]
# Todo: Open a ticket
# bwa cannot read symlink for the fasta.fai file,
# so we need to use strings here instead of file types
reference_fasta: string
reference_fasta_fai: string
add_rg_LB: int[]
add_rg_ID: string[]
add_rg_PU: string[]
add_rg_SM: string[]
bqsr__knownSites_dbSNP:
type: File
secondaryFiles: [.idx]
bqsr__knownSites_millis:
type: File
secondaryFiles: [.idx]
outputs:
standard_bams:
type: File[]
outputSource: flatten_array_bams/output_bams
clipping_dirs:
type: Directory[]
outputSource: umi_clipping/clipping_dir
clipping_info:
type: File[]
outputSource: umi_clipping/clipping_info
clstats1:
type: File[]
outputSource: module_1/clstats1
clstats2:
type: File[]
outputSource: module_1/clstats2
md_metrics:
type: File[]
outputSource: module_1/md_metrics
covint_list:
type: File[]
outputSource: module_2/covint_list
covint_bed:
type: File[]
outputSource: module_2/covint_bed
recalibrated_scores_matrix:
type:
type: array
items:
type: array
items: File
outputSource: module_2/recalibrated_scores_matrix
steps:
#########################
# Marianas UMI Clipping #
#########################
umi_clipping:
run: ../cwl_tools/marianas/ProcessLoopUMIFastq.cwl
in:
run_tools: run_tools
params: process_loop_umi_fastq__params
java_8:
valueFrom: $(inputs.run_tools.java_8)
marianas_path:
valueFrom: $(inputs.run_tools.marianas_path)
fastq1: fastq1
fastq2: fastq2
sample_sheet: sample_sheet
add_rg_SM: add_rg_SM
umi_length:
valueFrom: $(inputs.params.umi_length)
output_project_folder:
valueFrom: $(inputs.params.output_project_folder)
out: [
processed_fastq_1,
processed_fastq_2,
clipping_info,
clipping_dir]
scatter: [fastq1, fastq2, sample_sheet, add_rg_SM]
scatterMethod: dotproduct
####################
# Adapted Module 1 #
####################
module_1:
run: ./module-1.cwl
in:
run_tools: run_tools
fastq1: umi_clipping/processed_fastq_1
fastq2: umi_clipping/processed_fastq_2
adapter: adapter
adapter2: adapter2
reference_fasta: reference_fasta
reference_fasta_fai: reference_fasta_fai
add_rg_LB: add_rg_LB
add_rg_ID: add_rg_ID
add_rg_PU: add_rg_PU
add_rg_SM: add_rg_SM
add_rg_CN:
valueFrom: $(inputs.add_or_replace_read_groups__params.add_rg_CN)
add_rg_PL:
valueFrom: $(inputs.add_or_replace_read_groups__params.add_rg_PL)
trimgalore__params: trimgalore__params
add_or_replace_read_groups__params: add_or_replace_read_groups__params
mark_duplicates__params: mark_duplicates__params
out: [bam, bai, clstats1, clstats2, md_metrics]
scatter: [fastq1, fastq2, add_rg_LB, add_rg_ID, add_rg_PU, add_rg_SM, adapter, adapter2]
scatterMethod: dotproduct
############################
# Group Bams by Patient ID #
############################
group_bams_by_patient:
run: ../cwl_tools/expression_tools/group_bams.cwl
in:
bams: module_1/bam
patient_ids: patient_id
out:
[grouped_bams, grouped_patient_ids]
####################
# Adapted Module 2 #
####################
module_2:
run: ./module-2.cwl
in:
run_tools: run_tools
reference_fasta: reference_fasta
bams: group_bams_by_patient/grouped_bams
patient_id: group_bams_by_patient/grouped_patient_ids
bqsr__knownSites_dbSNP: bqsr__knownSites_dbSNP
bqsr__knownSites_millis: bqsr__knownSites_millis
find_covered_intervals__params: find_covered_intervals__params
abra__params: abra__params
fix_mate_information__params: fix_mate_information__params
base_recalibrator__params: base_recalibrator__params
print_reads__params: print_reads__params
out: [standard_bams, covint_list, covint_bed, recalibrated_scores_matrix]
scatter: [bams, patient_id]
scatterMethod: dotproduct
################################
# Return to flat array of bams #
################################
flatten_array_bams:
run: ../cwl_tools/expression_tools/flatten_array_bam.cwl
in:
bams: module_2/standard_bams
out: [output_bams]