• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

clintval / vartovcf / 39817309380
98%

Build:
DEFAULT BRANCH: main
Ran 22 Oct 2026 04:50PM UTC
Jobs 1
Files 13
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Oct 2026 04:49PM UTC coverage: 98.28% (+0.02%) from 98.261%
39817309380

push

github

web-flow
feat!: fold a leaky MNV's partial by a leak-rate binomial, not the 2c-1 bound (#158)

* feat!: fold a leaky MNV's partial by a leak-rate binomial, not the 2c-1 bound

A leaked read is an MNV molecule whose read ends inside the MNV, or carries a no-call or a low-quality base at another changed base, which happens to a few percent of an MNV's reads. The directional adjacency bound let a parent explain a child with up to half its reads at every depth, so it folded a 2-read SNV under a 3-read MNV, where a leak is expected to produce less than one read and a separate allele is at least as likely.

A partial is now folded when, in every sample with reads of it, it has fewer reads than the MNV and its count is within the upper 5% of a binomial over both rows' reads at a leak rate, --leaky-mnv-rate, default 0.05. Each partial is tested against the MNV's own reads, not those of partials it already took, so the fold does not depend on the order the rows are visited in. The MNV_PARTIALS header line records the rate and the bounds it gives.

Breaking for the library: fold_partials takes a LeakRate, the header functions take Option<LeakRate> in place of the flag and Options gains leak_rate. Fixtures changed only in the MNV_PARTIALS header line.

* docs: describe the leak-rate fold and how to estimate a library's rate

* fix: refuse leak rates below 0.001 and bisect for the fewest MNV reads

A rate near zero passed the range check, then the header's fold bounds counted MNV reads up one at a time, which took seconds at 1e-7 and overflowed i32 below 1e-9. The rate now has a floor of 0.001, below any rate a partial could be told from a separate allele at, and the fewest MNV reads that explain a partial is found by bisection, as more MNV reads never stop explaining it.

* refactor!: carry the leak rate in the fold option itself

Options.fix_leaky_mnv is now Option<LeakRate>, so a rate without the fold cannot be built, and the sink, the header calls and the region loop ... (continued)

195 of 197 new or added lines in 4 files covered. (98.98%)

3486 of 3547 relevant lines covered (98.28%)

199833.53 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
95.45
-2.96% src/main.rs
Jobs
ID Job ID Ran Files Coverage
1 39817309380.1 22 Oct 2026 04:50PM UTC 13
98.28
GitHub Action Run
Source Files on build 39817309380
  • Tree
  • List 13
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39817309380
  • 2bcbfaf9 on github
  • Prev Build on main (#39692857496)
  • Next Build on main (#39820411076)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc