|
1 | | -# salmon 2.1.0 (draft — in progress) |
| 1 | +# salmon 2.1.0 |
2 | 2 |
|
3 | 3 | A correctness-focused release that closes the remaining selective-alignment |
4 | 4 | mapping/quantification gaps against C++ salmon (1.12.1), adds N-aware decoy |
@@ -326,6 +326,27 @@ but stays well-defined under total underflow. On SRR1039508 (full) the |
326 | 326 | mapped-mass loss (sum of `quant.sf` `NumReads` vs `num_mapped`) drops from **190 |
327 | 327 | fragments to 0.1** — matching C++. |
328 | 328 |
|
| 329 | +## Orphan / single-end fragment-length probability (`--noSingleFragProb`) |
| 330 | + |
| 331 | +Orphan and single-end mappings now receive C++ salmon's **bounded-CMF |
| 332 | +"ambiguous" fragment-length weight** (`getAmbigFragLengthProb`) rather than a flat |
| 333 | +penalty. The mapped mate bounds the maximum fragment length — downstream space |
| 334 | +(`txpLen − pos`) for a forward read, `pos + readLen` for a reverse read — and the |
| 335 | +weight is the fragment-length-distribution mass up to that bound, conditioned on |
| 336 | +the transcript length (`cmf(maxFragLen) − cmf(txpLen)`). This discriminates orphan |
| 337 | +placements by geometry (a placement with ample room for the unseen mate is more |
| 338 | +probable than one crammed against a transcript end) instead of weighting them all |
| 339 | +equally. Previously Rust used a flat `LOG_EPSILON` (paired-library orphan) or |
| 340 | +weight 1 (single-end) — i.e. it behaved as if `--noSingleFragProb` were always on. |
| 341 | + |
| 342 | +The per-fragment fragment-length term is now computed **once** and shared by both |
| 343 | +the abundance-aware online posterior and the persistent equivalence-class weight |
| 344 | +(C++ computes it once as `aln.logProb`); the two had previously drifted apart. |
| 345 | +Proper pairs are likewise length-conditioned (`pmf(flen) − cmf(txpLen)`), which is |
| 346 | +≈0 for transcripts longer than the fragment-length support and only adjusts short |
| 347 | +transcripts. The new `--noSingleFragProb` flag (default off) restores the old flat |
| 348 | +behavior, matching salmon's option of the same name. |
| 349 | + |
329 | 350 | ## `num_dovetail_fragments` is now reported |
330 | 351 |
|
331 | 352 | Rust always dropped dovetailed concordant pairs under the default no-dovetail |
|
0 commit comments