Part of #1. Blocked by #2 (need root cause confirmed first).
Scope
BT2 walks SA-range hits in a specific deterministic order via `GroupWalk` (`vendor/bowtie2/group_walk.h`). The order matters because BT2's `-D` budget can fire mid-traversal, leaving a specific subset of hits explored. Our current `collect_prioritized` in `crates/rusttie-align/src/align.rs:531` uses a simpler sort by SA-range size — different traversal order, different alignments discovered.
If Phase 0 confirms GroupWalk is (part of) the cause, port it.
Deliverables
Exit criterion
- Single-end metrics unchanged on chr22 (regression gate).
- Pool-diff diagnostic shows our pool composition shifting toward BT2's for the Phase 0 sample reads.
Risks
- BT2's `GroupWalk` uses a deterministic PRNG seeded from read+position. Reproducing the same PRNG sequence requires matching BT2's RNG implementation (`vendor/bowtie2/random_source.h`).
- The walk can have side-effects on a shared cache structure (`AlignmentCacheIface`) that we'd need to model or stub.
Files referenced
- `vendor/bowtie2/group_walk.h`
- `vendor/bowtie2/random_source.h`
- `crates/rusttie-align/src/align.rs:531` (current collect_prioritized to replace)
Part of #1. Blocked by #2 (need root cause confirmed first).
Scope
BT2 walks SA-range hits in a specific deterministic order via `GroupWalk` (`vendor/bowtie2/group_walk.h`). The order matters because BT2's `-D` budget can fire mid-traversal, leaving a specific subset of hits explored. Our current `collect_prioritized` in `crates/rusttie-align/src/align.rs:531` uses a simpler sort by SA-range size — different traversal order, different alignments discovered.
If Phase 0 confirms GroupWalk is (part of) the cause, port it.
Deliverables
Exit criterion
Risks
Files referenced