Alexander 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.Maxime Garcia
04/18/2026, 8:17 AMPhil Ewels
04/18/2026, 12:02 PMPhil Ewels
04/18/2026, 12:03 PMPhil Ewels
04/18/2026, 12:10 PMPhil Ewels
04/18/2026, 12:12 PMPhil Ewels
04/18/2026, 12:15 PMCOPY to give a binary with the name Picard (might not make sense, not checked what the current process is). But then run the #CE8SSJV3N pipeline using your rewrite and see if the nf-test unit tests passPhil Ewels
04/18/2026, 12:16 PMPhil Ewels
04/18/2026, 12:16 PMPhil Ewels
04/18/2026, 12:17 PMPhil Ewels
04/18/2026, 12:17 PMJonathan Manning
04/18/2026, 1:06 PMThomas Danhorn
04/21/2026, 4:50 AMAlexander Noskov
04/29/2026, 4:32 AMPhil Ewels
04/29/2026, 12:35 PMAlexander Noskov
04/29/2026, 12:38 PMPhil Ewels
04/29/2026, 12:40 PMAlexander Noskov
04/29/2026, 12:44 PMcan think of now?no-no, I can think of many more things. )) I cannot get my hands on them. Like Thomas said: for any bad scenario we can come with a next-worse one with more rigged locus. Infinity loop. And I just do not know if the opensource samples are rigged enough.
Alexander Noskov
05/04/2026, 7:20 AMPhil Ewels
05/04/2026, 7:35 AMPhil Ewels
05/04/2026, 7:35 AMPhil Ewels
05/04/2026, 7:36 AMPhil Ewels
05/04/2026, 7:37 AMPhil Ewels
05/04/2026, 7:38 AMPhil Ewels
05/04/2026, 7:39 AM