Jonathan Manning
03/17/2026, 2:17 PMAlexander Noskov
04/07/2026, 6:03 AMJustin Payeur
04/09/2026, 9:44 AM--profile=+test,singularity instead of --profile=+singularity and someone pointed out that the pipeline used a slightly different config that the rest.
rnaseq (no profile test provided):
// run all tests with the profile(s) specified by each CI workflow
other:
// run all test with defined profile(s) from the main nextflow.config
profile "test"
Is this an intended behaviour ? If so can we add a note somewhere for future contributors ?Phil Ewels
04/13/2026, 11:10 AMJustin Payeur
04/13/2026, 3:23 PMAlexander Noskov
04/14/2026, 2:30 PMulimit -n 65536. Once properly configured, it was rock solid across all 192 runs.
Also ran a quick I/O test - suspected the thread scaling plateau (both tools gain only ~1.2x going from t=8 to t=16) was network storage bottleneck. Moved BAMs to local SSD and RAM, but got only 8-15% improvement.
So the speed and memory efficiency is real, but not automatic: it requires explicit configuration.
All data, scripts, and a setup guide for a budget-friendly Hetzner server, including the sambamba config details: https://github.com/WeTheAgents/rnaseq_data/tree/main/phase3_three_wayJonathan Manning
04/14/2026, 4:42 PMLukas Heumos
04/16/2026, 5:44 PMAlexander Noskov
04/18/2026, 8:12 AMPICARD_MARKDUPLICATES step in nf-core/rnaseq β same KEY=VALUE CLI.
β’ Repo: https://github.com/WeTheAgents/markdup8x-wea
β’ Parity report: https://github.com/WeTheAgents/markdup8x-wea/blob/main/docs/session-report.md
β’ Performance: https://github.com/WeTheAgents/markdup8x-wea/blob/main/docs/perf.md
β’ Known deltas from Picard: https://github.com/WeTheAgents/markdup8x-wea/blob/main/docs/deviations.md
2. Picard memory-tuning proposal for nf-core/rnaseq β zero code change
nf-core's PICARD_MARKDUPLICATES uses label 'process_medium' β 36 GB reservation, -Xmx28g. Measured per-JVM peak RSS on our ENCODE corpus: under 8 GB. ~4Γ over-allocation on every invocation.
Sweep on a 30 GB box: -Xmx6g Γ 4 parallel delivers 8/8 byte-identical output to the -Xmx28g default and 3.05Γ end-to-end throughput on the 8-sample batch.
Retry envelope verified with a "werewolf" BAM (2Γ largest ENCODE sample, 445 M records, 17 GB): clean finish at -Xmx9g, peak RSS 9.6 GB. Two werewolves in parallel at -Xmx9g each β sum RSS 20.8 GB, same wall as one, no OOM.
β’ Full doc: https://github.com/WeTheAgents/markdup8x-wea/blob/main/docs/picard-tuning-proposal.md
β’ Issue: https://github.com/nf-core/rnaseq/issues/1801
3. Downstream parallelism β so the markdup win doesn't get swallowed
An 8Γ throughput bump on markdup is wasted if Qualimap and bedtools then serialize behind it. Both are single-threaded by design, and nf-core's default labels over-budget them β Qualimap asks for 36 GB and really uses ~5β6 GB; bedtools asks for 6 GB and actually scales 4β14 GB by sample complexity. On a 30 GB node that means exactly one of each at a time.
Right-sized and run by hand on the same Hetzner 32BG: Qualimap 4-wide Γ 2 waves β 3.30Γ speedup (7:51 h β 2:23 h on the 8-sample set), bedtools 2-wide β 1.55Γ (2-wide is the safe ceiling β 4-wide OOMed on MCF7). Combined across the three heavy BAM-side steps (markdup + Qualimap + bedtools): ~12:49 h β ~3:13 h on 8 samples, same box, no hardware upgrade.
Non-specialist caveat: this assumes batch re-processing of pre-staged BAMs as the workload β all inputs local, no aligner in the critical path. I don't know how common that is vs the canonical one-sample-at-a-time flow. If it's common, the savings are literally sitting on the ground. Numbers in the Phase E section: https://github.com/WeTheAgents/markdup8x-wea/blob/main/docs/perf.md
Scope and caveats: my dear Claude Agent and I went through everything we could surface: Picard sources + JavaDoc, MarkDuplicates forums and GATK issues, the nf-core module, and the relevant nf-core/rnaseq config layers. What neither of us can speak to is tribal knowledge β production workloads or library types where the 36 GB reservation is genuinely load-bearing rather than conservative legacy. I'm not a practicing bioinformatician.
Explicitly outside the benchmark: WGS / WGBS / long-read, very-large-library inputs (> 2Γ werewolf), optical-duplicate configurations, unsorted BAMs, MarkDuplicatesSpark (different code path entirely).
Happy to dig into whichever of the three is most interesting to you right now.Felix Krueger
04/19/2026, 4:32 PM--discard-untrimmed, JSON trimming report for MultiQC native parsing (once MultiQC is updated), MultiQC-compatible.
Install:
β’ crates.io: cargo install trim-galore --version 2.1.0-beta.1 (the --version flag is required β plain cargo install trim-galore still resolves to v2.0.0 until GA)
β’ Docker (tag): <http://ghcr.io/felixkrueger/trimgalore:v2.1.0-beta.1|ghcr.io/felixkrueger/trimgalore:v2.1.0-beta.1> β or :beta for the moving βlatest betaβ
β’ Docker (digest, deterministic): <http://ghcr.io/felixkrueger/trimgalore@sha256:3e5dd519ea992ce88eb6f01e8d051a33f356e9ecd2d45e79a9c9bd0ac05c5b77|ghcr.io/felixkrueger/trimgalore@sha256:3e5dd519ea992ce88eb6f01e8d051a33f356e9ecd2d45e79a9c9bd0ac05c5b77>
β’ Multi-arch: linux/amd64 + linux/arm64
nf-core/rnaseq integration: PR https://github.com/nf-core/rnaseq/pull/1789 is green on full matrix β x86 (40/40), arm64 (28/28), GPU (4/4). Pinned to image digest so runs are deterministic. No MD5 drift on reference outputs; MultiQC parses both report formats.
Release notes:
https://github.com/FelixKrueger/TrimGalore/releases/tag/v2.1.0-beta.1
GA-tracking PR:
https://github.com/FelixKrueger/TrimGalore/pull/214 (draft, do-not-merge-until-GA)
Announcement + feedback hub:
https://github.com/FelixKrueger/TrimGalore/discussions/215
I am aiming for a 2-week beta window (planned release ~2026-05-03), assuming no critical issues. I would be very happy for some stress-testing, and to hear any feedback. Many thanks! π«ΆWerner Kroneman
04/21/2026, 6:19 AMJonathan Manning
04/22/2026, 10:47 AMJonathan Manning
05/05/2026, 1:00 PMPhil Ewels
05/05/2026, 1:20 PMPhil Ewels
05/06/2026, 8:14 AMbbmap clumpify. The overall concept is fairly simple - if we sort / group the raw reads in FastQ files then we can achieve better gzip compression rates and save disk space.
It struck me that TrimGalore would be a great place to do this. We're already writing new FastQ files here, so we can do this optimisation in-flight and avoid having an additional copy of FastQ files in the work dir / scratch.
I've had a play with this yesterday / last night and tried a bunch of different implementation approaches. My favourite is to do it all in-memory, as long as we give TrimGalore enough memory to fit the raw data (it'll still work under this, it just kicks out the bins sooner so is less efficient).
Disk space savings vary massively by data type, but on low complexity libraries it's fairly significant:
β’ Long read: basically 0% savings and super slow. Don't do this.
β’ WGS: Diverse, pretty minimal savings (5-10% from memory)
β’ RNA-seq PE: 29% smaller
β’ ChIP-seq SE (28.6M reads): 24.0% smaller
β’ ATAC-seq PE: 51.0% smaller (best so far β Tn5 bias creates redundancy)
β’ Ribo-seq PE: 44.2% smaller
I'm doing some final cleanup and testing now before opening a PR, but I think this sounds pretty promising: 1/3rd to 1/2 disk space footprint after running TrimGalore with zero data changes (PE files are kept in sync) and only minimal run-time slow down.Jonathan Manning
05/06/2026, 12:57 PM--genome / igenomes.
This is motivated by an error @Felix Krueger flagged, caused by my assuming that anyone using --genome was using iGenomes, whereas he very reasonably uses his own genome config compatible with up-to-date STAR. I actually replaced an old check based on file names that was brittle and causing problems.
So https://github.com/nf-core/rnaseq/pull/1834 re-pitches the functionality to allow for more flexibility. The currently distributed genomes.config entries now have a 'legacy' flag on all the genomes so that the pipeline knows to use the older STAR with those indices. Folks can still use their own genome setup without that flag and it'll all be fine.
Would really appreciate review if anyone has time, and folks here are more qualified than most! Then we're almost ready to release with the new shiny TrimGalore goodness πMatthias Zepper
05/06/2026, 2:10 PMumi_tools prepare-for-rsem to fgumi. I think, it makes total sense to replace the frequently longest running process of the pipeline (6-13h per sample) with a Rust tool as well.
Currently, I am running comparisons of the Rust rewrite with the original. Will report back.Phil Ewels
05/06/2026, 2:13 PMPhil Ewels
05/06/2026, 2:14 PMrustar-aligner too for a STAR replacement. It has an initial release now, should be feature-complete replacement for STAR., so good to go.. π¦ βPhil Ewels
05/06/2026, 2:15 PMKANISHK
07/17/2026, 3:54 PMnf-core/rnaseq docs.
The goal is to provide a quick "pre-flight" checklist for frequent issues like samplesheet formatting, genome/GTF mismatches, and container errors. I'm happy to draft a PRβdoes this align with your current documentation goals, or is there a preferred format you'd like me to follow?Gary Burnett
08/07/2026, 4:15 PMError: Failed to launch runner: We were unable to schedule this runner after 5 attempts. Please have a look at the RunsOn logs for that job for more details.Phil Ewels
08/18/2026, 7:47 AMMaxime Garcia
08/31/2026, 9:12 AMPhil Ewels
09/10/2026, 12:47 PMFull test notifications
09/23/2026, 10:17 AMFull test notifications
09/23/2026, 3:21 PMFull test notifications
09/24/2026, 1:09 AMFull test notifications
09/24/2026, 11:03 PMEdmund
10/15/2026, 2:26 PM