Skip to content

Commit 5de6733

Browse files
committed
Initial WDL for sample level concordance
1 parent 1681609 commit 5de6733

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
version 1.0
2+
3+
import "SVConcordance.wdl" as conc
4+
import "TasksMakeCohortVcf.wdl" as tasks_cohort
5+
import "Utils.wdl" as utils
6+
7+
workflow SVConcordanceSimplePerSample {
8+
input {
9+
File eval_vcf
10+
File eval_vcf_idx
11+
File truth_vcf
12+
File truth_vcf_idx
13+
Array[String] sample_ids
14+
String output_prefix
15+
16+
Float? pesr_interval_overlap = 0.5
17+
Float? pesr_size_similarity = 0.0
18+
Int? pesr_breakend_window = 500
19+
20+
Float? depth_interval_overlap = 0.8
21+
Float? depth_size_similarity = 0.0
22+
Int? depth_breakend_window = 10000000
23+
24+
Float? mixed_interval_overlap = 0.8
25+
Float? mixed_size_similarity = 0.0
26+
Int? mixed_breakend_window = 1000
27+
28+
File? clustering_config
29+
File? stratification_config
30+
Array[String]? track_names
31+
Array[File]? track_intervals
32+
33+
File reference_dict
34+
35+
String sv_base_mini_docker
36+
String gatk_docker
37+
38+
RuntimeAttr? runtime_attr_sv_concordance
39+
RuntimeAttr? runtime_attr_sort_vcf
40+
}
41+
42+
scatter (sample in sample_ids) {
43+
44+
call utils.SubsetVcfToSample as SubsetEval {
45+
input:
46+
vcf = eval_vcf,
47+
vcf_idx = eval_vcf_idx,
48+
sample = sample,
49+
remove_sample = false,
50+
sv_base_mini_docker = sv_base_mini_docker
51+
}
52+
53+
call utils.SubsetVcfToSample as SubsetTruth {
54+
input:
55+
vcf = truth_vcf,
56+
vcf_idx = truth_vcf_idx,
57+
sample = sample,
58+
remove_sample = false,
59+
sv_base_mini_docker = sv_base_mini_docker
60+
}
61+
62+
call conc.SVConcordanceTask as Concordance {
63+
input:
64+
truth_vcf = SubsetTruth.vcf_subset,
65+
eval_vcf = SubsetEval.vcf_subset,
66+
output_prefix = "~{output_prefix}." ~{sample} ~".unsorted",
67+
additional_args = "--pesr-interval-overlap ~{pesr_interval_overlap} --pesr-size-similarity ~{pesr_size_similarity} --pesr-breakend-window ~{pesr_breakend_window} --depth-interval-overlap ~{depth_interval_overlap} --depth-size-similarity ~{depth_size_similarity} --depth-breakend-window ~{depth_breakend_window} --mixed-interval-overlap ~{mixed_interval_overlap} --mixed-size-similarity ~{mixed_size_similarity} --mixed-breakend-window ~{mixed_breakend_window}",
68+
clustering_config = clustering_config,
69+
stratification_config = stratification_config,
70+
track_names = track_names,
71+
track_intervals = track_intervals,
72+
reference_dict = reference_dict,
73+
gatk_docker = gatk_docker,
74+
runtime_attr_override = runtime_attr_sv_concordance
75+
}
76+
77+
call tasks_cohort.SortVcf as Sort {
78+
input:
79+
vcf = Concordance.out_unsorted,
80+
outfile_prefix = "~{output_prefix}." ~{sample} ~".sorted",
81+
sv_base_mini_docker = sv_base_mini_docker,
82+
runtime_attr_override = runtime_attr_sort_vcf
83+
}
84+
}
85+
86+
output {
87+
Array[File] conc_vcfs = Sort.out
88+
Array[File] conc_vcf_idxs = Sort.out_index
89+
}
90+
}

0 commit comments

Comments
 (0)