Skip to content

v0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jul 05:40
228a61b

0.7.0 — methylation accuracy, a sharper --fast, and broad speedups

This is primarily a methylation release. The bisulfite path was reworked to a chemistry-aware contract — TAPS support, a NEUTRAL --meth-scoring default, cross-chemistry seed filtering, and both-hypothesis mate rescue — which measurably improves EM-seq placement and roughly halves the gap to bwameth on truth-simulated data while recovering methylation the baseline tools don't. Alongside it, the --fast preset was tuned to close its accuracy gap to the default path, and the alignment kernels (banded-SW / kswv, parallel FM-index load) got another round of optimization.

Non-methylation DNA alignment is byte-for-byte identical to v0.6.0 — every non-meth sample matched the v0.6.0 reference on all six architectures. If you don't use --meth or --fast, this is a pure performance and bug-fix upgrade with no output change.

Area What changed Measured impact (vs v0.6.0)
Methylation TAPS chemistry, NEUTRAL scoring default, cross-chemistry seed drop, both-hypothesis mate rescue (#228, #243, #225, #219/#221/#224, #227) Drift vs bwameth 5.7% → 2.9%; truth placement now ties bwameth (94.65% vs 94.66%); per-CpG methylation r ≈ 0.95–0.98
--fast preset --extend-mate-concordant + chain cap 5→20 (#218) --fast placement now within 0.02pp of default (was ~0.06pp behind); cost: panel-twist --fast +7–15% wall
Performance banded-SW / kswv kernel tuning, parallel FM-index load (#222/#223/#248/#252–255) Default-path wall −5% to −24% across AMD/Graviton on wgs/wes/panel; ~1.2–2.0× compute vs upstream bwa-mem2
Non-meth output Byte-identical to v0.6.0 (180/180 cells, all six archs)
Correctness fixes int32 extension-offset overflow guard, sa_coord realloc sizing, ungapped fast-path bound (#237, #235, #231) No observable output change on benchmarked data

Benchmarked across six architectures (AVX2 / AVX-512 / NEON), 5 reps, on the bwa-mem3-bench suite.


0.7.0 (2026-07-23)

Features

  • bsw: add BWAMEM3_DUMP_PAIRS to observe extension pairs (#239) (c4d7480)
  • meth: add --meth=taps for TAPS methylation chemistry (#228) (0b8163d)
  • meth: drop cross-chemistry seeds by read number (#225) (6e21a37)
  • meth: NEUTRAL --meth-scoring (TAPS default) + batched kswv rescue (#243) (f36dc5a)

Bug Fixes

  • ext: tighten ungapped fast-path mismatch bound to the strict form (#231) (5c53540)
  • fast: enable --extend-mate-concordant and raise chain cap to 20 for non-meth --fast (#218) (50a3293)
  • mem: guard extension-buffer growth against int32 offset overflow (#237) (6acd6b4)
  • mem: size sa_coord realloc in elements, not SMEM count (#235) (7fa501c)
  • meth: recover repeat placement via both-hypothesis mate rescue + PE MAPQ hardening (#219) (6705bbf)
  • meth: scale --meth scoring defaults with the match score (#227) (9811767)

Performance

  • bandedSWA: fewer ops in the AVX2/AVX-512 extend cores (x86-only) (#255) (d52842f)
  • bsw: 128-bit (SSE/NEON) 16-bit prepass via byte-LUT + sign-extend (#223) (239a334)
  • bsw: AVX-512 16-bit prepass via 32-entry permutexvar LUT (#222) (0e8c0b6)
  • index: parallel pread of the FM-index for faster startup (#248) (8d88fe5)
  • kswv: fold the freed-cell pair into a per-row active_frread on the u16 kernels (#254) (eaf649f)
  • kswv: hoist the freed-cell target into a per-row active_frread vector (#252) (fc0eb91)
  • kswv: hoist the u8 boundary test per-row on NEON and AVX-512 non-meth (#253) (a25e3b7)
  • kswv: skip the ref-boundary vbsl on all-real rows in 8-bit mate rescue (+7.5%) (#244) (78420a5)
  • mem: resolve SA lookups across reads, not per read (#236) (79a2425)
  • meth: score mate rescue with one read#-derived matrix, not both (#224) (1baa39b)
  • meth: vectorize both-hypothesis mate rescue on the batched kswv path (#221) (46aeaae), closes #219
  • seed: prefetch the correct cp_occ lines in the bwtSeed third round (#242) (c5e3827)

Documentation

  • best-practices: add anti-patterns for marginally-mappable input (#232) (1344ab8)
  • ext: record the measured evidence behind the ungapped fast-path bound (#233) (878bda0)
  • mem: scope long-read claims to what actually works (#240) (ac090bc)
  • meth: correct --meth override claims and document -T 40 split filtering (#226) (50a8d3f)
  • profiles: recommend --skip-contained-ext for short-read pipelines (#241) (37fa409)