Maru Navarrete
05/11/2026, 7:56 AMnf-core/eager on our HPC cluster (IBEX) using Singularity and Slurm, and the pipeline stops at the MALT metagenomics profiling step:
NFCORE_EAGER:EAGER:METAGENOMICS:METAGENOMICS_PROFILING:MALT_RUN (doublestranded_0)
The error seems to be related to Java memory:
java.lang.OutOfMemoryError: Java heap space
From the Slurm report, the job used around ~273 GB of memory, but it looks like MALT may not be receiving enough Java heap memory inside the container.
I was wondering where would be the best place to add extra Java memory options for this process in nf-core/eager? For example, should I set something like:
JAVA_TOOL_OPTIONS="-Xmx700G"
_JAVA_OPTIONS="-Xmx700G"
INSTALL4J_ADD_VM_PARAMS="-Xmx700G"
inside my Slurm submission script, in a custom Nextflow config using withName: '.*MALT_RUN.*', or somewhere else?
For context, I’m running the dev version/revision:
nf-core/eager 3.0.0dev
revision: f77d2464a7c6fe06b67ce1832f2fe72ba21c8fde
and the metagenomics settings include:
--run_metagenomics
--metagenomics_profiling_tool malt
--metagenomics_profiling_database /path/to/MALT_index
--metagenomics_malt_memorymode map
Any advice on the recommended way to increase Java heap memory specifically for MALT would be greatly appreciated.
Thank you!Thiseas C. Lamnidis
05/11/2026, 8:08 AM-J-Xmx to set the max java heap (instead of the usual -Xmx). For the dev version, that option should be provided to the args of the process in a withName: clause.
Please let us know if that is unclear, or if that does/doesn’t work. I think the module might actually need updating to simplify thisMaru Navarrete
05/11/2026, 8:12 AMwithName: /.*MALT_RUN.*/ {
cpus = 1
memory = '700 GB'
time = '120h'
maxForks = 1
errorStrategy = 'retry'
maxRetries = 1
beforeScript = '''
export JAVA_TOOL_OPTIONS="-Xmx600G"
export _JAVA_OPTIONS="-Xmx600G"
export INSTALL4J_ADD_VM_PARAMS="-Xmx600G"
'''
}
So I was increasing the Slurm/Nextflow memory and trying to set the Java heap through environment variables, but I hadn’t passed the MALT-specific -J-Xmx option directly to the process args.
I’ll try changing it to something like this:
withName: /.*MALT_RUN.*/ {
cpus = 1
memory = '700 GB'
time = '120h'
maxForks = 1
errorStrategy = 'retry'
maxRetries = 1
args = '-J-Xmx600G'
}
Does this look like the right way to pass the Java heap option to malt-run in eager?
Thanks again for the help!Thiseas C. Lamnidis
05/11/2026, 8:21 AM