Repository navigation
Open
Description
Living index of the draft PRs carried in this fork (nh13/minibwa). Most began as contributions proposed to upstream lh3/minibwa; this fork keeps them as drafts against its own master for continued development, for use cases the fork cares about, and as a place to refine them before any future upstream discussion. Updated as PRs land or change.
PRs
| PR | What it does | Benefit | Upstream | Output / validation |
|---|---|---|---|---|
#1 feat/single-copy-parser |
Replaces kseq on the read path with fr_fastq, copying each FASTA/FASTQ field once into mb_bseq1_t instead of twice. |
I/O perf, conditional: ~10% wall reduction on read-bound 96-thread runs with a slow system zlib; ~0 with zlib-ng (read stage hides under mapping). | lh3 issue (discussion) |
byte-identical SAM/PAF |
#2 feat/submem-ablation |
Exposes --max-sub-occ / --min-sub-occ to ablate Pass-2 sub-SMEM reseeding. |
Research/measurement knob. No default-behavior change and no perf gain by itself; enables cost/benefit studies of Pass-2. | lh3#12 | bit-identical at defaults |
#3 feat/soft-clip-penalty |
Adds -L INT[,INT] 5'/3' soft-clip penalty, matching bwa-mem. |
Compatibility feature. Lets minibwa reproduce bwa-mem clipping decisions; default 0,0 preserves current behavior. |
lh3#13 | default = unchanged |
#4 chore/meth-cleanups |
Adds a --meth bisulfite CI test + documents the conversion-strand flip and b_ts default. |
Maintainability / regression protection. No runtime change. | lh3#19 | confirmed still valid post-meth4; merges clean |
#5 feat/inline-appenders |
Replaces per-record sprintf-lite calls in SAM/PAF formatting with inline byte appenders. |
CPU perf, high-core: ~39% CPU reduction in per-record formatting; matters when formatting is on the critical path (e.g. -t96); ~0 on small machines. |
lh3#32 | byte-identical SAM/PAF |
#6 perf/ll-sse-affine-reassoc-arm |
Reassociates the affine-gap recurrence in ksw2_ll (mate rescue) for arm64/NEON. |
Kernel perf, arm64-only: 1.13–1.17× on Graviton4, ~1.1–1.2× on Apple NEON; ~2% end-to-end on mate-rescue-heavy runs. | lh3#37 | identical scores; ⚠ a differential kernel harness gate on further kernel edits |
#7 feat/alt-aware-liftgroup |
ALT-contig awareness via liftover groups (DRAGEN-style), not the bwa-mem .alt/postalt scheme. |
Correctness/feature for ALT-containing references. Inert without a .alt file. |
fork-only | byte-identical to baseline when ALT off |
#8 feat/index-threads-v2 |
Parallelizes the SA→BWT index build with OpenMP (parallel fill, fused SSA+inversion, byte-packed compaction, parallel rank-dict build). | Index-build perf: ~1.8× on DH10B (4.69 Mbp) at 4–8 threads on a 12-core M-series; ~3× at 16 threads on hg38 (original measurement). | lh3#8 · rebuilt on current master | byte-identical .mbw across -t 1/2/4/8 (chrM, 2 Mbp synthetic, DH10B) |
| #10 |
Splits the paired-end query encode (pe.c) so the nt4 base-translation gather no longer blocks auto-vectorization of the reverse-complement half. |
CPU perf, marginal: ~1.4× on the isolated PE query-encode at 150 bp; end-to-end neutral — encode is <1% of wall-clock. No intrinsics; just lets -O3 vectorize. |
fork-only | byte-identical SAM on 6k sampled pairs + 1M real WGS-151bp pairs |
Benefit legend
- perf — speed/CPU/memory; note the regime where it applies (core count, I/O backend, arch), since several are conditional.
- compatibility / feature — new capability or bwa-mem parity; usually inert or behavior-preserving by default.
- maintainability — tests/docs; no runtime effect.
Notes
- These are kept for the fork's own priorities — e.g. very high core counts, arm64, ablation studies, ALT-awareness — which may simply differ from upstream's.
--methand themimallocgnu11build fix are intentionally not carried here: both are already available upstream.
Metadata
Metadata
Assignees
Labels
No labels
Activity