Open source under the MIT licence

VNX-DNA

A CPU-only software stack for the digital side of DNA data storage. It packs files into a verifiable archive, encodes it as constraint-screened DNA strands, passes them through a simulated channel, and reconstructs the archive from noisy reads, reporting success only after cryptographic verification.

Status

VNX-DNA

Computational infrastructure for DNA data storage: archive, encryption, constrained encoding, error correction, simulated channels, consensus and verified decoding.

Active
DNA data storageversion 9.0.0sourcedocumentation

Capabilities in the code

Each item exists in the repository and is covered by tests. Opt-in means implemented but off by default.

  • Archive and container

    Files and directories to a .vnx container: chunking, deduplication, zstd compression, canonical manifest, Merkle root.

    implemented
  • Encryption

    AES-256-GCM sealing with key files; keys checked on full decode.

    implemented
  • Addressing and framing

    Per-strand address, payload and CRC-32; superblocks describe the geometry.

    implemented
  • Constrained encoding

    2-bit mapping with sync markers; GC, homopolymer, repeat and motif screening.

    implemented
  • Error correction

    Inner Reed-Solomon per strand; outer Cauchy Reed-Solomon rows; optional column parity (V6 product code).

    implemented / opt-in
  • Insertions and deletions

    Marker-template alignment converts indels to erasures; smart indel recovery and soft decoding are opt-in.

    implemented / opt-in
  • Clustering and consensus

    Read clustering and indel-aware full-template consensus; the V9 candidate E is opt-in.

    implemented / opt-in
  • Channel simulation

    14 configurable software channel models with synthesis, storage, amplification and sequencing stages.

    simulated
  • Random access

    Locate and extract individual files from an archive and from reads.

    implemented
  • Native acceleration

    Four optional C kernels (aligner, read parser, inner RS with AVX2/AVX-512BW, clustering/polish); NumPy references stay normative.

    implemented
  • SDK and CLI

    vnxdna.sdk stable Python API with typed errors; vnx command line printing JSON envelopes.

    implemented
  • Reproducibility

    Pre-registered experiments, committed results with provenance, reproduce.sh per version.

    implemented

Architecture, as implemented

The encode stages E0-E15 and decode stages D0-D14 are specified in the VNX-DNA specification (§5) and implemented as two orchestrators in vnxdna.pipeline. The channel in the middle is software: it simulates synthesis, storage, amplification and sequencing errors. No stage touches physical DNA.

  1. E0-E6

    Archive and container

    Collect, chunk, identify (SHA-256 or HMAC), deduplicate, compress (zstd, kept only if smaller), seal with AES-256-GCM, write the .vnx container with a canonical manifest and Merkle root.

    Implemented
  2. E7-E9

    Outer code

    Plan geometry; Cauchy Reed-Solomon rows, optional column parity over stripes; superblock.

    Implemented
  3. E10-E11

    Framing and inner code

    Frame = address + payload + CRC-32; scramble; inner Reed-Solomon.

    Implemented
  4. E12-E14

    DNA mapping and screening

    2-bit mapping with in-strand sync markers; GC, homopolymer, repeat and motif screening with up to 256 scrambler variants; ordered strand file.

    Implemented
  5. E15

    Laboratory export package

    vnx.export-package/1 for a synthesis order. Never executed by a laboratory.

    Specified only
  6. SIM

    Simulated channel

    Strand loss, coverage, synthesis / storage / amplification / sequencing stages, bursts, reverse complements; 14 shipped channel models, none fitted to a validated platform.

    Simulated
  7. D0-D4

    Read ingest and alignment

    Parse reads (native parser), probe frame version and layout, orient, marker-template alignment that turns indels into erasures.

    Implemented
  8. D5-D7

    Inner decoding

    Inner Reed-Solomon + CRC acceptance (native AVX2 / AVX-512BW). Opt-in: smart indel recovery, soft-decision decoding, retry band.

    Implemented
  9. D8-D11

    Outer recovery

    Superblock selection, consensus per address, outer erasure decoding, stripe (column) decoding.

    Implemented
  10. V7-V9

    Cluster pass

    When outer rows still lack symbols, a second pass clusters the reads and builds indel-aware full-template consensus (native polish kernel since V9; candidate E is opt-in), then feeds the outer decoder again.

    Implemented
  11. D12-D14

    Verify and publish

    Verify against the superblock SHA-256 and Merkle root; atomic publish of SUCCESS, or PARTIAL with only individually verified files; otherwise write nothing.

    Implemented

Files go in on the left and come back out, verified, on the right. Choose a part to focus on it.

Current scientific boundary

Demonstrated computationally

  • Software that encodes files into constraint-screened DNA sequences and recovers them from simulated noisy reads, reporting success only after SHA-256 and Merkle verification.
  • No false success in the decoder evaluations reported from V6 to V9, including 600 paired V9 evaluation cases (SIMULATED).
  • Native C kernels that produce byte-identical results to their Python references, checked with sanitizers and fuzzing.
  • Reproducible experiments: pre-registered designs, committed results files and a reproduction script (29 / 29 rows reproduced at V9).
  • A channel model fitted to public nanopore data, tested against pre-registered criteria and reported as INADEQUATE.

Not demonstrated

  • DNA synthesis, storage, amplification or sequencing of VNX-DNA strands. None has been performed.
  • Performance on real sequencing reads from a physical VNX-DNA experiment.
  • A validated model of any sequencing platform.
  • Storage lifetime, cost per byte, or production readiness.
  • Recovery at coverage 3 under the D13-F1 stress channel, or whole-archive recovery of large archives under it.

Measured results

Full methodology on each benchmark page.

BenchmarkClassResultVersion
Clean-channel encode and decode, 20 KB to 1 GiBVerified (software)1 GiB: encode 105.8 s, decode 195.4 s, byte-exact; 9.78 nt per byteV9
Consensus V2 selection: candidate E vs the V8 decoderSimulatedEXACT 283 / 600 vs 240 / 600; pooled ORE 0.575 vs 0.488; Holm-adjusted exact McNemar p = 5.2e-12; 0 false successV9
Native C11 consensus-polish kernelSimulated60 / 60 decodes byte-identical to the NumPy reference; median speed-up 2.46× (bootstrap 95 % 2.41-2.51)V9
Adaptive computational coverage (stopping rule)Simulated200 / 200 EXACT at the stopping point; 0 false terminations; 41.7 % (v4-balanced) and 31.2 % (v7-lowcov) fewer reads than the smallest fixed coverage with equal EXACTV9
Whole-archive recovery vs archive size under a stress channelSimulated20 KB: 28 / 30 EXACT; 1 MiB: 2 / 30 EXACT; 0 false success at both sizesV9
Public-data nanopore channel model G1 (adequacy test)Public dataINADEQUATE: fails the pre-registered FIT-only pre-check on M6r and M8V9

Releases

VersionDateSummaryCommit
VNX-DNA 9.0.02026-10-08Native C11 consensus-polish kernel (byte-identical, median 2.46× faster); opt-in consensus candidate E selected in a pre-registered comparison (283 vs 240 of 600 EXACT, 0 false success); adaptive computational coverage; VNX-Secure defensive control plane merged.e76e24b
VNX-DNA 7.0.02026-10-07Indel-aware full-template consensus confirmed on fresh pre-registered seeds; v7-lowcov parity profile reaches 5-read coverage at +42 % strands; 0 false success in 480 decodes.2a3c779
VNX-DNA 8.0.02026-10-07Public-data (D13) nanopore channel model fitted with full provenance: a conclusive INADEQUATE result; 360 decodes under controlled simulated channels with 0 false success and 0 false frames.17e42bb
VNX-DNA 6.0.02026-10-05Formal specification, layered packages with a stable SDK (vnxdna.sdk) and the `vnx` CLI, channel-model framework, native packaging, security model with fuzzing.16b5811