Hawkynt

DNA Storage Code

Error correction codes for DNA data storage using quaternary alphabet {A,C,G,T}. Implements Reed-Solomon over GF(4) with GC-content balancing and homopolymer avoidance. Used in molecular storage systems by Microsoft, Twist Bioscience, and academic researchers.

Properties

Property Value
Category Error Correction
Sub-category Quaternary Code
Security status πŸ§ͺ Experimental
Complexity Expert
Inventor George Church, Sri Kosuri
Year 2012
Origin πŸ‡ΊπŸ‡Έ United States
Source algorithms/ecc/dna-storage-code.js

Security

Status: πŸ§ͺ Experimental

Known vulnerabilities

Issue Description Mitigation
Synthesis Error Sensitivity DNA synthesis can introduce insertion, deletion, and substitution errors at rates of 0.1-1%. Multiple redundancy and error correction layers recommended. β€”
Homopolymer Errors Long runs of identical bases (AAA, TTT, GGG, CCC) are prone to sequencing errors. Constraint checking helps but cannot eliminate all risks. β€”
GC Content Imbalance Sequences outside 40-60% GC content may form secondary structures or fail synthesis. Encoding should maintain balance. β€”

Documentation

References

Test vectors

6 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.

Vector 1 β€” RS(7,3) over GF(4) - All zeros

Field Value
input 000000
expected 00000000000000

Vector 2 β€” RS(7,3) over GF(4) - Pattern ACG

Field Value
input 000102
expected 00010202030103

Vector 3 β€” RS(7,3) over GF(4) - Maximum values TTT

Field Value
input 030303
expected 03030300030000

Vector 4 β€” RS(7,3) over GF(4) - Alternating CAT

Field Value
input 010003
expected 01000302020103

Vector 5 β€” RS(7,3) over GF(4) - GC-rich CGG

Field Value
input 010202
expected 01020203010300

Vector 6 β€” RS(7,3) encoding verification - GCA

Field Value
input 020100
expected 02010002030301

← All algorithms