@@ -65,6 +65,7 @@ workflow GenerateBatchMetrics {
6565 RuntimeAttr ? runtime_attr_merge_allo
6666 RuntimeAttr ? runtime_attr_merge_baf
6767 RuntimeAttr ? runtime_attr_merge_stats
68+ RuntimeAttr ? runtime_attr_get_male_only
6869 }
6970
7071 Array [String ] algorithms = ["depth" , "melt" , "delly" , "wham" , "manta" ]
@@ -101,6 +102,15 @@ workflow GenerateBatchMetrics {
101102 String algorithm = algorithms [i ]
102103 File vcf = select_first ([vcfs [i ]])
103104
105+ call GetMaleOnlyVariantIDs {
106+ input :
107+ vcf = vcf ,
108+ female_samples = GetSampleLists .female_samples ,
109+ male_samples = GetSampleLists .male_samples ,
110+ sv_pipeline_docker = sv_pipeline_docker ,
111+ runtime_attr_override = runtime_attr_get_male_only
112+ }
113+
104114 if (algorithm != "melt" ) {
105115 call rdt .RDTest as RDTest {
106116 input :
@@ -118,6 +128,7 @@ workflow GenerateBatchMetrics {
118128 samples = GetSampleLists .samples_file ,
119129 male_samples = GetSampleLists .male_samples ,
120130 female_samples = GetSampleLists .female_samples ,
131+ male_only_variant_ids = GetMaleOnlyVariantIDs .male_only_variant_ids ,
121132 sv_pipeline_docker = sv_pipeline_docker ,
122133 sv_pipeline_rdtest_docker = sv_pipeline_rdtest_docker ,
123134 linux_docker = linux_docker ,
@@ -162,6 +173,7 @@ workflow GenerateBatchMetrics {
162173 samples = GetSampleLists .samples_file ,
163174 male_samples = GetSampleLists .male_samples ,
164175 female_samples = GetSampleLists .female_samples ,
176+ male_only_variant_ids = GetMaleOnlyVariantIDs .male_only_variant_ids ,
165177 run_common = true ,
166178 common_cnv_size_cutoff = common_cnv_size_cutoff ,
167179 sv_base_mini_docker = sv_base_mini_docker ,
@@ -190,6 +202,7 @@ workflow GenerateBatchMetrics {
190202 samples = GetSampleLists .samples_file ,
191203 male_samples = GetSampleLists .male_samples ,
192204 female_samples = GetSampleLists .female_samples ,
205+ male_only_variant_ids = GetMaleOnlyVariantIDs .male_only_variant_ids ,
193206 common_cnv_size_cutoff = common_cnv_size_cutoff ,
194207 sv_base_mini_docker = sv_base_mini_docker ,
195208 linux_docker = linux_docker ,
@@ -331,6 +344,46 @@ task GetSampleLists {
331344 }
332345}
333346
347+ task GetMaleOnlyVariantIDs {
348+ input {
349+ File vcf
350+ File female_samples
351+ File male_samples
352+ String sv_pipeline_docker
353+ RuntimeAttr ? runtime_attr_override
354+ }
355+
356+ RuntimeAttr default_attr = object {
357+ cpu_cores : 1 ,
358+ mem_gb : 3.75 ,
359+ disk_gb : 10 ,
360+ boot_disk_gb : 10 ,
361+ preemptible_tries : 3 ,
362+ max_retries : 1
363+ }
364+ RuntimeAttr runtime_attr = select_first ([runtime_attr_override , default_attr ])
365+
366+ output {
367+ File male_only_variant_ids = "male_only_variant_ids.txt"
368+ }
369+ command <<<
370+ bcftools view -S ~{male_samples } ~{vcf } | bcftools view --min-ac 1 | bcftools query -f '%ID\n' > variant_ids_in_males.txt
371+ bcftools view -S ~{female_samples } ~{vcf } | bcftools view --min-ac 1 | bcftools query -f '%ID\n' > variant_ids_in_females.txt
372+ awk 'NR==FNR{a[$0];next} !($0 in a)' variant_ids_in_females.txt variant_ids_in_males.txt > male_only_variant_ids.txt
373+
374+ >>>
375+ runtime {
376+ cpu : select_first ([runtime_attr .cpu_cores , default_attr .cpu_cores ])
377+ memory : select_first ([runtime_attr .mem_gb , default_attr .mem_gb ]) + " GiB"
378+ disks : "local-disk " + select_first ([runtime_attr .disk_gb , default_attr .disk_gb ]) + " HDD"
379+ bootDiskSizeGb : select_first ([runtime_attr .boot_disk_gb , default_attr .boot_disk_gb ])
380+ docker : sv_pipeline_docker
381+ preemptible : select_first ([runtime_attr .preemptible_tries , default_attr .preemptible_tries ])
382+ maxRetries : select_first ([runtime_attr .max_retries , default_attr .max_retries ])
383+ }
384+ }
385+
386+
334387task AggregateTests {
335388 input {
336389 File vcf
0 commit comments