High-Capacity Storage of Digital Information in DNA
A method for storage of an item of information ( 210 ) is disclosed. The method comprises encoding bytes ( 720 ) in the item of information ( 210 ), and representing using a schema the encoded bytes by a DNA nucleotide to produce a DNA sequence ( 230 ). The DNA sequence ( 230 ) is broken into a plurality of overlapping DNA segments ( 240 ) and indexing information ( 250 ) added to the plurality of DNA segments. Finally, the plurality of DNA segments ( 240 ) is synthesized ( 790 ) and stored ( 795 ).
1 . A method of creating a plurality of DNA segments data to be provided to a DNA synthesis platform for controlling the synthesis of a plurality of DNA segments for storing an item of information, the method comprising:
encoding bytes in an item of information, stored in a first computer file as a DNA sequence data, using a representation schema to represent the encoded bytes as at least one DNA nucleotide datum in the DNA sequence data;
splitting the DNA sequence data into a plurality of overlapping DNA segments data;
adding indexing information to the plurality of DNA segments data, the indexing information indicating a position in the DNA sequence data of any one nucleotide datum of any one of the plurality of DNA segments data; and
storing the plurality of DNA segments data in a machine-readable second computer file.
2 . The method of claim 1 , further including the addition of adapters data to the DNA segments data.
3 . The method of claim 1 using a base-3 scheme for encoding the bytes.
4 . The method of claim 1 , wherein the representation schema used is designed such that adjacent ones of the DNA nucleotide data are different.
5 . The method of claim 1 , further comprising adding a parity-check to the indexing information.
6 . The method of claim 1 , wherein alternate ones of the DNA segments data are reverse complemented.
7 . The method of claim 1 , wherein the representation schema used is designed to avoid long, self-reverse complementary DNA segments data.
8 . The method of claim 1 , further comprising providing to a DNA synthesis platform the plurality of DNA segments data for controlling the synthesis of a plurality of DNA segments from the DNA segments data.
9 . The method of claim 1 , further comprising the step of synthesizing from the DNA segments data a plurality of DNA segments for storing an item of information.
10 . A non-volatile, non-transitory storage medium storing a plurality of DNA segments data to be provided to a DNA synthesis platform for controlling the synthesis of a plurality of DNA segments for storing an item of information, wherein the plurality of DNA segments data are created by a method comprising:
encoding bytes in an item of information, stored in a first computer file, as a DNA sequence data using a representation schema to represent the encoded bytes as at least one DNA nucleotide datum in the DNA sequence data;
splitting the DNA sequence data into a plurality of overlapping DNA segments data; and
adding indexing information to the plurality of DNA segments data, the indexing information indicating a position in the DNA sequence data of any one of the plurality of DNA segments data.
11 . A computer program product comprising logic for executing the method according to claim 1 .