Skip to content

Roadmap: evolving Rosalind into a focused edge-genomics engine #3

Description

@logannye

This issue tracks Rosalind's direction, posted so forks and contributors can see where it's headed.

Direction

Rosalind is the deterministic, low-memory genomics engine that treats memory as a contract. You declare a RAM budget; rosalind plan tells you up front whether your whole-genome variant call fits; the run honors it (fits-or-refuses cleanly — never a silent OOM-kill); and rosalind verify re-checks a BLAKE3 receipt proving the realized peak landed inside your budget and the output is byte-identical. It's a library + CLI + substrate — a bounded, deterministic PileupColumn stream you can compute arbitrary per-locus analytics on — for the places heavyweight stacks don't fit: laptops, field/edge devices, clinics, classrooms. Priorities: correctness, reproducibility, bounded resource use, legibility, honest scope.

See CONTRACT.md for the contract, and docs/OPEN_PROBLEMS.md for the research thesis.

Status

  • Phase A — done. Streaming, CIGAR-aware pileup kernel; calibrated, abstention-aware germline SNV calling; tumor/normal somatic calling; spec-valid VCF; BLAKE3 reproducibility receipts.
  • Phase B — done. Multi-contig FM-index over the concatenated genome; build-once → memory-mapped, byte-reproducible persisted index (rosalind index/locate); zero-copy reference access; bounded whole-genome germline calling over a sorted BAM (rosalind variants --index).
  • Phase C — done (in review). Memory as a verifiable contract: rosalind plan (predict before committing), --enforce (honor-or-refuse: refuse up front / fail loud, never a silent OOM-kill), and rosalind verify — over a sound working-set accountant and a deterministic depth cap.

Roadmap

  • Phase D (research) — the headline space-complexity bet. Sublinear-space index construction: a ~√t (square-root-space; Williams 2025 / Cook–Mertz 2024) evaluation framework as a continuous space/time knob a declared RAM budget selects, beachheaded on FM-index/SA construction (today's build is O(reference)). This extends the contract to the build step. (Correcting this issue's earlier framing: the √t layer is not being "separated out as a demo" — it is the future mechanism that extends the contract; it is research-stage, not yet load-bearing.)
  • Reach + substrate. Aligner over the persisted multi-contig index; germline indels and richer read QC; deterministic multithreading; a Python/tensor binding over the bounded pileup stream.

Forks and contributions are welcome — issues and PRs against any phase are appreciated. Start at CONTRACT.md and examples/custom_pileup_analytics.rs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions