  Synthetic DNA can in principle be used for the archival storage of arbitrary
data. Because errors are introduced during DNA synthesis, storage, and
sequencing, an error-correcting code (ECC) is necessary for error-free recovery
of the data. Previous work has utilized ECCs that can correct substitution
errors, but not insertion or deletion errors (indels), instead relying on
sequencing depth and multiple alignment to detect and correct indels -- in
effect an inefficient multiple-repetition code. This paper describes an ECC,
termed "HEDGES", that corrects simultaneously for substitutions, insertions,
and deletions in a single read. Varying code rates allow for correction of up
to ~10% nucleotide errors and achieve 50% or better of the estimated Shannon
limit.
