JP2020534633A - Dnaベースのデータストレージ及びデータ取り出し - Google Patents

Dnaベースのデータストレージ及びデータ取り出し Download PDF

Info

Publication number
JP2020534633A
JP2020534633A JP2020500842A JP2020500842A JP2020534633A JP 2020534633 A JP2020534633 A JP 2020534633A JP 2020500842 A JP2020500842 A JP 2020500842A JP 2020500842 A JP2020500842 A JP 2020500842A JP 2020534633 A JP2020534633 A JP 2020534633A
Authority
JP
Japan
Prior art keywords
integer
nucleotide
nucleotide sequences
data
nucleic acids
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020500842A
Other languages
English (en)
Other versions
JP7090148B2 (ja
JP2020534633A5 (ja
Inventor
ロン ファン,
ロン ファン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Jinsirui Science and Technology Biology Corp
Original Assignee
Nanjing Jinsirui Science and Technology Biology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Jinsirui Science and Technology Biology Corp filed Critical Nanjing Jinsirui Science and Technology Biology Corp
Publication of JP2020534633A publication Critical patent/JP2020534633A/ja
Publication of JP2020534633A5 publication Critical patent/JP2020534633A5/ja
Application granted granted Critical
Publication of JP7090148B2 publication Critical patent/JP7090148B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B25/00ICT specially adapted for hybridisation; ICT specially adapted for gene or protein expression
    • G16B25/20Polymerase chain reaction [PCR]; Primer or probe design; Probe optimisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B30/00ICT specially adapted for sequence analysis involving nucleotides or amino acids
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/40Encryption of genetic data
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S977/00Nanotechnology
    • Y10S977/70Nanostructure
    • Y10S977/701Integrated with dissimilar structures on a common substrate
    • Y10S977/702Integrated with dissimilar structures on a common substrate having biological material component
    • Y10S977/704Nucleic acids, e.g. DNA or RNA

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Biotechnology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biophysics (AREA)
  • Bioethics (AREA)
  • Genetics & Genomics (AREA)
  • Databases & Information Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Molecular Biology (AREA)
  • Analytical Chemistry (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Proteomics, Peptides & Aminoacids (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本開示は、概してDNAベースのデータストレージに関する。入力データを核酸に記憶するための例示的な方法は、入力データをヌクレオチド配列の集合に変換すること、及びヌクレオチド配列の集合を含む核酸の集合を合成することを含む。変換することは、入力データを2進列に変換することを含むデータ処理ステップと、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。

Description

関連出願の相互参照
本願は、全内容がすべての目的のために本明細書に参照により援用される、2017年7月25日に出願された中国特許出願第201710611123.2号の利益を主張する。
ASCIIテキストファイルでの配列表の提出
ASCIIテキストファイルでの以下の提出、つまりコンピュータ可読形式(CRF)の配列表(ファイル名759892000340SEQLIST.TXT、記録日:2018年7月3日、サイズ、102KB)の内容は、その全体が参照により本明細書に援用される。
本開示は、概してデータストレージ及びデータ取り出しに関し、より詳細には、確実かつ効率的なDNAベースのデータストレージ及びデータ取り出しを達成するための技術に関する。
DNAをデータストレージ及びデータ取り出しのための手段として活用するという概念は、Joe Davis及び彼の共同研究者が、アイコンを符号化するための「Mocrovenus」と名付けられた合成DNAを作成し、それをE.coli細胞の中に組み込んだ1988年まで遡ることができる。例えば磁気テープ及びハードディスク等の従来の記憶媒体と比較すると、DNAベースのストレージは、より高密度(例えば、1EBのデータを記憶する場合〜1mm)、より長期に亘るストレージ(例えば、−18℃で百万年以上)、及びより低い維持費という優位点を有する。DNAストレージは、DNA記憶媒体の生成のためのオリゴヌクレオチド合成(特に、CustomArrayのような高スループットの合成プラットフォーム)と、情報取り出しのためのシークエンシング(特に、Illumina HiSeq 2500及びMiSeqのような次世代シークエンシング[NGS])の両方に基づく最先端の研究分野である。
ところが、現在、DNAベースのデータストレージはいくつかの制限を有している。例えば、DNA合成の生産コストはかなり高い。一方、データ取り出しの速度は、シークエンシングのために低い場合がある。したがって、DNAベースのストレージは、より少ない数の記憶媒体の読み取り及び書き込みを伴う大規模なアーカイブストレージにより適していると見なされてきた。さらに、プロセスの多様な段階(例えば、符号化、書き込み、記憶、復号、読み取り、取り出し)において多くのエラーがもたらされ、したがってデータストリームの入力及び出力に欠陥を生じさせる場合がある。例示的なエラーは、合成及びシークエンシング中に生じるDNAフラグメントの突然変異、削除、挿入、紛失、及び長期に亘る記憶の後の変性を含む。さらに、大量のデータが、DNAを使用し記憶されるとき、データをその全体で取り出すことなくデータの一部分に対するランダムアクセスを達成することは難易度が高い場合がある。
本発明は、確実かつ効率的なDNAベースのデータストレージ及びデータ取り出しのための技術に関する。具体的には、本発明は、入力されたデータを、例えばデオキシリボ核酸(「DNA」)等の核酸に記憶する正確で効率的かつ信頼できる方法を提供する。特に、本発明は、新規の5ビットトランスコーディングフレームワークを利用して、1つ以上のデータファイルを核酸配列(例えば、DNA配列)に変換する。また、本発明は、効率的かつ信頼できるデータストレージ及びデータ取り出しのための圧縮アルゴリズム(複数可)、エラー訂正アルゴリズム(複数可)、及びトランスコーディングフレームワーク(複数可)を含む統合プロセスも提供する。さらに、本発明は、同時に大規模なデータを記憶するが、所与のときに部分的な情報だけをブラウズする必要があるときに特に有益であるランダムデータアクセスを可能にする。本明細書に開示する方法に従って記憶できるデータは、例えばテキストファイル、高解像度ビデオ、画像、及び/または音声を含む、デジタルで(つまりバイナリデータで)表すことができるであろう任意のタイプのデータを含む。
一部の実施形態では、a)入力データをヌクレオチド配列に変換することであって、変換することが、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む変換することと、b)ヌクレオチド配列の集合を含む核酸の集合を合成することとを含む、核酸に入力データを記憶するための方法が提供される。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。
一部の実施形態では、データ処理ステップは、2進列を非重複5ビット2進列の数列に分割することを含む。
一部の実施形態では、ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換することを含む。
一部の実施形態では、ヌクレオチド符号化ステップは、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することをさらに含む。
一部の実施形態では、ヌクレオチド符号化ステップは、整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。
一部の実施形態では、複数の整数の初期部分列のそれぞれの長さは、選択した合成プラットフォームのオリゴ長、所望されるエラー許容範囲、入力データのサイズ、選択したエラー訂正符号、またはその組み合わせに基づいて決定される。
一部の実施形態では、ヌクレオチド符号化ステップは、インデックスを有する複数の整数部分列を得るために、インデックス情報を複数の整数の初期部分列のそれぞれに加えることをさらに含む。
一部の実施形態では、複数の整数の初期部分列のそれぞれに加えられたインデックス情報は整数の数列を含み、整数の数列の長さは入力データのサイズに基づく。
一部の実施形態では、ヌクレオチド符号化ステップは、インデックス情報を加えた後に、冗長性データを、インデックスを有する複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得ることを含む。
一部の実施形態では、冗長性データを、インデックスを有する複数の整数部分列に加えることは、空の行列を作成することであって、空の行列内の列数は、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列内の行数は、インデックスを有する複数の整数部分列のそれぞれの中の整数の数よりも大きい、作成することと、インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって生成されたデータで空の行列を充填することと、充填した行列に基づいて冗長性を有する複数の部分列を得ることとを含む。
一部の実施形態では、空の行列の列数は、選択した合成プラットフォームのオリゴ長、エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する複数の整数のサブシーエンスのサイズ、またはその組み合わせに基づいて決定される。
一部の実施形態では、空の行列の行数は、選択した合成プラットフォームのオリゴ長、エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する複数の整数のサブシーエンスのサイズ、またはその組み合わせに基づいて決定される。
一部の実施形態では、エラー訂正コーディングは、リードソロモン(「RS」)コーディングである。
一部の実施形態では、エラー訂正コーディングを適用することによって生成されたデータは、RSコーディングの文字列訂正及び/またはRSコーディングのブロック訂正を適用することによって生成される。
一部の実施形態では、5ビットトランスコーディングフレームワークは、表2による。
一部の実施形態では、R及びYは、1)RまたはYの直前のヌクレオチドとは異なること、及び/または2)ヌクレオチド配列の推定GC含有量に基づいて選ばれる。
一部の実施形態では、入力データは圧縮ファイルに相当する。一部の実施形態では、入力データは2つ以上のファイルに相当する。
一部の実施形態では、入力データはテキストファイルに相当する。
一部の実施形態では、データ処理ステップは、圧縮ファイルを得るために入力データを圧縮し、圧縮したファイルを2進列に変換することをさらに含む。
一部の実施形態では、圧縮ファイルは、レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、圧縮される。
一部の実施形態では、データ処理ステップは、2つ以上のファイルを1つのTARファイルにグループ化することをさらに含む。
一部の実施形態では、TARファイルは、レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、さらに圧縮される。
一部の実施形態では、ヌクレオチド符号化ステップは、ヌクレオチド配列の集合の各ヌクレオチド配列の5’末端及び3’末端にプライマー配列のペアを付加することをさらに含む。
一部の実施形態では、プライマーのペアは、合成した核酸の集合に付けられる。
一部の実施形態では、a)入力データの2つ以上の集合を、本明細書に説明する方法のいずれかに従って対応するヌクレオチド配列の2つ以上の集合に別々に変換することと、b)ヌクレオチド配列の2つ以上の集合の各集合の5’末端及び3’末端にプライマー配列のペアを別々に付加することであって、対応するヌクレオチド配列の2つ以上の集合のためのプライマーのペアが互いに異なる、付加することと、c)それぞれ対応するヌクレオチド配列の2つ以上の集合を含む核酸の2つ以上の集合を合成することと含む、入力データの2つ以上の集合を核酸に記憶するための方法が提供される。
一部の実施形態では、プライマーの各ペアは、対応するヌクレオチド配列の2つ以上の集合またはその相補配列のいずれか1つとは異なる配列を有する。
一部の実施形態では、合成した核酸の集合は、30%〜70%に及ぶGC含有量を有する。一部の実施形態では、合成した核酸の集合は、約70%未満のGC含有量を有する。
一部の実施形態では、合成した核酸の集合が保管される。一部の実施形態では、合成した核酸の集合は、乾燥により保管される。一部の実施形態では、合成した核酸の集合は、凍結乾燥により保管される。
一部の実施形態では、合成した核酸の集合は、担体上で不動にされる。一部の実施形態では、担体はマイクロアレイである。
一部の実施形態では、a)核酸の集合のヌクレオチド配列の集合を得ることと、b)ヌクレオチド配列の集合を出力データに変換することであって、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換して、それによって出力データを得ることを含むデータ処理ステップを含む、変換することを含む、核酸に記憶された出力データを取り出すための方法が提供される。
一部の実施形態では、核酸の集合は、出力データを取り出す前に増幅される。
一部の実施形態では、核酸の集合は、複数の配列リードを生成するために配列される。
一部の実施形態では、複数の配列リードは、ヌクレオチド配列の集合を得るためにペアにされ、マージされ、フィルタにかけられる。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。
一部の実施形態では、ヌクレオチド復号ステップは、ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。
一部の実施形態では、ヌクレオチド復号ステップは、エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることをさらに含む。
一部の実施形態では、エラー訂正コーディングを適用するステップは、i)複数のコンセンサス整数(consensus integer)部分列を得るために、RSコーディング文字列訂正を複数の整数部分列に適用することと、ii)インデックスを有する複数の整数部分列を得るために、RSコーディングブロック訂正を複数のコンセンサス整数部分列に適用することを含む。
一部の実施形態では、ヌクレオチド復号ステップは、複数の整数のコア部分列を得るために、インデックスを有する複数の整数部分列からインデックスを削除することをさらに含む。
一部の実施形態では、ヌクレオチド復号ステップは、整数のコア部分列を整数の文字列にマージすることをさらに含む。
一部の実施形態では、ヌクレオチド復号ステップは、整数の文字列を2進列に変換することをさらに含む。
一部の実施形態では、出力データは圧縮ファイルに記憶される。一部の実施形態では、データ処理ステップは、圧縮ファイルを解凍することをさらに含む。一部の実施形態では、解凍することは、LZMAアルゴリズムを通して実施される。
一部の実施形態では、出力データは複数のファイルに相当する。一部の実施形態では、複数のファイルは、TARアルゴリズムを通して出力データから抽出される。
一部の実施形態では、5ビットトランスコーディングフレームワークは表2による。
一部の実施形態では、核酸の集合は、3’末端及び5’末端にプライマー配列を含み、方法は、ヌクレオチド復号ステップの前にプライマー配列を削除することを含む。
一部の実施形態では、関心のある核酸の集合に記憶された出力データを取り出すための方法が提供され、関心のある核酸の集合は、混合物に存在する複数のヌクレオチド配列の集合のうちの1つであり、各集合は、出力データの異なる集合を符号化し、3’末端及び5’末端にプライマー対の異なる集合を有し、a)関心のある核酸に対応するプライマーペアを使用し、核酸の集合を増幅させることと、b)増幅させた核酸のヌクレオチド配列の集合を得ることと、c)請求項41〜53のいずれか1項に係る方法に従って、ヌクレオチド配列の集合を出力データに変換して、それによって出力データを得ることを含む。
一部の実施形態では、関心のある核酸の対応する2つ以上の集合に記憶された出力データの2つ以上の集合を取り出すための方法が提供され、関心のある核酸の2つ以上の集合は、混合物に存在する複数のヌクレオチド配列の中にあり、各集合は、出力データの異なる集合を符号化し、3’末端及び5’末端にプライマーペアの異なる集合を有し、a)関心のある核酸の2つ以上の集合に対応するプライマーペアを使用し、関心のある核酸の2つ以上の集合を増幅させること(例えば、別々に増幅させること又はともに増幅させること)と、b)増幅させた核酸のヌクレオチド配列の2つ以上の集合を得ることと、c)本明細書に説明する方法のいずれかに従って、ヌクレオチド配列の2つ以上の集合を出力データの2つ以上の集合に別々に変換して、それによって出力データの2つ以上の集合を得ることを含む。
一部の実施形態では、1つ以上のプログラムを記憶する非一過性のコンピュータ可読記憶媒体が提供され、1つ以上のプログラムは、電子機器の1つ以上のプロセッサによる実行時に、電子機器に本明細書に説明する方法のいずれかを実施させる命令を含む。
また、1つ以上のプロセッサ、メモリ、及び1つ以上のプログラムを含む核酸をベースにした、データストレージまたは核酸からのデータ取り出しを提供するためのシステムも提供され、1つ以上のプログラムは、メモリに記憶され、1つ以上のプロセッサにより実行されるように構成され、1つ以上のプログラムは、本明細書に説明する方法のいずれかを実施するための命令を含む。
また、本明細書に説明する方法のいずれかを実施するための手段を含む、核酸をベースにしたデータストレージまたは核酸からのデータ取り出しを提供するための電子機器も提供される。
一部の実施形態に従って、DNAベースのデータストレージ及びデータ取り出しを提供するための例示的なプロセスを示す。 一部の実施形態に従って、DNAベースのデータストレージのために圧縮データを処理するための例示的な状況を示す。 一部の実施形態に従って、インデックス及び冗長性データを、記憶されるデジタルコンテンツに加えるための例示的なステップを示す。 一部の実施形態に従って、インデックス及び冗長性データを、記憶されるデジタルコンテンツに加えるための例示的なステップを示す。 一部の実施形態に従って、インデックス及び冗長性データを、記憶されるデジタルコンテンツに加えるための例示的なステップを示す。 一部の実施形態に従って、インデックス及び冗長性データを、記憶されるデジタルコンテンツに加えるための例示的なステップを示す。 一部の実施形態に従って、DNAベースのデータストレージのために圧縮ファイルを処理するための例示的な状況を示す。 一部の実施形態に従って、例示的な5ビットトランスコーディングフレームワークを示す。 一部の実施形態に従って、記憶され、取り出される例示的なテキスト部分を示す。 一部の実施形態に従って、DNAベースのデータストレージ及びデータ取り出しの技術の例示的な実現を示す。 一部の実施形態に係る例示的な電子機器を示す。 一部の実施形態に従って、DNAベースのデータストレージを提供するための例示的なプロセスを示す。 一部の実施形態に従って、DNAベースのデータ取り出しを提供するための例示的なプロセスを示す。
本発明は、例えばデオキシリボ核酸(「DNA」)等の核酸に入力データを記憶する正確で効率的かつ信頼できる方法を提供する。具体的には、本発明は、1つ以上のデータファイルを核酸配列(例えば、DNA配列)に変換するために、新規の5ビットトランスコーディングフレームワークを利用する。この新規のトランスコーディングフレームワークは、正しいGC含有量を発見し、一定のホモポリマー(例えば、4以上のヌクレオチド長であるホモポリマー)を回避し、核酸の合成及び増幅におけるエラーレートを削減する効果的な核酸配列設計を可能にする。また、本発明は、効率的かつ信頼できるデータストレージ及びデータ取り出しのための圧縮アルゴリズム(複数可)、エラー訂正アルゴリズム(複数可)、及びトランスコーディングフレームワーク(複数可)を含む統合プロセスも提供する。本明細書に提供される方法は、大型ファイルを含む任意のサイズのデータを記憶するために使用できる。さらに、本発明は、同時に大規模なデータを記憶するが、所与のときに部分的な情報だけをブラウズする必要があるときに特に有益であるランダムデータアクセスを可能にする。本明細書に開示する方法に従って記憶できるデータは、例えばテキストファイル、高解像度ビデオ、画像、及び/または音声を含む、デジタルで(つまりバイナリデータで)表すことができるであろう任意のタイプのデータを含む。
したがって、本願は、一態様において、入力データをヌクレオチド配列の集合に変換するための方法だけではなく、核酸の集合に入力データを記憶するための方法も提供する。別の態様では、ヌクレオチド配列の集合を出力データに変換するための方法だけではなく、核酸に記憶された出力データを取り出すための方法も提供される。また、本明細書に説明する方法の任意の1つ以上のステップを実施するために1つ以上のプログラムを記憶するためのシステム及び非一過性のコンピュータ可読記憶媒体も提供される。
本明細書に説明する本発明の実施形態が、実施形態「から成ること」及び/または実施形態「から基本的に成ること」を含むことが理解される。
本明細書での値またはパラメータ「について」に対する参照は、本質的にその値またはパラメータを対象とする変形を含む(及び記述する)。例えば、「Xについて」を参照する記述は、「X」の記述を含む。
本明細書で使用するとおり、値またはパラメータに対してでは「ない」参照は、概して値またはパラメータ「以外」を意味し、記述する。例えば、方法はX型のがんを治療するために使用されないは、方法が、X以外の型のがんを治療するために使用されることを意味する。
本明細書及び添付の特許請求の範囲で使用するとおり、単数形「a」、「or」、及び「the」は、文脈上明らかに他の意味に解釈すべき場合を除いて、複数指示語を含む。
本明細書及び添付の特許請求の範囲で使用するとおり、「の集合」は、文脈上明らかに他の意味に解釈すべき場合を除いて、1つまたは複数の指示語を指す。核酸の集合は、同じファイルまたはともに圧縮されたファイルの同じグループからの核酸符号化データである場合がある。一部の実施形態では、同じファイル内の核酸は、5’末端及び3’末端に付けられたプライマーの同じ集合を有する場合がある。
データを符号化する方法及びデータストレージ
本発明は、一態様で、入力データをヌクレオチド配列の集合に変換するための(例えば、コンピュータ実装方法等の)方法を提供する。方法は、通常、入力データを2進列に変換するデータ処理ステップ、及びヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、2進列を変換するヌクレオチド符号化ステップを含む。方法は、核酸の集合に入力データを記憶するために有用であり、これは、最初に入力データをヌクレオチド配列の集合に変換し、次いでヌクレオチド配列の集合を含む核酸の集合を合成することを伴う。
入力データは、例えばテキストファイル、画像ファイル、(例えば、高解像度ファイル等の)音声/ビデオファイル等の任意のタイプの任意の数のファイルを表す場合がある。ファイルは、圧縮されていない場合もあれば、圧縮されている場合もある。ファイルが圧縮されていないとき、ファイルは、2進列に変換される前に先に圧縮される場合がある。例えば、ファイルは、レンペルジフマルコフチェーンアルゴリズムを使用し、LZMAファイル(例えば、A.lzma)に圧縮される場合がある。一部の実施形態では、2つ以上のファイル(例えば、3つの、4つの、5つの、6つの、及びそれ以上のファイル)が、先に例えばTARファイル(例えば、A.tar)に互いにグループ化され、TARファイルはさらにLZMAファイル(例えば、A.tar.lzma)に圧縮される。このようにして、方法は、単一の核酸組成の中に多数のファイル(例えば、1〜5、5〜10、10〜15、15〜25、25〜35、35〜50)を記憶することを可能にできる。
一部の実施形態では、単一ファイルの中の場所へのランダムアクセスを可能にするために、単一ファイルは、データの多数の集合に分割される場合があり、データの多数の集合はそれぞれ以下に説明するように圧縮され、処理される。例えば、10章を有する書籍に相当するデジタルファイルは10のファイルに分割され、各ファイルが単一の章に相当する場合がある。10のファイルは、次いで任意の章のランダムアクセスを達成するために別々に圧縮され、処理される。
データ処理ステップは、入力データを2進列に変換する。例えば、本明細書に説明する5ビットトランスコーディングフレームワークに従うことによって、2進列をヌクレオチド配列の集合に直接的に変換できる。代わりに、2進列は、例えば5ビットトランスコーディングフレームワークに従うことによって、次いでヌクレオチド配列の集合に変換される整数の文字列にさらに変換される場合がある。一部の実施形態では、整数の文字列は、エラー訂正コーディング及び/または冗長性を有する複数の整数部分列を生成するための他のプロセスにさらにさらされ、冗長性を有する複数の整数部分列は次いで、例えば5ビットトランスコーディングフレームワークに従うことによってヌクレオチド配列の集合に変換される。
このようにして、例えば、一部の実施形態では、入力データをヌクレオチド配列の集合に変換するための(例えば、コンピュータ実装方法等の)方法が提供され、変換することは、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。一部の実施形態では、入力データを核酸に記憶するための方法が提供され、方法は、a)入力データをヌクレオチド配列の集合に変換することであって、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む、変換することと、b)ヌクレオチド配列の集合を含む核酸の集合を合成することとを含む。
一部の実施形態では、データ処理ステップは、それぞれが整数の文字列を得るために0〜31に及ぶ整数にさらに変換される場合がある非重複5ビット2進列の数列に2進列を分割することを含む。整数の文字列は、例えば5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合に直接的に変換される場合がある。代わりに、整数の文字列は、以下に説明する追加の操作にさらされる。
具体的には、整数の文字列は、所定の長さを有する複数の整数の初期部分列に分割される場合がある。整数の初期部分列の所定の長さは、以下に詳細に説明するように、合成プラットフォームのオリゴ長、選択したエラー訂正符号、所望されるエラー許容範囲、オリゴの合成エラーレート、及び/または総符号化データサイズを含む複数の要因に基づいて計算される。例えば、整数文字列は、長さが固定された(例えば、22の整数)スライディングウィンドウを使用し、非重複整数部分列のリストにスライスされる場合がある。インデックスは、次いでインデックスを有する複数の整数部分列を生成するために、複数の整数の初期部分列のそれぞれに加えられる場合がある。インデックスは、やはり0〜31に及ぶいくつかの整数を含む場合がある。インデックスの長さは柔軟性があり、DNA合成のスループット及びデータサイズに依存する。
一部の実施形態では、冗長性データは、冗長性を有する複数の整数部分列を生成するために加えられる。例えば、リードソロモン(RS)エラー訂正コーディングは、RSコーディングの文字列訂正及びブロック訂正を通して冗長性を有する整数部分列の新規リストを生成するために複数の整数部分列に適用される。冗長性は、ドロップアウトにロバストネスを提供するための合成されたオリゴの余剰分を指す。文字列訂正における冗長性は、オリゴの遷移及びトランスバージョンのエラー訂正に役立つ。ブロック訂正における冗長性は、情報の挿入の訂正、削除、及び完全に紛失を可能にする。
例示的な一実施形態では、冗長性データを、インデックスを有する複数の整数部分列に加えることは、空の行列を作成することであって、空の行列の列数が、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列の行数が、インデックスを有する複数の整数部分列のそれぞれの整数の数よりも大きい、作成することと、インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって生成されたデータで空の行列を充填することと、充填した行列に基づいて冗長性を有する複数の部分列を得ることとを含む。空の行列の列及び/または行の数は、エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する複数の整数部分列のサイズ、またはその組み合わせに基づいて決定される場合がある。一部の実施形態では、エラー訂正コーディングはリードソロモン(「RS」)コーディングである。一部の実施形態では、エラー訂正コーディングを適用することにより生成されるデータは、RSコーディングの文字列訂正、及びRSコーディングのブロック訂正を適用することにより生成される。
一部の実施形態では、ヌクレオチド符号化ステップは、プライマー配列のペアを、ヌクレオチド配列の’5末端及び3’末端に付加することをさらに含む。プライマーは、例えばPCR増幅方法により、核酸の集合を増幅させるために使用できる。一部の実施形態では、プライマー配列は、合成の前にヌクレオチド配列の集合に加えられる。代わりに、プライマーは、例えばライゲーションにより、合成した核酸に付けられる場合がある。
方法は、入力データの2つ以上の集合を核酸に記憶するために有用である場合がある。具体的には、方法は、a)入力データの2つ以上の集合を、対応するヌクレオチド配列の2つ以上の集合に別々に変換すること、b)プライマー配列のペアを、ヌクレオチド配列の2つ以上の集合のそれぞれの5’末端及び3’末端に別々に付加することであって、対応するヌクレオチド配列の2つ以上の集合のそれぞれのためのプライマーが互いに異なる、付加すること、及びc)それぞれ対応するヌクレオチド配列の2つ以上の集合を含む核酸の複数の集合を合成することと、を含む。プライマーのペアのそれぞれは、2つ以上の対応するヌクレオチド配列またはその相補配列のうちの任意の1つとは異なる配列を有する場合がある。
合成した核酸は、約30%〜約70%に及ぶGC含有量を有する場合がある。例えば、合成した核酸は、約40%〜約60%、約30%〜約40%、約40%〜約50%、約50%〜約60%、または約60%〜約70%のいずれかに及ぶGC含有量を有する場合がある。一部の実施形態では、合成した核酸は、3ヌクレオチドよりも長いホモポリマーを有さない(例えば、4、5、6、7、8、9、または10のヌクレオチドのホモポリマーはない)。一部の実施形態での合成した核酸は、例えばおよそ50、150、200、300、または400ヌクレオチド長のいずれかのオリゴヌクレオチド等のオリゴヌクレオチドである。一部の実施形態では、核酸の集合は、およそ1、2、3、5、10、15、またはそれ以上のオリゴヌクレオチドのいずれかを含む。
一部の実施形態では、方法は、合成した核酸の集合を記憶することをさらに含む。一部の実施形態では、核酸の集合は、例えば凍結乾燥等の乾燥により保管される。核酸の集合は、凍結乾燥された組成物を含む乾燥組成物として保管される場合がある。一部の実施形態では、核酸の集合は、例えばマイクロアレイ等の固体担体を含む、担体上で不動にされる。一部の実施形態では、核酸は、(例えば、CustomArray 12Kチップの)1インチx3インチの面積あたり約5μgの密度を有するマイクロアレイ上に保管される。一部の実施形態では、入力データのサイズは、少なくとも約50MBである。
核酸配列を復号する方法及びデータ取り出し
本発明は、別の態様で、ヌクレオチド配列の集合を出力データに変換するための(例えば、コンピュータ実装方法等の)方法を提供する。方法は、符号化手順とほぼ逆の過程であり、通常、例えば5ビットトランスコーディングフレームワークを使用することによってヌクレオチド配列の集合を2進列に変換するヌクレオチド復号ステップ、及び2進列を出力データに変換するデータ処理ステップを含む。方法は、核酸の集合に記憶された出力データを取り出すために有用であり、これは、核酸の集合のヌクレオチド配列を得て、次いでヌクレオチド配列の集合を出力データに変換することを伴う。
一部の実施形態では、核酸の集合は、例えば核酸の集合の5’末端及び3’末端に存在するプライマーを使用することによって、最初に増幅される。そして、増幅された核酸は、例えば次世代シークエンシング等、シークエンシングにさらされる場合がある。次世代シークエンシング技術は、概して技術で既知である。例えば、核酸は、Illuminaのシークエンシング方法を使用することによって配列される場合がある。特定のファイルに属する配列は、プライマー配列を位置合わせすることによって得ることができる。一部の実施形態では、方法はNGSライブラリ準備を含む。核酸の集合が、データの異なる集合を符号化する核酸の異なる集合を含む混合物に存在するとき、関心のある核酸の集合は、関心のある核酸の集合に固有のプライマー対を使用することによって明確に増幅させることができ、このようにして関心のある核酸の集合に対応するデータのランダムアクセスを可能にする。次世代シークエンシングの単一のランでいくつかの圧縮ファイルを読み取り、復号する必要がある場合、核酸のその対応する集合のすべてはPCRを通して増幅され、すべての対応するペアが使用される。
一部の実施形態では、方法は、ペアエンド次世代シークエンシング、及び単一のクラスタからの順方向リード及び逆方向リードがペアにされ、単一のリードにマージされ、不規則な長さを有するすべての新しいリードがフィルタにかけられるリードペア及びリードマージを含む。そして、プライマー配列に従って、すべてのリードは、圧縮ファイルごとにグループ化される場合がある。プライマーは、次いで削除される場合があり、ヌクレオチド配列は、0〜31に及ぶ整数を含む複数の整数部分列に変換される、またはその後出力データに変換される2進列に直接的に変換されるかのどちらかである場合がある。
一部の実施形態では、方法は、インデックスを有する複数の整数部分列を得るために、複数の整数部分列のエラー訂正を適用することをさらに含む。例示的な一実施形態では、エラー訂正コーディングを適用するステップは、i)複数のコンセンサス整数部分列を得るために、RSコーディング文字列訂正を複数の整数部分列に適用すること、及びii)インデックスを有する複数の整数部分列を得るために、RSコーディングブロック訂正を複数のコンセンサス整数部分列に適用することを含む。1種類の核酸が合成中に分子の多くコピーを有し、何度も配列されるであろうため、多くのリードが1つの核酸を表すことがあるであろう。高スループット合成とシークエンシングの両方の間にもたらされるエラーのため、これらのリードは変形を有する場合があるが、最初に設計された核酸と完全によく一致する正しいリードは、依然としてカウントよりも有利である。整数文字列のあらゆる場所での最高頻度に基づいた訂正を通して、同一のインデックスを共用するすべての整数文字列を訂正し、文字列訂正とブロック訂正との間のコンセンサス整数文字列にマージすることができる。
インデックスを有する複数の整数部分列からのインデックスは、次いで複数の整数のコア部分列を得るために削除されてよい。整数文字列は、次いで完全な整数文字列に連結され、次いで2進列に変換される場合がある。2進列は、次いで例えば圧縮ファイル等のファイルの中に書き込まれる場合がある。圧縮ファイルは、次いで例えばLZMAアルゴリズムを使用することによって解凍される場合がある。解凍されたファイルが多数のファイルに対応するデータを含む場合、解凍されたファイルは、多数のファイルを得るためにTARアルゴリズムによりさらに処理される(例えば、抽出される)。
一部の実施形態では、方法は、関心のある核酸の集合に記憶された出力データを取り出すために有用であり、関心のある核酸の集合は、混合物に存在するヌクレオチド配列の複数の集合のうちの1つであり、各集合は出力データの異なる集合を符号化し、3’末端及び5’末端にプライマーペアの異なる集合を有する。方法は、a)関心のある核酸の集合に対応するプライマーペアを使用し、核酸の集合を増幅させること、b)増幅させた核酸の集合のヌクレオチド配列の集合を得ること、及びc)請求項41〜請求項53のいずれか1項に記載の方法に従って、ヌクレオチド配列の集合を出力データに変換すること、それによって出力データを得ることを含む。
一部の実施形態では、関心のある核酸の対応する2つ以上の集合に記憶された出力データの2つ以上の集合を取り出すための方法が提供され、関心のある核酸の集合は、混合物に存在する核酸の複数の集合の中にあり、各集合は、出力データの異なる集合を符号化し、3’末端及び5’末端にプライマーペアの異なる集合を有し、方法は、a)関心のある核酸の2つ以上の集合に対応するプライマーペアを使用し、関心のある核酸の2つ以上の集合を増幅させる(例えば、別々に増幅させるまたはともに増幅させる)こと、b)増幅させた核酸の2つ以上の集合のヌクレオチド配列の2つ以上の集合を得ること、及びc)ヌクレオチド配列の2つ以上の集合を出力データの2つ以上の集合に別々に変換すること、それによって出力データの2つ以上の集合を得ることを含む。
5ビットトランスコーディングフレームワーク
本発明の方法は、2進列または整数文字列をヌクレオチド配列の集合に変換するための新規の5ビットトランスコーディングフレームワークを利用する。「5ビットトランスコーディングフレームワーク」は、以下の表1に従った変換を指す。概して、2進列からのあらゆる5個の継続ビットは、0〜31に及ぶ整数、ひいては3個のヌクレオチド(つまり、3マー)として表されるであろう。例えば、4つの塩基(例えば、A、T、G、及びC)、したがって2マー(つまり、NN)を有する核酸は、16種類(例えば、AA、AT、AG、AC、TA、TT、TG、TC、GA、GT、GG、GC、CA、CT、CG、及びCC)を有するべきである。変性した塩基R及びYが2マーの後に連結され、3マー(NNR/NNY)が、0〜31に及ぶ32の整数とよく一致していた32種類から成り、DNA配列に変換中の2進列を作ると仮定する。
一部の実施形態では、RはA、T、G、及びCのうちの任意の2つから選択され、一方Yは、A、T、G、及びCのうちの対応する他の2つから選択される。例えば、一部の実施形態では、RはA及びGから選択され、一方YはT及びCから選択される。一部の実施形態では、RはA及びCから選択され、一方YはT及びGから選択される。一部の実施形態では、RはT及びGから選択され、一方YはA及びCから選択される。一部の実施形態では、RはT及びCから選択され、一方YはA及びGから選択される。
R及びYに対応するヌクレオチドの選択は、例えば所望のGC含有量を維持する、及び/またはホモポリマーを回避するために、その前部の主成分に依存する場合がある。例えば、RがA及びGから選択され、YがC及びTから選択される方式においては、AまたはGがRのために選ばれるのかどうか、及びCまたTがYのために選ばれるかどうかは、その前部の主成分(つまり、3マーの第2の塩基)次第である。一部の実施形態では、R及びYは、第2の塩基及び第3の塩基が異なるように選ばれる。一部の実施形態では、R及びYは、所望のGCバランスを維持するために選ばれる。規則に従う限り、R及びYは無作為に選ぶことができる。このトランスコーディングフレームワークのコーディングの可能性は1.67(つまり、3ナノテスラに対して5ビット)である。
表2は、例示的な5ビットトランスコーディングフレームワークを提供する。図2に示す特定の方式では、RはA及びGから選択されるべきであり、一方YはC及びTから選択されるべきである。同じ原理に従う他のトランスコーディングフレームワークも使用できることが理解されるべきである。
核酸の合成及び記憶
所望のヌクレオチド配列を含む核酸は、任意の核酸合成方法を使用し、合成することができる。一部の実施形態では、核酸は、化学合成により合成される。高スループットの核酸合成の方法は、参照によりその全体が本明細書に援用される、2002年2月17日に出願され、「COMBINATORIAL SYNTHESIS ON ARRAYS」と題する第WO03052383号として公開された国際出願第WO2002US40580号、及び2016年12月に出版された、Maurer et.al.による「ELECTROCHEMICALLY GENERATED ACID AND ITS CONTAINMENT TO 100 MICRON REACTION AREAS FOR THE PRODUCTION OF DNA MICROARRAYS」と題する出版物に説明されている。
核酸は、いったん合成されると、多様な媒体に保管できる。一部の実施形態では、核酸は乾燥され(例えば、冷凍乾燥され)、バイアル内に保管される。一部の実施形態では、核酸は、例えばマイクロアレイ等の固体担体等、担体上で不動にされる。
コンピュータ可読記憶媒体及びシステム
また、本明細書に提供されるのは、1つ以上のプログラムを記憶する非一過性のコンピュータ可読記憶媒体であり、1つ以上のプログラムは、電子機器の1つ以上のプロセッサによる実行時に、電子機器に、本明細書に説明する方法のいずれかの1つ以上のステップを実施させる命令を含む。
一部の実施形態では、核酸ベースのデータストレージまたは核酸からのデータ取り出しを提供するためのシステムが提供され、システムは、1つ以上のプロセッサ、メモリ、及び1つ以上のプログラムを含み、1つ以上のプログラムは、メモリに記憶され、1つ以上のプロセッサにより実行されるように構成され、1つ以上のプログラムは、本明細書に説明する方法のいずれか1つの1つ以上のステップを実施するための命令を含む。
一部の実施形態では、核酸ベースのデータストレージまたは核酸からのデータ取り出しを提供するための電子機器が提供され、機器は、本明細書に説明する方法のいずれか1つを実施するための手段を含む。
例示的な実施形態
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を、非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。ヌクレオチド符号化ステップは、整数の文字列を所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。
一部の実施形態では、複数の整数の初期部分列のそれぞれの長さは、選択した合成プラットフォームのオリゴ長、所望されるエラー許容範囲、入力データのサイズ、選択されたエラー訂正符号、またはその組み合わせに基づいて決定される。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。ヌクレオチド符号化ステップは、整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。ヌクレオチド符号化ステップは、インデックスを有する複数の整数部分列を得るために、インデックス情報を整数の複数の初期部分列のそれぞれに加えることをさらに含む。
一部の実施形態では、複数の整数の初期部分列のそれぞれに加えられたインデックス情報は、整数の数列を含み、整数の数列の長さは、入力データのサイズに基づく。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。ヌクレオチド符号化ステップは、整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。ヌクレオチド符号化ステップは、インデックスを有する複数の整数部分列を得るために、複数の整数の初期部分列のそれぞれにインデックス情報を加えることをさらに含む。ヌクレオチド符号化ステップは、インデックス情報を加えた後に、冗長性データを、インデックスを有する複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得ることをさらに含む。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を、非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。ヌクレオチド符号化ステップは、整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。ヌクレオチド符号化ステップは、インデックスを有する複数の整数部分列を得るために、インデックス情報を複数の整数の初期部分列のそれぞれに加えることをさらに含む。ヌクレオチド符号化ステップは、インデックス情報を加えた後、冗長性データを、インデックスを有する複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得ることをさらに含む。冗長性データを、インデックスを有する複数の整数部分列に加えることは、空の行列を作成することであって、空の行列の列数が、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列の行数が、インデックスを有する複数の整数部分列のそれぞれの整数の数よりも大きい、作成することと、インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって生成されたデータで空の行列を充填することと、充填した行列に基づいて冗長性を有する複数の部分列を得ることを含む。
一部の実施形態では、空の行列の列数は、選択した合成プラットフォームのオリゴ長、エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する複数の整数部分列のサイズ、またはその組み合わせに基づいて決定される。
一部の実施形態では、空の行列の行数は、選択した合成プラットフォームのオリゴ長、エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する複数の整数部分列のサイズ、またはその組み合わせに基づいて決定される。
一部の実施形態では、エラー訂正コーディングはリードソロモン(「RS」)コーディングである。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。データ処理ステップは、2進列を、非重複5ビット2進列の数列に分割することを含む。ヌクレオチド符号化ステップは、整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、ヌクレオチド配列の集合を得るために5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することを含む。ヌクレオチド符号化ステップは、整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む。ヌクレオチド符号化ステップは、インデックスを有する複数の整数部分列を得るために、複数の整数の初期部分列のそれぞれにインデックス情報を加えることをさらに含む。ヌクレオチド符号化ステップは、インデックス情報を追加した後、冗長性データを、インデックスを有する複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得ることをさらに含む。冗長性データを、インデックスを有する複数の整数部分列に加えることは、空の行列を作成することであって、空の行列の列数が、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列の行数がインデックスを有する複数の整数部分列のそれぞれの整数の数よりも大きい、作成することと、インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって生成されたデータで空の行列を充填することと、充填した行列に基づいて冗長性を有する複数の部分列を得ることとを含む。エラー訂正コーディングを適用することにより生成されるデータは、RSコーディングの文字列訂正及び/またはRSコーディングのブロック訂正を適用することによって生成される。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することと、ii)2進列を非重複5ビット2進列の数列に分割することと、iii)整数の文字列を得るために、各5ビット2進列を0〜31に及ぶ整数に変換し、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することと、iv)整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することと、v)インデックスを有する複数の整数部分列を得るために、インデックス情報を、複数の整数の初期部分列のそれぞれに加えることと、vi)インデックス情報を加えた後、冗長性データを、インデックスを有する複数の整数部分列に加え、それによって冗長性を有する複数の整数部分列を得て、それによって核酸配列の集合を得ることとを含む。
一部の実施形態では、入力データを核酸に記憶するための方法が提供され、方法は、i)入力データを2進列に変換することと、ii)2進列を非重複5ビット2進列の数列に分割することと、iii)整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することと、iv)整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することと、v)インデックスを有する複数の整数部分列を得るために、複数の整数の初期部分列のそれぞれにインデックス情報を加えることと、vi)インデックス情報を加えた後、冗長性データを、インデックスを有する複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得て、それによって核酸配列の集合を得ることと、vii)ヌクレオチド配列の集合を含む核酸の集合を合成することとを含む。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することと、ii)2進列を非重複5ビット2進列の数列に分割することと、iii)整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することと、iv)整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することと、v)インデックスを有する複数の整数部分列を得るために、インデックス情報を、複数の整数の初期部分列のそれぞれに加えることと、vi)空の行列を作成することであって、空の行列の列数が、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列の行数が、インデックスを有する複数の整数部分列のそれぞれの整数の数よりも大きい、作成することと、vii)インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって(例えば、RSコーディングの文字列訂正及び/またはRSコーディングのブロック訂正を適用することによって)生成されたデータで空の行列を充填することと、vii)充填した行列に基づいて冗長性を有する複数の部分列を得て、それによって核酸配列の集合を得ることを含む。
一部の実施形態では、入力データを核酸に記憶するための方法が提供され、方法は、i)入力データを2進列に変換することと、ii)2進列を、非重複5ビット2進列の数列に分割することと、iii)整数の文字列を得るために各5ビット2進列を0〜31に及ぶ整数に変換し、5ビットトランスコーディングフレームワークを使用し、整数の文字列を変換することと、iv)整数の文字列を、所定の長さを有する複数の整数の初期部分列に分割することと、v)インデックスを有する複数の整数部分列を得るために、インデックス情報を、複数の整数の初期部分列のそれぞれに加えることと、vi)空の行列を作成することであって、空の行列の列数が、インデックスを有する複数の整数部分列のサイズよりも大きく、空の行列の行数が、インデックスを有する複数の整数部分列のそれぞれの整数の数よりも大きい、作成することと、vii)インデックスを有する複数の整数部分列及びエラー訂正コーディングを適用することによって(例えば、RSコーディングの文字列訂正及び/またはRSコーディングのブロック訂正を適用することによって)生成されたデータで空の行列を充填することと、viii)充填した行列に基づいて、冗長性を有する複数の部分列を得て、それによって核酸配列の集合を得ることと、xi)ヌクレオチド配列の集合を含む核酸の集合を合成することとを含む。
一部の実施形態では、核酸に記憶された出力データを取り出すための方法が提供され、方法は、i)核酸の集合のヌクレオチド配列を得ることと、ii)ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することと、iii)複数の整数部分列を2進列に変換することと、iv)2進列を出力データに変換して、それによって出力データを得ることとを含む。
一部の実施形態では、核酸に記憶された出力データを取り出すための方法が提供され、方法は、i)複数の配列リードを生成するために、核酸の集合を配列することと、ii)ヌクレオチド配列の集合を得るためにペアにすること、マージすること、及び/またはフィルタにかけることと、iii)ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することと、iv)エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることと、v)インデックスを有する複数の整数部分列を2進列に変換することと、vi)2進列を出力データに変換して、それによって出力データを得ることとを含む。
一部の実施形態では、核酸に記憶された出力データを取り出すための方法が提供され、方法は、i)複数の配列リードを生成するために核酸の集合を配列することと、ii)ヌクレオチド配列の集合を得るためにペアにすること、マージすること、及び/またはフィルタにかけることと、iii)ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することと、iv)複数のコンセンサス整数部分列を得るために、RSコーディング文字列訂正を複数の整数部分列に適用することと、v)インデックスを有する複数の整数部分列を得るために、RSコーディングブロック訂正を複数のコンセンサス整数部分列に適用することと、vi)インデックスを有する複数の整数部分列を2進列に変換することと、vii)2進列を出力データに変換して、それによって出力データを得ることとを含む。
一部の実施形態では、核酸に記憶された出力データを取り出すための方法が提供され、方法は、i)複数の配列リードを生成するために核酸の集合を配列することと、ii)ヌクレオチド配列の集合を得るためにペアにすること、マージすること、及び/またはフィルタにかけることと、iii)ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することと、iv)複数のコンセンサス整数部分列を得るために、RSコーディング文字列訂正を複数の整数部分列に適用することと、v)インデックスを有する複数の整数部分列を得るために、RSコーディングブロック訂正を複数のコンセンサス整数部分列に適用することと、vi)複数の整数のコア部分列を得るために、インデックスを有する複数の整数部分列からインデックスを削除することと、vii)整数のコア部分列を整数の文字列にマージすることと、viii)整数の文字列を2進列に変換することと、ix)2進列を出力データに変換して、それによって出力データを得ることを含む。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。5ビットトランスコーディングフレームワークは、表2による。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。5ビットトランスコーディングフレームワークは、表2による。R及びYは、1)RまたはYの直前のヌクレオチドとは異なること、及び/または2)ヌクレオチド配列の推定GC含有量に基づいて選ばれる。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。入力データは圧縮ファイルに相当する。圧縮ファイルは、レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、圧縮される。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。入力データは2つ以上のファイルに相当する。データ処理ステップは、2つ以上のファイルを1つのTARファイルにグループ化することをさらに含む。TARファイルは、レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、さらに圧縮される。
一部の実施形態では、入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法が提供され、方法は、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む。ヌクレオチド符号化ステップは、プライマー配列のペアを、ヌクレオチド配列の集合の各ヌクレオチド配列の5’末端及び3’末端に付加することをさらに含む。
一部の実施形態では、a)入力データをヌクレオチド配列の集合に変換することであって、変換することが、i)入力データを2進列に変換することを含むデータ処理ステップ、ii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む、変換することと、b)ヌクレオチド配列の集合を含む核酸の集合を合成することとを含む、入力データを核酸に記憶するための方法が提供される。方法は、プライマーのペアを、合成した核酸の集合に付けることをさらに含む。
一部の実施形態では、a)本明細書に説明する方法のいずれかに従って、入力データの2つ以上の集合を対応するヌクレオチド配列の2つ以上の集合に別々に変換することと、b)プライマー配列のペアを、ヌクレオチド配列の2つ以上の集合の各集合の5’末端及び3’末端に別々に付加することであって、対応するヌクレオチド配列の2つ以上の集合のためのプライマーのペアが互いに異なる、付加することと、c)それぞれ対応するヌクレオチド配列の2つ以上の集合を含む核酸の2つ以上の集合を合成することとを含む、入力データの2つ以上の集合を核酸に記憶するための方法が提供される。
一部の実施形態では、a)本明細書に説明する方法のいずれかに従って、入力データの2つ以上の集合を対応するヌクレオチド配列の2つ以上の集合に別々に変換することと、b)プライマー配列のペアを、ヌクレオチド配列の2つ以上の集合の各集合の5’末端及び3’末端に別々に付加することであって、対応するヌクレオチド配列の2つ以上の集合のためのプライマーのペアが互いに異なる、付加することと、c)それぞれ対応するヌクレオチド配列の2つ以上の集合を含む核酸の2つ以上の集合を合成することとを含む、入力データの2つ以上の集合を核酸に記憶するための方法が提供される。プライマーの各ペアは、対応するヌクレオチド配列またはその相補配列の2つ以上の集合のうちの任意の1つとは異なる配列を有する。
一部の実施形態では、合成した核酸の集合は、30%〜70%に及ぶGC含有量を有する。
一部の実施形態では、a)入力データをヌクレオチド配列の集合に変換することであって、変換することが、i)入力データを2進列に変換することを含むデータ処理ステップ、及びii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することを含むヌクレオチド符号化ステップを含む、変換することと、ヌクレオチド配列の集合を含む核酸の集合を合成することを含む、入力データを核酸に記憶するための方法が提供される。方法は、合成した核酸の集合を保管することをさらに含む。
一部の実施形態では、合成した核酸の集合は、乾燥により保管される。一部の実施形態では、合成した核酸は、凍結乾燥により保管される。
一部の実施形態では、合成した核酸の集合は、マイクロアレイである場合がある担体上で不動にされる。
一部の実施形態では、a)核酸の集合のヌクレオチド配列の集合を得ることと、b)ヌクレオチド配列の集合を出力データに変換することであって、変換することが、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換して、それによって出力データを得ることを含むデータ処理ステップを含む、変換することを含む、核酸に記憶された出力データを取り出すための方法が提供される。方法は、出力データを取り出す前に、核酸の集合を増幅させることをさらに含む。
一部の実施形態では、a)核酸の集合のヌクレオチド配列の集合を得ることと、b)ヌクレオチド配列の集合を出力データに変換することであって、変換することが、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換して、それによって出力データを得ることを含むデータ処理ステップを含む、変換することを含む、核酸に記憶された出力データを取り出すための方法が提供される。方法は、複数の配列リードを生成するために、核酸の集合を配列することをさらに含む。複数の配列リードは、ヌクレオチド配列の集合を得るためにペアにされ、マージされ、フィルタにかけられる。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。ヌクレオチド復号ステップは、ヌクレオチド配列を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。ヌクレオチド復号ステップは、ヌクレオチド配列を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。ヌクレオチド復号ステップは、エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることをさらに含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。ヌクレオチド復号ステップは、ヌクレオチド配列を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。ヌクレオチド復号ステップは、エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることをさらに含む。エラー訂正コーディングを適用するステップは、i)複数のコンセンサス整数部分列を得るために、RSコーディング文字列訂正を複数の整数部分列に適用することと、ii)インデックスを有する複数の整数部分列を得るために、RSコーディングブロック訂正を複数のコンセンサス整数部分列に適用することを含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。ヌクレオチド復号ステップは、ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。ヌクレオチド復号ステップは、エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることをさらに含む。ヌクレオチド復号ステップは、複数の整数のコア部分列を得るために、インデックスを有する複数の整数部分列からインデックスを削除することをさらに含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。出力データは圧縮ファイルに記憶される。データ処理ステップは、例えばLZMAアルゴリズムによって圧縮ファイルを解凍することをさらに含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。出力データは複数のファイルに相当する。方法は、TARアルゴリズムによって出力データから複数のファイルを抽出することをさらに含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。ヌクレオチド復号ステップは、ヌクレオチド配列の集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む。ヌクレオチド復号ステップは、エラー訂正コーディングを複数の整数部分列に適用して、それによってインデックスを有する複数の整数部分列を得ることをさらに含む。ヌクレオチド復号ステップは、複数の整数のコア部分列を得るために、インデックスを有する複数の整数部分列からインデックスを削除することをさらに含む。ヌクレオチド復号ステップは、整数のコア部分列を整数の文字列にマージし、整数の文字列を2進列に変換することをさらに含む。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。5ビットトランスコーディングフレームワークは表2による。
一部の実施形態では、i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の集合を2進列に変換することを含むヌクレオチド復号ステップ、及びii)2進列を出力データに変換することを含むデータ処理ステップを含む、ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法が提供される。核酸の集合は、3’末端及び5’末端にプライマー配列を含み、方法は、ヌクレオチド復号ステップの前にプライマー配列を削除することを含む。
一部の実施形態では、DNAベースのデータストレージを提供するためのコンピュータ対応の方法が提供され、方法は、デジタルファイルを2進列に変換することと、整数の文字列を入手するために5ビットトランスコーディングフレームワークを使用し、2進列を変換することと、整数の文字列から、複数の整数の部分列を入手することと、複数の整数の部分列をDNA合成のためのDNAオリゴの複数の表現に変換することを含む。
一部の実施形態では、整数の文字列を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換することは、2進列を非重複5ビット2進列の数列に分割することと、整数の文字列を得るために、各5ビット2進列を0〜31に及ぶ整数に変換することを含む。一部の実施形態では、整数の文字列は、所定の長さを有する複数の整数の初期部分列にさらに分割される。一部の実施形態では、変換される複数の整数の部分列を得ることは、インデックス情報を、初期の複数の整数の部分列の各部分列に加えることと、インデックス情報を加えた後、複数の整数の部分列を得るために、冗長性データを初期の複数の整数の部分列に加えることを含む。一部の実施形態では、初期の複数の部分列の各部分列に加えられたインデックス情報は整数の文字列を含み、インデックス情報に対応する整数の文字列の長さは、デジタルファイルのサイズに基づく。
一部の実施形態では、方法は、冗長性データを複数の整数の部分列に加えることを含み、これは、例えば、初期の複数の整数の部分列の部分集合を得ることと、空の行列を選択することであって、空の行列の列数が、部分集合の部分列の数よりも大きく、空の行列の行数が、部分集合の各部分列の整数の数よりも大きい、選択することと、初期の複数の整数の部分列の部分集合及びエラー訂正符号に対応するデータで空の行列を充填することと、充填した行列に基づいて複数の整数の部分列を得ることとを含む場合がある。一部の実施形態では、空の行列の列数は、エラー訂正符号のタイプ、所定のエラー許容範囲値、部分集合のサイズ、またはその組み合わせに基づいて選択される。一部の実施形態では、空の行列の行数は、エラー訂正符号のタイプ、所定のエラー許容範囲値、部分集合のサイズ、またはその組み合わせに基づいて選択される。
一部の実施形態では、エラー訂正符号はリードソロモン(「RS」)符号である。一部の実施形態では、複数の整数の部分列をDNAオリゴの複数の表現に変換することは、複数の整数の部分列の整数を3個のヌクレオチドの表現に変換することを含み、3個のヌクレオチドの第1は、A、T、G、及びCから選択され、3個のヌクレオチドの第2は、A、T、G、及びCから選択され、3個のヌクレオチドの第3は、2つのオプションのうちの1つから選択される。
一部の実施形態では、デジタルファイルは、1つ以上のファイルまたはディレクトリのグループに対応する圧縮ファイルである。一部の実施形態では、デジタルファイルは、レンペルジフマルコフチェーンアルゴリズムを使用し、圧縮された1つ以上のファイルまたはディレクトリのグループに対応するLZMAファイルを含む。
上述した実施形態のいずれか1つに係る一部の実施形態では、方法は、DNAオリゴの複数の表現の各オリゴ表現に、プライマーのペアを表すデータを加えること、及びプライマーのペアを表す情報を加えた後、DNAオリゴの複数の表現に基づいたDNA合成の実行を生じさせることをさらに含む。
一部の実施形態では、方法は、第2のデジタルファイルを得ることと、第2のデジタルファイルに基づいてDNAオリゴの第2の複数の表現を得ることと、プライマーの第2のペアを表すデータを、DNAオリゴの第2の複数の表現の各オリゴ表現に加えることであって、プライマーの第2のペアがプライマーの第1のペアとは異なる、加えることと、DNAオリゴの複数の表現及びDNAオリゴの第2の複数の表現に基づいてDNA合成を実行することをさらに含む。
一部の実施形態では、DNAベースのデータ取り出しを提供するためのコンピュータ対応の方法が提供され、方法は、デジタルファイルに対応する複数のリードを得ることと、複数のリードに基づいて、複数の整数の部分列を得ることと、複数の整数の部分列を整数の文字列に変換することと、5ビットフレームワークを使用し、整数の文字列を2進列に変換することと、2進列に基づいてデジタルファイルを得ることとを含む。一部の実施形態では、デジタルファイルに対応する複数のリードを得ることは、デジタルファイルに事前に関連付けられた(pre−associated)プライマーを識別することを含む。一部の実施形態では、複数の整数の部分列を得ることは、複数のリードに基づいて頻度ベースのエラー訂正を実行することを含む。一部の実施形態では、5ビットトランスコーディングフレームワークを使用し、整数の文字列を2進列に変換することは、整数の文字列の各整数を5ビット2進数に変換することを含む。
一部の実施形態では、1つ以上のプログラムを記憶する非一過性コンピュータ可読記憶媒体が提供され、1つ以上のプログラムは、電子機器の1つ以上のプロセッサによる実行時に、電子機器に、デジタルファイルを2進列に変換させる、整数の文字列を得るために5ビットトランスコーディングフレームワークを使用し、2進列を変換させる、整数の文字列から、複数の整数の部分列を得させ、複数の整数の部分列をDNA合成のためのDNAオリゴの複数の表現に変換させる命令を含む。
一部の実施形態では、DNAベースのデータストレージを提供するためのシステムが提供され、システムは、1つ以上のプロセッサ、メモリ、及び1つ以上のプログラムを含み、1つ以上のプログラムは、メモリに記憶され、1つ以上のプロセッサにより実行されるように構成され、1つ以上のプログラムは、デジタルファイルを2進列に変換すること、整数の文字列を得るために、5ビットトランスコーディングフレームワークを使用し、2進列を変換すること、整数の文字列から、複数の整数の部分列を得ること、及び複数の整数の部分列をDNAオリゴの複数の表現に変換することのための命令を含む。
一部の実施形態では、1つ以上のプログラムを記憶する非一過性コンピュータ可読記憶媒体が提供され、1つ以上のプログラムは、電子機器の1つ以上のプロセッサによる実行時に、電子機器に、デジタルファイルに対応する複数のリードを得させ、複数のリードに基づいて、複数の整数の部分列を得させ、複数の整数の部分列を整数の文字列に変換させ、5ビットフレームワークを使用し、整数の文字列を2進列に変換させ、2進列に基づいてデジタルファイルを得させる命令を含む。
一部の実施形態では、DNAベースのデータストレージを提供するためのシステムが提供され、システムは、1つ以上のプロセッサ、メモリ、及び1つ以上のプログラムを含み、1つ以上のプログラムは、メモリに記憶され、1つ以上のプロセッサにより実行されるように構成され、1つ以上のプログラムは、デジタルファイルに対応する複数のリードを得ること、複数のリードに基づいて、複数の整数の部分列を得ること、複数の整数の部分列を整数の文字列に変換すること、5ビットフレームワークを使用し、整数の文字列を2進列に変換すること、及び2進列に基づいてデジタルファイルを得ることのための命令を含む。
例示的な実施態様によれば、方法の異なるステップは、1つまたは複数のコンピュータソフトウェアプログラムにより実装され、このソフトウェアプログラムは、本開示に係るリレーモジュールのデータプロセッサにより実行されるように設計され、本方法の異なるステップの実行を制御するように設計されるソフトウェア命令を含む。
その結果として、本開示の態様は、コンピュータによってまたはデータプロセッサによって実行されやすいプログラムにも関し、このプログラムは、上記にここに言及した方法のステップの実行を命令するための命令を含む。
このプログラムは、なんであれ任意のプログラミング言語を使用し、ソースコード、オブジェクトコード、または例えば、部分的にコンパイルされた形でまたは任意の他の所望の形で等、ソースコードとオブジェクトコードとの中間であるコードの形をとる場合がある。
また、本開示は、データプロセッサにより読み取り可能であり、上記にここに言及したプログラムの命令を含む情報媒体にも関する。
情報媒体は、プログラムを記憶できる任意のエンティティまたはデバイスである場合がある。例えば、媒体は、例えば(「コンパクトディスク―読み取り専用メモリ」を表す)CD−ROM、もしくは超小型電子回路ROM等、(「読み取り専用メモリ」を表す)ROM、または再び例えばフロッピー(登録商標)ディスクもしくはハードディスクドライブ等の磁気記録手段等の記憶手段を含む場合がある。
さらに、情報媒体は、電気ケーブルもしくは光ケーブルを通して、無線によって、または他の手段によって伝達できる電気信号又は光信号等の伝送可能なキャリヤである場合がある。プログラムは、特別にインターネットタイプのネットワークにダウンロードされる場合がある。
代わりに、情報媒体は、プログラムがその中に組み込まれる集積回路である場合があり、回路は、問題の方法を実行する、または問題の方法の実行で使用されるように適応される。
一実施形態によれば、本開示の実施形態は、ソフトウェア構成要素及び/またはハードウェア構成要素を用いて実施される。この観点から、用語「モジュール」は、本書においてソフトウェア構成要素とハードウェア構成要素の両方に、またはハードウェア構成要素及びソフトウェア構成要素の集合に対応する場合がある。
ソフトウェア構成要素は、1つ以上のコンピュータプログラム、プログラムの1つ以上のサブプログラム、またはより一般的には、関係するモジュールについて以下にここに記述されることに従って機能もしくは一連の機能を実装できるプログラムもしくはソフトウェアプログラムの任意の要素に相当する。1つの係るソフトウェア構成要素は、物理的なエンティティ(端末、サーバ等)のデータプロセッサにより実行され、この物理的なエンティティのハードウェアリソース(メモリ、記録媒体、通信バス、入出力電子ボード、ユーザーインタフェース等)にアクセスできる。
同様に、ハードウェア構成要素は、関係するモジュールについて以下にここに記述されることに従って機能もしくは一連の機能を実装できるハードウェアユニットの任意の要素に相当する。ハードウェア構成要素は、プログラム可能なハードウェア構成要素、または例えば集積回路、スマートカード、メモリカード、ファームウェア等を実行するための電子ボード等、ソフトウェアの実行用の集積回路付きの構成要素であってよい。変形では、ハードウェア構成要素は、中央演算処理装置、及び/またはマイクロプロセッサ、及び/または特定用途向け集積回路(ASIC)、及び/または特定用途向け命令セットプロセッサ(ASIP)、及び/またはグラフィックスプロセッシングユニット(GPI)、及び/またはフィジックスプロセッシングユニット(PPU)、及び/またはデジタルシグナルプロセッサ(DSP)、及び/または画像処理プロセッサ、及び/またはコプロセッサ、及び/または浮動小数点ユニット、及び/またはネットワークプロセッサ、及び/または音声プロセッサ、及び/またはマルチコアプロセッサ等の集積回路であるプロセッサを含む。さらに、ハードウェア構成要素は、(例えば、メモリユニット及びファームウェアを含む)ベースバンドプロセッサ及び/または無線信号を受信もしくは送信する(アンテナを含む場合がある)無線電子回路を含む場合もある。一実施形態では、ハードウェア構成要素は、例えばISO/IEC 18092/ECMA−340、ISO/IEC 21481/ECMA−352、GSMA、StoLPaN、ETSI/SCP(Smart Card Platform)、GlobalPlatform(つまり、セキュア素子)等の1つ以上の規格に準拠している。変形では、ハードウェア構成要素は無線自動識別(RFID)タグである。一実施形態では、ハードウェア構成要素は、Bluetooth(登録商標)通信、及び/またはWi−fi通信、及び/またはZigbee(登録種表)通信、及び/またはUSB通信、及び/またはFirewire通信、及び/または(近距離用)NFC通信を可能にする回路を含む。
本開示で要素/値を得るステップは、電子機器のメモリユニットの係る要素/値を読み取るステップ、または通信手段を介して別の電子機器から係る要素/値を受け取るステップのどちらかとして見なすことができることに留意されたい。
例示的なプロセス
図1は、DNAベースのデータストレージ及びデータ取り出しを提供するための例示的なプロセスを示す。特に、例示的なステップ102〜110は、ストレージのためにデジタルデータを符号化することを対象とし、例示的なステップ112〜122は、取り出しのために記憶されている情報を復号することを対象とする。図1の例示的なステップは、図2〜図5に関してさらに詳細に以下に説明する。
1.符号化
ステップ102(「データ圧縮」)で、1つ以上のファイル及び/またはディレクトリは、単一のファイルに入れられ、次いで圧縮ファイルに圧縮される。一部の例では、ファイル及び/またはディレクトリは、TARファイル(例えば、File.tar)に入れられ、TARファイルが次いで、レンペルジフマルコフチェーンアルゴリズム(例えば、LZMAアルゴリズム)を使用し、LZMAファイル(例えば、File.tar.Izma)に圧縮される。一部の例では、1つのLZMAファイルは、データ取り出し(例えば、復号中)のための単一の分割不可ユニットとして動作する。したがって、多数のファイル及びディレクトリがともに記憶されることを意図するが、無作為にかつ無関係に取り出される場合、ファイル及びディレクトリは、このステップで多数のTARファイルにグループ化され、多数の対応するLZMAファイルに圧縮される必要がある。
ステップ104で、1回目のデータトランスコーディングが実施される。最初に、各LZMAファイルが2進列に変換される。一例として、図2を参照すると、「File.tar.lzma」という名前のファイルが2進列に変換される。2進列は、次いで整数文字列B(「0;10;25;...;4;8;31:」に変換される。示されている例では、2進列から整数文字列Bへの変換は、5ビットトランスコーディングフレームワークを使用し、達成される。図示されるように、2進列は、例えば「00000」及び「01010」等の非重複5ビット2進列の数列に分割される。5ビット2進列のそれぞれは、次いで整数に変換されて整数文字列Bを形成する。当業者は、この5ビットトランスコーディングフレームワークの下では、整数文字列内の各整数が(「00000」に対応する)0〜(「11111」に対応する)31に及ぶことを認識するであろう。
図2に示すように、整数文字列Bは、次いで長さ固定スライディングウィンドウを使用し、複数の非重複整数部分列(例えば、[A1、A2、...、An])に分割される。図2の示されている例では、整数部分列(例えば、A1)のそれぞれは、22の整数から成る。最後に、インデックス情報が、各部分列の始まりに付加されてインデックス(例えば、[B1、B2、...、Bn])を有する新しい複数の整数部分列を形成する。示されている例では、インデックス情報は3つの整数の数列を含み、そのそれぞれは0〜31に及ぶ。インデックス列の長さは、例えば圧縮ファイルのサイズ及びDNA合成のスループット等の多様な要因に基づいて選択される場合がある。
図1に戻ると、ステップ106で、インデックス(例えば、図2に示す[B1、B2、...、Bn])を有する複数の整数部分列は、インデックス及び冗長性(例えば、図4に示す[C1、C2、...、Cm])を有する複数の整数部分列にさらに変換される。例えばリードソロモン(RS)コーディング、ファウンテンコーディング、及びハミングコーディング等の多様なエラー訂正コーディングアルゴリズムが、冗長性データを記憶されるデジタルデータに加えるために使用できる。好ましい実施形態では、RSコーディングが、そのロバストネス及び実装の容易さのために使用される。
図3A〜図3Dは、[C1、C2、...、Cm]を得るために、インデックス及び冗長性を(例えば、複数の整数部分列[A1、A2、...、An]により表される)デジタルコンテンツに加えるための例示的なプロセスを示す。特に図3A〜図3Dは、[C1、C2、...、C31]を形成するために、RSコーディングを使用し、最初の5つの整数部分列(つまり、A1、A2、A3、A4、及びA5)をどのように処理できるのかを示す。整数部分列の残り(つまり、A6、...、An)については、あらゆる5つの継続的な整数部分列が、図3A〜図3Dに示すのと同様に1つのユニットとして処理される。この例では、5つの整数部分列は、ブロック訂正のパリティが26(つまり、31−5=26)となり、したがって31の中の13(つまり、26/2=13)のオリゴが失われるが、RSコーディングの原理に従って回復されるであろうように、ともに29x31の行列を介して処理される。
図3Aを参照すると、29x31の空の行列が作成される。[A1、A2、...、An]からの最初の5つの整数文字列A1、A2、A3、A4、A5は、図示するように行列の中に充填されて、図示するように22x5の部分行列を占有する。この領域が、コアデータブロックである。
図3Bを参照すると、0〜31に及ぶ3つの整数から成るインデックス列が、一意のインデックスとして各列の始まりに付加される。インデックス文字列は、付加の前にソートできる。図示されるように、インデックスは、例えば0−0−0、0−0−1、0−0−2、...、0−0−31、0−1−31、...等、昇順でソートされ、割り当てられた。インデックスが付けられた整数文字列は、図3Bで、それぞれB1、B2、B3、B4、及びB5と名前を付けられる。
図3Cを参照すると、RSコーディングが、コアデータブロックにより占有される各行の空白の領域を行ごとに充填するために使用される。このステップが「ブロック訂正」と呼ばれ、合成及びシークエンシング及び長期記憶の退化の間の、例えば欠けているオリゴ及び(挿入及び削除を含む)インデルを処理するのに役立つ。
図3Dを参照すると、RSコーディングが、行列全体の各列の空白の領域を列ごとに充填するために使用される。このステップが「文字列訂正」と呼ばれ、合成、シークエンシング、及び長期記憶中に生じる、例えば点突然変異を訂正するのに役立つ。図3Dに示すように、行列はいま31の整数文字列[C1、C2、...、C31]を含んでいる。言い換えると、ブロック訂正及び文字列訂正後、5つの整数部分列A1〜A5は、31の整数部分列C1〜C31に変換される。さらに、A1〜A5のそれぞれは22の整数を含む。一方、C1〜C31のそれぞれは(インデックスの3つの余分な整数、及びエラー訂正のためのRSコーディングのパリティの4つの余分な整数を含む)29の整数を含む。図3A〜図3Dに示す多様な寸法は例示的にすぎないことを理解されたい。インデックス文字列の長さ(図3A〜図3Dでは3)、行列のサイズ(例えば、図3A〜図3Dでは29x31)、及びユニットとして処理される整数文字列数(例えば、図3A〜図3Dでは5)は、例えば使用されるエラーコーディングのタイプ、所望されるエラー許容範囲、及びDNA合成プラットフォームの特徴等のいくつかの要因に基づいて選択される場合がある。
図4に示すように、図3A〜図3Dに関して説明する技術に従って、RSコーディングの1回目の文字列訂正及びRSコーディングの1回目のブロック訂正を通して、インデックス[B1、B2、...、Bn])を有する複数の整数部分列は、冗長性[C1、C2、...、Cm]を有する複数の整数部分列に変換され、mはnよりも大きい。さらに、整数部分列[C1、C2、...、Cm]の各整数は0〜31に及ぶ。
図3A〜図3Dの示されている例では、例えばA1等の初期整数部分列の長さ(示されている例では22)は、いくつかの要因に基づいて計算される。具体的には、(示される例ではL、29として示される)インデックス及び冗長性を有する整数文字列の長さは、合成プラットフォームのオリゴ長により計算される。(示される例ではX、4として示される)文字列訂正とブロック訂正の両方のパリティは、オリゴの合成エラーレート、使用されるエラー訂正符号、及び所望されるエラー許容範囲により決定される。(示される例では、Y、3として示される)インデックス長は、総符号化データサイズにより決定される。したがって、(Zとして示される)初期整数文字列の長さは、Z=L−X−Yである。
図1に戻ると、ステップ108で、冗長性(例えば、[C1、C2、...、Cm])を有する整数文字列のリストを、複数のDNAオリゴの表現(例えば、[D1、D2、...、Dm])に変形するために、2回目のトランスコーディングが実施される。DNAオリゴの各表現は、合成のために4つの塩基A、T、G、及びCを含む。特に「5ビットトランスコーディングフレームワーク」を再び使用できる。ここでは、整数文字列[C1、C2、...、Cm]の各整数は0〜31に及び、したがって32種類の3個のヌクレオチド(例えば、NがA、T、G、Cを表し、YがC及びTを表し、RがA及びGを表す、NNY及びNNRを含む3マー)の1つに一意にマッピングできる。例えば、図5に示すように、整数6は、5ビット2進列「00110」に相当し、特定の戦略下で「AGR」に変換できる。一部の例では、5ビットトランスコーディングフレームワークは、中間のステップ(例えば、最初に整数を2進列に変換すること)なしに、整数とDNAオリゴの表現との間の直接的な変換を提供できる。
したがって、各整数部分列(例えば、C1)の29の整数のそれぞれは、3個のヌクレオチドにマッピングできる。[C1、C2、...、Cm]のすべてが変換された後、YはCまたはTで置換される。一方、Rは、DNA合成の前にAまたはGで置換される。これは、第3の塩基が、3マーの第2の塩基とは異なり、3つの継続して同一の塩基(例えば、AAA、GGG、TTT、CCC)を回避することを確めるために行われる。さらに、各オリゴのGC割合は、Y及びRの選択により30%〜70%に限定されるべきである。置換ステップは、オリゴ合成により生じるエラーを削減するだけではなく、オリゴ合成の訂正率の改善にとっても重要である。
RSコーディングの原則によれば、許容エラーは、各オリゴの2つの(つまり、文字列訂正のパリティ、4の半分)の突然変異、及び図3A〜図3Dに示す例示的な状況における同じ行列からの31オリゴのうちの13(つまり、ブロック訂正のパリティ、26の半分)の(完全に欠けているオリゴまたはインデルを有するオリゴを含む)欠けているオリゴを含む場合がある。
図1を参照すると、ステップ110で、プライマーペアが付加され、DNA合成が実行される。一部の例では、単一の圧縮ファイル(例えば、図4のFile.tar.lzma)が複数のDNAオリゴの表現(例えば、図4の[D1、D2、...、Dn])に変換され、プライマー配列の同じペアの表現が、圧縮ファイルに対応する各オリゴの2つの末端に加えられる。一度に記憶され、合成されるが、後続の読み取り及び復号の間にランダムにアクセス可能である必要がある多数の圧縮ファイルの場合、直交性プライマー(orthogonal primers)の一意のペアが、圧縮ファイルごとに選択され、各圧縮ファイルと関連付けられる。例えば、一度に記憶され、合成されるが、後続の読み取り及び復号の間にランダムにアクセス可能である必要がある3つの圧縮ファイルがある場合、次いでそれぞれ3つの圧縮ファイルと関連付けられるために直交性プライマーの3つの一意のペアが選択される。各圧縮ファイルのために、選択されたプライマーペアが、圧縮ファイルに対応する複数のオリゴのうちの各オリゴに付加される。次いで、多数の圧縮ファイルに対応するすべてのオリゴが、記憶媒体として一度にプールされ、合成されるであろう。
選択したプライマーペアに対しては複数の基準を使用できる。例えば、プライマーペアは、ホモ二量体、ヘテロ二量体、ヘアピン構造を回避し、十分な選択性を有する(例えば、符号化核酸配列に対する結合部位を有さない)ように選ばれる場合がある。一部の例では、多重化PCRプライマー設計基準が使用される。
2.復号
復号手順は、本質的に符号化手順の逆のプロセスである。図1を参照すると、ステップ112で、プライマーのペアが、PCRを実行して、対応する圧縮ファイル(例えば、図4のFile.tar.lzma)のオリゴ(例えば、図4の[D1、D2、...、Dn])のリストを増幅させるために使用される。NGSの単一のランで多数の圧縮ファイルを読み取り、復号する必要がある場合、その対応するオリゴのリストのすべては、対応するプライマーのペアを使用し、PCRを通して増幅される必要がある。このステップは、「NGSライブラリ準備」とも呼ばれる。
ステップ114で、ペアエンド次世代シークエンシング並びにリードペアリング及びマージが(例えば、Illuminaシークエンシングシステムにより)実行される。具体的には、同じクラスタの順方向リード及び逆方向リードがペアにされ、単一のリードにマージされ、不規則な長さを有するすべての新規リードがフィルタにかけられる(例えば、インデルを有するリード)。さらに、プライマー配列に従って、すべてのリードを圧縮ファイルごとにグループ化できる。後続のステップで、同じ圧縮ファイルに対応するリード(つまり、同じプライマーを共用するリード)は、ともに解析されるであろう。
ステップ116で、逆方向RSコーディングが実行される。一部の例では、29x31のゼロ行列であるが、空ではない行列が利用されるであろう。具体的には、単一の圧縮ファイルからの各リードは、2つの末端でPCRプライマーを削除されており、次いで突然変異に対するエラー訂正を行う目的で、RSコーディングの文字列訂正を通して整数部分列に変換される。1種類のオリゴが合成中に分子の多くのコピーを有し、何度も配列されるであろうため、多くのリードが1つのオリゴから生じるであろう。高スループット合成とシークエンシングの両方の間に生じるエラーのため、これらのリードは変形を有する場合があるが、正しいリードが優位を占めるべきである。整数部分列の場所ごとの最高頻度をベースにした訂正により、同一のインデックスを共用するすべての整数部分列が訂正され、コンセンサス整数部分列にマージされるであろう。例えば、同じインデックスを共用するリードのグループの場合、そのコンセンサス整数部分列の各位置は、この位置で最も頻繁に出現する整数により決定される必要がある。
ステップ118で、整数文字列のリストは、欠けているオリゴ並びに挿入及び削除を有するオリゴを回復するために、RSコーディングのブロック訂正を通して完全に復号できる。1種類のオリゴは、合成中に分子の多くのコピーを有し、何度も配列されるであろうため、多くのリードが1つのオリゴを表すであろう。高スループット合成とシークエンシングの両方の間に生じるエラーのため、これらのリードは変形を有する場合があるが、最初に設計されたオリゴとよく一致する正しいリードはまだカウントに対して有利である。整数文字列の場所ごとの最高頻度をベースにした訂正により、同一のインデックスを共用するすべての整数文字列は訂正され、文字列訂正とブロック訂正の間のコンセンサス整数文字列にマージされるであろう。挿入及び削除を有するオリゴは不規則な長さを有し、エラー訂正中に削除されるであろうため、このようにして対応するデータは欠けている情報に完全に等しく、回復される必要がある。インデックス情報に基づいて、行列の列は、最高頻度をベースにした訂正の後に充填される。
ステップ120で、トランスコーディングが実行される。リードはインデックス別にソートされ、次いでインデックスは各整数部分列から削除される。すべての整数部分列は、次いで単一の整数文字列に連結され、次いで5ビットトランスコーディングフレームワークを介して2進列に転送される場合がある。
ステップ122で、解凍が実行される。具体的には、システムは2進列を圧縮ファイルに書き込み、次いで順にLZMAアルゴリズム及びTARアルゴリズムにより圧縮ファイルを解凍する。多数の圧縮ファイルのランダムアクセスの場合、ステップ116〜122は、圧縮ファイルのそれぞれについて独立して実行されるべきである。プールは、多数の圧縮ファイルを記憶できる。各圧縮ファイルは独自のPCRプライマーを有する。復号中、プール全体を配列する必要はない。むしろ、対応するPCRプライマーは、特定の圧縮ファイルのオリゴを増幅させ、次いで増幅させたオリゴを配列して、プール全体ではないが、この対応する圧縮ファイルを復号するために使用される。
上述したように、5ビットトランスコーディングフレームワークが活用される。具体的には、2進列からのあらゆる5個の継続ビットが、0〜31に及ぶ整数、ひいては3個のヌクレオチド[ナノテスラ](つまり、3マー)として表される場合がある。例えば、DNAオリゴは4つの塩基(例えば、A、T,G、及びC)から成り、したがって2マー(つまり、NN)は16種類(例えば、AA、AT、AG、AC、TA、TT、TG、TC、GA、GT、GG、GC、CA、CT、CG、及びCC)を有するはずである。変性した塩基R及びYが2マーの後に連結され、3マー(NNR/NNY)が、0〜31に及ぶ32の整数とよく一致し、DNA配列の中によく転送される2進列を作る32種類から成るべきであると仮定する。オリゴ合成中、Rを表すためにAが選ばれるのか、それともGが選ばれるのか、及びYを置換するためにCが選択されるのか、それともTが選択されるのかは、その前部の塩基(つまり、3マーの第2の塩基)に依存しており、実際には、システムは第2の塩基及び第3の塩基を異ならせ、次いで同時にGCバランスを保つ場合がある。この前提条件が届く(reaches)と仮定すると、正確な塩基は、候補塩基の間で無作為に選択される。結論として、このトランスコーディングフレームワークのコーディングの可能性は1.67(つまり、3ナノテスラに対して5ビット)である。
図7は、DNAベースのデータストレージ技術及びデータ取り出し技術の例示的な実現を示す。ここでは、図6に示す漢字を含むテキストファイル(データサイズ:1.16kb)が、本明細書に説明するプロセスに従ってDNAを介して記憶される。
符号化中、テキストファイルは、単一の圧縮ファイルに圧縮され、次いでDNAストレージフレームワークを通して87ナノテスラ長を有する403のオリゴを使用し、記憶される。一方、ランダムアクセスをシミュレーションするために、この圧縮ファイルの6つのコピーが使用され、プライマーの6つのペアが選択される。プライマーの各ペアは、403のオリゴのそれぞれの2つの末端に加えられる。プライマーの6つのペア(それぞれ20ナノテスラ)が直交であった。これは、それらのうちの任意の2つが十分なハミング距離を有し、403のオリゴの任意の1つと類似性をあまり共有していないことを意味する。ASCIIテキストファイルで、本明細書で提出された配列表リストは、SEQ ID1番〜SEQ ID403番、及びプライマーペアPP1番〜PP6番をSEQ ID404番〜415番として含む。
オリゴプールの合成が次いで実行される。合計で2418(つまり、403が6で乗算される)のオリゴが、CustomArray,Inc.により開発されたCustomArrayプラットフォームを使用し、合成された。各オリゴは、合計40ナノテスラのプライマー(末端あたり20ナノテスラ)を含む127ナノテスラである。
PCR増幅及びNGSが次いで実行される。6つのPCR反応が、圧縮ファイルのすべてのコピーに対して行われた。TruSeq DNA PCR−free HTライブラリ作成キット(プレートフォーマットで96のインデックス、96のサンプル)、及び6のライブラリインデックスを使用する6つのサンプルのライブラリ作成後、プールされたサンプルは、オリゴの127ナノテスラ長のため、MiSeq試薬キットV3(150サイクル)を使用し、ともに配列された。NGSデータのQ30は94%(公式基準>85%)であり、クラスタ密度は1,301K/mm2(公式基準1200〜1400K/mm2)である。
最後に、復号が実行される。圧縮ファイルの各コピーの独立した復号の後、すべてのコピーは、無作為にかつ無事に取り出され、エラーなく解凍されるであろう。
図8は、本明細書に開示する方法の1つまたはいくつかのステップを実行するために使用できるデバイスを示す。800と参照される係るデバイスは、801と参照されるコンピューティングユニット(例えば、「中央演算処理装置」のCPU)、及び802と参照される1つ以上のメモリユニット(例えば、コンピュータプログラムの命令の実行中に中間の結果を一時的に記憶できるRAM(「ランダムアクセスメモリ」)ブロック、またはとりわけコンピュータプログラムが記憶されるROMブロック、またはEEPROM(電気的消去可能・プログラム可能型読取専用メモリ)ブロック、またはフラッシュブロック)を含む。コンピュータプログラムは、コンピューティングユニットによって実行できる命令から作られる。また、係るデバイス800は、デバイス800が他のデバイスと通信できるようにするための入出力インタフェースの構成要素となる、803と参照される専用ユニットも含む場合がある。特に、この専用ユニット803は、(接点なしに通信を実行するために)アンテナと、または(通信「接点」を伝えるために)シリアルポートと接続される場合がある。ユニットが、例えば互いにバスを通してデータを交換できることに留意されたい。
代替実施形態では、上述の方法のステップのいくつかまたはすべては、プログラム可能なFPGA(「フィールドプログラマブルゲートアレイ」)構成要素またはASIC(「特定用途向け集積回路」)構成要素のハードウェアで実装できる。
代替実施形態では、上述の方法のステップのいくつかまたはすべては、図8に開示するもののようなメモリユニット及び処理ユニットを含む電子機器で実行できる。係るデバイス800は、高スループット合成プラットフォーム(例えば、CustomArray)及びDNAシーケンサ(例えば、MiSeqシーケンサ)と組み合わせて使用できる。
図9Aは、入力データを核酸に記憶するための例示的な方法900を示す。ブロック902で、入力データは、ヌクレオチド配列の集合に変換される。ブロック904で、入力データは2進列に変換される。ブロック906で、2進列は、ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、変換される。ブロック908で、ヌクレオチド配列の集合を含む核酸の集合が合成される。
図9Bは、核酸に記憶された出力データを取り出すための例示的な方法950を示す。ブロック952で、核酸の集合のヌクレオチド配列の集合が得られる。ブロック954で、ヌクレオチド配列の集合が出力データに変換される。具体的には、ブロック956で、ヌクレオチド配列の集合は、5ビットトランスコーディングフレームワークを使用し、2進列に変換される。ブロック958で、2進列は出力データに変換される。
本開示及び例は、添付図面に関して完全に説明されてきたが、当業者に多様な変更及び修正が明らかになることに留意されたい。係る変更及び修正は、特許請求の範囲に定められるように、本開示及び例の範囲内に含まれると理解されるべきである。
上記の説明は、説明のために、具体的な実施形態に関して説明されてきた。しかしながら、上記の例示的な説明は、包括的になる、または本発明を開示される正確な形式に限定することを目的としていない。上記教示を考慮して多くの修正形態及び変形形態が可能である。実施形態は、技術の原理及びその実践的な応用を最もよく説明するために選ばれ、説明された。当業者は、それにより意図された特定の使用に適するように多様な修正形態とともに技術及び多様な実施形態を最良に利用できる。

Claims (58)

  1. 入力データを核酸に記憶するための方法であって、
    a)前記入力データをヌクレオチド配列に変換することであって、前記変換することが、
    i)前記入力データを2進列に変換することを含むデータ処理ステップと、
    ii)ヌクレオチド配列の前記集合を得るために、5ビットトランスコーディングフレームワークを使用し、前記2進列を変換することを含むヌクレオチド符号化ステップと、
    を含む、前記変換することと、
    b)ヌクレオチド配列の前記集合を含む核酸の集合を合成することと、
    を含む、前記方法。
  2. 入力データをヌクレオチド配列の集合に変換するためのコンピュータ実装方法であって、
    i)前記入力データを2進列に変換することを含むデータ処理ステップと、
    ii)ヌクレオチド配列の集合を得るために、5ビットトランスコーディングフレームワークを使用し、前記2進列を変換することを含むヌクレオチド符号化ステップと、
    を含む、前記方法。
  3. 前記データ処理ステップが、前記2進列を非重複5ビット2進列の数列に分割することを含む、請求項1〜2のいずれか1項に記載の方法。
  4. 前記ヌクレオチド符号化ステップが、整数の文字列を得るために、各5ビット2進列を0〜31に及ぶ整数に変換することを含む、請求項3に記載の方法。
  5. 前記ヌクレオチド符号化ステップが、ヌクレオチド配列の前記集合を得るために、前記5ビットトランスコーディングフレームワークを使用し、整数の前記文字列を変換することをさらに含む、請求項4に記載の方法。
  6. 前記ヌクレオチド符号化ステップが、整数の前記文字列を、所定の長さを有する複数の整数の初期部分列に分割することをさらに含む、請求項4に記載の方法。
  7. 前記複数の整数の初期部分列のそれぞれの前記長さが、選択した合成プラットフォームのオリゴ長、所望するエラー許容範囲、前記入力データのサイズ、選択したエラー訂正符号、またはその組み合わせに基づいて決定される、請求項6に記載の方法。
  8. 前記ヌクレオチド符号化ステップが、インデックスを有する複数の整数部分列を得るために、インデックス情報を前記複数の整数の前記初期部分列のそれぞれに加えることをさらに含む、請求項6または7に記載の方法。
  9. 前記複数の整数の前記初期部分列のそれぞれに加えられた前記インデックス情報が整数の数列を含み、前記整数の数列の前記長さが前記入力データのサイズに基づく、請求項8に記載の方法。
  10. 前記ヌクレオチド符号化ステップが、前記インデックス情報を加えた後、冗長性データを、インデックスを有する前記複数の整数部分列に加えて、それによって冗長性を有する複数の整数部分列を得ることを含む、請求項8または9に記載の方法。
  11. 冗長性データを、インデックスを有する前記複数の整数部分列に加えることが、
    空の行列を作成することであって、前記空の行列の列数がインデックスを有する前記複数の整数部分列の前記サイズよりも大きく、前記空の行列の行数が、インデックスを有する前記複数の整数部分列のそれぞれの整数の数よりも大きい、前記作成することと、
    インデックスを有する前記複数の整数部分列及びエラー訂正コーディングを適用することによって生成されたデータで前記空の行列を充填することと、
    前記充填した行列に基づいて、冗長性を有する前記複数の整数部分列を得ることと、
    を含む、請求項10に記載の方法。
  12. 前記空の行列の前記列数が、選択した合成プラットフォームのオリゴ長、前記エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する前記複数の整数部分列のサイズ、またはその組み合わせに基づいて決定される、請求項11に記載の方法。
  13. 前記空の行列の前記行数が、選択した合成プラットフォームのオリゴ長、前記エラー訂正符号のタイプ、所定のエラー許容範囲値、インデックスを有する前記複数の整数部分列のサイズ、またはその組み合わせに基づいて決定される、請求項11または12に記載の方法。
  14. 前記エラー訂正コーディングがリードソロモン(「RS」)コーディングである、請求項11〜13のいずれか1項に記載の方法。
  15. エラー訂正コーディングを適用することにより生成された前記データが、前記RSコーディングの文字列訂正及び/または前記RSコーディングのブロック訂正を適用することによって生成される、請求項14に記載の方法。
  16. 前記5ビットトランスコーディングフレームワークが表2による、請求項1〜15のいずれか1項に記載の方法。
  17. R及びYが、1)RまたはYの直前の前記ヌクレオチドとは異なること、及び/または2)前記ヌクレオチド配列の推定GC含有量に基づいて選ばれる、請求項16に記載の方法。
  18. 前記入力データが圧縮ファイルに相当する、請求項1〜17のいずれか1項に記載の方法。
  19. 前記入力データが2つ以上のファイルに相当する、請求項1〜18のいずれか1項に記載の方法。
  20. 前記入力データがテキストファイルに相当する、請求項1〜17及び請求項19のいずれか1項に記載の方法。
  21. 前記データ処理ステップが、圧縮ファイルを得るために前記入力データを圧縮することと、前記圧縮したファイルを2進列に変換することをさらに含む、請求項1〜20のいずれか1項に記載の方法。
  22. 前記圧縮ファイルが、レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、圧縮される、請求項18または21に記載の方法。
  23. 前記データ処理ステップが、前記2つ以上のファイルを1つのTARファイルにグループ化することをさらに含む、請求項19に記載の方法。
  24. 前記TARファイルが、前記レンペルジフマルコフチェーンアルゴリズム(「LZMA」)を使用し、さらに圧縮される、請求項23に記載の方法。
  25. 前記ヌクレオチド符号化ステップが、ヌクレオチド配列の前記集合の各ヌクレオチド配列の5’末端及び3’末端にプライマー配列のペアを付加することをさらに含む、請求項1〜24のいずれか1項に記載の方法。
  26. 合成した核酸の前記集合にプライマーのペアを付けることをさらに含む、請求項1に記載の方法。
  27. 入力データの2つ以上の集合を核酸に記憶するための方法であって、
    a)請求項2〜19のいずれか1項に記載の方法に従って、入力データの前記2つ以上の集合を、対応するヌクレオチド配列の2つ以上の集合に別々に変換することと、
    b)プライマー配列のペアを、ヌクレオチド配列の前記2つ以上の集合の各集合の前記5’末端及び3’末端に別々に付加することであって、対応するヌクレオチド配列の前記2つ以上の集合のためのプライマーの前記ペアが、互いとは異なる、前記付加することと、
    c)それぞれ対応するヌクレオチド配列の前記2つ以上の集合を含む、核酸の2つ以上の集合を合成することと、
    を含む、前記方法。
  28. プライマーの各ペアが、対応するヌクレオチド配列の前記2つ以上の集合またはその相補配列のいずれか1つとは異なる配列を有する、請求項27に記載の方法。
  29. 合成した核酸の前記集合が、30%〜70%に及ぶGC含有量を有する、請求項1及び請求項3〜28のいずれかに記載の方法。
  30. 合成した核酸の前記集合が、約70%未満のGC含有量を有する、請求項1及び請求項3〜29のいずれか1項に記載の方法。
  31. 合成した核酸の前記集合を保管することをさらに含む、請求項1に記載の方法。
  32. 合成した核酸の前記集合が乾燥により保管される、請求項31に記載の方法。
  33. 合成した核酸の前記集合が凍結乾燥により保管される、請求項32に記載の方法。
  34. 合成した核酸の前記集合が担体上で不動にされる、請求項31に記載の方法。
  35. 前記担体がマイクロアレイである、請求項34に記載の方法。
  36. 核酸に記憶された出力データを取り出すための方法であって、
    a)核酸の集合のヌクレオチド配列の集合を得ることと、
    b)ヌクレオチド配列の前記集合を前記出力データに変換することであって、前記変換することが、
    i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の前記集合を2進列に変換することを含むヌクレオチド復号ステップと、
    ii)2進列を前記出力データに変換して、それによって前記出力データを得ることを含むデータ処理ステップと、
    を含む、前記方法。
  37. 前記方法が、前記出力データを取り出す前に核酸の前記集合を増幅させることをさらに含む、請求項36に記載の方法。
  38. 複数の配列リードを生成するために、核酸の前記集合を配列することをさらに含む、請求項36〜37のいずれか1項に記載の方法。
  39. 前記複数の配列リードが、ヌクレオチド配列の前記集合を得るためにペアにされ、マージされ、及びフィルタにかけられる、請求項38に記載の方法。
  40. ヌクレオチド配列の集合を出力データに変換するためのコンピュータ実装方法であって、
    i)5ビットトランスコーディングフレームワークを使用し、ヌクレオチド配列の前記集合を2進列に変換することを含むヌクレオチド復号ステップと、
    ii)2進列を前記出力データに変換することを含むデータ処理ステップと、
    を含む、前記方法。
  41. 前記ヌクレオチド復号ステップが、ヌクレオチド配列の前記集合を、0〜31に及ぶ整数を含む複数の整数部分列に変換することを含む、請求項36〜40のいずれか1項に記載の方法。
  42. 前記ヌクレオチド復号ステップが、エラー訂正コーディングを前記複数の整数部分列に適用して、それによってインデックスを有する前記複数の整数部分列を得ることをさらに含む、請求項41に記載の方法。
  43. エラー訂正コーディングを適用する前記ステップが、
    i)複数のコンセンサス整数部分列を得るために、RSコーディング文字列訂正を前記複数の整数部分列に適用することと、
    ii)インデックスを有する前記複数の整数部分列を得るために、RSコーディングブロック訂正を前記複数のコンセンサス整数部分列に適用することと、
    を含む、請求項42に記載の方法。
  44. 前記ヌクレオチド復号ステップが、複数の整数のコア部分列を得るために、インデックスを有する前記複数の整数部分列から前記インデックスを削除することをさらに含む、請求項42または43に記載の方法。
  45. 前記ヌクレオチド復号ステップが、整数の前記コア部分列を、整数の文字列にマージすることをさらに含む、請求項44に記載の方法。
  46. 前記ヌクレオチド復号ステップが、整数の前記文字列を2進列に変換することをさらに含む、請求項45に記載の方法。
  47. 前記出力データが圧縮ファイルに記憶される、請求項46に記載の方法。
  48. 前記データ処理ステップが、前記圧縮ファイルを解凍することをさらに含む、請求項47に記載の方法。
  49. 前記解凍することが、LZMAアルゴリズムを通して実施される、請求項48に記載の方法。
  50. 前記出力データが複数のファイルに相当する、請求項46に記載の方法。
  51. TARアルゴリズムを通して前記出力データから前記複数のファイルを抽出することをさらに含む、請求項50に記載の方法。
  52. 前記5ビットトランスコーデイングフレームワークが表2による、請求項36〜51のいずれか1項に記載の方法。
  53. 核酸の前記集合が、3’末端及び5’末端にプライマー配列を含み、前記方法が、前記ヌクレオチド復号ステップの前に前記プライマー配列を削除することを含む、請求項36〜53のいずれか1項に記載の方法。
  54. 関心のある核酸の集合に記憶された出力データを取り出すための方法であって、関心のある核酸の前記集合が、混合物に存在するヌクレオチド配列の複数の集合の1つであり、各集合が、出力データの異なる集合を符号化し、前記3’末端及び5’末端の異なる集合を有し、
    a)関心のある核酸に対応する前記プライマーペアを使用し、核酸の前記集合を増幅させることと、
    b)前記増幅させた核酸のヌクレオチド配列の集合を得ることと、
    c)請求項40〜52のいずれか1項に記載の前記方法に従ってヌクレオチド配列の前記集合を前記出力データに変換すること、
    それによって前記出力データを得ることを含む、前記方法。
  55. 関心のある核酸の対応する2つ以上の集合に記憶された出力データの2つ以上の集合を取り出すための方法であって、関心のある核酸の前記2つ以上の集合が、混合物に存在する複数のヌクレオチド配列の中にあり、各集合が、出力データの異なる集合を符号化し、3’末端及び5’末端にプライマーペアの異なる集合を有し、
    a)関心のある核酸の前記2つ以上の集合に対応するプライマーペアを使用し、関心のある核酸の前記2つ以上の集合を増幅させることと、
    b)前記増幅させた核酸のヌクレオチド配列の2つ以上の集合を得ることと、
    c)請求項40〜52のいずれか1項に記載の前記方法に従って、ヌクレオチド配列の前記2つ以上の集合を出力データの前記2つ以上の集合に別々に変換すること、
    それによって出力データの前記2つ以上の集合を得ることを含む、前記方法。
  56. 1つ以上のプログラムを記憶する非一過性のコンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、電子機器の1つ以上のプロセッサによる実行時に、前記電子機器に、請求項2〜36及び請求項40〜52のいずれか1項に記載の前記方法を実施させる命令を含む、非一過性のコンピュータ可読記憶媒体。
  57. 核酸ベースのデータストレージ及び核酸からのデータ取り出しを提供するためのシステムであって、
    1つ以上のプロセッサと、
    メモリと、
    1つ以上のプログラムであって、前記1つ以上のプログラムが前記メモリに記憶され、前記1つ以上のプロセッサにより実行されるように構成され、請求項2〜36及び請求項40〜52のいずれか1項に記載の前記方法を実施するための命令を含む前記1つ以上のプログラムと、
    を備える、前記システム。
  58. 核酸ベースのデータストレージ及び核酸からのデータ取り出しを提供するための電子機器であって、請求項2〜36及び請求項40〜52のいずれか1項に記載の前記方法を実施するための手段を備える、前記機器。
JP2020500842A 2017-07-25 2018-07-25 Dnaベースのデータストレージ及びデータ取り出し Active JP7090148B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710611123.2 2017-07-25
CN201710611123.2A CN109300508B (zh) 2017-07-25 2017-07-25 一种dna数据存储编码解码方法
PCT/CN2018/097083 WO2019020059A1 (en) 2017-07-25 2018-07-25 STORING AND EXTRACTING DNA DATA

Publications (3)

Publication Number Publication Date
JP2020534633A true JP2020534633A (ja) 2020-11-26
JP2020534633A5 JP2020534633A5 (ja) 2021-08-12
JP7090148B2 JP7090148B2 (ja) 2022-06-23

Family

ID=65040380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020500842A Active JP7090148B2 (ja) 2017-07-25 2018-07-25 Dnaベースのデータストレージ及びデータ取り出し

Country Status (6)

Country Link
US (1) US12512185B2 (ja)
EP (1) EP3659147B1 (ja)
JP (1) JP7090148B2 (ja)
KR (1) KR102806718B1 (ja)
CN (2) CN109300508B (ja)
WO (1) WO2019020059A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2025504348A (ja) * 2022-01-05 2025-02-12 デジコドン テクノロジーズ カンパニー,リミテッド 情報を分子に記憶するための方法及びデバイス

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963429B2 (en) * 2017-10-11 2021-03-30 Lognovations Holdings, Llc Method and system for content agnostic file indexing
AU2019236289B2 (en) * 2018-03-16 2024-12-05 Catalog Technologies, Inc. Chemical methods for nucleic acid-based data storage
WO2019191083A1 (en) * 2018-03-26 2019-10-03 Colorado State University Research Foundation Apparatuses, systems and methods for generating and tracking molecular digital signatures to ensure authenticity and integrity of synthetic dna molecules
US11017170B2 (en) 2018-09-27 2021-05-25 At&T Intellectual Property I, L.P. Encoding and storing text using DNA sequences
GB201907460D0 (en) 2019-05-27 2019-07-10 Vib Vzw A method of storing information in pools of nucleic acid molecules
CN110442472B (zh) * 2019-07-03 2021-08-13 天津大学 一种dna数据存储混合错误纠正与数据恢复方法
JP2022546278A (ja) * 2019-08-27 2022-11-04 アプトン バイオシステムズ,インク. 核酸分子を使用するデータ保存のためのシステムおよび方法
US12260937B2 (en) * 2019-09-05 2025-03-25 Microsoft Technology Licensing, Llc Reverse concatenation of error-correcting codes in DNA data storage
CN110708076B (zh) * 2019-09-25 2022-12-20 东南大学 一种基于混合模型的dna存储编解码方法
CN111368132B (zh) * 2020-02-28 2023-04-14 元码基因科技(北京)股份有限公司 基于dna序列存储音频或视频文件的方法及存储介质
CN111489791B (zh) * 2020-04-07 2023-05-26 中国科学院重庆绿色智能技术研究院 固态纳米孔高密度编码dna数字存储读取方法
US20240419325A1 (en) * 2020-06-03 2024-12-19 Bgi Shenzhen Method for Generating a DNA Storage Encoding/Decoding rule, and Method for DNA Storage Encoding/Decoding
CN111737955A (zh) * 2020-06-24 2020-10-02 任兆瑞 一种使用dna字符码存储文字点阵的方法
CN112615627A (zh) * 2020-11-13 2021-04-06 北京信工博特智能科技有限公司 基于改进行程长度编码的动态压缩方法及动态压缩系统
WO2022120626A1 (zh) * 2020-12-09 2022-06-16 中国科学院深圳先进技术研究院 基于dna的数据存储方法、数据恢复方法、装置及终端设备
CN113098526B (zh) * 2021-04-08 2022-04-12 哈尔滨工业大学 一种dna自索引区间解压缩方法
CN113314187B (zh) * 2021-05-27 2022-05-10 广州大学 一种数据存储方法、解码方法、系统、装置及存储介质
CN113744804B (zh) * 2021-06-21 2023-03-10 深圳先进技术研究院 利用dna进行数据存储的方法、装置及存储设备
CN113806583A (zh) * 2021-09-03 2021-12-17 中国科学院深圳先进技术研究院 音视频文件的dna数据存储单元、存储方法及纠错方法
CN114254748B (zh) * 2021-09-27 2025-04-11 清华大学 一种存储信道的扩展编码方法、系统及相关装置
CN114356220B (zh) * 2021-12-10 2022-10-28 中科碳元(深圳)生物科技有限公司 基于dna存储的编码方法、电子设备及可读存储介质
CN114360600B (zh) * 2021-12-31 2025-08-19 南方科技大学 可多次写入及擦除的dna存储条带
US11809839B2 (en) 2022-01-18 2023-11-07 Robert Lyden Computer language and code for application development and electronic and optical communication
CN115206430B (zh) * 2022-06-20 2025-09-23 清华大学深圳国际研究生院 基于dna的信息编码方法、解码方法及计算机可读存储介质
CN114974429B (zh) * 2022-06-22 2026-03-03 任兆瑞 一种基于十进制的dna存储编码方法、设备及可读存储介质
CN115206460A (zh) * 2022-07-28 2022-10-18 康键信息技术(深圳)有限公司 药物数据处理方法、装置、电子设备及存储介质
CN115292256B (zh) * 2022-08-22 2025-10-17 天津大学 一种具有预览功能的dna信息存储方法
WO2024076044A1 (ko) * 2022-10-06 2024-04-11 이근우 Dna 인코딩 및 디코딩 방법 및 장치
CN115514375B (zh) * 2022-11-18 2023-03-24 江苏网进科技股份有限公司 一种缓存数据压缩方法
US12474994B2 (en) * 2022-12-05 2025-11-18 Western Digital Technologies, Inc. Preprocessing for correcting insertions and deletions in DNA data storage
CN119380821B (zh) * 2023-07-27 2025-09-30 中国科学院天津工业生物技术研究所 一种长期可靠的基因组信息低成本精准存储技术
US12562755B2 (en) 2023-09-11 2026-02-24 Western Digital Technologies, Inc. Multi-tier error correction codes for DNA data storage
US12355468B2 (en) 2023-12-04 2025-07-08 Western Digital Technologies, Inc. DNA storage error correction code architecture for optimized decoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003025123A2 (en) * 2001-08-28 2003-03-27 Mount Sinai School Of Medecine Dna: a medium for long-term information storage specification
JP2006522356A (ja) * 2003-03-31 2006-09-28 カウンシル・オブ・サイエンティフィック・アンド・インダストリアル・リサーチ 情報をdnaに記憶させる方法
JP2015529864A (ja) * 2012-06-01 2015-10-08 ヨーロピアン モレキュラー バイオロジー ラボラトリーEuropean Molecular Biology Laboratory Dnaでのデジタル情報の高容量記憶
WO2017011492A1 (en) * 2015-07-13 2017-01-19 President And Fellows Of Harvard College Methods for retrievable information storage using nucleic acids

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2470812A1 (en) 2001-12-17 2003-06-26 Michael Strathmann Combinatorial synthesis on arrays
WO2004053766A1 (en) * 2002-12-06 2004-06-24 London Health Sciences Centre Research Inc. Reverse translation of protein sequences to nucleotide code
US20040153255A1 (en) * 2003-02-03 2004-08-05 Ahn Tae-Jin Apparatus and method for encoding DNA sequence, and computer readable medium
WO2007137225A2 (en) 2006-05-19 2007-11-29 The University Of Chicago Method for indexing nucleic acid sequences for computer based searching
KR101638594B1 (ko) * 2010-05-26 2016-07-20 삼성전자주식회사 Dna 서열 검색 방법 및 장치
CN108875312A (zh) 2012-07-19 2018-11-23 哈佛大学校长及研究员协会 利用核酸存储信息的方法
CN103093121B (zh) * 2012-12-28 2016-01-27 深圳先进技术研究院 双向多步deBruijn图的压缩存储和构造方法
CN105022935A (zh) * 2014-04-22 2015-11-04 中国科学院青岛生物能源与过程研究所 一种利用dna进行信息存储的编码方法和解码方法
GB2530012A (en) 2014-08-05 2016-03-16 Illumina Cambridge Ltd Methods and systems for data analysis and compression
CN105760706B (zh) * 2014-12-15 2018-05-29 深圳华大基因研究院 一种二代测序数据的压缩方法
CN104850760B (zh) * 2015-03-27 2016-12-21 苏州泓迅生物科技有限公司 人工合成dna存储介质的信息存储读取方法
EP3173961A1 (en) 2015-11-27 2017-05-31 Thomson Licensing Method for storing user data and decoding information in synthesized oligos, apparatus and substance
CN106845158A (zh) * 2017-02-17 2017-06-13 苏州泓迅生物科技股份有限公司 一种利用dna进行信息存储的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003025123A2 (en) * 2001-08-28 2003-03-27 Mount Sinai School Of Medecine Dna: a medium for long-term information storage specification
JP2006522356A (ja) * 2003-03-31 2006-09-28 カウンシル・オブ・サイエンティフィック・アンド・インダストリアル・リサーチ 情報をdnaに記憶させる方法
JP2015529864A (ja) * 2012-06-01 2015-10-08 ヨーロピアン モレキュラー バイオロジー ラボラトリーEuropean Molecular Biology Laboratory Dnaでのデジタル情報の高容量記憶
WO2017011492A1 (en) * 2015-07-13 2017-01-19 President And Fellows Of Harvard College Methods for retrievable information storage using nucleic acids
JP2018527900A (ja) * 2015-07-13 2018-09-27 プレジデント アンド フェローズ オブ ハーバード カレッジ 核酸を用いた回収可能な情報記憶のための方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2025504348A (ja) * 2022-01-05 2025-02-12 デジコドン テクノロジーズ カンパニー,リミテッド 情報を分子に記憶するための方法及びデバイス
JP7760739B2 (ja) 2022-01-05 2025-10-27 デジコドン テクノロジーズ カンパニー,リミテッド 情報を分子に記憶するための方法及びデバイス
US12511228B2 (en) 2022-01-05 2025-12-30 Digicodon Technologies Co., Ltd. Method and device for storing information in molecule

Also Published As

Publication number Publication date
JP7090148B2 (ja) 2022-06-23
US12512185B2 (en) 2025-12-30
EP3659147A4 (en) 2022-07-20
EP3659147A1 (en) 2020-06-03
KR102806718B1 (ko) 2025-05-14
EP3659147B1 (en) 2025-11-05
US20200211677A1 (en) 2020-07-02
CN109300508A (zh) 2019-02-01
WO2019020059A1 (en) 2019-01-31
KR20200071720A (ko) 2020-06-19
CN109300508B (zh) 2020-08-11
CN110945595A (zh) 2020-03-31
CN110945595B (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
JP7090148B2 (ja) Dnaベースのデータストレージ及びデータ取り出し
JP7586880B2 (ja) 核酸ベースのデータ記憶
US10370246B1 (en) Portable and low-error DNA-based data storage
AU2025271481A1 (en) High-Capacity Storage of Digital Information in DNA
EP2608096B1 (en) Compression of genomic data file
CN112382340A (zh) 用于dna数据存储的二进制信息到碱基序列的编解码方法和编解码装置
CN109830263A (zh) 一种基于寡核苷酸序列编码存储的dna存储方法
US20180046921A1 (en) Code generation method, code generating apparatus and computer readable storage medium
KR20190117652A (ko) 압축된 게놈 서열 리드로부터 게놈 참조 서열의 복원 방법 및 시스템
KR20190118853A (ko) Dna 디지털 데이터 저장 장치 및 저장 방법, 그리고 디코딩 방법
EP2595076B1 (en) Compression of genomic data
US20170134045A1 (en) Method and apparatus for encoding information units in code word sequences avoiding reverse complementarity
US20240194296A1 (en) Method for the Compression of Genome Sequence Data
CN116564424A (zh) 基于纠删码与组装技术的dna数据存储方法、读取方法及终端
Zhang et al. A high storage density strategy for digital information based on synthetic DNA
ES2947521T3 (es) Procedimiento y aparato para una representación compacta de datos bioinformáticos
CN114822695B (zh) 用于dna存储的编码方法及编码装置
TWI770247B (zh) 核酸用於資料儲存之方法、及其非暫時性電腦可讀儲存介質、系統及電子裝置
US12406750B2 (en) Encoding digital data using oligonucleotides
CN119580800B (zh) 基于编码优化的dna数据存储方法、读取方法及终端
WO2004070029A1 (en) Method to encode a dna sequence and to compress a dna sequence
Bhattacharyya et al. Recent directions in compressing next generation sequencing data
Mridula et al. Lossless segment based DNA compression
CN119673280A (zh) Dna形式无错存储原始信息方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210702

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220613

R150 Certificate of patent or registration of utility model

Ref document number: 7090148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250