Skip to content

docs: STAR-rs porting groundwork (attribution + conventions) - #106

Closed
BenjaminDEMAILLE wants to merge 2 commits into
scverse:mainfrom
BenjaminDEMAILLE:bd/groundwork
Closed

docs: STAR-rs porting groundwork (attribution + conventions)#106
BenjaminDEMAILLE wants to merge 2 commits into
scverse:mainfrom
BenjaminDEMAILLE:bd/groundwork

Conversation

@BenjaminDEMAILLE

Copy link
Copy Markdown
Contributor

What

Groundwork for a series of themed, dependency-stacked PRs bringing the STAR-rs feature surface into rustar-aligner. This first PR adds no code paths, only attribution and conventions:

  • LICENSES/STAR_RS_LICENSE + a note in LICENSES/README.md — the STAR-rs MIT notice (© 2026 Benjamin Demaille), for attribution of modules ported from STAR-rs. STAR-rs is dual MIT OR Apache-2.0; ported code is taken under its MIT option, compatible with this repo's MIT license.
  • docs-old/dev/porting-from-star-rs.md — the STAR-rs → rustar-aligner type/module mapping, the cellranger reference-only caveat, the determinism decision (adopt STAR-rs's thread-invariant, no-rand model; flagged for discussion), and how to validate ports against native STAR using the existing test/ harness with STAR-rs's DIVERGENCES.md as the acceptance spec.

Why

STAR-rs is a clean-room Rust re-port of STAR 2.7.11b, validated byte-identical vs native STAR. rustar-aligner already covers SE/PE alignment, splice junctions, two-pass, chimeric, GeneCounts, TranscriptomeSAM and sorted BAM; STAR-rs additionally has STARsolo, STARlong, WASP, genome transforms, signal tracks, clipping, peOverlap, SuperTranscriptome, liftOver and more. This PR is the base of the stack that brings those over one theme at a time.

Next in the stack

  • WASP allele-specific filter (vW/vA/vG, --varVCFfile, --waspOutputMode) — stacks on this PR.
  • Then: determinism-model migration, clipping, signal tracks, peOverlap, genome transforms, STARlong, and the STARsolo cluster.

Notes

  • Docs/attribution only — no functional change; the standard gate (build/test/clippy/fmt/MSRV) is unaffected.
  • Determinism: this proposes adopting STAR-rs's thread-invariant output (byte-identical regardless of thread count). Happy to discuss before the migration PR lands.

🤖 Generated with Claude Code

BenjaminDEMAILLE and others added 2 commits July 23, 2026 20:00
CI's clippy advanced to 1.97 (new lints fail the `-D warnings` gate) and rustsec
flagged several advisories in the dependency tree. Both block all PRs.

Clippy:
- src/index/suffix_array.rs: assert!(x == 0) -> assert_eq! (manual_assert_eq)
- src/io/sam.rs, tests/alignment_features.rs: byte-slice literals -> byte
  strings, e.g. [b'S', b'M'] -> *b"SM" (byte_char_slices)
- src/quant/transcriptome.rs: if-let/else-return-None -> `?` (question_mark)

Security audit (Cargo.lock only, no manifest change):
- memmap2 0.9.10 -> 0.9.11 (RUSTSEC-2026-0186, out-of-bounds pointer offset)
- crossbeam-epoch 0.9.18 -> 0.9.20 (RUSTSEC-2026-0204, invalid pointer deref)
- anyhow 1.0.102 -> 1.0.104 (RUSTSEC-2026-0190, unsound downcast_mut)

No behavioural change. Unblocks CI for open and future PRs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add LICENSES/STAR_RS_LICENSE (STAR-rs MIT notice, Copyright (c) 2026 Benjamin
Demaille) and note it in LICENSES/README.md, for attribution of modules ported
from STAR-rs. STAR-rs is dual MIT-OR-Apache; ported code is taken under its MIT
option, compatible with this repo's MIT license.

Add docs-old/dev/porting-from-star-rs.md documenting the STAR-rs to
rustar-aligner type/module mapping, the licensing and cellranger reference-only
caveat, the determinism decision (adopt STAR-rs's thread-invariant, no-rand
model), and how to validate ports against native STAR via the existing test/
harness with DIVERGENCES.md as the acceptance spec.

This is the base of a series of themed, dependency-stacked PRs bringing the
STAR-rs feature surface (WASP, clipping, signal tracks, genome transforms,
STARlong, STARsolo, ...) into rustar-aligner.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant