Background
conf/modules.config pins --runRNGseed 0 on STAR in two places:
- the bare
withName: 'STAR_ALIGN' block (genome alignment), and
.*:EXTENDED_ORF_SECOND_PASS_ALIGN:FASTQ_ALIGN_STAR_HYBRID:STAR_ALIGN (hybrid second pass).
Seeds for snapshot reproducibility belong in the test config (tests/nextflow.config already does this for ribodetector/bowtie2), not in the production process config.
Why this is worth changing
- STAR already uses a fixed default RNG seed (777), so overriding it to
0 in production buys nothing for real-world reproducibility.
- It does not fix the non-determinism it appears aimed at: the hybrid second-pass alignment is non-deterministic because of thread-order-dependent multimapper assignment over the redundant canonical+novel transcriptome (verified:
Log.final.out and per-transcript idxstats differ run-to-run with the seed set). That is a STAR multithreading property, not an RNG-seed one.
Proposed change
- Remove
--runRNGseed 0 from conf/modules.config (both STAR blocks).
- If an explicit seed is wanted for test snapshot stability, set it in
tests/nextflow.config only. Note ext.args in the test config replaces rather than appends, so this needs either re-specifying the STAR args there or a small params-based seed hook.
Note
Removing the seed re-baselines every alignment-derived snapshot (all pipeline tests use STAR), so it should be done as a focused change with a full snapshot regeneration on the CI architecture.
Context: surfaced during the determinism audit for the modernisation work (PR #174).
Background
conf/modules.configpins--runRNGseed 0on STAR in two places:withName: 'STAR_ALIGN'block (genome alignment), and.*:EXTENDED_ORF_SECOND_PASS_ALIGN:FASTQ_ALIGN_STAR_HYBRID:STAR_ALIGN(hybrid second pass).Seeds for snapshot reproducibility belong in the test config (
tests/nextflow.configalready does this for ribodetector/bowtie2), not in the production process config.Why this is worth changing
0in production buys nothing for real-world reproducibility.Log.final.outand per-transcript idxstats differ run-to-run with the seed set). That is a STAR multithreading property, not an RNG-seed one.Proposed change
--runRNGseed 0fromconf/modules.config(both STAR blocks).tests/nextflow.configonly. Noteext.argsin the test config replaces rather than appends, so this needs either re-specifying the STAR args there or a smallparams-based seed hook.Note
Removing the seed re-baselines every alignment-derived snapshot (all pipeline tests use STAR), so it should be done as a focused change with a full snapshot regeneration on the CI architecture.
Context: surfaced during the determinism audit for the modernisation work (PR #174).