scverse / scverse/rustar-aligner

Dependency discussion: the rust-seq crates (packed-seq, simd-minimizers, seq-hash)

Open
#203 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dependencies
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 >= 5 padding argument above kills packed-seq for simd_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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.