Notebooks: more about memory resources and HTP analysis

Title: Request for higher-memory resource for RSEM v1.3.1 due to OOM


Hello Galaxy Europe Support Team,

I am reprocessing the public PRJEB40416 gastric cancer RNA-seq dataset on usegalaxy.eu.

STAR alignment has completed successfully using GRCh38 and Ensembl release 98. I now need to run RSEM v1.3.1 on the STAR transcriptome-aligned BAM files.

The two transcriptome-aligned BAM files I am currently testing are approximately 7.8 GB and 9.9 GB.

I attempted to run RSEM inside Galaxy JupyterLab, but the current environment is limited to 4 GiB RAM. The RSEM process was terminated by the OOM killer even after reducing the run to one thread and disabling BAM output.

The cgroup information showed:

memory.max = 4294967296
oom_kill = 2

The intended RSEM parameters are:

--paired-end --bam --estimate-rspd --fragment-length-max 1000 --forward-prob 0.0 --num-threads 1 --no-bam-output

Could this RSEM job be run on a higher-memory batch node, or could a higher-memory resource be assigned/configured for this workflow?

Galaxy History:
https://usegalaxy.eu/u/0808/h/prjeb40416-ep80-ep81-pilot

The relevant STAR transcriptome BAM collection is STAR_sjdb100_FINAL_transcriptome_bam.

I can provide additional job details or screenshots if needed.

Thank you very much for your help.

Welcome @0808

As you have noticed, Galaxy Interactive environments (GIEs, including JupyterLab) hosted at public Galaxy servers have computational limits that can lead to jobs that are too large to process.

Instead, try using the same tool directly. These can be incorporated into Galaxy Workflows for HTP processing.

As an example, for you tool are using, these are the public resources allocated at UseGalaxy servers:

  • RSEM calculate expression RNA-Seq by Expectation-Maximization

To get you started, these are the HTP workflows we have for Transcriptomics (so far!).

This workflow uses FeatureCounts, but you may adjust any part of it in your own copy of the workflow. The GTN has more example templates. All can be searched in the Galaxy app under Workflows → Public workflows.

The EU team will see your topic too, and I don’t expect the limits on GEIs to change, but they can clarify!

There are a couple of reasons we limit Interactive Tools (ITs) to 4 GB.

Our job scheduler (HTCondor) can inspect a running job and scale its resource allocation dynamically, according to the rules shown above. This works for standard jobs, but not for ITs or tools that run in Docker. The reason is that HTCondor has a “docker universe” for natively managing Docker containers, but the Galaxy job runner doesn’t submit jobs through it. Docker containers instead get launched as a subprocess of the job script. Docker itself uses dockerd daemon which manages its own cgroup hierarchy and is controlled through the Docker API over a Unix socket, rather than being a direct child process of the job. That puts the container’s actual resource usage outside the cgroup HTCondor creates and monitors for the job, so HTCondor can’t see or dynamically scale it.

Singularity works differently: it has no daemon and simply execs the container process directly, so the container lands inside the same cgroup as the parent job script and inherits its limits. That’s what lets HTCondor monitor and scale Singularity-based jobs but not Docker-based ones.