Skip to content

2.8.0

Choose a tag to compare

@rhshah rhshah released this 24 Feb 03:42
· 822 commits to main since this release

Highlights
🧬 PairHMM Alignment Backend — Alternative Phase 3 alignment via --alignment-backend hmm with probabilistic scoring using base quality probabilities. Configurable LLR threshold and gap probabilities for repeat/non-repeat regions. 6 new CLI options, exposed as first-class Nextflow params.

🔬 MNP Quality Strategy — MNP quality now assessed using min(BQ) across the entire block, matching C++ GBCMS baseCountDNP. Low-quality MNP reads fall through to check_complex for masked comparison instead of being silently skipped.

📚 Comprehensive Documentation Audit — 28 fixes across 23 files. All GitBook URLs replaced with MkDocs, version templating (X.Y.Z), 5 mermaid diagrams updated, architecture module tree refreshed, PairHMM documented end-to-end.

✨ Added

  • PairHMM alignment backend (--alignment-backend hmm) with LLR scoring, tunable gap probabilities
  • MNP min-BQ-across-block quality strategy with check_complex fallback
  • Per-phase ClassifyResult counters for diagnostic phase tracking
  • --trace flag — two-tier Rust logging via pyo3-log

🔧 Fixed

  • Phase 2/2.5 overcounting — skip when ref_len > 2 × alt_len
  • Phase 3 bypass for pure DEL/INS — removed is_worth_realignment prefilter
  • DP anchor overlap — single-position check matching Mutect2/VarDict/samtools
  • MNP LowQuality routing — falls through to check_complex instead of skip
  • S3 underflow guard — negative ctx_offset in deletion validation

🏗️ Refactored

  • Split counting.rs + normalize.rs into idiomatic module directories (14 Rust modules)
  • AlignmentBackend enum threaded through all Phase 3 call sites

📚 Documentation

  • 28 fixes across 23 files — GitBook→MkDocs, X.Y.Z version templating, CLI docs, diagrams
  • Deleted stale nextflow/CHANGES.md

🧪 Tests

  • 30+ new tests: alignment backend, MNP, multi-allelic, DP/neither, fragment consensus

Full Changelog: 2.7.0...2.8.0

Install: pip install py-gbcms==2.8.0 Docker: docker pull ghcr.io/msk-access/py-gbcms:2.8.0 Docs: https://msk-access.github.io/py-gbcms/