-
Notifications
You must be signed in to change notification settings - Fork 2
/
gatk-4.0.0.0-haplotypecaller.cwl
126 lines (115 loc) · 3.02 KB
/
gatk-4.0.0.0-haplotypecaller.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
cwlVersion: v1.0
class: Workflow
requirements:
- class: SubworkflowFeatureRequirement
- class: InlineJavascriptRequirement
- class: StepInputExpressionRequirement
- class: MultipleInputFeatureRequirement
- class: ScatterFeatureRequirement
hints:
ResourceRequirement:
ramMin: 4000
coresMin: 1
tmpdirMin: 1000
inputs:
- id: library_cram
type: File
- id: chunks
type: int
- id: intersect_file
type: File
- id: reference_dict
type: File
- id: reference_fasta
type: File
- id: ploidy
type: int
- id: include_chromosome_regex
type: string
default: "."
- id: pcr_free
type: boolean
default: true
steps:
- id: dict_to_interval_list
run: ../tools/dict_to_interval_list.cwl
in:
dictionary: reference_dict
out: [interval_list]
- id: intersect
run: intersect_intervals.cwl
in:
interval_list_A: intersect_file
interval_list_B: dict_to_interval_list/interval_list
out: [intersected_interval_list]
- id: filter_interval_list
run: ../tools/filter_interval_list.cwl
in:
interval_list: intersect/intersected_interval_list
chromosome_regex: include_chromosome_regex
out:
- output
- id: split_interval_list
run: ../tools/split_interval_list.cwl
in:
number_of_intervals: chunks
interval_list: filter_interval_list/output
out:
- interval_lists
- id: haplotype_caller
scatter:
- intervals
hints:
ResourceRequirement:
ramMin: 6000
coresMin: 1
tmpdirMin: 1000
run: ../tools/gatk-4.0/HaplotypeCaller.cwl
in:
reference: reference_fasta
input: library_cram
intervals: split_interval_list/interval_lists
# num_cpu_threads_per_data_thread:
# valueFrom: ${ return 1 }
# num_threads:
# valueFrom: ${ return 1 }
add-output-vcf-command-line:
valueFrom: $( false )
annotation:
valueFrom: $(["DepthPerAlleleBySample","StrandBiasBySample"])
emit-ref-confidence:
valueFrom: GVCF
sample-ploidy: ploidy
pcr-indel-model:
source: pcr_free
valueFrom: ${ if(self) { return "NONE" } else { return "CONSERVATIVE" }}
verbosity:
valueFrom: INFO
create-output-variant-index:
valueFrom: $( true )
create-output-variant-md5:
valueFrom: $( true )
output-filename:
valueFrom: $(inputs.input.nameroot)_$(inputs.intervals.nameroot).g.vcf.gz
out:
- output
- variant-index
- variant-md5
- id: combine_haplotype_index
scatter:
- main_file
- secondary_files
scatterMethod: dotproduct
in:
main_file: haplotype_caller/output
secondary_files: haplotype_caller/variant-index
out:
[file_with_secondary_files]
run: ../expression-tools/combine_files.cwl
outputs:
- id: gvcf_files
type: File[]
outputSource: combine_haplotype_index/file_with_secondary_files
- id: intervals
type: File[]
outputSource: split_interval_list/interval_lists