v2.1.2
What's new in 2.1.2
A bug-fix patch on top of 2.1.1.
Fixed: mapping panic on certain indexes (#1038)
salmon quant could abort early in the selective-alignment mapping phase with:
thread '<unnamed>' panicked at crates/salmon-map/src/align.rs:...:
range start index N out of range for slice of length M
Root cause. salmon's sketch/permissive seed collector (in piscem-rs) anchors a read position to a contig with a hash lookup, then skips ahead along the contig and verifies the continuation by direct sequence comparison instead of re-hashing. The skip distance and the verified position are expressed in the anchor's coordinate frame, but the skipped hit was recorded relative to the last recorded hit rather than the anchor. When an earlier skip/walk detour had already recorded a hit ahead of the current read position, those differ — and advancing the wrong base could push the contig offset past the end of the contig (contig_pos + k > contig_len), a k-mer position that does not exist. The selective-alignment scorer then indexed the reference at that out-of-range position and panicked.
Fix. Resolved at the source in piscem-rs v0.6.1: the skip search now projects from the open-search anchor, so every recorded hit equals the position actually verified by sequence comparison and always stays within its contig. There is no change in the common case — on the reporting dataset the mapping rate is identical (88.40%) and the panic is gone. As defense in depth, align_chain now asserts seed coordinates are in-bounds (debug builds) and gracefully skips an out-of-bounds candidate in release builds, so a future coordinate bug degrades instead of aborting a run.
Thanks to @o-william-white for reporting the issue with a complete, reproducible example — the index and reads made it possible to pin the exact cause.
Install salmon-cli 2.1.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/COMBINE-lab/salmon/releases/download/v2.1.2/salmon-cli-installer.sh | shDownload salmon-cli 2.1.2
| File | Platform | Checksum |
|---|---|---|
| salmon-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| salmon-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| salmon-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| salmon-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |