scverse / scverse/rustar-aligner
Dependency discussion: the rust-seq crates (packed-seq, simd-minimizers, seq-hash)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 75
- Forks
- 7
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Description
Dependency discussion per CONTRIBUTING.md. Sister issue to the sufr one; both came out of the
same August 2026 survey.
The org
rust-seq (Ragnar Groot Koerkamp et al.), all MIT, all released
2026-07-07, all actively maintained:
| Crate | Version | What it is |
|---|---|---|
packed-seq |
5.0.0 |
Bitpacked DNA sequence trait + SIMD iteration |
simd-minimizers |
3.0.0 |
SIMD-accelerated random minimizers |
seq-hash |
0.2.0 |
Rolling k-mer hashes over bitpacked sequences |
minimizer-iter, minimizer-queue |
— | Minimizer iteration / monotone-queue |
Verdict per crate, to confirm
packed-seq — the only one worth a measurement. We already do our own packing
(src/index/sa_index.rs, plus 2-bit work in src/solo/whitelist.rs and src/solo/mod.rs) and our
own SIMD scanning (src/align/simd_scan.rs). The question is narrow: does packed-seq's
SIMD iteration beat find_stop's hand-rolled 16-byte chunk scan, on a representation we can
actually adopt? Note the obstacle: our genome bytes are not 2-bit. Padding/spacer values >= 5 are
load-bearing in the scan (genome[i] >= 5 is a stop condition), so a 2-bit packed representation
cannot express them. That likely rules it out for the seed-extension path and confines it, at best,
to the barcode/whitelist side.
simd-minimizers, minimizer-iter, minimizer-queue, seq-hash — decline. STAR seeds by
maximal mappable prefix search in the suffix array. Minimizer or k-mer sketching changes which
seeds are found, therefore which alignments are reported, therefore faithfulness against STAR.
That is a structural no, independent of how fast the crates are.
Checklist
- Confirm the
>= 5padding argument above killspacked-seqforsimd_scan.rs(or find the
representation where it does not) - If any part survives: benchmark against the current hand-rolled scan on x86_64 and aarch64
- Record the decline reasons for the minimizer/k-mer crates in writing so this is not resurveyed
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read src/index/sa_index.rs, src/solo/whitelist.rs, src/solo/mod.rs, and src/align/simd_scan.rs, starting with the hand-rolled scan and its >= 5 padding condition. Confirm whether packed-seq can represent the genome data without changing seed-extension behavior; if any use survives, benchmark it against the current scan on x86_64 and aarch64. Record the decline reasons for the minimizer and k-mer crates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- bioinformatics, performance
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100