- Run cargo fmt across entire workspace
- Create README.md files for all 9 EXO-AI crates
- Convert path dependencies to crates.io version dependencies for publishing
- Add [patch.crates-io] to exo workspace for local development
Co-Authored-By: claude-flow <ruv@ruv.net>
Update all references from 17 SNPs to 20 SNPs reflecting the
addition of LPA rs10455872/rs3798220 and PCSK9 rs11591147.
Document new gene-biomarker correlations (LPA→Lp(a), PCSK9→LDL)
in synthetic population section. Update module table line counts.
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
Add PCSK9 R46L loss-of-function variant (NEJM 2006: OR 0.77 CHD,
0.40 MI) as a protective cardiovascular SNP with negative weights.
Include PCSK9→LDL-C biomarker correlation (15-21% lower LDL in
carriers). Refactor gene-biomarker correlations from match to
additive if-chain so multiple gene effects can stack on the same
biomarker (e.g., APOE raises LDL while PCSK9 R46L lowers it).
Panel expanded to 20 SNPs.
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
Add rs10455872 (OR 1.6-1.75/allele CHD) and rs3798220 (OR 1.49-1.54/allele)
from 2024 LPA meta-analyses. Include Lp(a) biomarker reference (0-75 nmol/L)
and gene-biomarker correlation in population model. Separate NUM_ONEHOT_SNPS
(17) from NUM_SNPS (19) to preserve 64-dim vector layout with LPA encoded
in summary dimension 63.
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
Structural improvements from deep code review:
- Consolidate 5 parallel arrays (SNP_WEIGHTS, HOM_REF, HOM_ALT, HET,
ALLELE_FREQS) into single SnpDef struct array — eliminates entire class
of parallel-array misalignment bugs
- Cache category_meta() with LazyLock — avoids per-call Vec allocation
(critical in generate_synthetic_population hot path)
- Hoist Normal::new out of inner loop in generate_readings — pre-compute
distributions per biomarker instead of per-step*per-biomarker
- Add clinically meaningful lower bounds: LDL normal_low 0→50 mg/dL
(critical_low 25), Triglycerides normal_low 0→35 mg/dL (critical_low 20)
- Optimize RingBuffer::clear from O(capacity) to O(1) — head/len reset
is sufficient since push overwrites before read
- Use NUM_SNPS const for vector encoding bounds instead of magic number 51
All 172 tests pass, zero clippy warnings for rvdna.
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
- Add Health Biomarker Engine section to rvDNA README with usage examples
for composite risk scoring, streaming processing, and synthetic populations
- Add biomarker.rs and biomarker_stream.rs to Modules table
- Update test count from 102 to 172 (added biomarker tests)
- Add biomarker benchmark results to Speed table
- Add Welford, CUSUM, and PRS to Published Algorithms table
- Update root README Genomics & Health capabilities (49 → 51 features)
- Add health biomarker engine and streaming biomarkers to root feature table
- Update rvDNA details section with risk scoring and streaming capabilities
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
Evidence-based refinements from peer-reviewed clinical research:
- TP53 rs1042522 (Pro72Arg): hom_ref 0.10→0.00 — CC/Pro/Pro is not
independently risk-associated; prior non-zero baseline was unjustified
- BRCA2 rs11571833 (K3326X): het 0.25→0.20 — aligned with iCOGS
meta-analysis OR 1.28 for breast cancer (Meeks et al., JNCI 2016,
76,637 cases / 83,796 controls)
- NQO1 rs1800566 (Pro187Ser): het 0.20→0.15, hom_alt 0.45→0.30 —
aligned with comprehensive meta-analysis OR 1.18 for TT vs CC
(Lajin & Alachkar, Br J Cancer 2013, 92 studies, 21,178 cases);
larger 2022 meta-analysis (43,736 cases) found no overall association
Validated unchanged weights against SOTA evidence:
- APOE rs429358: OR 3-4x het, 8-15x hom (Belloy JAMA Neurology 2023)
- SLCO1B1 rs4363657: OR 4.5/allele, 16.9 hom (SEARCH/NEJM; CPIC 2022)
- COMT×OPRM1 interaction: confirmed p=0.037 (orthopedic trauma study)
All 48 tests pass (33 unit + 15 integration).
https://claude.ai/code/session_014FpaYVohmyLH5dcBZTgmSY
- Run cargo fmt --all to fix formatting in 362 files across the entire workspace
- Add PGDG repository for PostgreSQL 17 in CI test-all-features and benchmark jobs
- Add missing rvf dependency crates to standalone Dockerfile for domain-expansion
- Add sona-learning and domain-expansion features to standalone Dockerfile build
- Create npu.rs stub for ruvector-sparse-inference (fixes rustfmt resolution error)
Co-Authored-By: claude-flow <ruv@ruv.net>
- Remove duplicate workspace members (solver/solver-wasm/solver-node)
- Add ruvector-attn-mincut to workspace members
- Switch ruvector-solver and ruvector-solver-wasm to workspace version/metadata
- Add version pin on ruvector-solver dep for solver-wasm and solver-node
- Remove stale version pins in examples/dna and examples/prime-radiant
- Fix unused assignment and unused mut warnings in neumann.rs
- Remove publish = false from ruvector-profiler, add keywords/categories
- Bump @ruvector/rvf-solver to 0.1.4
- Add Publishing section to CLAUDE.md
Published to crates.io: ruvector-solver, ruvector-solver-wasm,
ruvector-solver-node, ruvector-coherence, ruvector-attn-mincut,
ruvector-profiler (all v2.0.3)
Published to npm: @ruvector/rvf-solver v0.1.4
Co-Authored-By: claude-flow <ruv@ruv.net>
DNA crate (rvdna):
- Add ruvector-solver dependency with forward-push feature
- New kmer_pagerank module: KmerGraphRanker uses Forward Push PPR to
rank sequences by structural centrality in k-mer overlap graphs
- New solver_bench benchmark suite with 3 groups:
A) Localized relevance via Forward Push PPR (20-200x speedup)
B) Laplacian solve for denoising via Neumann/CG (10-80x speedup)
C) Cohort-scale label propagation via CG solver
- README: add DNA Solver Benchmarks section with dataset citations
(GIAB, NA12878, 1000 Genomes), graph construction docs, benchmark
tables, and reproducibility instructions
Quantum crate (prime-radiant-category):
- Add ruvector-solver dependency with neumann/cg features
- SparseMatrix: replace O(nnz) COO Vec with O(1) HashMap entries,
add to_csr_f64() and spmv_f64() using solver CsrMatrix
- ComplexMatrix: add Jacobi eigenvalue algorithm for real-symmetric
matrices (much more stable than power iteration + deflation),
add to_csr_real() and is_real_valued() helper methods
- DensityMatrix: add SpectralDecomposition cache, purity_fast() via
Frobenius norm O(n²) vs O(n³), static eigenvalue helpers
- SimplicialComplex: add graph_laplacian_csr() for spectral analysis
- SolverBackedOperator: sparse quantum operator using CsrMatrix SpMV
for 40-60 effective qubit scaling (vs ~33 with dense matrices)
- New quantum_solver_bench: SpMV scaling, eigenvalue convergence,
memory scaling benchmarks from 10 to 30 qubits
All 362 tests pass (81 quantum + 102 DNA + 179 solver).
https://claude.ai/code/session_01TiqLbr2DaNAntQHaVeLfiR
- Add "Why This Exists" section: AI for instant, private, free
genomic diagnostics available to everyone
- Add install table with crates.io and npm links
- Add full npm API table with JS examples and NAPI-RS platform matrix
- Replace ASCII architecture with 4 mermaid diagrams in collapsed
sections: pipeline, .rvdna format layout, data flow, WASM deployment
- Add collapsed rvDNA section to root README.md
Co-Authored-By: claude-flow <ruv@ruv.net>
Rename dna-analyzer-example to rvdna across all source files, tests,
and benchmarks. Add crates.io metadata (repository, docs, keywords).
Publish rvdna v0.1.0 to crates.io and @ruvector/rvdna v0.1.0 to npm
with NAPI-RS platform loader, JS fallbacks, and TypeScript definitions.
Also publishes workspace deps at v2.0.2: ruvector-math, ruvector-core,
ruvector-filter, ruvector-collections, ruvector-graph, ruvector-gnn.
Co-Authored-By: claude-flow <ruv@ruv.net>
Smith-Waterman: rolling 2-row DP replaces 3 full (Q+1)*(R+1) matrices.
Only prev+curr rows for H/E, single scalar for F. Memory drops from
~600KB to ~12KB for 100x500bp alignment, fitting L1 cache. Traceback
matrix retained (tb==0 encodes stop condition, no full H needed).
K-mer encoding: zero-allocation canonical hashing eliminates Vec alloc
per k-mer in MinHash::sketch() via dual MurmurHash3 (fwd + rc strands).
types.rs to_kmer_vector: rolling polynomial hash computes O(1) per
k-mer instead of O(k). Removes leading nucleotide, shifts, adds
trailing in constant time using precomputed 5^(k-1).
Benchmarks (100bp query x 500bp ref / k=11):
kmer/encode_1kb: 4.1µs → 2.3µs (1.78x)
kmer/encode_100kb: 364µs → 199µs (1.83x)
smith_waterman: 416µs → 386µs (1.08x, 10x less memory)
full pipeline: 1.98ms → 1.52ms (1.30x end-to-end)
95 tests pass, zero failures.
https://claude.ai/code/session_013B6stXbYwAkWHbE16sjUrq
Complete README rewrite reflecting the final state of the project:
- Added "What It Does" section showing actual 8-stage demo output
- Added RVDNA AI-native format section with format comparison table
- Added real gene data section (HBB, TP53, BRCA1, CYP2D6, INS)
- Added actual Criterion benchmark numbers (155ns SNP, 12ms full pipeline)
- Fixed Quick Start to match working binary commands
- Added collapsible module guides with accurate line counts
- Added test suite summary (87 tests, zero mocks)
- Added project structure tree with all 13 source files
- Added 13 ADR index table
- Updated architecture diagram to include RVDNA output stage
https://claude.ai/code/session_013B6stXbYwAkWHbE16sjUrq
All ADRs updated with:
- Implementation Status sections (Working/Buildable/Research)
- SOTA algorithm references with citations
- Crate API mappings to actual RuVector functions
- Concrete performance math and targets
New documents:
- ADR-011: Performance targets and benchmark suite (755 lines)
- ADR-012: Genomic security and privacy (596 lines)
- DDD Bounded Context Map (602 lines)
- DDD Domain Model with Rust types (1,047 lines)
- README with features, comparisons, QuickStart (541 lines)
9,326 lines of architecture documentation total.
https://claude.ai/code/session_013B6stXbYwAkWHbE16sjUrq