IP Library Granted Patent US 12,406,750
Granted Patent B2
US 12,406,750 · App. 18/459,312 · Granted Sep 2, 2025

Encoding digital data using oligonucleotides

Inventors: Allan Eduardo Feitosa (Butantã, BR); Thiago Yuji Aoyagi (Butantã, BR); Adriano Galindo Leal (Butantã, BR); Andre Guilherme da Costa-Martins (Butantã, BR); Cristina Maria Ferreira da Silva (Butantã, BR); Diego Trindade de Souza (Butantã, BR); Eduardo Takeo Ueda (Butantã, BR); Marcelo Gonzaga de Oliveira Parada (Butantã, BR); Bruno Marinaro Verona (Butantã, BR)
Assignee: Lenovo (Singapore) Pte. Ltd.
G16B50/50G16B30/10G06N3/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,406,750
App. No.
18/459,312
Granted
Sep 2, 2025
Kind
B2
Abstract

Various aspects disclosed relate to encoding digital data as oligonucleotides and retrieving the digital data from the oligonucleotides via one or more decoding processes. Digital data can be encoded using oligonucleotides by determining a string of characters that corresponds to the digital data according to an encoding scheme such that individual characters of the string of characters are represented by a nucleotide included in at least one of deoxyribonucleic acid (DNA) or ribonucleic acid (RNA). The string of characters can undergo one or more additional encoding processes to generate additional nucleic acid representations that correspond to the digital data.

Claims (60)

1. A system comprising:

one or more processors; and

memory storing computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

obtaining an amount of digital data stored in one or more data files;

determining a string of characters that corresponds to the digital data according to a first encoding scheme such that individual characters of the string of characters are represented by a nucleotide included in at least one of deoxyribonucleic acid (DNA) or ribonucleic acid (RNA);

generating nucleic acid representations based on the string of characters, wherein individual nucleic acid representations include a plurality of positions and a portion of the string of characters is distributed among the nucleic acid representations at an individual position across the nucleic acid representations according to a second encoding scheme;

receiving a request to access at least a portion of the digital data;

obtaining a plurality of sequencing reads that correspond to nucleic acids synthesized according to the nucleic acid representations, wherein the plurality of sequencing reads indicate nucleotides present at individual positions of the nucleic acids;

performing a process to align individual positions of the plurality of sequencing reads to generate aligned sequencing reads;

for a given position of the aligned sequencing reads, determining an additional string of characters that corresponds to a nucleotide present at the given position of the aligned sequencing reads; and

generating, using a decoding scheme, a requested portion of the digital data based on the additional string of characters.

2. The system of claim 1 , wherein the nucleic acid representations comprise segments having no greater than a threshold frequency of a given pattern of one or more nucleotides.

3. The system of claim 2 , wherein the given pattern is repetition of a pair of nucleotides at a threshold number of consecutive pairs of positions of the nucleic acid representations.

4. The system of claim 2 , wherein the given pattern is repetition of a set of three nucleotides at a threshold number of consecutive positions of the nucleic acid representations.

5. The system of claim 1 , wherein individual sequencing reads of the plurality of sequences reads include:

a first segment indicating a primer used in a sequencing process that generates the plurality of sequencing reads;

a second segment indicating a location of the individual sequencing read with respect to an order in which the plurality of sequencing reads are to be aligned; and

a third segment indicating a payload that corresponds to a number of nucleotides that encode a portion of the digital data.

6. The system of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform additional operations comprising:

for a first position of the aligned sequencing reads, determining a nucleotide present at the first position of each of the aligned sequencing reads to generate a first portion of the additional string of characters; and

for a second position of the aligned sequencing reads, determining an additional nucleotide present at the second position of each of the aligned sequencing reads to generate a second portion of the additional string of characters.

7. The system of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform additional operations comprising:

obtaining a collection of sequencing reads that correspond to nucleic acids synthesized according to the nucleic acid representations;

analyzing the collection of sequencing reads to determine a number of clusters of sequencing reads, wherein individual clusters of the number of sequencing reads correspond to one or more copies of a given nucleic acid that was subject to one or more sequencing operations; and

determining a plurality of consensus sequencing reads that individually correspond to an individual cluster of sequencing reads;

wherein the plurality of sequencing reads includes the plurality of consensus sequencing reads.

8. The system of claim 7 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to analyze the collection of sequencing reads to determine the number of clusters of sequencing reads by:

determining a measure of similarity between a first nucleotide sequence of one or more first sequencing reads included the collection of sequencing reads and a second nucleotide sequence of one or more second sequencing reads included in the collection of sequencing reads;

determining that the measure of similarity is at least a threshold measure of similarity; and

determining that the first nucleotide sequences and the second nucleotide sequences correspond to a same consensus sequence.

9. The system of claim 1 , wherein nucleotides of the individual nucleic acid representations are ordered such that a probability of the at least two nucleotides interacting to form a hairpin structure in nucleic acids corresponding to the individual nucleic acid representations is less than a threshold probability.

10. The system of claim 1 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to generate nucleic acid representations based on the string of characters by:

generating, for individual nucleic acid representations, a first segment that corresponds to an identifier of the individual nucleic acid representation and a second segment that corresponds to a portion of the digital data; and

performing, for the individual nucleic acid representations, one or more encryption processes with respect to the second segment of the individual nucleic acid representations based on the first segment of the individual nucleic acid representations to generate a plurality of encoded nucleic acid representations.

11. The system of claim 10 , wherein the one or more encryption processes include an XOR randomization process.

12. The system of claim 1 , wherein the second encoding scheme is linear and the string of characters is distributed among the nucleic acid representations according to a transverse arrangement such that a first portion of the string of characters is distributed at a first position of each of the nucleic acid representations and a second portion of the string of characters is distributed at a second position of each of the nucleic acid representations.

13. The system of claim 1 , wherein the second encoding scheme is non-linear and the portion of the string of characters is distributed across positions of the individual nucleic acid representations such that a first character of the string of characters is represented at a first position of a first nucleic acid representation and is offset by one or more positions with respect to a second character of the string of characters that is represented at a second position of a second nucleic acid representation, wherein the first character and the second character are consecutive characters in the string of characters and the first nucleic acid representation and the second nucleic acid representation are ordered consecutively.

14. A method comprising:

obtaining, by one or more computing devices including one or more processors and memory, an amount of digital data;

determining, by the one or more computing devices, a string of characters that corresponds to the digital data according to an encoding scheme such that individual characters of the string of characters are represented by a nucleotide included in at least one of deoxyribonucleic acid (DNA) or ribonucleic acid (RNA); and

generating, by the one or more computing devices, a plurality of nucleic acid representations based on the string of characters, wherein individual nucleic acid representations of the plurality of nucleic acid representations include a plurality of positions and a portion of the string of characters is distributed among the plurality of nucleic acid representations at an individual position across the plurality of nucleic acid representations according to a pattern.

15. The method of claim 14 , wherein a number of the nucleic acid representations encoding the digital data is at least 500.

16. The method of claim 14 , comprising:

synthesizing oligonucleotides that correspond to the oligonucleotide representations;

storing the oligonucleotides in a storage container;

performing one or more sequencing operations to produce an amplification product that includes a plurality of oligonucleotides that correspond to individual oligonucleotide representations; and

generating sequencing data that includes a plurality of sequencing reads, the plurality of sequencing reads corresponding to the plurality of oligonucleotides included in the amplification product.

17. The method of claim 16 , comprising:

analyzing, by the one or more computing devices, the plurality of sequencing reads to determine one or more sequencing reads of the plurality of sequencing reads that correspond to a nucleic acid representation of the plurality of nucleic acid representations;

for a given position of the one or more sequencing reads, determining, by the one or more computing devices, an additional string of characters that corresponds to a nucleotide present at the given position of the one or more sequencing reads; and

generating, by the one or more computing devices and using a decoding scheme, a requested portion of the digital data based on the additional string of characters.

18. A method comprising:

receiving, by the one or more computing devices, a request to access at least a portion of the digital data;

obtaining, by the one or more computing devices, a plurality of sequencing reads that correspond to nucleic acids synthesized according to the nucleic acid representations, wherein the plurality of sequencing reads indicate nucleotides present at individual positions of the nucleic acids;

performing, by the one or more computing devices, a process to align individual positions of the plurality of sequencing reads to generate aligned sequencing reads;

for a given position of the aligned sequencing reads, determining, by the one or more computing devices, an additional string of characters that corresponds to a nucleotide present at the given position of the aligned sequencing reads; and

generating, by the one or more computing devices and using a decoding scheme, a requested portion of the digital data based on the additional string of characters.

19. The method of claim 18 , wherein a number of nucleotides included in the nucleic acids corresponding to the nucleic acid representations is from about 100 nucleotides to about 8000 nucleotides.

20. The method of claim 18 , comprising:

causing, by the one or more computing devices, the requested portion of the digital data to be accessible to at least one computing device such that the at least one computing device can cause the requested portion of the digital data to at least one of be stored in memory related to the at least one computing device, be displayed by a display device related to the at least one computing device, or be used in one or more operations performed by an application executed by the at least one computing device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2023
From: LENOVO (UNITED STATES) INC.
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 065256/0382 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2023
From: FEITOSA, ALLAN EDUARDO; AOYAGI, THIAGO YUJI; LEAL, ADRIANO GALINDO; DA COSTA-MARTINS, ANDRE GUILHERME; FERREIRA DA SILVA, CRISTINA MARIA; DE SOUZA, DIEGO TRINDADE; UEDA, EDUARDO TAKEO; DE OLIVEIRA PARADA, MARCELO GONZAGA; VERONA, BRUNO MARINARO
To: LENOVO (UNITED STATES) INC.
Reel/Frame 064769/0132 →
Continuity (1)
Related Publication 20250078958A1 · Mar 6, 2025
References Cited (13)
US 9384320B2 · Church · 2016 [cited by examiner]
Blawat, Meinolf, “Forward error correction for DNA data storage”, Procedia Computer Science, vol. 80, 2016, pp. 1011-1022, (2016), 12 pgs. [cited by applicant]
Bornholt, James, “A DNA based archival storage system”, ACM SIGOPS Operating Systems Review, vol. 50, No. 2, pp. 637-649, 2016, (2016), 13 pgs. [cited by applicant]
Cao, “Minimum free energy coding for DNA storage”, IEEE Transactions on Nanobioscience, vol. 20, No. 2, pp. 212-222, 2021., (2020), 11 pgs. [cited by applicant]
Church, George M., “Next-generation digital information storage in DNA”, Science, vol. 337, No. 6102, pp. 1628, 2012., (2012), 2 pgs. [cited by applicant]
Erlich, Yaniv, “Fountain enables a robust and efficient storage architecture”, Science, vol. 355, No. 6328, pp. 950-954, 2017., (2017), 5 pgs. [cited by applicant]
Fei, Peng, “Ldpc Codes for Portable DNA Storage”, IEEE International Symposium on Information Theory, pp. 76-80, 2019., (2019), 6 pgs. [cited by applicant]
Goldman, Nick, “Towards practical, high-capacity, low-maintenance information storage in synthesized DNA”, Nature, vol. 494, No. 7435, pp. 77-80, 2013., (Feb. 7, 2013), 9 pgs. [cited by applicant]
Grass, Robert N., “Robust chemical preservation of digital information on DNA in silica with error-correcting codes”, Angewandte Chemie International Edition, vol. 54, No. 8, pp. 2552-2555, 2015., (2015), 4 pgs. [cited by applicant]
Organick, Lee, “Random access in large-scale DNA data storage”, Nature Biotechnology, vol. 36, pp. 242-248, 2018., (2018), 9 pgs. [cited by applicant]
Ping, Zhi, “Towards practical and robust DNA-based data archiving using the yin-yang codec system”, Nature Computational Science, vol. 2, pp. 234-242, 2022., (2022), 11 pgs. [cited by applicant]
Reuter, Jason, “High-Throughput Sequencing Technologies”, Molecular Cell 58, May 21, 2015, (May 21, 2015), 12 pgs. [cited by applicant]
Wang, Yixin, “Construction of bio-constrained code for DNA data storage”, IEEE Communication Letters, vol. 23, No. 6, pp. 963-966, 2019, (2019), 5 pgs. [cited by applicant]