Skip to content

fix(solo): port STAR's cbMinP, QSmax and oneExact for 1MM_multi barcode correction - #274

Open
BenjaminDEMAILLE wants to merge 1 commit into
mainfrom
fix/solo-pseudocount-cb-matching
Open

BenjaminDEMAILLE wants to merge 1 commit into
mainfrom
fix/solo-pseudocount-cb-matching

Conversation

@BenjaminDEMAILLE

Copy link
Copy Markdown
Contributor

Refs #172.

--soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts behaved like 1MM_multi because three pieces of STAR (SoloReadFeature_inputRecords.cpp, ParametersSolo.cpp) were missing:

  1. cbMinP = 0.975: the winner needs 97.5% of the summed posterior (single precision, as STAR).
  2. QSmax = 33: mismatch quality capped before the posterior.
  3. oneExact: for non-pseudocount types, a barcode corrected to a single whitelist entry is dropped unless some read matched it exactly.

--soloUMIfiltering MultiGeneUMI_CR is already live on main (#173) and untouched.

Includes #243's tests/solo_cellranger_flags.rs plus two tests comparing against 1MM_multi that fail without the fix.

Supersedes the cbMinP/oneExact part of #165 (its oneExact sits in a branch that never triggers); the two will conflict in resolve_multi_cb and CHANGELOG.

Not done: the 8.9% matrix gap was not re-measured (needs STAR + the 20k-read fixture). Known remaining gaps: CellReads.stats still counts reads later dropped by oneExact; Transcript3p records aren't filtered by oneExact.

Tests: fmt, clippy 0 warnings, all test binaries pass.

🤖 Generated with Claude Code

--soloCBmatchWLtype 1MM_multi_Nbase_pseudocounts behaved like 1MM_multi:
the posterior threshold (cbMinP 0.975, single precision), the quality cap
(QSmax 33) and the oneExact gate for non-pseudocount match types were
missing. Includes the fixture from #243 plus two tests that fail without
the fix.

Refs #172

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant