migec 2.0.0a1
Pre-release
Pre-release
First published build of the C++20 rewrite of MIGEC and MAGERI.
pip install --pre migecWhat works
All three stages, validated against real data on four layouts:
| layout | data | result |
|---|---|---|
| bulk amplicon with an anchor | HIV-1 Primer ID, SRR1763769 |
pattern recovered by migec suggest unaided; consensus places at HXB2 2,328-2,595 |
| 10x droplet, cell barcodes | sc5p_v2_hs_PBMC_1k VDJ-T |
100% of 3,155,166 reads assigned, 221,024 barcodes, 813 cells called |
| dual-end barcodes | MAGERI's design | 24 nt UMI from twelve bases at each end |
| TSO500 read structures | 5M5S+T |
fgbio/Picard syntax, UMI on both mates |
checkout- barcode extraction with a pattern table, an inline--bc-pattern, or an fgbio--read-structure. 1.18 M reads/s at 16 threads, output byte-identical at any thread count.refine- barcode error correction using the evidence that survives at one read per molecule: the barcode's own base quality and payload agreement, not only the count ratio. Whitelists with a measured background prior. OrdMag cell calling.assemble- one consensus per molecule, with emitted quality capped by a measured RT/first-cycle-PCR floor of 1.5e-4 rather than the 1e-6 that gets assumed.suggest,subsample,sheet.
Numbers that are measured rather than assumed
- The RT/PCR quality floor: 1.54e-4 [1.36e-4, 1.74e-4], so no emitted quality above ~Q38.
- The MIG-split threshold: 8.68, bootstrap 95% CI [8.42, 9.14] - the nominal
p < 0.01over-calls by 19x because reads are not exchangeable. - What the reported Phred is worth: slope 1.04 over 46.3 M constant pattern bases.
- At ~1 read per UMI, 80% of barcode errors have no observable parent and cannot be corrected by any method. migec says so instead of reporting a corrected count it has no evidence for.
Why an alpha
The roadmap's remaining items are real: index hopping from the i7 x i5 table, .mig bucket output from checkout (which is what would bound the UMI counters at NovaSeq scale), and the published benchmark comparisons against MIGEC v1, MAGERI, UMI-tools, Calib and fgbio.
Java users of the Groovy MIGEC 1.2.9 want the jars on the 1.2.9 release; that code is archived on branch legacy-v1 and at tag v1-final.