From 9f26bbaa724b4290fe14f20b225d58ac3a36771a Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Tue, 27 Feb 2024 16:46:05 -0500 Subject: [PATCH 1/7] outlier sample removal for per-contig vcfs with flexible reruns --- .../FilterOutlierSamplesFinal.json.tmpl | 14 ++ wdl/FilterOutlierSamplesFinal.wdl | 234 ++++++++++++++++++ 2 files changed, 248 insertions(+) create mode 100644 inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl create mode 100644 wdl/FilterOutlierSamplesFinal.wdl diff --git a/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl b/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl new file mode 100644 index 000000000..187c742bf --- /dev/null +++ b/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl @@ -0,0 +1,14 @@ +{ + "FilterOutlierSamplesFinal.sv_pipeline_docker": {{ dockers.sv_pipeline_docker | tojson }}, + "FilterOutlierSamplesFinal.sv_base_mini_docker": {{ dockers.sv_base_mini_docker | tojson }}, + + "FilterOutlierSamplesFinal.N_IQR_cutoff": "1", + + "FilterOutlierSamplesFinal.autosomes_list": {{ reference_resources.autosome_file | tojson }}, + "FilterOutlierSamplesFinal.contigs_list": {{ reference_resources.primary_contigs_list | tojson }}, + + "FilterOutlierSamplesFinal.vcfs" : {{ test_batch.combined_vcfs | tojson }}, + "FilterOutlierSamplesFinal.prefix": {{ test_batch.name | tojson }}, + "FilterOutlierSamplesFinal.additional_samples_to_remove": "gs://broad-dsde-methods-eph/ref_panel_1kg.to_remove.txt", + "FilterOutlierSamplesFinal.filter_vcf": "true" +} diff --git a/wdl/FilterOutlierSamplesFinal.wdl b/wdl/FilterOutlierSamplesFinal.wdl new file mode 100644 index 000000000..15d51b7f1 --- /dev/null +++ b/wdl/FilterOutlierSamplesFinal.wdl @@ -0,0 +1,234 @@ +version 1.0 + +import "Utils.wdl" as util +import "PlotSVCountsPerSample.wdl" as plot +import "CollectQcVcfWide.wdl" as collect + +workflow FilterOutlierSamplesFinal { + input { + String prefix + Array[File] vcfs # sharded by contig, in order, allosomes last + File additional_samples_to_remove # can be empty file if no additional + + Int N_IQR_cutoff + Boolean filter_vcf + Boolean? plot_counts + String? bcftools_preprocessing_options # for preprocessing prior to SV counting. will not affect output VCFs + + File? sv_counts_in # SV counts file - if not provided, will create + File? all_samples_to_remove # if not provided, will determine outliers to remove. if provided, will just filter vcfs + + File autosomes_list + File contigs_list + + String sv_pipeline_docker + String sv_base_mini_docker + + } + + Array[Array[String]] autosomes = read_tsv(autosomes_list) + Array[String] contigs = read_lines(contigs_list) + + if (!defined(sv_counts_in)) { + scatter ( i in range(length(autosomes)) ) { + if (defined(bcftools_preprocessing_options)) { + call collect.PreprocessVcf { + input: + vcf = vcfs[i], + prefix = "~{prefix}.~{autosomes[i][0]}.preprocessed", + sv_base_mini_docker = sv_base_mini_docker + } + } + + call plot.CountSVsPerSamplePerType { + input: + vcf = select_first([PreprocessVcf.outvcf, vcfs[i]]), + prefix = "~{prefix}.~{autosomes[i][0]}", + sv_pipeline_docker = sv_pipeline_docker + } + } + + call SumSVCountsAcrossContigs { + input: + counts = CountSVsPerSamplePerType.sv_counts, + prefix = prefix, + sv_pipeline_docker = sv_pipeline_docker + } + } + + File sv_counts_ = select_first([sv_counts_in, SumSVCountsAcrossContigs.sv_counts_summed]) + + if (!defined(all_samples_to_remove) || (defined(plot_counts) && plot_counts) ) { + call plot.PlotSVCountsWithCutoff { + input: + svcounts = sv_counts_, + n_iqr_cutoff = N_IQR_cutoff, + prefix = prefix, + sv_pipeline_docker = sv_pipeline_docker + } + } + + if (!defined(all_samples_to_remove)) { + call util.GetSampleIdsFromVcf { + input: + vcf = vcfs[0], + sv_base_mini_docker = sv_base_mini_docker + } + + call GetOutliersListAndCount { + input: + outlier_samples_with_reason = select_first([PlotSVCountsWithCutoff.outliers_list]), + cohort_samples = GetSampleIdsFromVcf.out_file, + additional_samples_to_remove = additional_samples_to_remove, + prefix = prefix, + sv_base_mini_docker = sv_base_mini_docker + } + } + + File to_remove_ = select_first([all_samples_to_remove, GetOutliersListAndCount.samples_to_remove]) + + if (filter_vcf) { + scatter (i in range(length(contigs))) { + call util.SubsetVcfBySamplesList { + input: + vcf = vcfs[i], + list_of_samples = to_remove_, + outfile_name = "~{prefix}.~{contigs[i]}.outliers_removed.vcf.gz", + remove_samples = true, + sv_base_mini_docker = sv_base_mini_docker + } + } + } + + + output { + File sv_counts = sv_counts_ + File? sv_count_plots = PlotSVCountsWithCutoff.svcount_distrib_plots + File? outlier_samples_with_reason = PlotSVCountsWithCutoff.outliers_list + File? outlier_samples = GetOutliersListAndCount.outliers_list + Int? num_outliers = GetOutliersListAndCount.num_outliers + File samples_to_remove = to_remove_ + Int? num_to_remove = GetOutliersListAndCount.num_to_remove + File? updated_sample_list = GetOutliersListAndCount.updated_sample_list + Int? new_sample_count = GetOutliersListAndCount.new_sample_count + Array[File]? vcfs_samples_removed = SubsetVcfBySamplesList.vcf_subset + } +} + + +task SumSVCountsAcrossContigs { + input { + Array[File] counts + String prefix + String sv_pipeline_docker + RuntimeAttr? runtime_attr_override + } + + RuntimeAttr default_attr = object { + cpu_cores: 1, + mem_gb: 3.75, + disk_gb: 10 + ceil(size(counts, "GiB")), + boot_disk_gb: 10, + preemptible_tries: 3, + max_retries: 1 + } + RuntimeAttr runtime_attr = select_first([runtime_attr_override, default_attr]) + + command <<< + set -euo pipefail + python <>> + + output { + File sv_counts_summed = "~{prefix}.sv_counts.all_autosomes.tsv" + } + + runtime { + cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) + memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" + disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" + bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) + docker: sv_pipeline_docker + preemptible: select_first([runtime_attr.preemptible_tries, default_attr.preemptible_tries]) + maxRetries: select_first([runtime_attr.max_retries, default_attr.max_retries]) + } +} + + +task GetOutliersListAndCount { + input { + File outlier_samples_with_reason + File cohort_samples + File additional_samples_to_remove + String prefix + String sv_base_mini_docker + RuntimeAttr? runtime_attr_override + } + + RuntimeAttr default_attr = object { + cpu_cores: 1, + mem_gb: 3.75, + disk_gb: 10 + ceil(size([outlier_samples_with_reason, cohort_samples, additional_samples_to_remove], "GiB")), + boot_disk_gb: 10, + preemptible_tries: 3, + max_retries: 1 + } + RuntimeAttr runtime_attr = select_first([runtime_attr_override, default_attr]) + + command <<< + set -euo pipefail + + # extract sample id column, remove header, deduplicate outlier samples list + cut -f1 ~{outlier_samples_with_reason} | sed '1d' | sort | uniq > ~{prefix}.SV_count_outlier_samples.txt + wc -l < ~{prefix}.SV_count_outlier_samples.txt > outlier_count.txt + + # merge outliers & additional samples to remove and deduplicate + cat ~{prefix}.SV_count_outlier_samples.txt ~{additional_samples_to_remove} | sort | uniq > ~{prefix}.outliers_plus_additional_to_remove.txt + wc -l < ~{prefix}.outliers_plus_additional_to_remove.txt > removed_count.txt + + # filter cohort sample list + fgrep -wvf ~{prefix}.outliers_plus_additional_to_remove.txt ~{cohort_samples} > ~{prefix}.sample_list.filtered.txt || true + wc -l < ~{prefix}.sample_list.filtered.txt > new_count.txt + >>> + + output { + Int num_outliers = read_int("outlier_count.txt") + File outliers_list = "~{prefix}.SV_count_outlier_samples.txt" + File samples_to_remove = "~{prefix}.outliers_plus_additional_to_remove.txt" + Int num_to_remove = read_int("removed_count.txt") + File updated_sample_list = "~{prefix}.sample_list.filtered.txt" + Int new_sample_count = read_int("new_count.txt") + } + + runtime { + cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) + memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" + disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" + bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) + docker: sv_base_mini_docker + preemptible: select_first([runtime_attr.preemptible_tries, default_attr.preemptible_tries]) + maxRetries: select_first([runtime_attr.max_retries, default_attr.max_retries]) + } +} \ No newline at end of file From fad4da8f3bb2fd391e7b4feba2e5ee1019460b96 Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Mon, 11 Mar 2024 14:09:54 -0400 Subject: [PATCH 2/7] shard sv counting step --- wdl/FilterOutlierSamplesFinal.wdl | 88 +++------------------- wdl/ShardedCountSVs.wdl | 117 ++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 78 deletions(-) create mode 100644 wdl/ShardedCountSVs.wdl diff --git a/wdl/FilterOutlierSamplesFinal.wdl b/wdl/FilterOutlierSamplesFinal.wdl index 15d51b7f1..81cf089ab 100644 --- a/wdl/FilterOutlierSamplesFinal.wdl +++ b/wdl/FilterOutlierSamplesFinal.wdl @@ -1,8 +1,8 @@ version 1.0 import "Utils.wdl" as util +import "ShardedCountSVs.wdl" as count import "PlotSVCountsPerSample.wdl" as plot -import "CollectQcVcfWide.wdl" as collect workflow FilterOutlierSamplesFinal { input { @@ -31,32 +31,25 @@ workflow FilterOutlierSamplesFinal { if (!defined(sv_counts_in)) { scatter ( i in range(length(autosomes)) ) { - if (defined(bcftools_preprocessing_options)) { - call collect.PreprocessVcf { - input: - vcf = vcfs[i], - prefix = "~{prefix}.~{autosomes[i][0]}.preprocessed", - sv_base_mini_docker = sv_base_mini_docker - } - } - - call plot.CountSVsPerSamplePerType { + call count.ShardedCountSVs { input: - vcf = select_first([PreprocessVcf.outvcf, vcfs[i]]), + vcf = vcfs[i], + bcftools_preprocessing_options = bcftools_preprocessing_options, prefix = "~{prefix}.~{autosomes[i][0]}", - sv_pipeline_docker = sv_pipeline_docker + sv_pipeline_docker = sv_pipeline_docker, + sv_base_mini_docker = sv_base_mini_docker } } - call SumSVCountsAcrossContigs { + call count.SumSVCounts { input: - counts = CountSVsPerSamplePerType.sv_counts, - prefix = prefix, + counts = ShardedCountSVs.sv_counts, + prefix = "~{prefix}.all_autosomes", sv_pipeline_docker = sv_pipeline_docker } } - File sv_counts_ = select_first([sv_counts_in, SumSVCountsAcrossContigs.sv_counts_summed]) + File sv_counts_ = select_first([sv_counts_in, SumSVCounts.sv_counts_summed]) if (!defined(all_samples_to_remove) || (defined(plot_counts) && plot_counts) ) { call plot.PlotSVCountsWithCutoff { @@ -116,67 +109,6 @@ workflow FilterOutlierSamplesFinal { } -task SumSVCountsAcrossContigs { - input { - Array[File] counts - String prefix - String sv_pipeline_docker - RuntimeAttr? runtime_attr_override - } - - RuntimeAttr default_attr = object { - cpu_cores: 1, - mem_gb: 3.75, - disk_gb: 10 + ceil(size(counts, "GiB")), - boot_disk_gb: 10, - preemptible_tries: 3, - max_retries: 1 - } - RuntimeAttr runtime_attr = select_first([runtime_attr_override, default_attr]) - - command <<< - set -euo pipefail - python <>> - - output { - File sv_counts_summed = "~{prefix}.sv_counts.all_autosomes.tsv" - } - - runtime { - cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) - memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" - disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" - bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) - docker: sv_pipeline_docker - preemptible: select_first([runtime_attr.preemptible_tries, default_attr.preemptible_tries]) - maxRetries: select_first([runtime_attr.max_retries, default_attr.max_retries]) - } -} - - task GetOutliersListAndCount { input { File outlier_samples_with_reason diff --git a/wdl/ShardedCountSVs.wdl b/wdl/ShardedCountSVs.wdl new file mode 100644 index 000000000..7c523fa41 --- /dev/null +++ b/wdl/ShardedCountSVs.wdl @@ -0,0 +1,117 @@ +version 1.0 + +import "PlotSVCountsPerSample.wdl" as plot +import "CollectQcVcfWide.wdl" as collect +import "TasksMakeCohortVcf.wdl" as tasks + +workflow ShardedCountSVs { + input { + File vcf + String prefix + + String? bcftools_preprocessing_options + Int records_per_shard = 20000 + + String sv_pipeline_docker + String sv_base_mini_docker + + } + + call tasks.ScatterVcf { + input: + vcf = vcf, + records_per_shard = records_per_shard, + prefix = "~{prefix}.scatter", + sv_pipeline_docker = sv_pipeline_docker + } + + scatter (i in range(length(ScatterVcf.shards))) { + if (defined(bcftools_preprocessing_options)) { + call collect.PreprocessVcf { + input: + vcf = vcf, + bcftools_preprocessing_options=select_first([bcftools_preprocessing_options]), + prefix = "~{prefix}.shard_~{i}.preprocessed", + sv_base_mini_docker = sv_base_mini_docker + } + } + + call plot.CountSVsPerSamplePerType { + input: + vcf = select_first([PreprocessVcf.outvcf, vcf]), + prefix = "~{prefix}.shard_~{i}", + sv_pipeline_docker = sv_pipeline_docker + } + } + + call SumSVCounts { + input: + counts = CountSVsPerSamplePerType.sv_counts, + prefix = prefix, + sv_pipeline_docker = sv_pipeline_docker + } + + output { + File sv_counts = SumSVCounts.sv_counts_summed + } +} + +task SumSVCounts { + input { + Array[File] counts + String prefix + String sv_pipeline_docker + RuntimeAttr? runtime_attr_override + } + + RuntimeAttr default_attr = object { + cpu_cores: 1, + mem_gb: 3.75, + disk_gb: 10 + ceil(size(counts, "GiB")), + boot_disk_gb: 10, + preemptible_tries: 3, + max_retries: 1 + } + RuntimeAttr runtime_attr = select_first([runtime_attr_override, default_attr]) + + command <<< + set -euo pipefail + python <>> + + output { + File sv_counts_summed = "~{prefix}.sv_counts_summed.tsv" + } + + runtime { + cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) + memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" + disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" + bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) + docker: sv_pipeline_docker + preemptible: select_first([runtime_attr.preemptible_tries, default_attr.preemptible_tries]) + maxRetries: select_first([runtime_attr.max_retries, default_attr.max_retries]) + } +} From 3537ac1e2b90fb0ee197af5f45c8561625c38140 Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Mon, 11 Mar 2024 14:26:24 -0400 Subject: [PATCH 3/7] miniwdl validation --- .../FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl | 1 + wdl/FilterOutlierSamplesFinal.wdl | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl b/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl index 187c742bf..49d29cc34 100644 --- a/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl +++ b/inputs/templates/test/FilterOutlierSamples/FilterOutlierSamplesFinal.json.tmpl @@ -10,5 +10,6 @@ "FilterOutlierSamplesFinal.vcfs" : {{ test_batch.combined_vcfs | tojson }}, "FilterOutlierSamplesFinal.prefix": {{ test_batch.name | tojson }}, "FilterOutlierSamplesFinal.additional_samples_to_remove": "gs://broad-dsde-methods-eph/ref_panel_1kg.to_remove.txt", + "FilterOutlierSamplesFinal.plot_counts": "true", "FilterOutlierSamplesFinal.filter_vcf": "true" } diff --git a/wdl/FilterOutlierSamplesFinal.wdl b/wdl/FilterOutlierSamplesFinal.wdl index 81cf089ab..9412f96c9 100644 --- a/wdl/FilterOutlierSamplesFinal.wdl +++ b/wdl/FilterOutlierSamplesFinal.wdl @@ -12,7 +12,7 @@ workflow FilterOutlierSamplesFinal { Int N_IQR_cutoff Boolean filter_vcf - Boolean? plot_counts + Boolean plot_counts String? bcftools_preprocessing_options # for preprocessing prior to SV counting. will not affect output VCFs File? sv_counts_in # SV counts file - if not provided, will create @@ -51,7 +51,7 @@ workflow FilterOutlierSamplesFinal { File sv_counts_ = select_first([sv_counts_in, SumSVCounts.sv_counts_summed]) - if (!defined(all_samples_to_remove) || (defined(plot_counts) && plot_counts) ) { + if (!defined(all_samples_to_remove) || plot_counts ) { call plot.PlotSVCountsWithCutoff { input: svcounts = sv_counts_, From 5f300ff28bbb7d726b380fc223123aeb171dc099 Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Thu, 14 Mar 2024 11:30:24 -0400 Subject: [PATCH 4/7] fix sharding --- wdl/ShardedCountSVs.wdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wdl/ShardedCountSVs.wdl b/wdl/ShardedCountSVs.wdl index 7c523fa41..4c8e57744 100644 --- a/wdl/ShardedCountSVs.wdl +++ b/wdl/ShardedCountSVs.wdl @@ -29,7 +29,7 @@ workflow ShardedCountSVs { if (defined(bcftools_preprocessing_options)) { call collect.PreprocessVcf { input: - vcf = vcf, + vcf = ScatterVcf.shards[i], bcftools_preprocessing_options=select_first([bcftools_preprocessing_options]), prefix = "~{prefix}.shard_~{i}.preprocessed", sv_base_mini_docker = sv_base_mini_docker @@ -38,7 +38,7 @@ workflow ShardedCountSVs { call plot.CountSVsPerSamplePerType { input: - vcf = select_first([PreprocessVcf.outvcf, vcf]), + vcf = select_first([PreprocessVcf.outvcf, ScatterVcf.shards[i]]), prefix = "~{prefix}.shard_~{i}", sv_pipeline_docker = sv_pipeline_docker } From 564c00c9884c1be66f0dd17c2798924d6dfece6e Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Wed, 20 Mar 2024 08:35:25 -0400 Subject: [PATCH 5/7] increase mem in wdl so most tasks cache --- wdl/Utils.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wdl/Utils.wdl b/wdl/Utils.wdl index 16efe98b9..3b4e4e824 100644 --- a/wdl/Utils.wdl +++ b/wdl/Utils.wdl @@ -741,7 +741,7 @@ task SubsetVcfBySamplesList { # Disk must be scaled proportionally to the size of the VCF Float input_size = size(vcf, "GiB") RuntimeAttr default_attr = object { - mem_gb: 3.75, + mem_gb: 8, disk_gb: ceil(10.0 + (input_size * 2)), cpu_cores: 1, preemptible_tries: 3, From 9c7a32b63c65d72dfc0637510e19c7a1eebb5fa0 Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Wed, 20 Mar 2024 08:44:43 -0400 Subject: [PATCH 6/7] same thing but in runtime attr not default attr --- wdl/Utils.wdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wdl/Utils.wdl b/wdl/Utils.wdl index 3b4e4e824..f640b12c5 100644 --- a/wdl/Utils.wdl +++ b/wdl/Utils.wdl @@ -741,7 +741,7 @@ task SubsetVcfBySamplesList { # Disk must be scaled proportionally to the size of the VCF Float input_size = size(vcf, "GiB") RuntimeAttr default_attr = object { - mem_gb: 8, + mem_gb: 3.75, disk_gb: ceil(10.0 + (input_size * 2)), cpu_cores: 1, preemptible_tries: 3, @@ -774,7 +774,7 @@ task SubsetVcfBySamplesList { runtime { cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) - memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" + memory: "8 GiB" disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) docker: sv_base_mini_docker From b9269886da4e06f07236f009190fd1377e9aa372 Mon Sep 17 00:00:00 2001 From: Emma Pierce-Hoffman Date: Wed, 20 Mar 2024 23:52:37 -0400 Subject: [PATCH 7/7] revert mem hard-coding, save index files --- wdl/FilterOutlierSamplesFinal.wdl | 1 + wdl/Utils.wdl | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/wdl/FilterOutlierSamplesFinal.wdl b/wdl/FilterOutlierSamplesFinal.wdl index 9412f96c9..1df98bd4f 100644 --- a/wdl/FilterOutlierSamplesFinal.wdl +++ b/wdl/FilterOutlierSamplesFinal.wdl @@ -105,6 +105,7 @@ workflow FilterOutlierSamplesFinal { File? updated_sample_list = GetOutliersListAndCount.updated_sample_list Int? new_sample_count = GetOutliersListAndCount.new_sample_count Array[File]? vcfs_samples_removed = SubsetVcfBySamplesList.vcf_subset + Array[File]? vcf_indexes_samples_removed = SubsetVcfBySamplesList.vcf_subset_index } } diff --git a/wdl/Utils.wdl b/wdl/Utils.wdl index f640b12c5..16efe98b9 100644 --- a/wdl/Utils.wdl +++ b/wdl/Utils.wdl @@ -774,7 +774,7 @@ task SubsetVcfBySamplesList { runtime { cpu: select_first([runtime_attr.cpu_cores, default_attr.cpu_cores]) - memory: "8 GiB" + memory: select_first([runtime_attr.mem_gb, default_attr.mem_gb]) + " GiB" disks: "local-disk " + select_first([runtime_attr.disk_gb, default_attr.disk_gb]) + " HDD" bootDiskSizeGb: select_first([runtime_attr.boot_disk_gb, default_attr.boot_disk_gb]) docker: sv_base_mini_docker