Skip to content

Commit f04d476

Browse files
Set MELT JVM memory dynamically (#247)
* set MELT JVM to 85% of memory available at runtime
1 parent 5cc9b1d commit f04d476

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

test_input_templates/GatherSampleEvidence/GatherSampleEvidenceBatch.json.tmpl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"GatherSampleEvidenceBatch.samtools_cloud_docker": {{ dockers.samtools_cloud_docker | tojson }},
2020
"GatherSampleEvidenceBatch.sv_base_mini_docker":{{ dockers.sv_base_mini_docker | tojson }},
2121
"GatherSampleEvidenceBatch.sv_pipeline_docker": {{ dockers.sv_pipeline_docker | tojson }},
22-
"GatherSampleEvidenceBatch.delly_docker": {{ dockers.delly_docker | tojson }},
2322
"GatherSampleEvidenceBatch.manta_docker": {{ dockers.manta_docker | tojson }},
2423
"GatherSampleEvidenceBatch.melt_docker" : {{ dockers.melt_docker | tojson }},
2524
"GatherSampleEvidenceBatch.wham_docker": {{ dockers.wham_docker | tojson }},

wdl/MELT.wdl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,7 @@ task RunMELT {
562562
Float mem_offset = 6.833
563563
Float mem_size_gb =
564564
mem_offset + mem_per_pct_chimeras * pct_chimeras + mem_per_improper_pairs * pf_reads_improper_pairs
565+
Float java_mem_fraction = 0.85
565566

566567

567568
# Ensure there's sufficient disk space. Estimate using extra metrics
@@ -610,6 +611,19 @@ task RunMELT {
610611
MELT_ROOT=$(find "$MELT_DIR" -name "MELT.jar" | xargs -n1 dirname)
611612
MELT_SCRIPT=$(ls "$MELT_DIR/run_MELT"*.sh)
612613
614+
function getJavaMem() {
615+
# get JVM memory in GiB by getting total memory from /proc/meminfo
616+
# and multiplying by java_mem_fraction
617+
cat /proc/meminfo \
618+
| awk -v MEM_FIELD="$1" '{
619+
f[substr($1, 1, length($1)-1)] = $2
620+
} END {
621+
printf "%.2fG", f[MEM_FIELD] * ~{java_mem_fraction} / 1048576
622+
}'
623+
}
624+
JVM_MAX_MEM=$(getJavaMem MemTotal)
625+
echo "JVM memory: $JVM_MAX_MEM"
626+
613627
# call MELT
614628
"$MELT_SCRIPT" \
615629
"~{sample_id}.bam" \

0 commit comments

Comments
 (0)