/
harmonization_novoalign_multi_readgroup.cwl
117 lines (104 loc) · 3.42 KB
/
harmonization_novoalign_multi_readgroup.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
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: Workflow
requirements:
- class: InlineJavascriptRequirement
- class: StepInputExpressionRequirement
- class: MultipleInputFeatureRequirement
- class: ScatterFeatureRequirement
inputs:
job_uuid: string
interval_bed: File
input_bam: File
nthreads: int
dbname: File
reference_fai_index: File
outputs:
time_metrics_from_bam_to_fastq:
type: File
outputSource: bam_to_fastq/time_metrics
time_metrics_from_trim_adaptor:
type: File[]
outputSource: trim_adaptor/time_metrics
time_metrics_from_novoalign_filter_dedup:
type: File
outputSource: novoalign_filter_dedup/time_metrics
time_metrics_from_merge:
type: File
outputSource: readgroups_merge/time_metrics
time_metrics_from_sort:
type: File
outputSource: bam_sort/time_metrics
time_metrics_from_reheader:
type: File
outputSource: bam_reheader/time_metrics
sorted_bam:
type: File
outputSource: bam_sort/sorted_bam
steps:
get_readgroup_info:
run: ../../tools/harmonization/get_readgroup_name.cwl
in:
bam: input_bam
out: [readgroup_lines, readgroup_names]
bam_to_fastq:
run: ../../tools/harmonization/bam_to_fastq.cwl
in:
job_uuid: job_uuid
readgroup_lines: get_readgroup_info/readgroup_lines
readgroup_names: get_readgroup_info/readgroup_names
filename: input_bam
out: [output_readgroup_lines, output_readgroup_names, output_fastq1, output_fastq2, time_metrics]
trim_adaptor:
run: ../../tools/harmonization/trimmomatic.cwl
scatter: [readgroup_line, readgroup_name, input_read1_fastq_file, input_read2_fastq_file]
scatterMethod: dotproduct
in:
job_uuid: job_uuid
readgroup_line: bam_to_fastq/output_readgroup_lines
readgroup_name: bam_to_fastq/output_readgroup_names
input_read1_fastq_file: bam_to_fastq/output_fastq1
input_read2_fastq_file: bam_to_fastq/output_fastq2
out: [paired_readgroup_line, paired_readgroup_name, output_read1_trimmed_file, output_read2_trimmed_file, time_metrics]
novoalign_filter_dedup:
run: ../../tools/harmonization/novoalign_multi_readgroup.cwl
in:
job_uuid: job_uuid
nthreads: nthreads
dbname: dbname
input_read1_fastq_files: trim_adaptor/output_read1_trimmed_file
input_read2_fastq_files: trim_adaptor/output_read2_trimmed_file
readgroup_lines: trim_adaptor/paired_readgroup_line
readgroup_names: trim_adaptor/paired_readgroup_name
out: [readgroup_bam, time_metrics]
readgroups_merge:
run: ../../tools/harmonization/sambamba_merge.cwl
in:
job_uuid: job_uuid
bams: novoalign_filter_dedup/readgroup_bam
base_file_name:
source: job_uuid
valueFrom: $(self)
out: [merged_bam, time_metrics]
get_bam_new_header:
run: ../../tools/harmonization/get_bam_new_header.cwl
in:
bam: readgroups_merge/merged_bam
out: [bam_new_header]
bam_reheader:
run: ../../tools/harmonization/samtools_filter_reheader.cwl
in:
job_uuid: job_uuid
new_header: get_bam_new_header/bam_new_header
interval_bed: interval_bed
bam: readgroups_merge/merged_bam
out: [reheadered_bam, time_metrics]
bam_sort:
run: ../../tools/harmonization/sambamba_sort.cwl
in:
job_uuid: job_uuid
bam: bam_reheader/reheadered_bam
base_file_name:
source: job_uuid
valueFrom: $(self)
out: [sorted_bam, time_metrics]