From 55df6229c25d0a60f624da5495b0db0a3795da25 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Wed, 16 Jul 2025 14:26:23 +0200 Subject: [PATCH 01/11] add samplesfile to bcftools view --- bcftools.wdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bcftools.wdl b/bcftools.wdl index 7df8911d..f56509ef 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -350,6 +350,7 @@ task View { String? exclude String? include Array[String] samples = [] + File? samplesFile String memory = "256MiB" Int timeMinutes = 1 + ceil(size(inputFile, "G")) @@ -366,6 +367,7 @@ task View { ~{"--include " + include} \ ~{true="--exclude-uncalled" false="" excludeUncalled} \ ~{if length(samples) > 0 then "-s" else ""} ~{sep="," samples} \ + ~{"--samples-file " + samplesFile} \ -o ~{outputPath} \ -O ~{true="z" false="v" compressed} \ ~{inputFile} @@ -392,6 +394,7 @@ task View { exclude: {description: "Exclude sites for which the expression is true (see man page for details).", category: "advanced"} excludeUncalled: {description: "Exclude sites without a called genotype (see man page for details).", category: "advanced"} samples: {description: "A list of sample names to include.", category: "advanced"} + samplesFile: {description: "File of samples to include.", category: "advanced"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} From 0fa9ca1995437a8429987f41d1c5ee83a0f3eb11 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Thu, 17 Jul 2025 14:23:35 +0200 Subject: [PATCH 02/11] add tasks for geva --- CHANGELOG.md | 5 ++ geva.wdl | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 geva.wdl diff --git a/CHANGELOG.md b/CHANGELOG.md index c56b124a..ff7a99f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,11 @@ that users understand how the changes affect the new version. version 6.0.0-dev --------------------------- ++ Added tasks for GEVA: + + ConvertToBin + + Geva + + EstimateAge ++ Updated bcftools view task with an input to provide a samples file. + Add a task for bcftools norm. + Add support for outputting compressed files to snpeff and snpsift. + Fixed an issue with the parameter_meta section of bcftools annotate diff --git a/geva.wdl b/geva.wdl new file mode 100644 index 00000000..8f806094 --- /dev/null +++ b/geva.wdl @@ -0,0 +1,136 @@ +version 1.0 + +task ConvertToBin { + input { + File inputVcf + String prefix = "./geva.convert" + + String memory = "4GiB" + Int timeMinutes = 30 + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + } + + command { + geva_v1beta \ + --vcf ~{inputVcf} \ + --out ~{prefix} + } + + output { + File bin = "~{prefix}.bin" + File sample = "~{prefix}.sample.txt" + File marker = "~{prefix}.marker.txt" + File log = "~{prefix}.log" + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + inputVcf: {description: "A VCF file (containing a single chromosome) to be converted into GEVA's binary format.", category: "required"} + prefix: {description: "Prefix (including path) for the output files.", category: "common"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + bin: {description: "GEVA's binary represnetation of the VCF file."} + sample: {description: "Sample ID mapping and metadata."} + marker: {description: "Variant ID mapping and metadata."} + log: {description: "GEVA's log."} + } +} + +task EstimateAge { + input { + File pairs + Int effectivePopulation = 10000 + String outputPath = "./geva.estimate.txt" + + String memory = "4GiB" + Int timeMinutes = 30 + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + } + + command { + set -e + mkdir ./geva_estimate_tmp + cp ~{pairs} ./geva_estimate_tmp/tmp.pairs.txt + Rscript /share/geva/estimate.R ./geva_estimate_tmp/tmp.pairs.txt ~{effectivePopulation} + cp ./geva_estimate_tmp/tmp.sites2.txt ~{outputPath} + } + + output { + File estimates = outputPath + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + pairs: {description: "The pairs output file from GEVA.", category: "required"} + effectivePopulation: {description: "Effective population size.", category: "advanced"} + outputPath: {description: "Path for the output file.", category: "common"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + estimates: {description: "Age estimations."} + } +} + +task Geva { + input { + File bin + Int position + String prefix = "./geva.~{position}" + + String memory = "32GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. + Int timeMinutes = 120 + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + } + + command { + geva_v1beta \ + -i '~{bin}' \ + -o '~{prefix}' \ + --position '~{position}' \ + --hmm /share/geva/hmm/hmm_initial_probs.txt /share/geva/hmm/hmm_emission_probs.txt + } + + output { + File pairs = "~{prefix}.pairs.txt" + File sites = "~{prefix}.sites.txt" + File log = "~{prefix}.log" + } + + runtime { + memory: memory + time_minutes: timeMinutes + docker: dockerImage + } + + parameter_meta { + # inputs + bin: {description: "The input bin file.", category: "required"} + position: {description: "The position to estimate the age for.", category: "required"} + prefix: {description: "Prefix (including path) for the output files.", category: "common"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + pairs: {description: "Pairwise analysis results."} + sites: {description: "Age estimations."} + log: {description: "GEVA's log."} + } +} From d6c8c753688606dcaf611341f60350fd83e4ae08 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Thu, 17 Jul 2025 15:31:08 +0200 Subject: [PATCH 03/11] copy paste error --- geva.wdl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/geva.wdl b/geva.wdl index 8f806094..f872eef2 100644 --- a/geva.wdl +++ b/geva.wdl @@ -7,7 +7,7 @@ task ConvertToBin { String memory = "4GiB" Int timeMinutes = 30 - String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } command { @@ -53,7 +53,7 @@ task EstimateAge { String memory = "4GiB" Int timeMinutes = 30 - String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } command { @@ -96,7 +96,7 @@ task Geva { String memory = "32GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. Int timeMinutes = 120 - String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4 " + String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } command { From e73d02d16cd8191e412e926823c795f29e425112 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Tue, 22 Jul 2025 11:14:49 +0200 Subject: [PATCH 04/11] add disks to runtime for geva tasks and bcftools view --- bcftools.wdl | 5 ++++- geva.wdl | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/bcftools.wdl b/bcftools.wdl index d4e5cbd1..67aa643b 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -192,7 +192,7 @@ task Norm { String memory = "4GiB" Int timeMinutes = 1 + ceil(size(inputFile, "G")) - Int diskGb = ceil(2.1 * size(inputFile, "G") + size(fasta, "G")) + Int diskGb = 1 + ceil(2.1 * size(inputFile, "G") + size(fasta, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } @@ -421,6 +421,7 @@ task View { String memory = "256MiB" Int timeMinutes = 1 + ceil(size(inputFile, "G")) + Int diskGb = 1 + ceil(2.1 * size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } @@ -453,6 +454,7 @@ task View { runtime { memory: memory time_minutes: timeMinutes + disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs docker: dockerImage } @@ -469,6 +471,7 @@ task View { samplesFile: {description: "File of samples to include.", category: "advanced"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs diff --git a/geva.wdl b/geva.wdl index f872eef2..4bac5380 100644 --- a/geva.wdl +++ b/geva.wdl @@ -7,6 +7,7 @@ task ConvertToBin { String memory = "4GiB" Int timeMinutes = 30 + Int diskGb = 1 + ceil(2.1 * size(inputVcf, "G")) String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } @@ -26,6 +27,7 @@ task ConvertToBin { runtime { memory: memory time_minutes: timeMinutes + disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs docker: dockerImage } @@ -35,6 +37,7 @@ task ConvertToBin { prefix: {description: "Prefix (including path) for the output files.", category: "common"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs @@ -53,6 +56,7 @@ task EstimateAge { String memory = "4GiB" Int timeMinutes = 30 + Int diskGb = 1 + ceil(2 * size(pairs, "G")) String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } @@ -71,6 +75,7 @@ task EstimateAge { runtime { memory: memory time_minutes: timeMinutes + disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs docker: dockerImage } @@ -81,6 +86,7 @@ task EstimateAge { outputPath: {description: "Path for the output file.", category: "common"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs @@ -96,6 +102,7 @@ task Geva { String memory = "32GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. Int timeMinutes = 120 + Int diskGb = 1 + ceil(2 * size(bin, "G")) String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } @@ -116,6 +123,7 @@ task Geva { runtime { memory: memory time_minutes: timeMinutes + disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs docker: dockerImage } @@ -126,6 +134,7 @@ task Geva { prefix: {description: "Prefix (including path) for the output files.", category: "common"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs From 9ae9d69bba779dd19171b33923cf15f88ec801f6 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Mon, 28 Jul 2025 14:23:47 +0200 Subject: [PATCH 05/11] add bcftools concat, add regions-file and threads input for bcftools view --- bcftools.wdl | 73 +++++++++++++++++++++++++++++++++++++++++++-- chunked-scatter.wdl | 2 +- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/bcftools.wdl b/bcftools.wdl index 67aa643b..412913de 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -58,6 +58,7 @@ task Annotate { set -e mkdir -p "$(dirname ~{outputPath})" bcftools annotate \ + --threads ~{threads} \ -o ~{outputPath} \ -O ~{true="z" false="v" compressed} \ ~{"--annotations " + annsFile} \ @@ -89,6 +90,7 @@ task Annotate { } runtime { + cpu: threads + 1 memory: memory time_minutes: timeMinutes docker: dockerImage @@ -118,7 +120,7 @@ task Annotate { regionsFile: {description: "Restrict to regions listed in a file.", category: "advanced"} renameChrs: {description: "rename chromosomes according to the map in file (see man page for details).", category: "advanced"} samplesFile: {description: "File of samples to include.", category: "advanced"} - threads: {description: "Number of extra decompression threads [0].", category: "advanced"} + threads: {description: "Number of extra compression threads.", category: "advanced"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -129,6 +131,66 @@ task Annotate { } } +task Concat { + input { + Array[file]+ vcfFiles + Array[file]+ vcfIndexes + String outputPath + Boolean naive = false + + Int threads = 0 + String memory = "4GiB" + Int timeMinutes = 10 + ceil(size(inputFile, "G")) + Int diskGb = ceil(2.1 * size(vcfFiles, "G")) + String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" + } + + command { + set -e + mkdir -p "$(dirname ~{outputPath})" + ls ~{sep=" " vcfFiles} ~{sep=" " vcfIndexes} # dxCompiler localization workaroud + + bcftools \ + concat \ + --threads ~{threads} \ + -O z \ + -o ~{outputPath} \ + ~{if naive then "--naive" else ""} \ + ~{sep=" " vcfFiles} + bcftools index --tbi ~{outputPath} + } + + output { + File concatenatedVcf = outputPath + File concatenatedVcfIndex = outputPath + ".tbi" + } + + runtime { + cpu: threads + 1 + memory: memory + time_minutes: timeMinutes + disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs + docker: dockerImage + } + + parameter_meta { + # inputs + vcfFiles: {description: "A list of vcf files.", category: "required"} + vcfIndexes: {description: "the index for the input file.", category: "common"} + outputPath: {description: "The location the output VCF file should be written.", category: "common"} + naive: {description: "Equivalent to bcftools concat's `--naive` flag.", category: "advanced"} + memory: {description: "The amount of memory this job will use.", category: "advanced"} + threads: {description: "Number of extra compression threads.", category: "advanced"} + timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} + diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} + dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} + + # outputs + concatenatedVcf: {description: "VCF file."} + concatenatedVcfIndex: {description: "Index of VCF file."} + } +} + task Filter { input { File vcf @@ -396,7 +458,7 @@ task Stats { targets: {description: "Similar to regions but streams rather than index-jumps.", category: "advanced"} targetsFile: {description: "Similar to regionsFile but streams rather than index-jumps.", category: "advanced"} userTsTv: {description: ". Collect Ts/Tv stats for any tag using the given binning [0:1:100].", category: "advanced"} - threads: {description: "Number of extra decompression threads [0].", category: "advanced"} + threads: {description: "Number of extra compression threads.", category: "advanced"} memory: {description: "The amount of memory this job will use.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} @@ -416,11 +478,13 @@ task View { String? exclude String? include String? region + File? regionsFile Array[String] samples = [] File? samplesFile String memory = "256MiB" Int timeMinutes = 1 + ceil(size(inputFile, "G")) + Int threads = 0 Int diskGb = 1 + ceil(2.1 * size(inputFile, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } @@ -433,11 +497,13 @@ task View { mkdir -p "$(dirname ~{outputPath})" bcftools view \ + --threads ~{threads} \ ~{"--exclude " + exclude} \ ~{"--include " + include} \ ~{true="--exclude-uncalled" false="" excludeUncalled} \ ~{if length(samples) > 0 then "-s" else ""} ~{sep="," samples} \ ~{"--samples-file " + samplesFile} \ + ~{"--regions-file " + regionsFile} \ -o ~{outputPath} \ -O ~{true="z" false="v" compressed} \ ~{inputFile} \ @@ -452,6 +518,7 @@ task View { } runtime { + cpu: threads + 1 memory: memory time_minutes: timeMinutes disks: "local-disk ~{diskGb} SSD" # Based on an example in dxCompiler docs @@ -466,10 +533,12 @@ task View { include: {description: "Select sites for which the expression is true (see man page for details).", category: "advanced"} exclude: {description: "Exclude sites for which the expression is true (see man page for details).", category: "advanced"} region: {description: "The region to retrieve from the VCF file.", category: "common"} + regionsFile: {description: "File of regions to include.", category: "advanced"} excludeUncalled: {description: "Exclude sites without a called genotype (see man page for details).", category: "advanced"} samples: {description: "A list of sample names to include.", category: "advanced"} samplesFile: {description: "File of samples to include.", category: "advanced"} memory: {description: "The amount of memory this job will use.", category: "advanced"} + threads: {description: "Number of extra compression threads.", category: "advanced"} timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"} diskGb: {description: "The amount of disk space needed for this job in GiB.", category: "advanced"} dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} diff --git a/chunked-scatter.wdl b/chunked-scatter.wdl index af24b139..6b1ac648 100644 --- a/chunked-scatter.wdl +++ b/chunked-scatter.wdl @@ -59,7 +59,7 @@ task ChunkedScatter { parameter_meta { # inputs - inputFile: {description: "Either a bed file describing regiosn of intrest or a sequence dictionary.", category: "required"} + inputFile: {description: "Either a bed file describing regions of interest or a sequence dictionary.", category: "required"} prefix: {description: "The prefix for the output files.", category: "advanced"} splitContigs: {description: "If set, contigs are allowed to be split up over multiple files.", category: "advanced"} chunkSize: {description: "Equivalent to chunked-scatter's `-c` option.", category: "advanced"} From 868081ffa051b25e1f736de194c1fb87b2b2b07a Mon Sep 17 00:00:00 2001 From: DavyCats Date: Mon, 28 Jul 2025 14:27:39 +0200 Subject: [PATCH 06/11] use outputVcf name in line with other tasks --- bcftools.wdl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bcftools.wdl b/bcftools.wdl index 412913de..bc502b50 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -161,8 +161,8 @@ task Concat { } output { - File concatenatedVcf = outputPath - File concatenatedVcfIndex = outputPath + ".tbi" + File outputVcf = outputPath + File outputVcfIndex = outputPath + ".tbi" } runtime { @@ -186,8 +186,8 @@ task Concat { dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.", category: "advanced"} # outputs - concatenatedVcf: {description: "VCF file."} - concatenatedVcfIndex: {description: "Index of VCF file."} + outputVcf: {description: "VCF file."} + outputVcfIndex: {description: "Index of VCF file."} } } From 5d077e4f5ab8ede902cbbc94f8605d76b1cb572a Mon Sep 17 00:00:00 2001 From: DavyCats Date: Mon, 28 Jul 2025 14:30:36 +0200 Subject: [PATCH 07/11] typo --- bcftools.wdl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bcftools.wdl b/bcftools.wdl index bc502b50..b6332643 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -133,8 +133,8 @@ task Annotate { task Concat { input { - Array[file]+ vcfFiles - Array[file]+ vcfIndexes + Array[File]+ vcfFiles + Array[File]+ vcfIndexes String outputPath Boolean naive = false From 163cda894a54f16d4a8682e4d5a28a2851bb1db9 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Mon, 28 Jul 2025 14:31:16 +0200 Subject: [PATCH 08/11] copy-paste error --- bcftools.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bcftools.wdl b/bcftools.wdl index b6332643..acd74cdc 100644 --- a/bcftools.wdl +++ b/bcftools.wdl @@ -140,7 +140,7 @@ task Concat { Int threads = 0 String memory = "4GiB" - Int timeMinutes = 10 + ceil(size(inputFile, "G")) + Int timeMinutes = 10 + ceil(size(vcfFiles, "G")) Int diskGb = ceil(2.1 * size(vcfFiles, "G")) String dockerImage = "quay.io/biocontainers/bcftools:1.10.2--h4f4756c_2" } From ca33a252cc2bd1809da0d02acbd7c946a6de7761 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Tue, 5 Aug 2025 11:33:50 +0200 Subject: [PATCH 09/11] adjust diskGB for geva --- geva.wdl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/geva.wdl b/geva.wdl index 4bac5380..b44536dd 100644 --- a/geva.wdl +++ b/geva.wdl @@ -7,7 +7,9 @@ task ConvertToBin { String memory = "4GiB" Int timeMinutes = 30 - Int diskGb = 1 + ceil(2.1 * size(inputVcf, "G")) + # Disk usage should be about 1 byte, per variant per sample, but this is hard to estimate from compressed file sizes. + # The output file is written to disk in temporary chunks, which then get concatenated so we actually need twice that. + Int diskGb = 400 String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" } From 8f2e7141d631cc5e4a03dc6ae990007218d4071e Mon Sep 17 00:00:00 2001 From: DavyCats Date: Thu, 7 Aug 2025 11:07:08 +0200 Subject: [PATCH 10/11] increase memory for geva --- geva.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geva.wdl b/geva.wdl index b44536dd..35c00f04 100644 --- a/geva.wdl +++ b/geva.wdl @@ -102,7 +102,7 @@ task Geva { Int position String prefix = "./geva.~{position}" - String memory = "32GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. + String memory = "225GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. Int timeMinutes = 120 Int diskGb = 1 + ceil(2 * size(bin, "G")) String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4" From dddd3e2a1df93f652a3bfb0dee51809e9e693224 Mon Sep 17 00:00:00 2001 From: DavyCats Date: Thu, 14 Aug 2025 11:51:24 +0200 Subject: [PATCH 11/11] increase memory for geva --- geva.wdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geva.wdl b/geva.wdl index 35c00f04..1e2b634e 100644 --- a/geva.wdl +++ b/geva.wdl @@ -102,7 +102,7 @@ task Geva { Int position String prefix = "./geva.~{position}" - String memory = "225GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. + String memory = "750GiB" # According to GEVA's README this is dependant on AF, so hard to figure out on the fly. Int timeMinutes = 120 Int diskGb = 1 + ceil(2 * size(bin, "G")) String dockerImage = "quay.io/davycats/pkalbers-geva:5363c3db11c6b2ea2e24528affb6b68b0a939df4"