Nearly every step in nf-core/rnaseq is strictly per-sample: trimming, alignment/pseudoalignment, rRNA removal, quantification, featureCounts, RSeQC, dupRadar, Preseq, etc. None of these borrow information across samples, so a sample gives identical output whether it's processed in a 1191-sample run or alone. Reference indices are built once from the genome/annotation, not your data, so no batch-dependent effect there either.
The exception is the DESeq2 exploratory QC (PCA plot, sample correlation heatmap). It computes size factors and variance-stabilization across whichever samples are in that run, so a combined run's PCA plot will differ numerically from two separate runs' plots, even for the same samples. But that's QC output only, it doesn't feed into the counts you'd take forward for differential expression.
So for actual quantification outputs, splitting by batch is equivalent to one combined run. You just lose a single combined PCA/heatmap view across all 1191 samples, aggregate stats aside.
Given your cohort size, also worth a look:
--skip_quantification_merge
. It makes the pipeline fully sample-centric, outputs under
<outdir>/<sample_id>/
, and skips the merge steps that load every sample into one process (tximport, SummarizedExperiment, RSEM merge, merged MultiQC), so memory doesn't scale with cohort size. Works well either way, one run or two. One caveat:
*gene_counts_length_scaled.tsv
isn't published in this mode since per-sample lengthScaledTPM isn't cross-sample comparable, so you'd re-run tximport across all quant.sf files afterwards if you need it.