Recalibrating --score-prob-denom (2026-08-03)
Summary
The default denominator in the transcriptome score→probability conversion
exp((score - best)/D) changes from 5 to 3. Measured over 34 samples across
both evaluation panels: +0.0015 Spearman on exact simulated truth (5/6
samples improving, MARD better on 6/6) and +0.0007 on 28 real LongBench
samples (27/28 improving), uniformly across ONT-cDNA, ONT-dRNA and PacBio.
This is a one-value change. No new code, flag, input or runtime cost.
Why this parameter
The error decomposition in
docs/coverage-auto-rebenchmark-results-2026-08-03.md found that roughly a
quarter of misassigned reads have the true source already scoring higher
than the transcript the EM picks, and lose to the abundance prior anyway. That
is a calibration problem between alignment likelihood and abundance, not a
missing-feature problem, and D is exactly the knob controlling it: smaller D
sharpens the weighting toward the best-scoring alignment.
The remaining ~73% of misassignments are between transcripts whose alignments score identically, and are unreachable by any per-alignment signal.
Sweep
NanoSim NA12878 1D-cDNA, --model-coverage:
D |
Spearman | Δ vs 5 | MARD | RMSE |
|---|---|---|---|---|
| 1 | 0.879447 | -0.007271 | 0.060715 | 68.61 |
| 2 | 0.884568 | -0.002149 | 0.058781 | 68.58 |
| 3 | 0.887130 | +0.000413 | 0.057870 | 68.59 |
| 5 (previous default) | 0.886717 | - | 0.058173 | 69.38 |
| 8 | 0.882268 | -0.004450 | 0.059805 | 71.47 |
| 12 | 0.875640 | -0.011078 | 0.062116 | 75.35 |
| 20 | 0.863546 | -0.023172 | 0.066372 | 83.71 |
The optimum is broad: 3 and 5 are both far better than 1 or 8. This moves toward
the centre of a flat region rather than to a sharp peak, so the change is not
fragile. Sharpening much further (D=1) is clearly harmful, which is why the
~27% bucket cannot simply be handed to the alignment score outright.
Panel B - exact read-level truth
| sample | D=5 | D=3 | Δ Spearman | Δ MARD |
|---|---|---|---|---|
| nanosim-NA12878-cdna | 0.886717 | 0.887130 | +0.000413 | -0.000303 |
| nanosim-NA12878-drna | 0.919238 | 0.920082 | +0.000844 | -0.000295 |
| nanosim-H9-cdna | 0.908404 | 0.910829 | +0.002425 | -0.001085 |
| nanosim-H9-drna | 0.936348 | 0.936289 | -0.000058 | -0.000256 |
| tksm-RSII | 0.935371 | 0.938823 | +0.003452 | -0.002224 |
| tksm-SQ2 | 0.945946 | 0.947869 | +0.001924 | -0.002390 |
| mean | +0.001500 (5/6) | -0.001092 (6/6) |
Panel A - 28 real LongBench samples (held out)
D=3 was chosen by sweeping a Panel B sample, so all 28 experimental samples are
held out.
| group | n | Δ Spearman | improving | Δ MARD | improving |
|---|---|---|---|---|---|
| all | 28 | +0.000721 | 27/28 | -0.000065 | 25/28 |
| ont-cdna | 8 | +0.000875 | 8/8 | -0.000055 | 8/8 |
| ont-drna | 9 | +0.000623 | 8/9 | -0.000047 | 7/9 |
| pac-bio | 11 | +0.000689 | 11/11 | -0.000086 | 10/11 |
Combined across both panels: 32 of 34 samples improve.
Why this cleared the bar when other candidates did not
Three features evaluated in the same series were rejected or removed: the splice-junction endpoint term (+0.000257 on Panel B, +0.000067 experimental), alignment calibration (-0.000143 on Panel B) and censoring (-0.000233). Two differences matter here:
- It generalises. The junction term's experimental effect was 4x smaller than its simulated one and its consistency dropped to 20/28. This change halves in magnitude but gains consistency, to 27/28 on fully held-out real data.
- It costs nothing. Every other rejection turned on whether a feature was worth carrying. Nothing is carried here; a single default value changes.
Caveats
- The effect is small in absolute terms (+0.0007 to +0.0015 Spearman). No biological conclusion changes.
- Changing a default shifts results slightly for every existing user, which
matters for reproducing previously published numbers.
--score-prob-denom 5restores the old behaviour exactly. - Both panels use
--model-coverage. The parameter is transcriptome-mode only; genome mode weights projected alignments by bramble similarity instead.