diff --git a/biopet.wdl b/biopet.wdl index d76a3cce3b70828099edaf4a33e7f66312ba6d2a..9d1a319be5e84fd443bebf190ad78251ef6f6a6d 100644 --- a/biopet.wdl +++ b/biopet.wdl @@ -65,7 +65,7 @@ task SampleConfig { set -e -o pipefail ${preCommand} mkdir -p . ${"$(dirname " + jsonOutputPath + ")"} ${"$(dirname " + tsvOutputPath + ")"} - java -Xmx${true=""+memory false="3" defined(memory)}G -jar ${tool_jar} \ + java -Xmx${true=""+memory false="4" defined(memory)}G -jar ${tool_jar} \ -i ${sep="-i " inputFiles} \ ${"--sample " + sample} \ ${"--library " + library} \ @@ -82,7 +82,7 @@ task SampleConfig { } runtime { - memory: ceil(select_first([memory, 3.0]) * select_first([memoryMultiplier, 2.0])) + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 2.0])) } } diff --git a/gatk.wdl b/gatk.wdl index 6d05711860a805f9c01b723ebd3a0293b0730f97..404a2c1ef1df26b0b237660eb87078593c359b35 100644 --- a/gatk.wdl +++ b/gatk.wdl @@ -33,7 +33,7 @@ task BaseRecalibrator { } runtime { - memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 2])) + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -50,10 +50,14 @@ task ApplyBQSR { File ref_fasta_index Int? compression_level + Float? memory + Float? memoryMultiplier + command { set -e -o pipefail ${preCommand} - java ${"-Dsamjdk.compression_level=" + compression_level} -Xms4G -jar ${gatk_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xms${true=memory false="4" defined(memory)}G -jar ${gatk_jar} \ ApplyBQSR \ --create-output-bam-md5 \ --add-output-sam-program-record \ @@ -72,7 +76,7 @@ task ApplyBQSR { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -83,10 +87,13 @@ task GatherBqsrReports { Array[File] input_bqsr_reports String output_report_filepath + Float? memory + Float? memoryMultiplier + command { set -e -o pipefail ${preCommand} - java -Xms3G -jar ${gatk_jar} \ + java -Xms${true=memory false="3" defined(memory)}G -jar ${gatk_jar} \ GatherBQSRReports \ -I ${sep=' -I ' input_bqsr_reports} \ -O ${output_report_filepath} @@ -97,7 +104,7 @@ task GatherBqsrReports { } runtime { - memory: 4 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -115,10 +122,14 @@ task HaplotypeCallerGvcf { Int? compression_level String gatk_jar + Float? memory + Float? memoryMultiplier + command { set -e -o pipefail ${preCommand} - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${gatk_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${gatk_jar} \ HaplotypeCaller \ -R ${ref_fasta} \ -O ${gvcf_basename}.vcf.gz \ @@ -134,7 +145,7 @@ task HaplotypeCallerGvcf { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -156,12 +167,15 @@ task GenotypeGVCFs { File dbsnp_vcf_index Int? compression_level + Float? memory + Float? memoryMultiplier command { set -e -o pipefail ${preCommand} - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${gatk_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${gatk_jar} \ GenotypeGVCFs \ -R ${ref_fasta} \ -O ${output_basename + ".vcf.gz"} \ @@ -179,7 +193,7 @@ task GenotypeGVCFs { } runtime{ - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -198,13 +212,16 @@ task CombineGVCFs { File ref_dict Int? compression_level + Float? memory + Float? memoryMultiplier command { set -e -o pipefail ${preCommand} if [ ${length(gvcf_files)} -gt 1 ]; then - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${gatk_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${gatk_jar} \ CombineGVCFs \ -R ${ref_fasta} \ -O ${output_basename + ".vcf.gz"} \ @@ -222,7 +239,7 @@ task CombineGVCFs { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -237,11 +254,13 @@ task SplitNCigarReads { String gatk_jar Array[File]+ intervals + Float? memory + Float? memoryMultiplier command { set -e -o pipefail ${preCommand} - java -Xms4G -jar ${gatk_jar} \ + java -Xms${true=memory false="4" defined(memory)}G -jar ${gatk_jar} \ -I ${input_bam} \ -R ${ref_fasta} \ -O ${output_bam} # might have to be -o depending on GATK version \ @@ -254,6 +273,6 @@ task SplitNCigarReads { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } diff --git a/htseq.wdl b/htseq.wdl index 62091ff47a87a3f8481dcc25330174e3153eee3c..bccbdd2b1a4f75d7c9b046eb46c70161bc3be523 100644 --- a/htseq.wdl +++ b/htseq.wdl @@ -7,6 +7,8 @@ task HTSeqCount { String? order String? stranded + Int? memory + command { set -e -o pipefail ${preCommand} @@ -24,6 +26,6 @@ task HTSeqCount { } runtime { - memory: 3 + memory: select_first([memory, 3]) } } \ No newline at end of file diff --git a/picard.wdl b/picard.wdl index 24e8a516741d2e2a6d4fb8dc879b3295a1593492..d394ee097a87455f547733328cf929fbe088a7e3 100644 --- a/picard.wdl +++ b/picard.wdl @@ -4,11 +4,14 @@ task ScatterIntervalList { Int scatter_count String picard_jar + Float? memory + Float? memoryMultiplier + command { set -e -o pipefail ${preCommand} mkdir scatter_list - java -Xmx4G -jar ${picard_jar} \ + java -Xmx${true=memory false="4" defined(memory)}G -jar ${picard_jar} \ IntervalListTools \ SCATTER_COUNT=${scatter_count} \ SUBDIVISION_MODE=BALANCING_WITHOUT_INTERVAL_SUBDIVISION_WITH_OVERFLOW \ @@ -24,7 +27,7 @@ task ScatterIntervalList { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -36,10 +39,14 @@ task GatherBamFiles { Int? compression_level String picard_jar + Float? memory + Float? memoryMultiplier + command { set -e -o pipefail ${preCommand} - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${picard_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${picard_jar} \ GatherBamFiles \ INPUT=${sep=' INPUT=' input_bams} \ OUTPUT=${output_bam_path} \ @@ -54,7 +61,7 @@ task GatherBamFiles { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -67,6 +74,9 @@ task MarkDuplicates { Int? compression_level String picard_jar + Float? memory + Float? memoryMultiplier + # The program default for READ_NAME_REGEX is appropriate in nearly every case. # Sometimes we wish to supply "null" in order to turn off optical duplicate detection # This can be desirable if you don't mind the estimated library size being wrong and optical duplicate detection is taking >7 days and failing @@ -79,7 +89,8 @@ task MarkDuplicates { set -e -o pipefail ${preCommand} mkdir -p $(dirname ${output_bam_path}) - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${picard_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${picard_jar} \ MarkDuplicates \ INPUT=${sep=' INPUT=' input_bams} \ OUTPUT=${output_bam_path} \ @@ -99,7 +110,7 @@ task MarkDuplicates { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } @@ -112,12 +123,16 @@ task MergeVCFs { Int? compression_level String picard_jar + Float? memory + Float? memoryMultiplier + # Using MergeVcfs instead of GatherVcfs so we can create indices # See https://github.com/broadinstitute/picard/issues/789 for relevant GatherVcfs ticket command { set -e -o pipefail ${preCommand} - java ${"-Dsamjdk.compression_level=" + compression_level} -Xmx4G -jar ${picard_jar} \ + java ${"-Dsamjdk.compression_level=" + compression_level} \ + -Xmx${true=memory false="4" defined(memory)}G -jar ${picard_jar} \ MergeVcfs \ INPUT=${sep=' INPUT=' input_vcfs} \ OUTPUT=${output_vcf_path} @@ -129,6 +144,6 @@ task MergeVCFs { } runtime { - memory: 6 + memory: ceil(select_first([memory, 4.0]) * select_first([memoryMultiplier, 1.5])) } } \ No newline at end of file diff --git a/star.wdl b/star.wdl index 1ba1545d5132964c55012deead7277e8a9d74b60..8b9f435b705c89ec10c80f15c611fb6abe7a2338 100644 --- a/star.wdl +++ b/star.wdl @@ -13,6 +13,8 @@ task Star { String? twopassMode Array[String]? outSAMattrRGline + Float? memory + #TODO needs to be extended for all possible output extensions Map[String, String] samOutputNames = {"BAM SortedByCoordinate": "sortedByCoord.out.bam"} @@ -37,7 +39,7 @@ task Star { } runtime { - threads: select_first([runThreadN]) - memory: 10 + threads: select_first([runThreadN, 1]) + memory: select_first([memory, 10]) } } \ No newline at end of file