(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-02
(54)【発明の名称】核酸の配列決定による書き込みのためのシステムおよび方法
(51)【国際特許分類】
C12Q 1/6869 20180101AFI20231026BHJP
C12Q 1/686 20180101ALI20231026BHJP
C12Q 1/6876 20180101ALI20231026BHJP
G16B 15/00 20190101ALI20231026BHJP
【FI】
C12Q1/6869 Z
C12Q1/686 Z
C12Q1/6876 Z
G16B15/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023515116
(86)(22)【出願日】2021-09-07
(85)【翻訳文提出日】2023-04-26
(86)【国際出願番号】 US2021049289
(87)【国際公開番号】W WO2022055885
(87)【国際公開日】2022-03-17
(32)【優先日】2020-09-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519173978
【氏名又は名称】カタログ テクノロジーズ, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ロケ, ナサニエル
(72)【発明者】
【氏名】バティア, スワプニル ピー.
(72)【発明者】
【氏名】リーク, デビン
【テーマコード(参考)】
4B063
【Fターム(参考)】
4B063QA13
4B063QQ42
4B063QR08
4B063QR62
4B063QS25
4B063QX10
(57)【要約】
本明細書に記載されるシステム、装置および方法は、商業的に実施することが既存の方法よりも安価かつ容易である核酸デジタルデータ保存符号化および回収方法を提供する。本明細書に記載されるシステム、装置および方法は、核酸分子にデータを書き込み、核酸分子からデータを読み取るためのスケール拡大可能な方法を提供する。本開示は、以下の5つの主要な関心領域に及ぶ。(1)核酸分子にデジタル情報を書き込むこと、(2)核酸分子に保存された情報を正確かつ迅速に読み取ること、(3)核酸分子中にデータを効率的に符号化するためにデータを分割すること、(4)核酸分子にデータを符号化する際の誤り保護および訂正、ならびに(5)核酸分子中に保存された情報への効率的なアクセスを提供するためのデータ構造。
【特許請求の範囲】
【請求項1】
核酸分子にデジタル情報を書き込むための方法であって、
前記デジタル情報を識別子核酸配列の標的セットにマッピングすることと;
複数の識別子核酸分子を得ることと;
前記複数の識別子核酸分子の識別子核酸分子をナノポアシステムで配列決定することと;
前記識別子核酸分子が前記標的セットの識別子核酸配列に対応するか否かに基づいて、前記識別子核酸分子を宛先チャンバ内に受容するか、または拒絶することと、
を含む、方法。
【請求項2】
前記マッピングすることが、単語を符号語にマッピングするコードブックを使用することを含む、請求項1に記載の方法。
【請求項3】
少なくとも1つの識別子核酸配列が前記符号語中のビットに対応する、請求項2に記載の方法。
【請求項4】
前記ビットが1のビット値を有する場合には、前記ビットは前記標的セット中での前記少なくとも1つの対応する識別子核酸配列の存在によって表され、前記ビットが0のビット値を有する場合には、前記ビットは前記標的セット中での任意の対応する識別子核酸配列の不存在によって表される、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記複数の識別子核酸分子が、掛け合わせスキームを使用して複数のコンポーネント核酸分子を組み立てることによって得られ、前記掛け合わせスキームはM個の層のセットを定義し、各層はコンポーネントのセットを含み、各識別子核酸分子は前記M個の層のセットの各層からの1つのコンポーネントを含有する、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記複数の識別子核酸分子が、デノボ合成で複数のオリゴヌクレオチドをプログラム可能に合成することによって得られる、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記複数の識別子核酸分子が縮重オリゴヌクレオチド配列を合成することによって得られる、請求項1~6のいずれか一項に記載の方法。
【請求項8】
共通のプライマー結合部位を前記複数の識別子核酸分子の各識別子分子に組み込むことをさらに含む、請求項5~7のいずれか一項に記載の方法。
【請求項9】
前記共通のプライマー部位に結合するように構成されたPCRプライマーを使用して、ポリメラーゼ連鎖反応(PCR)で前記複数の識別子核酸分子を増幅することをさらに含む、請求項8に記載の方法。
【請求項10】
前記複数の識別子核酸分子の各識別子核酸分子にスペーサー配列を付加することをさらに含む、請求項5~7のいずれか一項に記載の方法。
【請求項11】
前記スペーサー配列が、ライゲーションまたは重複伸長PCRの1つによって付加される、請求項10に記載の方法。
【請求項12】
前記スペーサー配列が、前記識別子核酸配列内の標的挿入部位に挿入される、請求項11に記載の方法。
【請求項13】
前記スペーサー配列が、前記ナノポアシステムにおける配列決定の間に、前記複数の識別子核酸分子の各識別子核酸分子の転位時間を増加させるように構成されている、請求項10~12のいずれか一項に記載の方法。
【請求項14】
前記ナノポアシステムが、ソースチャンバ、膜、ナノポアおよび前記宛先チャンバを備える、請求項1~13のいずれか一項に記載の方法。
【請求項15】
前記識別子核酸分子を受容することが、前記膜内の前記ナノポアを通じて、前記識別子核酸分子を前記ソースチャンバから前記宛先チャンバに転位させることを含む、請求項14に記載の方法。
【請求項16】
前記識別子核酸分子を配列決定することが、インピーダンス信号を検出することと、前記インピーダンス信号を複数のインピーダンスシグネチャのうちの1つと合致させることとを含む、請求項15に記載の方法。
【請求項17】
異なるインピーダンス信号を提供するために、前記複数の識別子核酸分子の少なくともサブセットの各識別子核酸分子に作用物質を結合することをさらに含む、請求項16に記載の方法。
【請求項18】
前記結合することが、前記複数の識別子核酸分子の各識別子核酸分子に前記作用物質を結合することを含む、請求項17に記載の方法。
【請求項19】
前記識別子核酸分子が、前記識別子核酸分子を合致する少なくとも1つのインピーダンスシグネチャに基づいて前記宛先チャンバ内に受容されるかまたは拒絶される、請求項16~18のいずれか一項に記載の方法。
【請求項20】
前記識別子核酸分子を拒絶することが、前記ナノポアを横切る電場の極性を逆転させることを含む、請求項1~19のいずれか一項に記載の方法。
【請求項21】
前記宛先チャンバが、誤り訂正を伴った前記デジタル情報を表すのに十分な複数の識別子核酸分子を含むまで、前記ナノポアシステム内の複数の識別子核酸分子を配列決定することをさらに含む、請求項1~20のいずれか一項に記載の方法。
【請求項22】
マッピングすることが、順方向誤り訂正を使用することを含む、請求項1~21のいずれか一項に記載の方法。
【請求項23】
逆方向誤り訂正を使用することによって、前記配列決定工程または前記受容もしくは拒絶工程中に発生する任意の誤りを訂正することをさらに含む、請求項1~22のいずれか一項に記載の方法。
【請求項24】
前記宛先チャンバが第1の宛先チャンバであり、前記標的セットが第1の標的セットであり、
前記識別子核酸分子が第2の標的セットの識別子核酸配列に対応するか否かに基づいて、前記識別子核酸分子を第2の宛先チャンバ内に受容するか、または拒絶することを、さらに含む、請求項1~23のいずれか一項に記載の方法。
【請求項25】
前記ナノポアシステムが、ソースチャンバと、第1の膜と、前記第1の膜中の第1のナノポアと、第2の膜と、前記第2の膜中の第2のナノポアとを備え、
前記第1の膜は前記ソースチャンバと前記第1の宛先チャンバとを分離し、前記第2の膜は前記ソースチャンバと前記第2の宛先チャンバとを分離する、請求項24に記載の方法。
【請求項26】
前記ビットが1のビット値を有する場合には、前記ビットは前記第1の標的セット中での前記少なくとも1つの対応する識別子核酸配列の存在によって表され、前記ビットが0のビット値を有する場合には、前記ビットは前記第2の標的セット中での前記少なくとも1つの対応する識別子核酸配列の存在によって表される、請求項24または25のいずれか一項に記載の方法。
【請求項27】
コンポーネント核酸配列のプローブセットを指定することと、
前記第1の宛先チャンバまたは前記第2の宛先チャンバからのプローブされた識別子核酸分子を前記ナノポアシステムで配列決定することと、
前記プローブされた識別子核酸分子が前記プローブセットのコンポーネント核酸配列を含有する識別子核酸配列に対応するか否かに基づいて、前記プローブされた識別子核酸分子を回収チャンバ内に受容するか、または拒絶することと、
をさらに含む、請求項24~26のいずれか一項に記載の方法。
【請求項28】
前記識別子核酸分子を受容することまたは拒絶することが、
前記識別子核酸分子が前記標的セットの識別子核酸配列を有する場合には、前記識別子核酸分子を前記宛先チャンバ内に受容することと、
前記識別子核酸分子が前記標的セットの識別子核酸配列を有しない場合には、前記識別子核酸分子を前記宛先チャンバから拒絶することと、
を含む、請求項1~27のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2020年9月8日に出願された米国仮特許出願第63/075,622号に基づく優先権および恩典を主張する。上記出願の全内容は、参照により本明細書に組み入れられる。
【背景技術】
【0002】
背景
核酸デジタルデータ保存は、情報を長期間にわたって符号化および保存するための安定した手法であり、データは磁気テープまたはハードドライブ保存システムよりも高密度で保存される。核酸デジタルデータ保存のための現在の方法は、配列中の塩基対塩基の関係が多段階化学を使用してデジタル情報(例えば、バイナリコード)に直接変換されるように、デジタル情報(例えば、バイナリコード)を塩基ごとの核酸配列に符号化することに依存する。デジタルに符号化された情報のビットストリームまたはバイトに読み取ることができる塩基ごとの配列中に保存されたデジタルデータの配列決定は、新規の塩基ごとの核酸合成のコストが高価になり得るので、誤りが発生しやすく、符号化にコストがかかり得る。
【0003】
塩基ごとの合成によって書かれたデータについては、読み取り時間とコストが法外に高くなり得る。(塩基あたりのビット数に関して)高密度で保存された情報は、読み出すために高精度かつ高解像度の配列決定を必要とし得る。実際、2ビット/塩基という理論上の最大値またはその付近で保存されたデータは、ゲノム情報が必要とするのと同様の厳密性を配列決定のために必要とする。これには、ゲノム用途向けの最先端配列決定装置を超える技術革新の余地がほとんど残っていない。参考として、優にTBに及ぶデータを回復するためには、約450Bのリードを処理する必要があり、処理のために数百万ドルおよび数千時間かかることがあり得る。配列決定の1つの方法は、ナノポア配列決定である。ナノポア配列決定の主要な障害は、個々のDNA塩基を配列決定するために、十分遅いDNA転位および十分狭い細孔を達成することである。
【発明の概要】
【課題を解決するための手段】
【0004】
要旨
本明細書に記載されるシステム、装置および方法は、商業的に実施することが既存の方法よりも安価かつ容易である核酸デジタルデータ保存符号化および回収方法を提供する。本明細書に記載されるシステム、装置および方法は、核酸分子にデータを書き込み、核酸分子からデータを読み取るためのスケール拡大可能な方法を提供する。本開示は、以下の5つの主要な関心領域に及ぶ。(1)核酸分子にデジタル情報を書き込むこと、(2)核酸分子に保存された情報を正確かつ迅速に読み取ること、(3)核酸分子中にデータを効率的に符号化するためにデータを分割すること、(4)核酸分子にデータを符号化する際の誤り保護および訂正、ならびに(5)核酸分子中に保存された情報への効率的なアクセスを提供するためのデータ構造。
【0005】
一局面において、核酸分子にデジタル情報を書き込むための方法は、デジタル情報を識別子核酸配列の標的セットにマッピングすることを含む。本方法は、複数の識別子核酸分子を得ることを含む。本方法は、前記複数の識別子核酸分子の識別子核酸分子をナノポアシステムで配列決定することを含む。本方法は、識別子核酸分子が標的セットの識別子核酸配列に対応するか否かに基づいて、識別子核酸分子を宛先チャンバ内に受容するか、または拒絶することを含む。
【0006】
いくつかの実装形態において、前記マッピングすることは、単語(word)を符号語に(codeword)マッピングするコードブックを使用することを含む。いくつかの実装形態において、少なくとも1つの識別子核酸配列は符号語中の1ビットに対応する。
【0007】
いくつかの実装形態において、前記ビットが1のビット値を有する場合には、前記ビットは前記標的セット中での前記少なくとも1つの対応する識別子核酸配列の存在によって表され、前記ビットが0のビット値を有する場合には、前記ビットは前記標的セット中での任意の対応する識別子核酸配列の不存在によって表される。
【0008】
いくつかの実装形態において、前記複数の識別子核酸分子は、掛け合わせスキームを使用して複数のコンポーネント核酸分子を組み合わせることによって得られる。いくつかの実装形態において、掛け合わせスキームはM個の層のセットを定義し、各層はコンポーネントのセットを含む。いくつかの実装形態において、各識別子核酸分子は、M個の層のセットの各層からの1つのコンポーネントを含有する。
【0009】
いくつかの実装形態において、前記複数の識別子核酸分子は、デノボ合成で複数のオリゴヌクレオチドをプログラム可能に合成することによって得られる。
【0010】
いくつかの実装形態において、前記複数の識別子核酸分子は、縮重オリゴヌクレオチド配列を合成することによって得られる。
【0011】
いくつかの実装形態において、前記方法は、共通のプライマー結合部位を複数の識別子核酸分子の各識別子分子に組み込むことを含む。いくつかの実装形態において、前記方法は、前記共通のプライマー部位に結合するように構成されたPCRプライマーを使用して、ポリメラーゼ連鎖反応(PCR)で複数の識別子核酸分子を増幅することを含む。
【0012】
いくつかの実装形態において、前記方法は、前記複数の識別子核酸分子の各識別子核酸分子にスペーサー配列を付加することを含む。いくつかの実装形態において、スペーサー配列は、ライゲーションまたは重複伸長PCRの1つによって付加される。いくつかの実装形態において、スペーサー配列は、識別子核酸配列内の標的挿入部位に挿入される。
【0013】
いくつかの実装形態において、スペーサー配列は、ナノポアシステムにおける配列決定の間に、複数の識別子核酸分子の各識別子核酸分子の転位時間を増加させるように構成されている。
【0014】
いくつかの実装形態において、ナノポアシステムは、ソースチャンバ、膜、ナノポアおよび宛先チャンバを含む。いくつかの実装形態において、識別子核酸分子を受容することは、膜内のナノポアを通じて、識別子核酸分子をソースチャンバから宛先チャンバに転位させることを含む。いくつかの実装形態において、識別子核酸分子を配列決定することは、インピーダンス信号を検出することと、インピーダンス信号を複数のインピーダンスシグネチャのうちの1つと合致させることとを含む。いくつかの実装形態において、前記方法は、異なるインピーダンス信号を提供するために、複数の識別子核酸分子の少なくともサブセットの各識別子核酸分子に作用物質を結合させることを含む。いくつかの実装形態において、結合させることは、複数の識別子核酸分子の各識別子核酸分子に作用物質を結合させることを含む。
【0015】
いくつかの実装形態において、識別子核酸分子が、識別子核酸分子と合致する少なくとも1つのインピーダンスシグネチャに基づいて宛先チャンバ内に受容されるかまたは拒絶される。
【0016】
いくつかの実装形態において、識別子核酸分子を拒絶することは、ナノポアを横切る電場の極性を逆転させることを含む。
【0017】
いくつかの実装形態において、前記方法は、宛先チャンバが、誤り訂正を伴ったデジタル情報を表すのに十分な複数の識別子核酸分子を含むまで、ナノポアシステム内の複数の識別子核酸分子を配列決定することを含む。
【0018】
いくつかの実装形態において、マッピングすることは、順方向誤り訂正を使用することを含む。
【0019】
いくつかの実装形態において、前記方法は、逆方向誤り訂正を使用することによって、配列決定工程または受容もしくは拒絶工程中に発生する任意の誤りを訂正することを含む。
【0020】
いくつかの実装形態において、宛先チャンバは第1の宛先チャンバであり、標的セットは第1の標的セットである。いくつかの実装形態において、前記方法は、識別子核酸分子が第2の標的セットの識別子核酸配列に対応するか否かに基づいて、識別子核酸分子を第2の宛先チャンバ内に受容するか、または拒絶することをさらに含む。いくつかの実装形態において、ナノポアシステムは、ソースチャンバと、第1の膜と、第1の膜内の第1のナノポアと、第2の膜と、第2の膜内の第2のナノポアとを含む。いくつかの実装形態において、第1の膜は、ソースチャンバと第1の宛先チャンバを分離し、第2の膜は、ソースチャンバと第2の宛先チャンバを分離する。
【0021】
いくつかの実装形態において、前記ビットが1のビット値を有する場合には、前記ビットは前記第1の標的セット中での少なくとも1つの対応する識別子核酸配列の存在によって表され、前記ビットが0のビット値を有する場合には、前記ビットは前記第2の標的セット中での少なくとも1つの対応する識別子核酸配列の存在によって表される。
【0022】
いくつかの実装形態において、前記方法は、コンポーネント核酸配列のプローブセットを指定することを含む。いくつかの実装形態においては、前記方法は、第1の宛先チャンバまたは第2の宛先チャンバからのプローブされた識別子核酸分子をナノポアシステムで配列決定することを含む。いくつかの実装形態において、前記方法は、プローブされた識別子核酸分子がプローブセットのコンポーネント核酸配列を含有する識別子核酸配列に対応するか否かに基づいて、プローブされた識別子核酸分子を回収チャンバ内に受容するか、または拒絶することを含む。
【0023】
いくつかの実装形態において、識別子核酸分子を受容または拒絶することは、識別子核酸分子が標的セットの識別子核酸配列を有する場合に、識別子核酸分子を宛先チャンバ内に受容することを含む。いくつかの実装形態において、前記方法は、識別子核酸分子が標的セットの識別子核酸配列を有さない場合には、識別子核酸分子を宛先チャンバから拒絶することを含む。
図面の簡単な説明
【図面の簡単な説明】
【0024】
前述および他の目的および利点は、同様の参照符号は全体を通して同様の部分を指す添付の図面と併せて以下の詳細な説明を検討すると明らかになるであろう。
【0025】
【
図1-1】
図1Aおよび1Bは、オブジェクト(コンポーネント)または識別子(例えば、核酸分子)を使用して、「アドレスでのデータ」と呼ばれるデジタルデータを符号化する例示的な方法を模式的に示す。
図1Aは、識別子を作製するためにランクオブジェクト(またはアドレスオブジェクト)をバイト値オブジェクト(またはデータオブジェクト)と組み合わせることを示す。
図1Bは、ランクオブジェクトおよびバイト値オブジェクトがそれ自体他のオブジェクト(コンポーネント)の組み合わせ連結であるアドレスでのデータ方法の実施形態を示す。
【0026】
【
図2-1】
図2Aおよび2Bは、オブジェクト(コンポーネント)または識別子(例えば、核酸配列)を使用して、デジタル情報を符号化する例示的な方法を模式的に示す。
図2Aは、識別子としてランクオブジェクトを使用するデジタル情報の符号化を示す。
図2Bは、アドレスオブジェクト自体が他のオブジェクト(コンポーネント)の組み合わせ連結である符号化方法の実施形態を示す。
【
図3-1】
図3Aおよび3Bは、異なるコンポーネント(例えば、核酸配列)を組み合わせ的に組み立てることによって識別子(例えば、核酸分子)を構築するための、「掛け合わせスキーム」と呼ばれる例示的な方法を示す。
図3Aは、掛け合わせスキームを使用して構築された識別子の構造を示す。
図3Bは、掛け合わせスキームを使用して構築され得る識別子の組み合わせ空間の一例を示す。
【0027】
【
図4】
図4は、コンポーネント(例えば、核酸配列)から識別子(例えば、核酸分子)を構築するための重複伸長ポリメラーゼ連鎖反応の使用を模式的に示す。
【0028】
【
図5】
図5は、コンポーネント(例えば、核酸配列)から識別子(例えば、核酸分子)を構築するための粘着末端ライゲーションの使用を模式的に示す。
【0029】
【
図6】
図6は、コンポーネント(例えば、核酸配列)から識別子(例えば、核酸分子)を構築するためのリコンビナーゼアセンブリの使用を模式的に示す。
【0030】
【
図7】
図7は、コンポーネント(例えば、核酸配列)から識別子(例えば、核酸分子)を構築するための鋳型指定ライゲーションの使用を模式的に示す。
【0031】
【
図8-1】
図8A~8Cは、プローブを使用してより多数の識別子から多数の特定の識別子にアクセスすることによって核酸配列内に保存された情報の一部にアクセスするための例示的な方法の概要を模式的に示す。
図8Aは、指定されたコンポーネントを含有する識別子にアクセスするために、ポリメラーゼ連鎖反応、親和性タグ付きプローブおよび分解標的化プローブを使用するための例示的な方法を示す。
図8Bは、「OR」または「AND」演算を実行して複数の指定されたコンポーネントを含有する識別子にアクセスするために、ポリメラーゼ連鎖反応を使用するための例示的な方法を示す。
図8Cは、「OR」または「AND」演算を実行して、複数の指定されたコンポーネントを含有する識別子にアクセスするために、アフィニティタグを使用するための例示的な方法を示す。
【0032】
【
図9】
図9は、組み合わせ空間中で識別子を順序付けする例を示す。4つの層と1層あたり2つのコンポーネントとを有する組み合わせ空間内の識別子は、まず層1内のコンポーネント、次に層2内のコンポーネント、次に層3内のコンポーネント、次に層4内のコンポーネントに従って識別子を並べ替えることによって順序付けされる。線セグメントは、コンポーネントを表す。さらに、灰色のセグメントは各層内の第1のコンポーネント(j,1)を表し、黒色のセグメントは各層内の第2のコンポーネント(j,2)を表し、jは層である。一番下の複合線セグメントは完全な識別子を表す。例示のために、ここでの各識別子上のコンポーネントの物理順序は、コンポーネントが由来する層の論理順序と同じであるが、これは、一般的にはそうである必要はない。
【0033】
【
図10】
図10は、6ビットの単語を8choose4の識別子(8のグループから選択された4つの識別子)から構成される符号語にマッピングするコードブックを使用して、12ビットのデジタル文字列を識別子のプールに変換する例を示す。この特定の例では、6ビットの文字列010010は符号語01011100にマッピングされ、6ビットの文字列111011は符号語11001001にマッピングされる。識別子は、
図9で説明したように順序付けられる。
【0034】
【
図11】
図11は、3つの層と1層あたり2つのコンポーネントとを有する組み合わせ空間内の識別子を示し、異なる長さの識別子が空間に含まれる。識別子は、まず、識別子が含有する層の数に従って識別子をソートすることによって順序付けられる。その後、識別子は、層1内のコンポーネント、次に層2内のコンポーネント、次に層3内のコンポーネント、次に層4内のコンポーネントによってサブソートされる。線セグメントは、コンポーネントを表す。灰色のセグメントは各層内の第1のコンポーネントを表し、黒色のセグメントは各層内の第2のコンポーネントを表す。複合線セグメントは完全な識別子を表す。異なる長さの識別子配列が識別子空間に含まれる。
【0035】
【
図12】
図12は、2つの識別子配列が同じ位置にマッピングされるように、異なるパターンの模様の長方形によって表される識別子配列がどのように論理的に順序付けられるかを示す。対の中にいずれかの配列の識別子分子が存在することは、所定の位置に識別子配列が存在することを意味するであろう。
【0036】
【
図13】
図13は、膜内のナノポアを通過するコンポーネント(黒色および灰色の線セグメントによって表される)から構成される識別子配列を示す。配列が通過すると、コンピュータ上でインピーダンス信号が測定され、可能なコンポーネントシグネチャのデータベースに対する基準として使用される。
【0037】
【
図14-1】
図14Aは、符号語を符号化するために識別子空間がどのように使用されるかを示しており、0のビット値は対応する識別子配列をプールから除外することによって表され、1のビット値は対応する配列決定をプールに含めることによって表される。
図14Bは、ナノポア装置が符号語をどのように書き込むかを示す。ソースチャンバは、識別子空間からのすべての識別子配列を含有する。符号語内の1のビット値に対応する識別子配列のみが宛先チャンバ内に入ることを許される。
【0038】
【
図15-1】
図15Aは、まず識別子をベクター中に挿入し、次いで切断部位において識別子配列を切断することによって、スペーサーが識別子配列中にどのように挿入されるかを示す。識別子配列は、識別子配列のいずれか半分を配列決定することが識別子配列全体を決定するのに十分であるように設計される。
図15Bは、スペーサーが、ナノポアシステムが識別子分子を受容するか、または拒絶するかどうかを決定するための適切な時間を可能にする機構の一例を示す。
【0039】
【
図16-1】
図16Aは、ナノポア装置がどのようにして符号語を書き込むかを示す。ソースチャンバは、識別子空間からのすべての識別子配列を含有する。符号語内の1のビット値に対応する識別子配列のみがビット値「1」の宛先チャンバ内に入ることを許される。符号語内の0のビット値に対応する識別子配列のみがビット値「0」の宛先チャンバ内に入ることを許される。
図16Bは、ナノポア装置が符号語をどのように書き込むかを示す。ビット値「1」の宛先チャンバは、1のビット値を有する識別子空間からのすべての識別子配列を含有する。コンポーネントのサブセットが情報を回収するためのプローブとして指定されると、ライブラリは配列決定され、プローブ配列を有する識別子のみが新しいチャンバ(本事例では、ソースチャンバ)中に移動される。
【0040】
【
図17】
図17は、例示的な実施形態による、プリンタ-仕上げ機システムのベースモジュールを示す。
【0041】
【
図18-1】
図18Aは、プリンタエンジンラックを示す。
図18Bは、例示的な実施形態による、プリントヘッドの位置決めの概略図である。
【0042】
【
図19】
図19は、例示的な実施形態による、識別子のトライに従って区画中に溶液を分配する図を示す。
【0043】
【
図20】
図20は、例示的な実施形態によるプーリングサブシステムを示す。
【0044】
【
図21】
図21は、例示的な実施形態によるアーカイブ情報システムを示す。
【0045】
【
図22】
図22は、例示的な実施形態による、層ごとに編成されたオペレーティングシステムの系統図を示している。
【0046】
【
図23】
図23は、例示的な実施形態による、3つの層と8つのコンポーネントのコンポーネントライブラリとを有する階層化積コンストラクタの系統図を示す。
【0047】
【
図24】
図24は、例示的な実施形態による、ハッシュを加えることによって、誤り保護を伴って核酸分子中にデジタル情報を保存するためのフローチャートを示す。
【0048】
【
図25】
図25は、例示的な実施形態による、ハッシュを別々に保存することによって、誤り保護を伴って核酸分子中にデジタル情報を保存するためのフローチャートを示す。
【0049】
【
図26】
図26は、例示的な実施形態による、パーティションスキームを使用して、核酸分子中にデジタル情報を保存するためのフローチャートを示す。
【0050】
【
図27】
図27は、例示的な実施形態による、均一重み符号の系統図を示す。
【0051】
【
図28】
図28は、例示的な実施形態による、復号化スタックの系統図を示す。
【0052】
【
図29】
図29は、例示的な実施形態による、核酸配列中に保存された情報を読み取るためのフローチャートを示す。
【0053】
【
図30】
図30は、例示的な実施形態によるPCR増幅スキームを示す図である。
【0054】
【0055】
【
図32】
図32は、例示的な実施形態による、保管動作の系統図を示す。
【0056】
【
図33】
図33は、例示的な実施形態による、データを書き込む系統図を示す。
【0057】
【
図34】
図34は、例示的な実施形態による、データのブロックを容器中に保存するためのフローチャートを示す。
【発明を実施するための形態】
【0058】
詳細な説明
本明細書に記載されるシステム、方法および装置の全体的な理解を提供するために、特定の例示的な態様を記載する。本明細書に記載される態様および特徴は、核酸をベースとするデータ保存に関連した使用に関して具体的に記載されているが、以下に概説されているすべてのコンポーネントおよび他の特徴は、任意の適切な様式で互いに組み合わせることができ、他のタイプのデータ保存および核酸技術に対して適合および適用することができることが理解されよう。
【0059】
商業的に実施することが既存の方法よりも安価かつ容易である核酸デジタルデータ保存符号化および回収方法が必要とされている。本明細書に記載されるシステム、装置および方法は、核酸分子にデータを書き込み、核酸分子からデータを読み取るためのスケール拡大可能な方法を提供する。本開示は、以下の4つの主要な関心領域に及ぶ。(1)核酸分子に保存された情報を正確かつ迅速に読み取ること、(2)核酸分子中にデータを効率的に符号化するためにデータを分割すること、(3)核酸分子にデータを符号化する際の誤り保護および訂正、ならびに(4)核酸分子中に保存された情報への効率的なアクセスを提供するためのデータ構造。
【0060】
識別子は、デジタル情報をコードする核酸配列である。例えば、識別子は、記号の列内の記号を表し得る。識別子は、プローブを結合するように構成することができるコンポーネント核酸を含み得る。そのように構成されたコンポーネント核酸配列は、「アドレス可能なコンポーネント」と呼ばれることがある。本明細書に記載されるすべてのコンポーネントは、アドレス可能なコンポーネントであり得る。本明細書で使用される「プローブ」という用語は、一般に、識別子核酸分子上の標的配列を結合する作用物質を指す。標的配列は、コンポーネントの一部であり得る。プローブは、その標的配列と一致するかまたはその標的配列の相補体である配列を含むことができる。プローブは、前記標的配列を含むすべての識別子核酸分子を単離するためにさらに使用することができる。例えば、プローブは、標的配列を含むすべての識別子核酸分子を濃縮するPCR反応におけるプライマーであり得る。または、プローブは、アフィニティタグ付きオリゴヌクレオチドに対応する配列を有するすべての識別子核酸分子を選択するために使用することができるアフィニティタグ付きオリゴヌクレオチド分子を含有することができる。例えば、プローブは、その相補的標的を結合し、続いてストレプトアビジンビーズまたはカラムによって捕捉されるビオチン化オリゴであり得る。プローブは、負の選択にも使用することができる。例えば、特定の標的配列を含有するすべての識別子を除去するために、アフィニティタグ付きプローブを使用することができる。あるいは、プローブは、特定の標的配列を含有するすべての識別子を切断または消化する、Cas9などの活性ヌクレアーゼを含むことができる。
【0061】
図1および
図2は、コンポーネントを含む識別子がデジタル情報をどのように符号化することができるかの例を示す。
図3は、コンポーネントが層に分割され、各層から1つのコンポーネントを組み合わせることから識別子が構築される、コンポーネントから識別子を構築するための「掛け合わせスキーム」と呼ばれる例示的なスキームを示す。組み合わせ空間、または識別子空間は、特定のスキームから形成することができるすべての可能な識別子のセットである。この空間のサブセットは、デジタル情報を符号化するように構成される。このサブセットは、識別子ライブラリまたはプールと呼ばれることがある。
図4~7は、掛け合わせスキームを実行するための例示的な化学を示す。
図8は、識別子ライブラリからの識別子の指定されたサブセットにアクセスするためにプローブを使用する例を示す。
【0062】
いくつかの態様において、識別子は、アドレス可能なコンポーネントのみから構成され得る。アドレス可能なコンポーネントは、識別子を形成するために組み立てることができ、または減法的なアプローチもしくは置換アプローチを通じて識別子配列中に導入され得る。あるいは、アドレス可能なコンポーネントは、デノボ合成によって核酸識別子中に組み込むことができる。異なる書き込み方法は、速度およびコストが異なる。異なる書き込み方法は、識別子中に組み込むことができる可能なコンポーネントの数においても異なり得る。識別子を構築し、データを識別子にマッピングし、プローブを使用して識別子の指定されたセットにアクセスし、識別子を読み取るための技術は、2017年12月21日に出願された「NUCLEIC ACID-BASED DATA STORAGE」と題された米国特許第10,650,312号(DNA内のデジタル情報を符号化することを記載する);2019年5月16日に出願され、米国特許出願公開第2019/0362814号として公開された、「SYSTEMS FOR NUCLEIC ACID-BASED DATA STORAGE」と題された米国特許出願第16/461,774号(DNAベースのデータ保存のための符号化スキームを記載する);2019年5月16日に出願された「COMPOSITIONS AND METHODS FOR NUCLEIC ACID-BASED DATA STORAGE」と題された米国特許出願第16/414,758号;2019年8月5日に出願された「SYSTEMS AND METHODS FOR STORING AND READING NUCLEIC ACID-BASED DATA WITH ERROR PROTECTION」と題された米国特許出願第16/532,077号(DNA符号化のためのデータ構造ならびに誤り保護および訂正を記載する);および2020年5月11日に出願された「DATA STRUCTURES AND OPERATIONS FOR SEARCHING,COMPUTING,AND INDEXING IN DNA-BASED DATA STORAGE」と題された米国特許出願第16/872,129号、(アクセス、ランクおよび検索のためのデータ構造および演算を記載する)に記載されており、これらの各々の内容は、参照によりその全体が本明細書に組み入れられる。
ビットを識別子に符号化する
【0063】
組み合わせ空間内の各識別子は、固定数のN個のコンポーネントを含むことができ、各コンポーネントは、N個の層のセット中の異なる層に由来し、前記層中の可能なコンポーネントの多数のセットのうちの1つである。各コンポーネントは、座標(j、X
j)によって指定することができ、ここで、jは層のラベルであり、X
jは層内のコンポーネントのラベルである。N個の層を有する前記スキームの場合、jは集合{1,2,...,N}の要素であり、X
jは集合{1,2,...,M
j)の要素であり、ここでM
jは層j内のコンポーネントの数である。層に対する論理順序を定義することができる。また、各層内の各コンポーネントに対する論理順序を定義することもできる。このラベリングを使用して、組み合わせ空間内のすべての可能な識別子に対する論理順序を定義することができる。例えば、
図9に示されるように、まず層1内のコンポーネントの順序に従って、次に層2内のコンポーネントの順序に従って、以下同様に識別子をソートすることができる。
【0064】
識別子の論理順序は、デジタル情報を割り当てて順序付けるためにさらに使用することができる。デジタル情報は、各識別子を含む核酸に符号化することができ、または識別子自体の存在下もしくは不存在下で符号化することができる。例えば、4つの識別子の連続するグループごとに4ビットの情報を符号化するコードブックを作成することができる。この例では、コードブックは、4ビットの各可能な文字列を4つの識別子のユニークな組み合わせにマッピングすることができる(4つの識別子の16の可能な組み合わせが存在するので、最大log
2(16)=4ビットのデータを保存することが可能である。)。別の例として、8つの識別子の連続したグループごとに6ビットのデータを符号化するコードブックを作成することができる。この例では、コードブックは、6ビットの各可能な文字列を8つの識別子のうち4つのユニークなサブセットにマッピングすることができる(8choose4=70のこのようなサブセットが存在するので、最大floor(log
2(70))=6ビットのデータを保存することが可能である。)。これらの識別子の組み合わせを符号語と呼ぶことができ、符号語がコードするデータを単語と呼ぶことができる。データ内の隣接する単語は、論理的に順序付けられた識別子の中で隣接する符号語内に格納され得る。
図10は、6ビットの単語を8choose4の識別子(8のグループから選択された4つの識別子)から構成される符号語にマッピングするコードブックを使用して、12ビットのデジタル文字列を識別子のプールに変換する例を示す。符号語は、すべてのビット位置が順序付けられた識別子に対応するビット列として記号的に表すことができ、「0」のビット値は符号語内に対応する識別子が存在しないことを表し、「1」のビット値は符号語内に対応する識別子が存在することを表す。
【0065】
この符号化方式は、任意の長さおよび配列組成の識別子配列を含むように一般化することができる。例えば、
図11に示されるように、異なる数のコンポーネントを含有する識別子配列を許容することができ、所与の配列の識別子が、その識別子が接頭辞であるすべての識別子配列に論理的に先行するように、識別子配列を辞書編集のように順番に配置することができる。これは、英語辞書において単語が順番に配置される方法に類似している。さらに、コンポーネントを塩基として定義することができる。例えば、4つの天然塩基A、G、CおよびTを、塩基の位置によって与えられる層内の4つの別個のコンポーネントとして使用することができる。このような方式を使用して、すべての可能な塩基位置に対して可能な層を割り当てることにより、すべての可能なDNA配列を識別子として含めることができる。例えば、すべての可能なDNA配列の順序は、A、C、G、T、AA、AC、AG、AT、CA、CC、CG、CT、GA、GC、GG、GT、TA、TC、TG、TT、AAA、AAC、AAG、AAT、ACA、ACC、ACG、ACTなどである。別の態様では、この識別子の順序を保ち得るが、識別子空間をこれらの配列の固定されたサブセットに制約することを選択する。例えば、識別子空間を、50塩基~100塩基を有するすべての配列に制約することができる。または、特定の位置に特定の塩基を有するすべての配列に識別子を制約することができる。より一般的には、配列の任意のセットを識別子空間として選択し、任意の辞書を使用してそれらの順序を定義することができる。いくつかの態様においては、複数の識別子配列が同じ論理的に順序付けられた位置にマッピングされ得る。一例を
図12に示す。複数の配列が同じであるかのように扱われるので、本発明者らはこれを「縮重符号化方式」と呼ぶ。
配列決定による書き込み
【0066】
上記の符号化方式を使用して、より大きな識別子空間からの識別子配列のサブセットに対応する識別子分子の物理的プールを作製することによって、核酸中にデジタル情報を書き込み得る。識別子プールを作製するためのシステムは、サブセット内の各識別子配列を構築し、サブセット内に存在しない各識別子配列の構築を除外することに基づいており、建設的であり得る。他のアプローチは、識別子空間のすべての識別子配列を作製し、次いでサブセットに属さないすべての識別子配列を選択的に除去することに基づいており、減法的であり得る。ここで、本発明者らは、配列選択を行うためにナノポア配列決定を使用する減法的なアプローチを記載する。
【0067】
ナノポア配列決定は、電解液および2つのチャンバ、ソースチャンバと宛先チャンバとを分離する少なくとも1つのナノポアチャネルに電場が印加されるシステムを含み得る。いくつかの実装形態において、ナノポアチャネルは、固体状態の膜内に形成される。いくつかの実装形態において、ナノポアチャネルは、α-ヘモリシン(αHL)またはmycobacterium smegmatisのポリンA(MspA)から形成される。ナノポア配列決定の間、ソースチャンバ内の識別子分子はナノポアチャネルを通って転位し、その間にチャネルを横切るインピーダンスが測定される。各識別子配列は、対応する固有のインピーダンスシグネチャを有しており、したがって、各識別子配列が横切って転位する際のナノポアからのインピーダンス値を使用して各識別子配列を特定することが可能となる。識別子のナノポア配列決定の一例を
図13に示す。識別子配列がコンポーネントから構成される場合、識別子内の各コンポーネントは対応する固有のインピーダンスシグネチャを有し得、したがって、測定されたインピーダンス値を固有のインピーダンスシグネチャと比較することによってコンポーネントの種類を決定することができる。
【0068】
このようなインピーダンスシグネチャは、データベース中に保存され、識別子分子がナノポアを横切って転位する際にリアルタイムで基準インピーダンス値と合致され得る。この合致プロセスに基づいて、分子を受容して宛先チャンバ内への転位を継続するか、または分子を拒絶し、分子がソースチャンバ内に留まるように転位を逆転させるかのいずれかを決定することができる。Oxford Nanopore Techologies(商標)製のminION(商標)、GridION(商標)およびPromethION(商標)配列決定装置は、このプロセスに使用することができる配列決定装置の例である。しかしながら、ナノポアを横切る極性を逆転させることによってリアルタイム選択的配列決定が可能なナノポア技術を含む、他のナノポア配列決定技術を使用してもよい。「Read Until」と呼ばれることもあるこの選択的技術は、ゲノム用途について実証されているが(参照により、その全体が本明細書に組み入れられるEdwards,H.S.ら「Real-Time Sequencing with RUBRIC:Read Until with Basecall and Reference-Informed Criteria.」Sci Rep.2019;9:11475を参照)、本明細書に記載されているようにDNA中にデジタル情報を書き込むことには適用されていない。ソースチャンバ内の完全な識別子空間に対応する識別子分子をロードし、次いで、標的とされるサブセット内の識別子配列に対応する分子はナノポアを通過して宛先チャンバ中に入るが、標的とされるサブセット内の識別子配列に対応しない識別子配列は宛先チャンバに入ることから拒絶されるようにするために、リアルタイム選択的配列決定を使用することができる。十分な時間の後、得られる宛先チャンバは、上述の符号化方式に従ってデジタル情報を保存する識別子のプールに対応する。書き込みプロセスの一例を
図14に示す。次いで、識別子のプールをPCRで増幅し、計算、ランダムアクセスまたは読み取りなどの下流のプロセスのために使用し得る。
【0069】
いくつかの実装形態において、ナノポアを横切る印加された電場は、100mVを超えるかまたは100mVに等しい差分電位を生成する。この高い差分電位により、例えば100mV未満の電位を使用する速度と比較して、識別子は比較的高い速度でナノポアチャネルを通過することが可能になる。例えば、識別子の転位は、1,000塩基/秒を超える速度で起こり得る。特に、転位速度は100万塩基/秒であり得る。さらに、書き込みのスループットを増加させるために、複数のナノポアが並行して使用され得る。
【0070】
いくつかの実装形態において、転位前に、作用物質が識別子に結合される。例えば、作用物質は、化学的部分、タンパク質、酵素、塩基類似体、コンジュゲートされた核酸、ヘアピンを有する核酸、またはメチル基であり得る。いくつかの実装形態において、作用物質が化学的部分である場合、メチルトランスフェラーゼなどの酵素が、少なくとも1つの識別子核酸分子に化学的部分を結合する。いくつかの実装形態において、作用物質が塩基類似体であり、作用物質がポリメラーゼなどの酵素を使用して結合される場合、酵素は複製中に塩基類似体を少なくとも1つの識別子核酸分子に結合する。
【0071】
作用物質は、読み取り中に識別子内の配列を決定するのを助けるために使用することができる作用物質シグネチャを伴う。少なくとも1つの識別子核酸分子に作用物質を結合させることは、識別子のコンポーネント上の既知の位置で起こり、その結果、既知の位置における作用物質シグネチャは、転位中にインピーダンス値の既知のシフトをもたらす。したがって、作用物質の存在は、識別子に対して誇張された「プロファイル」を作製し、それによって読み取り時の信号対ノイズ比を増加させ得る。これにより、読み取りおよび書き込み時の精度を維持しつつ、転位速度を増加させ得る。
【0072】
例えば、Oxford Nanopore Technologies(商標)製の現在のナノポア配列決定装置フローセルは、2~3日で最大200ギガベースまたはそれを超えるDNAを配列決定することができる。各識別子が約200塩基である場合、このようなフローセルでの配列決定の実行は、最終識別子プール中のメンバーであることに関して照会された約10億個の総識別子配列を与えるであろう。このような方法は、最大1ギガビットの情報を符号化するために使用することができる。しかし、配列決定はランダムなプロセスであり、いくつかの配列は複数回配列決定されるのに対して、他の配列は全く配列決定されないので、これは符号化された情報における符号語の消去または誤りをもたらす。このような消去または誤りの発生率は、配列決定カバレッジを増加させることによって、例えば、1ギガビットの情報に代えて100メガビットの情報を符号化するために約10億配列リードを使用することによって減少させることができる。誤りおよび消去の残存する可能性は、誤り訂正によって訂正することができる。このような誤り訂正は、ある閾値までの誤り耐性を伴って情報を符号化する、リード・ソロモン符号などの順方向誤り訂正であり得、または書き込みプロセス中に発生する誤りを追跡し、その後それらを修正する逆方向誤り訂正方法を用いることができる。
【0073】
読み取りと書き込みが同時に起こるので、逆方向誤り訂正を行う能力は、この書き込み方法に特有である。これにより、システムは、最終識別子プール内に存在するはずであったが含まれなかったすべての識別子配列、または逆に最終識別子プール内に存在するはずでなかったが誤って含まれたすべての配列を追跡することが可能となる。このようなメタデータは、従来の手段によってまたは別個の識別子プール中に、符号化された情報と共に格納することができる。このようなメタデータは、全データよりもサイズがはるかに小さい可能性がある。
【0074】
より一般的には、識別子配列が書き込まれている際に識別子配列を読み取ることによって書き込まれた識別子配列を確認することができることは、この方法に固有である。これは、逆方向誤り訂正を可能にするだけでなく、書き込みおよび読み出しが2つの異なる工程で行われる他の方法と比較して、より厳格な品質管理を可能にする。例えば、失敗したまたは低品質の実行を書き込みプロセスの途中で決定してもよく、その場合、システムはプロセスを終了し、終了を報告し、システムおよび試薬をリセットし、再び開始することができる。これは、読み取りが書き込みとは無関係に行われ、校正のために使用され得る従来の情報書き込みプロセスにより近い。読み取りおよび書き込みプロセスは同じシステムを利用するので、これはまた、読み取りおよび書き込みプロセスを一緒に改善することができる技術開発環境を作り出す。ナノポア配列決定装置の速度、スループット、精度および利便性は、DNAから情報を読み取るために向上するので、ナノポア配列決定装置の速度、処理量、精度および利便性は、DNAに情報を書き込む際にも向上するであろう。このアプローチの別の利点は、システムの設置面積である。ナノポア配列決定装置、例えば、Oxford Nanopore Technologies(商標)製のMinION(商標)は、携帯式とすることができ、スマートフォン上で実行することもできる。
【0075】
ソースチャンバ内に移行する識別子配列の全空間は、バルクで作製され得、複数インスタンスの書き込みのために再使用され得る。これらの識別子配列を迅速に、安価に、かつ確実に作製するために、複数の戦略が使用され得る。一態様において、識別子配列は、掛け合わせスキームを使用してコンポーネント部分からの組み立てを通じて作製され得る。例えば、
図15に示されるように、すべての層のすべてのコンポーネント分子は、大きな多重化された組み立て反応において一緒に混合され得る。例えば、それぞれ10個のコンポーネントの9個の層を混合することによって、10億個の配列の識別子空間を構築することができる。すべてのコンポーネントが同様の効率で集合し、すべてのコンポーネントが同様の化学量論で大きな反応中にロードされる限り、得られる生成物プール中にすべての識別子配列の比較的均一な分布が得られると予想される。ロードすべきコンポーネント分子の数を決定するときには、識別子空間の多様性を考慮にするように注意すべきである。例えば、完全な識別子配列の集合効率が1%であり、空間中に合計10億個の識別子配列が存在する場合、各識別子配列の少なくとも1つの分子を識別子空間中に作製するために、コンポーネントの各層の少なくとも1000億個の分子を大きな反応に添加すべきである。
【0076】
別の態様において、空間のすべての可能な識別子配列は、構成塩基から新規にプログラム可能に合成され得る。このようなプログラム可能な合成は、複数のオリゴがチップ上で並行して合成され、次いでチップから除去され、一緒にプールされるアレイ合成によって高スループットで行われ得る。このようなプールされたオリゴライブラリは、複数の供給業者から入手可能であり、典型的には、最大200塩基の長さの10K~1Mオリゴの範囲である。このような方法は、例えば、それぞれ150塩基で、最大1Mの識別子配列の識別子空間をもたらすことができる。追加の処理工程は、より多くの配列をもたらし得る。例えば、150塩基の識別子配列は、エンドヌクレアーゼを使用してそれぞれ約50塩基のより小さなセグメントに切断することができるように設計され得る、次いで、識別子空間は、50塩基の3M識別子配列に変換され得る。このプログラム可能なデノボ合成方法は、前述のコンポーネント組み立て方法と比較して比較的低いスループットであるが、塩基分解能で識別子配列を設計することを可能にする。配列は、情報がDNAに書き込まれた後、下流のデータ適用に関して特にうまく機能するように設計され得る。例えば、完全な識別子配列を融解し、次いでそれらを再び一緒にハイブリダイズさせることを必要とする計算の何れの形態も、熱力学的相互作用に関してすべての他の識別子配列に対して最大限に独立するように各識別子配列を設計できることから利益を得ることができる。
【0077】
別の態様において、空間のすべての可能な識別子配列は、縮重オリゴ合成によって作製され得る。縮重オリゴ合成では、オリゴ合成プロセス中にA、G、CおよびT塩基の等しい混合物を投入することによって、オリゴの特定の位置における塩基のすべての可能な組み合わせが生成される。この合成アプローチは、各オリゴを別々に合成する必要性をなくし、プログラム可能なデノボ合成アプローチと比較してはるかに多様な識別子配列を合成することができる。例えば、オリゴの20の異なる位置における縮重塩基を指定することができ、その結果、単一のプール内に4
20(1兆超)の可能な識別子配列の多重形成がもたらされる。この方法は、多くのDNA配列を作製する能力においてプログラム可能な合成より有利であるが、配列設計能力において制限される。例えば、このプロセスから作成されるすべての識別子DNA配列は、複数の他の識別子配列から常に1塩基突然変異だけ離れている。識別子間で編集距離がこのように近接していることにより、書き込み、保存および読み取りプロセス中に複数の誤りをもたらし得る。このリスクは、類似の識別子配列を1つとして扱う縮重符号化方式によって軽減され得る(
図12を参照)。
【0078】
識別子空間の識別子配列が構築されると、識別子配列は、各末端に共通のプライマー結合領域を有するように、または各末端に共通のプライマー結合配列を付加する能力を有するように設計され得る。これらの共通の領域は、識別子配列の完全なライブラリを無限に増幅するために使用され得る。言い換えれば、一旦、完全な識別子空間が構築されると、その後、情報を書き込む複数の事例において使用され得る複数のコピーを生成するために、完全な識別子空間は複製され得る。
【0079】
本明細書に記載される配列決定による書き込みのための方法は、分子がナノポアを横切って転位している間に、識別子分子が識別子配列の標的サブセットに属するか否かを判定することができるシステムに依存する。分子が完全に宛先チャンバに転位した後に判定が行われる場合、分子を選択的にソースチャンバに戻すことはできない。これを防止し、識別子分子がまだ転位している間に識別子分子に対する受容または拒絶の決定が行われる可能性を増大させるために、識別子分子の関連部分がナノポアを通過した後に、識別子がより長い期間転位するように、スペーサー配列を識別子中に人工的に挿入することができる。DNA分子を一方の末端からのみ配列決定することができるナノポアシステムにおいては、スペーサー配列は識別子の反対側末端に付加する必要があるに過ぎない。これは、ライゲーションまたは重複伸長PCRなどの様々な組立方法を通じて達成され得る。DNA分子がいずれかの末端から等しい確率で配列決定され得るナノポア配列においては、識別子配列中にスペーサー配列を挿入しなければならず、識別子配列のいずれかの末端を読み取ることが識別子配列全体を再構築するのに十分であるように、識別子配列内の挿入点は、一方の末端スペーサー上の得られた配列情報が他方の末端上の配列情報を必ず含意するようなものでなければならない。これは、スペーサー配列を直鎖識別子配列中に挿入することができるインテグラーゼを用いた挿入方法を使用して達成され得る。別の態様において、直鎖識別子配列は、スペーサー配列を含む環状ベクターに挿入され得、次いで、識別子配列内の標的部位において、例えばエンドヌクレアーゼで切断され得る。得られた分子は各末端に固有の識別子配列を有し、それらのいずれかが最初にナノポアを通過し、残りの分子が通過し続ける際に受容または拒絶判定を行うために使用され得る。この方法の図解が
図15に示されている。配列決定遅延および転位の速度との適合性のために、スペーサー配列の長さはプログラムすることができる。例えば、決定プロセスが最大で3秒を必要とし、転位速度が300塩基/秒である場合、スペーサー配列は少なくとも900塩基長とすべきである。書き込みプロセスが完了した後、スペーサー配列は、例えば、エンドヌクレアーゼ消化によって、または関連する識別子配列をPCRすることによって、分子から除去され得る。
【0080】
書き込みプロセスをさらにすぐに使用できるようにするために、(必要であれば、スペーサーを含む)出発識別子ライブラリを配列決定のために事前準備し、ソースチャンバに事前にロードされ得る。この準備により、配列決定による書き込みプロセスは、事前の試薬の取り扱いなしに、オンデマンドで現場で行うことができる。ユーザは、単にデータをシステムに送信し、書き込みインスタンスを実行することができる。
【0081】
出発識別子ライブラリの複雑さを低減することによって最初の書き込み-配列決定工程の効率を改善するために、追加のチャンバを使用することができる。ナノポア配列決定におけるより時間のかかる工程の1つは、核酸をナノポアと会合させるために必要とされる時間である。特定の核酸、例えば「0」のビット値を有する識別子が配列決定され、ナノポアから拒絶される場合、識別子の出発プールは、「0」のビット値を有する識別子について濃縮され続ける。この濃縮により、「1」のビット値を有する識別子を見つける可能性がより低くなる。ナノポアによって分離された複数のチャンバを使用して、この濃縮を緩和することが可能である。一例を
図16Aに示す。「0」のビット値に対応する識別子は第1の宛先チャンバにソートされるのに対して、「1」のビット値に対応する識別子は第2の宛先チャンバにソートされる。各宛先チャンバは、別個のナノポアまたはナノポアのセットによって制御され得る。各宛先チャンバへのソートは、ソースチャンバが「0」および「1」の各ビット値に対応する識別子のほぼ一定した濃縮を維持するように、並行して実行され得る。同様に、このマルチチャンバアプローチは、特定の情報を配列決定し、復号するために、符号化されたライブラリから識別子のサブセットを選択するために使用することができる(
図16B)。最後に、すべての分離された識別子を組み合わせることによって元のライブラリを再構築することが可能であり、ナノポアの調節を介して、符号化された情報を効果的に「削除」する。
【0082】
本明細書に記載される読み取り方法は、任意の核酸配列を読み取るために使用され得るが、本開示の読み取り方法は、データまたは情報を識別子核酸分子(本明細書では単に「識別子」または「識別子分子」とも呼ばれる)に書き込む符号化方法を使用して核酸配列に書き込まれた、核酸配列内に保存された情報を読み取る場合に特に有利である。各識別子分子の核酸配列は、記号の列(例えば、ビットストリーム)内の特定の記号値(例えば、ビットまたは一連のビット)、その記号の位置(例えば、ランクまたはアドレス)、またはその両方に対応する。例えば、識別子分子の存在または不存在は、それぞれ1または0のビット値を信号として送ることができる(またはその逆)。識別子核酸分子は、コンポーネント核酸分子(本明細書では単に「コンポーネント」または「コンポーネント分子」とも呼ばれる)の組み合わせ配置を含む。いくつかの実装形態において、コンポーネントの核酸配列は、層とも呼ばれる固有のセットに分離される。識別子分子は、1つのコンポーネント分子が各層から選択された複数のコンポーネント分子を一緒に連結する(またはその他組み合わせる)ことによって組み立てられる。可能な識別子配列のセットは、コンポーネント配列の様々な可能なコンビナトリアルな組み合わせに対応する。例えば、M個の層に分離されたC個のコンポーネント配列について、各i番目の層のコンポーネント配列の数をciで表すと、形成され得る可能な識別子配列の数は、c1×c2×....×cMによって表すことができる。一例として、各々が10個のコンポーネント配列を含む12の層の符号化方式は、1012個の異なる固有の識別子配列をもたらすことができる。各識別子配列がビットストリーム内の1ビットに対応する場合、この符号化方式は1Tbのデータを表すことができる。核酸分子にデジタル情報を書き込む様々な方法の例は、2017年12月21日に出願され、米国特許出願公開第2018/0137418号として公開された「NUCLEIC ACID-BASED DATA STORAGE」と題する米国特許出願第15/850,112号;2019年5月16日に出願された、「SYSTEMS FOR NUCLEIC ACID-BASED DATA STORAGE」と題する米国特許出願第16/461,774号;および2019年5月16日に出願され、「COMPOSITIONS AND METHODS FOR NUCLEIC ACID-BASED DATA STORAGE」と題する米国特許出願第16/414,758号にあり、これらの各々は、参照により本明細書に組み入れられる。
【0083】
核酸分子の配列決定または読み取りは、(例えば、信号対ノイズ比が低いために)ヌクレオチド間の区別が困難であるため、誤りが生じやすいことが多い。上記の方法を使用して符号化された記号は、事前に既知のコンポーネント分子のセットから形成された識別子核酸分子として表されるので、所与の分子の配列中に符号化された情報を決定するために所与の分子の配列を読み取るには、その配列内のあらゆる塩基の正確な読み取りを必要としない。代わりに、本明細書に開示される読み取り方法は、比較的高い誤り率を許容することができ、核酸分子からのデジタル情報をなお正確に復号することができる。それを行うために、記号の列中のどの記号が観察された(または読み取られた)識別子分子によって表される可能性が最も高いかを決定するための近似文字列合致技術を使用することによって、読み取られた配列の一部を、コンポーネント配列の既知のセットに合致させることができる。いくつかの実装形態において、コンポーネント配列は、各コンポーネント配列が少なくとも最小数の塩基差(例えば、最小ハミング距離またはレーベンシュタイン距離)だけそれぞれの他のコンポーネント配列から分離されるように設計される。このようにコンポーネント配列が互いに異なることを要求することにより、配列決定されているコンポーネント分子のある配列が、配列を合致するときに別のコンポーネント配列と間違えられる可能性が低減する。したがって、本開示の読み取りシステムは堅牢であり(例えば、塩基エラーに対する感受性がより低い)、
図28および
図29を参照しながら以下でさらに詳細に説明されるように、識別子分子は、従来の配列決定におけるより高速かつより少ないエラーで読み取ることができる。
【0084】
核酸分子中に保存されたデータを読み取る際の誤りに対する耐性を改善するための1つの方法は、データを符号化する際に誤り保護記号および誤り訂正スキームを含めることである。これを達成するために、ソースデータ(例えば、記号の列)はブロックに分割され、各ブロックに対してハッシュが計算され、各ブロックの最後においてハッシュがソースデータに付加されて記号の修正された列を得、これがDNAに書き込まれる。それらのハッシュのうちの1つに対応する記号の修飾された列の一部がDNAから読み出されると、対応するブロックの読み出された記号上で計算されたハッシュと比較される。読み出されたハッシュと計算されたハッシュとの不一致は、読み取りエラーを示し、例えば、核酸分子から抽出された情報はソースデータと一致しない。核酸分子に保存されたデータを読み取る際の誤りに対する耐性をさらに向上させるために、リード・ソロモン符号などの誤り保護符号を、ソースデータまたはハッシュが付加されたソースデータを表す記号の上記修飾された列に適用することができる。
図24~
図25を参照しながら以下でさらに詳細に記載されているように、リード・ソロモン符号は、データを読み出すときに、誤った要素および要素消去の両方に対して、誤り耐性を高める。
【0085】
データを核酸分子に書き込む前にデータに均一重み符号を適用することは、核酸分子からそのデータを読み戻す効率も増大させ得る。複数の識別子分子が、固体、液体または粉末の形態を有するプール内に配置され得る。例えば、識別子分子は別々の区画に形成され得、次いで、プールを形成するために区画は統合され得る。均一重み符号は、各区画がある数の識別子分子を有することを保証する。データは単語に分けられた後、得られた各符号語が特定のタイプの同じ数の記号を有する(例えば、記号がビットである場合、すべての符号語は値1を有する同じ数のビットを有することができる。)ことを保証する様式で、符号語を形成するように変換され得、その結果、同じ「重み」を有する符号語が得られる。例えば、NchooseK符号化方式においては、各符号語は、1つの区画内に形成された識別子によって表され得、各区画は、N個の可能な配列のうち正確にK個の識別子配列を含有する(プールまたは区画は個々の識別子分子のコピーを含み、識別子分子の各コピーは同じ識別子配列を有することに留意されたい。本明細書で使用される場合、プールまたは区画中の「識別子配列の数」または「識別子の数」は、個々の識別子分子のコピーの数を指し、各コピーは同じ識別子配列に対応する。)。そのプールまたは区画を配列決定するときに、符号語を表すN個の可能な配列に対してK個より少ない識別子配列が読み取られる(または観測される)場合、それは符号語の値を解釈するのに不十分なデータが存在することを示す。このような事象を符号語消去と呼ぶことがある。他方、配列決定中に(符号語を表すN個の可能な配列に対して)K個の識別子配列が読み取られると、配列決定プロセスは停止することができ、これは配列決定時間の量を減少させ、符号語を解釈するのに必要とされる効率を向上させることができる。いくつかの例では、符号語を表すN個の可能な配列についてK個より多い識別子配列が読み取られれば、符号語は、最も高いコピー数を有するK個の識別子配列から解釈され得る。いくつかの例では、可能な符号語値のより限定されたセットを決定するために、観察されたK個より多い配列からのK個の識別子配列のすべての組み合わせが検討され得る。正しい値は、さらなる下流の処理において、例えばハッシュ法を用いて決定され得る。
【0086】
DNAから情報を読み取る際の効率を改善するための1つの方法は、データ列のデータブロックの位置を保持するためにデータ構造を使用することを含む。例えば、大きなデータ列は分けて、2またはそれを超える容器中に保存され得る。どの容器が、ユーザがアクセスしたい情報を含むかを決定するために、システムは、位置(例えば、容器数または配置)を保持するBツリーまたはトライ構造にアクセスし得る。これにより、ユーザは、データ列を含む各容器内の情報を読み取るのではなく、自分が探している情報に都合よくアクセスすることが可能になる。さらに、ユーザがアクセスしたい情報は、容器内に含まれる識別子の総数よりも少ない複数の識別子のみを含み得る。このような例では、容器内に存在する可能な識別子の空間全体ではなく、標的の複数を含む可能な識別子の小さなサブセットのみにアクセスして読み取るのが効率的であり、コストがかかる。そのため、Bツリーまたはトライ構造内に含まれる位置情報は、容器に加えて、標的の複数の識別子に関する情報を含むようにさらに構成され得る。
【0087】
したがって、本明細書に記載されるシステムおよび方法は、コストを低減し、核酸分子に情報を書き込むスループットを増大させるいくつかの機会を提供する。第1に、デジタル情報の新しいパケットを書き込むために、コンポーネントのセットを再利用および再結合することができる。したがって、新たな各書き込み作業のために塩基ごとの合成を使用する必要性があり、高いコストがかかることが、いくつかの書き込み作業にわたってならされ得る1回の塩基ごとの合成コストに置き換えられる(例えば、860テラビットのパケットを書き込むために10μmolスケールで224個の30塩基オリゴ)。第2に、符号化された情報は、DNAコンポーネントの配列から切り離され、書き込み、保存、コピー、照会、および読み取り動作のために最適化され得る大きな配列設計空間の使用を可能にする。第3に、本明細書に記載される核酸分子符号化方式は、強化された誤り訂正を含み、最適化された動作速度を提供する。
【0088】
以下の説明は、核酸分子にデータを符号化することの概要から始まり、
図17~
図21に関連して記載されているとおり、符号化された核酸分子を印刷および保存するように設定された書き込みおよび保管システムの説明が続く。本開示は、誤り保護、効率的な符号化、および「重み最小化」のために設計されたスキームを含む、
図22~
図27に関連する様々な符号化方法を説明する。次に、本説明は、
図28~31の復号システムおよび方法を説明する。本説明は、
図34において、核酸分子からの特定の情報の回収において使用することができるデータ構造を紹介する。
図32は保管動作の概要を示し、
図33は核酸分子にデータを書き込む系統図を示す。
【0089】
本明細書に記載される方法を使用して核酸分子に情報を書き込むことは、記号の列を識別子配列として符号化することを含み、各記号の位置および値は識別子配列によって表される。いくつかの実装形態において、各識別子分子は、規定の層に基づいて順序付けられた、ライゲーションされた予め作製されたDNAコンポーネント分子から構成される。各層内で、識別子配列を作製するために、いくつかの固有のDNAコンポーネント配列を選択することができる。その対応する識別子配列への記号の1対1マッピングは、そのコンポーネントの効率的に計算された関数である識別子順序によって確立される。具体例として、利用可能な識別子配列のセットは、15の層を含むことができ、そのうちの14層はそれぞれ6つの固有のDNAコンポーネント配列を含む。15番目の層は、同じく組み込まれる(6個ではなく)28個のDNAコンポーネント配列を含む多重層であり得る。したがって、各識別子は、全長識別子核酸分子内に15個のコンポーネント(各層に1つのコンポーネント)を含み得る。書き込みプロセスの間、コンポーネント分子は反応区画内で組み立てられて識別子分子を形成する。いくつかの実装形態において、「多重層」のみに由来する複数のコンポーネントが同じ反応区画中にまとめられる。
【0090】
一例として、86400秒(24時間)で1テラバイトを書き込むためには、(識別子当たり10ビットの情報が符号化されると仮定して)約8E+11個の識別子分子、または約5.7E+10個の液滴反応区画を集合させる必要があり得る。各反応は、28個の識別子の可能なセットから14個の識別子を集合させ得る。14個のコンポーネント(それぞれ6つの可能なコンポーネントを有する14の層の各々からのもの)は、識別子の「塩基」を指定し、集合させる。多重層からの28個の可能なコンポーネントのうちの残り14個のコンポーネントは、(28個の可能性のうちの)どの14個の識別子が集合されるかを指定する。したがって、各反応区画は、28個のDNAコンポーネントに加えてリガーゼまたは他の反応混合物を必要とし得る。
【0091】
本明細書に記載される方法は、以下に説明されるように、書き込みシステムを使用して実施され得る。書き込みシステムは、参照により本明細書に組み入れられる、2019年5月16日に出願された、Printer-Finisher System for Data Storage in DNAと題する米国特許出願第16/414,752号に記載されているようなプリンタ-仕上げ機システムであり得る。書き込み装置システムは、基材上の別々の位置(例えば、反応区画)にDNAコンポーネントを分注し、ライゲーションマスターミックスを分注し、ライゲーション反応に最適な条件を提供し、ライブラリを構成するDNA識別子のすべてをプールし得る。書き込みシステムは、
図18~21に関連して以下に記載されるように、4つのモジュール式のコンポーネント、ベース機器、印刷エンジン、インキュベータおよびプーリングサブシステムを備え得る。
【0092】
本明細書に記載される書き込みシステムは、識別子を構築するためのライゲーション反応の高スループットな、並列化された印刷を実行し得る。反応は、ローラ上を移動する柔軟なシート(ウェビングまたは基材とも呼ばれる)上に印刷されたピコリットル(pL)スケールの液滴中で行われ得る。書き込みシステムは、適切な既製の印字ヘッド、ドライバおよび機械基礎構造を使用して、デジタルインクジェット印刷およびウェブハンドリングなどの技術を組み込み得る。本明細書に記載されるシステムおよび方法は、記憶容量および書き込みスループットを達成するために、ウェブ速度、印字ヘッドの分配速度、液滴サイズ、およびライゲーション化学などの要因の最適化を含む。この目的のために、ならびに潜在的な化学およびハードウェアエラーに対するデータ耐性を確保するために、本明細書に記載されるシステムおよび方法は、DNAコンポーネント配列をどのように層に分配するかおよび各印刷反応においてどれだけの数の識別子分子を構築するかについての仕様を含む、データを符号化し、印刷命令を生成するための構成を含む。例えば、このような構成は、書き込みシステムと通信し、その性能を追跡するコンピュータシステムを含み得る。
【0093】
図17は、本明細書に記載される方法を実行するように構成された書き込みシステムのベースモジュール102を示す。ベースモジュール102は、コンポーネントがその上に配置され得るように、書き込みシステムを介してウェビング104を移動させる巻き出し/巻き戻しコンポーネントを含む。ウェビング104(基材とも呼ばれる)は、液滴がその上に分配されて液滴反応区画を形成する材料である。例えば、ウェビングは、ポリエチレンテレフタラート(PET)またはポリプロピレンのような低結合性プラスチックであり得る。ベースモジュール102は、オープンリール式の機械である。ベースモジュール102は、例えば、研究およびラベル製造産業のために開発されたWerosys Compactシステムであり得る。
【0094】
書き込みシステムは、印刷エンジンも含む。印刷エンジンの2つの主要なコンポーネントは、インク管理システムおよび液滴分配用の印字ヘッドである。インク管理システムは、真空ポンプ、バルブ/チューブ、および液体上方のヘッドスペース内の真空圧力を局所的に制御するための搭載ソフトウェア/電子機器を含む。例えば、インク管理システムは、Megnajetシステムであり得る。インク容器は、最大1m離れて配置することができ、Meteor4色コントローラカードを使用し得る。
【0095】
図18Aは、印字ヘッド載置台200を示す。台200は、印字ヘッド保持スポット202~204内に最大6つの印字ヘッドを保持する。台200は、ウェビング上にコンポーネントを配置させるために使用される印字ヘッドと、印刷エンジンを通過するウェビングとの間の境界部である。台200は、印字ヘッドをウェビングの近くに保つ。例えば、印字ヘッドは、ウェブの上方約0.5mm、1mm、2mmまたは3mmに保たれ得る。ある種の印字ヘッドは、液滴を刷り重ねる能力を制限する誤調整されたノズル配置を有するので、台200は、反応区画内で刷り重ねをするために印字ヘッドノズルを適切に整列させるために印字ヘッドを傾斜して保持する。傾斜角は、ノズルが液滴を刷り重ねるように整列するような、ノズルプレートの法線ベクトルからのわずかな回転である。傾斜角は、例えば、1度、2度、4度、8度、10度、20度、または任意の適切な角度であり得る。例えば、異なる4つのノズル列の刷り重ねを達成するために、印字ヘッドは8.7°の角度で回転され得る。液滴吐出の精度は、所望される間隔、接触角に依存するウェブ上の液滴の直径、および吐出の再現性によって決定される。これらのパラメータは、利用可能なハードウェアコンポーネントによって満たされ得るが、開発中に何らかのカスタマイズを必要とする場合があり得る。
【0096】
図18Bは、4列の印字ヘッドノズル212、214、216、218を示す。列212、214、216、218の各々は、異なるコンポーネントを吐出し得る。(矢印219によって指される線から右斜め上に広がる)基材222は、ノズル212、214、216、218を有する印字ヘッドの下で直線的に移動される。印字ヘッドの8.7度の回転のために、基材222上の座標224は、各ノズルが座標224上にコンポーネントを配置させ得るように、線217に沿って列212、214、216、218内のノズルの真下を通過する。
【0097】
印字ヘッドは、印字ヘッド(4つ)当たり複数の「色」を吐出することができ、刷り重ねを可能とする。印字ヘッドの各ノズルによって吐出される液滴体積は、1pL、2pL、3pL、7pL、10pL、20pL、または任意の他の適切な量であり得る。いくつかの実装形態において、液滴の体積は調整され得る。このパラメータは蒸発速度およびライゲーションインキュベーション条件に影響を及ぼすので、液滴体積の柔軟性は有用である。印字ヘッドとの適合性を促進にするために、コンポーネントインクに添加剤が添加され得る。例えば、導電性を増大させるために、トリスのような溶質が添加され得る。一例として、放出品質および印字ヘッドノズルの寿命を改善するために、湿潤剤または界面活性剤(例えば、グリセロール)が添加され得る。
【0098】
いくつかの実装形態において、印字ヘッドはMEMS(微小電気機械システム)装置である。例えば、印字ヘッドは、Ricoh MH5420印字ヘッドであり得る。印字ヘッドは、DNA識別子の完全性を損なうことがあり得る、多くの感熱式印字ヘッドに関連するリスクおよび不確実性を回避するように選択される。印字ヘッドは、高速、低体積、水性適合性および滴アドレス指定可能な圧電吐出が可能である。印字ヘッドは、ステンレス鋼ノズルプレートを含み得る。
【0099】
ノズル詰まりは、印字ヘッドの一般的な故障モードである。例えば、詰まった印字ヘッドは、閉塞、乾燥の危険性があり、したがって再循環を要する。このため、書き込みシステムは、吐き出しおよび拭き取りのために印字ヘッドを書き込みシステムから移動させ、その後、見当合わせを維持しながら交換することを可能にする。
【0100】
印刷の再現性を補助するために、書き込みシステムは、液滴形態、体積、および速度を最適化し得る。印字ヘッド内の溶液は、可視性のために色素を含有する水-Tris溶液を含み得る。例えば、色素はブロモフェノールブルーであり得る。印字ヘッド中で使用される溶液は、低い粘度および高い表面張力を有するという点で、従来の印字ヘッドインクとは異なる。溶液は本質的に水であり、10-11cPの理想的なインクと比較して約1cPの低い粘度を有する。溶液は本質的に水であるため、32mN/mの理想的なインクと比較して、72mN/mで高い表面張力を有する。
【0101】
最適な波形を用いて、液滴の形状、体積および速度を測定することによって、液滴の再現性が検証され得る。個々の液滴体積は、鉱油容器中に数百万個の液滴を分注し、容器の質量の変化を測定することによって検証され得る。液体の蒸発を回避するために、液滴は、水性液滴が沈むように油中に分注され得る。液滴の形状および速度は、飛行中の液滴分注を捕捉するためにCCDカメラを使用する「ドロップウォッチ」システムを使用して測定され得る。
【0102】
図19は、トライから構築された識別子配列に従って反応区画中に溶液を分注する図を示す。トライの各層は識別子の層を表し、各トライ層の各端は対応する識別子層内のコンポーネントを表す。トライの最後の層は、識別子の多重層を表し得る。記号の列300は、DNA識別子核酸分子中に保存されるべき符号語のセットを表す。符号語は、ソース語と呼ばれるソースアルファベットからの特定の記号の列を表す記号の列である。符号は、符号化として知られるプロセスにおいてソース語を符号語にマッピングする。液滴304は、個々の反応区画(例えば、区画306)中に分配される。記号の列300は、ツリーの根(図示せず)を、「1」の記号値を指し示す最後の(多重)層302の葉に接続するトライ経路によって表される識別子を構築することによって符号化される。
図19に示されるように、および特に
図27に関連して以下でさらに記載されるように、符号語の「重み」は均一に分散され得る。すなわち、記号の列300は、5ビットの各文字列が反応区画内で符号化されるように分割され、5ビットの各文字列は正確に3つの「1」値を有するので、各区画は多重層から3つのコンポーネントを受け取って3つの識別子を形成する。例えば、多重層に示されているように、および記号の列「10101」の位置に対応するように、反応区画306は、基層からのコンポーネント(多重層に至るトライの経路を含むコンポーネント-コンポーネント7、B、D、...)と、それぞれ、多重層からのコンポーネント0、2および4との固有の組み合わせを有する識別子を含有する。「1」値の各々について、(それに至る経路を構成するコンポーネントから構成される)その記号位置の対応する識別子分子が反応区画中に配置される。
【0103】
印字ヘッドが反応区画内にコンポーネントを配置させた後、反応区画は印刷エンジンからインキュベータモジュールに移動される。インキュベータは、最適なライゲーション効率に必要とされる温度および液滴の蒸発を防ぐために必要とされる湿度を制御するので、ライゲーション反応にとって極めて重要である。インキュベータモジュールは、ライゲーション反応の期間中、ウェビングの大部分(例えば、10m、20m、40m、100m、または任意の適切な長さ)をチャンバ内に保つために一連のローラを使用する。ローラの数および位置は、インキュベーション時間またはウェビング速度の変化を可能にする。インキュベータモジュール内に存在する間、反応区画中の液滴内の溶質の濃度は、最大ライゲーション効率を保持するために一定を保つ必要がある。このため、インキュベータの主な機能は、蒸発による体積喪失を最小限に抑える湿度のレベルを維持することである。液滴の蒸発速度に影響を及ぼす要因は、(1)必要とされるライゲーション時間よりもはるかに短い時間(<1秒)での液滴の完全な蒸発を防ぐために、リガーゼ液体内に保湿剤(グリセロールである可能性が高い)が必要とされ得ること、および(2)リガーゼ内のグリセロールの濃度が、必要とされる湿度レベルおよび湿度耐性に強く影響することである。
【0104】
図20は、印刷された液滴をウェビング416から除去するために、噴霧洗浄414およびプーリング緩衝液408中での浸漬を使用するプーリングサブシステムを示す。プーリングサブシステムは、移動するウェブ416からDNA分子を除去し、DNA分子をDNA結合カラムに移す。ウェビング416は、ローラ402、404、406の上を通過する。(1)プーリング緩衝液を使用した、移動するウェブの噴霧洗浄414、および(2)プーリングチャンバ内のプーリング緩衝液408中への、移動するウェブの浸漬という2つの機構の組み合わせを使用して、DNA分子は、ウェビング416から除去される。いくつかの実装形態において、2つの機構の一方のみが使用されるか、またはこれらの機構は他のDNA分子除去手段と組み合わせて使用される。
【0105】
ウェビング416からの除去後、完全長DNA識別子410を収集するために、DNA分子を結合カラムに通す。次いで、保存のための適切な容器内でのDNAの溶出および収集を含む下流処理のために、カラム410は書き込みシステムから取り外される。
【0106】
本明細書に記載されるシステムおよび方法は、分子データを復号するためのナノポア配列決定に基づいて完全に自動化可能なワークフローを提供する。このワークフローは、物理的DNA保存システムを検証すること、PCRベースのデータアクセス方法を開発すること、(改変されたサンプル調製、意図的に設計されたDNAコンポーネント配列、および化学的に修飾された核酸によって)ナノポア配列決定技術を改善すること、ならびに複数の装置上での大規模並列配列決定のための配列決定システムおよびワークフローを最適化することを含む。本明細書に記載される方法を使用して生成されたDNAベースの情報は、戦略的に最適化されたナノポア(または電子チャネル)配列決定方法による回収に他に類がないほど適している。ナノポア配列決定装置における主要な障害は、一塩基分解能で配列決定するのに十分遅いDNA転位と十分狭い細孔を達成することであった。本明細書に記載される方法によって符号化されるDNAコンポーネントは、各コンポーネント分子の配列シグナルを同時に強化し、コンポーネント配列間の識別を増加させるように設計され得る。シグナル対ノイズを増大するために化学的に修飾された塩基を組み込むという選択肢と共に、これらの特徴は、ナノポア技術が人工的なDNA情報の再現性のあるTB規模での回収を達成することを可能にする。本明細書に記載されるシステムおよび方法は、DNAのための組織化および保存システムの開発、DNAライブラリにアクセスするためのプロトコルの開発、コードされたDNAの読み取り能力を改善するためのサンプル調製プロトコルの修正、ならびに配列決定装置の読み取り能力を増加させるためのナノポア技術の進歩を提供する。
【0107】
上述したように、記号の列の書き込みプロセスからの出力は、長期保存および低頻度のアクセスを必要とし得る符号化されたDNA(識別子)のライブラリである。符号化されたDNAの生成されたプールは、各識別子配列の数十万の分子を含み得る。グラムを単位として、生成される材料の総量はマイクログラム量であり得る。
図30に関連して後述されるように、冗長性、保管およびアクセスのために十分な材料が存在することを保証するために、プールをPCRで増幅し得る。
【0108】
増幅後、プールは複数の容器中に割り当てられ、異なる場所に保存され得る。プールは、様々な核酸保存および保管システムに保存され得る。例えば、DNAは、エッペンドルフチューブ内、冷凍庫内で保存され、液体窒素中で凍結保存され、またはTris-EDTA中で保存され得る。DNAの貯蔵寿命は、異なる温度などの加速された安定条件に供された材料を読み取ることによって評価される。本明細書に記載されるシステムおよび方法は、保存されたDNAの長期保存およびランダムなアクセスの両方を可能にする自動化されたサンプル管理システムを含み得る。
【0109】
いくつかの実装形態において、オペレーティングシステム(OS)は、エクサバイトサイズに拡張可能なアーカイブの書き込み、読み取り、発見可能な照会、またはこれらの任意の組み合わせを調整することが可能であり得る。具体的には、いくつかの実装形態において、OSは、上述の読み取り/書き込みプラットフォームに対して最適化されたコーデックを介して、意味的に注釈およびインデックスが付されたブロックのツリーの読み取りおよび書き込みを可能にすることを目的とする。OSは、インジェストAPIを含むことができる変換スタック、ならびに長期で、なおかつ粒度の細かいデータクエリおよび発見のためにデータを整理およびフォーマットするためのモジュールを含む。OSのこれらの局面は、任意の書き込み、読み出し、またはアクセス方法に広く適し得る。OSの他の局面は、情報を書き込み、アクセスし、読み取るための方法を特に最適化するように設計することができる。これらは、データを圧縮および誤り保護するためのモジュール、ならびに上述の書き込みシステムにデータを設定および送信するためのモジュールを含む。上記の方法でDNA分子に書き込まれたデータは、任意の配列決定装置で読み取り可能であるが、具体的な読み取り方法を以下に記載する。OSはまた、例えば、エクサバイトの情報をサポートすることができる保存容器のシステムにDNAを割り振り、そこからDNAにアクセスし、そこにDNAを補充することによって、ライターとリーダの間でのDNAベースの情報の処理を仲介する自動化ソフトウェアおよびワークフローを含み得る。
【0110】
図21は、OS用のアーカイブ情報システムを示す。中央モジュールは、取り込み、データ管理、アクセスおよびアーカイブ保管モジュールを備える。データ管理およびアーカイブ保管モジュールは、取り込みおよびアクセスモジュールと通信する。記述情報は、取り込みモジュールからデータ管理モジュールに渡される。次に、記述情報はデータ管理モジュールからアクセスモジュールに渡される。アーカイブ情報パッケージは、取り込みモジュールからアーカイブ保管モジュールに渡され、次いでアクセスモジュールに渡される。中央モジュールは、取り込みモジュールを介して、提出用情報パッケージなどの制作者から情報を取り込む。中央モジュールは、アクセスモジュールを介して、クエリを処理し、応答を送信することによって利用者とも通信する。例えば、クエリおよび応答は、配布情報パッケージ中に保持され得る。データ管理およびアーカイブ保管ユニットは、保存計画および管理モジュールともやり取りを行う。
【0111】
図22は、7つの機能層に編成されたOSによって管理される機能の階層化された編成を示す。各層は、以下の層によって提供されるサービスを利用する。7つの層は、以下の設計および構築を含む6つの開発領域に変換される。
(1)コーデック:ライターに特有の最適化を伴うエンコーダ/デコーダパイプライン
(2)化学インターフェース:ビット演算から化学的演算への変換装置
(3)自動化インターフェース:自動化装置へのインターフェースおよび変換装置
(4)ブロック抽象化:ブロックベースのインターフェースおよびサポートするコアデータ構造
(5)検索およびインデックス付け:意味的注釈およびインデックス付けのための基礎構造
(6)アーカイブアプリケーション:OSを実行するアーカイブアプリケーション
本明細書に記載される符号化方式およびOSの利点としては、書き込み速度、書き込みコスト、読み取りコストまたはアクセスコストに対して最適化された符号化方式を選択できること;復号されるフットプリントを最小化するためにインデックスデータのブロックへのマッピングを最適化できること;大きなブロックから単一ビットまであらゆるスケールで情報を操作し、データ構造を本来的にモデル化することができること;ならびにデータおよび関係性に対する保管、クエリおよび推論を可能にする現在の保管規格および慣行との緊密な統合が挙げられる。
【0112】
コーデックは、情報に対するエンコーダ/デコーダとして機能する。上の層はコーデックを必要とし、下の層はコーデックなしでは意味のある試験ができないため、コーデックの適切な動作は非常に重要である。コーデックは、ソースビットストリームを受け取り、これを、化学的方法を使用した書き込みに適した形式に変換することを担当する。
図22に示されるように、コーデックは、固定層、冗長層および符号化プロセスを処理する組み合わせ層という3つの層を含む。
【0113】
固定層において、ソースビットストリームはパケットに分割され、すべてのパケットは固定サイズである。パケットは、独立して処理され、並列処理のためのユニットとして機能し得る。パケットは、1またはそれを超えるブロックから構成される。ブロックは、アーカイブにおける割り当ての最小単位であり、アーカイブの組み合わせ空間は、ブロックと呼ばれる一連の連続したビットの文字列に分割される。固定層は、MD5、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224またはSHA-512/256などの標準的な暗号学的ハッシングアルゴリズムを使用してブロックハッシュを計算する役割を担い、このハッシュは親ブロックに含まれる。ブロックが復号されると、そのハッシュを再計算し、親ブロックを介してそれをチェックすることによって、その完全性をチェックされ得る。
【0114】
冗長層では、ハッシュされたブロックは冗長層に渡され、そこで、最大2つ、3つ、またはそれを超える誤り保護技術が適用される。ある書き込みシステムのノイズに対する感受性は不明であり得るので、高い冗長性畳み込み符号が使用され得る。書き込み中に生じる誤りは、主に2つのタイプであり得る。(1)例えば、印字ヘッドノズルの劣化もしくは低い効率の組立反応による識別子の欠落を原因とする、または(2)例えば、隣接する反応間での分注の飛び散りもしくは汚染による意図しない識別子の組立を原因とする。書き込みシステムの画像化をベースとする品質管理方法は、印字ヘッドの目詰まりおよび識別子の欠落による誤りを軽減し得る。誤りを訂正するために、ブロックはスライス(例えば、典型的な構成では223バイト長)に分割され、255記号の算術フィールドを使用するリード・ソロモン符号が各スライスに対して計算され、バイト誤り(例えば、16バイト)を訂正することができる誤り保護バイト(例えば、32)が得られる(エラー中の各バイトは任意の数のビット誤りを有し得る)。これらの誤り保護パラメータは設定可能であり、アーカイブに書き込まれ、例えば符号語当たり10-4エラーの書き込みシステム誤り率を許容するように設定される。上に定義されているように、符号語は、ソース語と呼ばれるソースアルファベットからの特定の記号の列を表す記号の列である。符号は、符号化として知られるプロセス中にソース語を符号語にマッピングする。
【0115】
ソース語が3つのソースバイトを含む方式を仮定すると、255バイトの保護されたスライスは、255/3=85個の符号語にマッピングされる。独立した誤りを仮定すると、16バイト超が誤っている確率は、5つを超える符号語が誤っている確率であり、これは約4.3×10-16である。計算されたフィールドサイズまたは誤り保護バイトを変更することにより、この確率を必要に応じて下げることができる。上述されたものなどの、精密印字ヘッドを有する書き込みシステムは、この予想される誤り率に適合することができることがあり得るが、コーデックは、より高い計算コストではあるが、必要であれば、より高い保護率を扱うことができる。さらに、より大きなフィールド(例えば65,535)は、より高い保護を与えることができる。意図しない識別子分子の影響を緩和するために、同じ誤り保護バイトのセットによって保護されたソースビットが、隣接する反応区画に最終的に行かず、したがって、訂正可能であり得るより大きなバースト誤りの影響を受けないように、冗長層は、ビットの順序を替えるインタリーバも任意に導入し得る。
【0116】
図24~25に関連して記載した方法から形成された誤り保護された記号などの記号は、ソース記号(例えば、一連のビット)から構成されるソース語から、核酸ライブラリ中の情報を符号化するための多数の組み合わせ方法から得られる符号語にマッピングされ得る。いくつかの実装形態において、この符号化はコーデックによって実行または調整される。特定の符号化方式の一例を
図23に示す。
図24は、識別子を設計および順序付けするための階層化デカルト積コンビナトリアルコンストラクタ(LCPCC)の系統図を示す。積コンストラクタは、3つの層(M=3)と、8つのコンポーネント配列(C=8)のコンポーネントライブラリとを有する。層当たり{3,3,2}コンポーネント配列を有する組み合わせパーティションスキームが示されている。すべての可能な識別子配列の空間が、組み合わせ空間を形成する。
図26に関連して以下でさらに詳細に記載されているように、組み合わせスキームのスパンと呼ばれ得る、コンポーネントライブラリから構築可能な組み合わせオブジェクトの総数は、識別子の単一のプールに書き込み可能なビットストリームの長さを決定する。この特定のスキームのスパンは18である。コンポーネント配列に対するランキングをコンポーネント配列から構築された識別子に拡張することによって、組み合わせオブジェクトは、組み合わせ空間内で辞書編集のように順番に配置される。この順序付け情報は識別子内で暗黙的であり、組み合わせ空間内でのその位置を識別し、ソース記号流内での識別子によって符号化された記号の位置を識別するために使用され得る。例えば、バイナリアルファベットを符号化し、構築された識別子によって符号化された記号を「1」と定義するために、LCPCCが使用され得る。「0」記号は、対応する識別子を構成しないことによって表され得る。ソースビットストリームは、そのビットストリームに固有の識別子の特定のセット(すなわち、識別子ライブラリ)を構築することによって符号化され得る。
【0117】
図24~25は、誤り保護を伴って核酸中にデジタル情報を保存するためのフローチャート800、900を示す。工程802において、情報は、長さLの記号の列として受容される。上述したように、記号は、ビット、バイト、任意の長さのビット列、英数字、任意の長さの文字列、または任意の他の適切な記号であり得る。いくつかの実装形態において、記号の列はビットストリームに変換される。例えば、記号の列は、6つの記号「LETTER」からなり得る。英数字の文字列「LETTER」は、2値に変換され得、48ビット(「01001100 01000101 01010100 01010100 01000101 01010010」)をもたらす。この例では、Lは48に等しい。いくつかの実装形態において、記号の列内の情報は別々に受容される、すなわち、記号は個別にまたは任意の組み合わせで受容され得る。次いで、記号または記号の群は、記号の列を形成するために、連結されるか、またはその他組み合わされ得る。例えば、8ビットの10個のブロックは個別に受容され、次いで一緒に連結されて、80ビット長の記号の列を形成し得る。
【0118】
フローチャート800は、(1)工程804~808に関連して説明されているハッシング;(2)工程810~814に関連して説明されている、誤り保護記号の追加;および(3)工程816~820に関連して説明されている、符号語の決定という受容された情報を符号化する3つの段階を含む。
図24は、これらの段階の3つ全てを表示しているが、これらの段階は、別々にまたはこれらの任意の組み合わせで行われ得る。例えば、フローチャート800が工程802から工程816(符号語段階の開始)に直接進むように、工程804~814(ハッシングおよび誤り保護記号の追加)は迂回され得る。これらの段階は任意の順序で実行され得る。
【0119】
ハッシング段階は、記号の列がブロックに分離される工程804で始まる。いくつかの実装形態において、各ブロックは同じ長さBのものであり、BはL(記号の列の長さ)をブロックの数で割ったものに等しい。一例として、記号の列は1,000ビットであり得る。1,000ビットは、各々が200ビットからなる5つのブロック;各々が10ビットからなる100のブロック;各々が100ビットからなる10のブロック、または任意のこのような組み合わせなど、任意の長さのブロックに分離され得る。いくつかの実装形態において、ブロックは等しい長さではない。例えば、1,000ビットの列の場合、ブロック1は500ビットから、ブロック2は100ビットから、ブロック3は300ビットから、ブロック4は100ビットからなり得る。いくつかの態様において、ブロックは、目標長に到達するために任意の記号を詰められ得る。
【0120】
工程806において、長さHのハッシュが各ブロックについて計算される。いくつかの実装形態において、ハッシュは、MD5、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、またはSHA-512/256のうちの1つを使用して計算される。計算された各ハッシュは、ハッシュされたブロックを形成するために、対応するブロックに付加される。これにより、記号の列およびハッシュを核酸中に一緒に保存することが可能となる。記号の列とは別個にハッシュを保存することを含む別の実施形態が、
図25に関連して以下に記載されている。各ブロックが長さBである場合、ハッシュを付加した後、ハッシュされたブロックは長さH+Bである。例えば、記号の列は、その後各々100ビットの10個のブロック(B=100)に分離される1,000ビットからなり得る。各ブロックのハッシュは、10ビット長(H=10)であり得る。付加後、ハッシュされたブロックは、110ビット(元の100ビットと10ビットのハッシュ)からなる。
【0121】
工程808において、長さL2の第2の記号の列を形成するために、ハッシュされたブロックは連結される。上記の例では、10個のハッシュされたブロックの各ハッシュされたブロックが110ビットを含む場合、記号の列は1,100ビットに等しくなる(工程802で受容された元の1,000ビットに加えて、工程806で計算された100個のハッシュビット)。
【0122】
工程810において、第2の記号の列はスライスに分離される。いくつかの実装形態において、各スライスは同じ長さSであり、Sは、スライスの数で除算されたL2(ハッシュされたブロックから工程808において形成された第2の記号の列の長さ)に等しい。一例として、第2の記号の列は1,100ビットからなり得る。1,100ビットは、各々が110ビットからなる10のスライス、各々が11ビットからなる100のスライス;220ビットの5つのスライス、または任意のこのような組み合わせなど、任意の長さのスライスに分離され得る。いくつかの実装形態において、スライスは等しい長さではない。例えば、1,100ビットの列の場合、スライス1は500ビットから、スライス2は100ビットから、スライス3は300ビットから、スライス4は200ビットからなり得る。いくつかの実装形態において、ハッシング段階(工程804~808)は迂回される。したがって、工程810における第2の記号の列参照は、工程802において受容された記号の列に等しい。いくつかの実装形態において、ブロックは、再び一緒に連結されてL2を形成することはなく、各ブロックは別々にスライスに加工される。
【0123】
工程812において、各スライスについて誤り保護記号が計算される。各スライスについて、任意の数の誤り保護記号が計算され得る。工程812において、誤り保護記号がそれに対して計算されたスライスに、誤り保護記号が付加され、それによって、誤り保護されたスライスが形成される。いくつかの実装形態において、各誤り保護されたスライスがSプラスPビット長になるように、各スライスに対して同じ数Pの誤り保護記号が計算される。例えば、第2の列が各々1,100バイト(1000のソースバイト+100バイトのハッシュ)である連結されたブロックからなる場合、それらは各々、220バイトからなる5つのスライスに分割することができる。次いで、各スライスに40バイトの誤り保護を付加することができ、その結果、それぞれ260バイトからなる誤り保護されたスライスが得られる。
【0124】
いくつかの実装形態において、誤り保護記号はリード・ソロモン符号を使用して決定される。リード・ソロモン符号は、ブロックベースの誤り訂正符号である。P個の誤り保護記号(またはバイト)がリード・ソロモン符号を用いて計算される場合、P/2の誤った記号(またはバイト)が、保護されたスライスにおいて許容されうる。例えば、260バイトの保護されたスライスにおいて、Pが40バイトに等しい場合、260バイトのうちの20は、それらの260バイトの処理に悪影響を及ぼすことなく誤り得る。P個の誤り保護バイトがリード・ソロモン符号を使用して計算される場合、P個の消去されたバイトが許容され得る。例えば、260バイトの保護されたスライスにおいて、Pが40バイトに等しい場合、260バイトのうちの40は、それらの260バイトの処理に悪影響を及ぼすことなく消去され得る。
【0125】
工程814において、誤り保護されたスライスは連結されて、長さL3を有する第3の記号の列を形成する。上記の例において、ブロック当たり5つの誤り保護されたスライスの各誤り保護されたスライスが260バイトを含む場合、第3の記号の列は、ブロック当たり1,300バイトからなる(工程802で受容された元の1,000バイト+工程806で計算された100のハッシュバイト+工程812で決定された合計200の誤り保護バイト)。いくつかの実装形態において、フローチャート800は、工程808から工程816に進み、誤り保護段階を迂回する(工程810~814)。したがって、工程814における第3の記号の列参照は、工程808において形成された第2の記号の列に等しい。いくつかの実装形態において、ハッシング段階と誤り保護段階の両方が迂回され、フローチャート800は工程802から直接工程816に進む。この事例では、第3の記号の列は、工程802で受容された記号の列と等しい。いくつかの実装形態において、第3の記号の列は、各ブロックについて別々に計算および処理される。
【0126】
工程816において、第3の列は複数のワードに分離され、各ワードは長さWを有する。例えば、各ワードは8ビット長であり得る。工程818において、少なくとも1つのコードブックを使用して各ワードについて符号語が決定される。いくつかの実装形態において、各符号語は、それぞれのワードの完全一致である(すなわち、第3の記号の列と第4の記号の列の間で何も変化しない。)。しかしながら、いくつかの実装形態においては、符号語は、それぞれのワードと異なり得る。例えば、符号語は、ワードとは異なる長さとすることができる。
【0127】
符号語は、符号化または復号化中の化学的条件および機器条件に対して最適化され得る。上述したように、識別子の存在はある記号位置において「1」を示し得るのに対して、その位置における識別子の不存在は、「0」を示す。いくつかの実装形態において、すべての符号語が同じ数の「1」(すなわち、工程824で構築される識別子)を有することを保証するために、符号語を決定することは、第3の記号の列に(例えば、
図27に関連して記載されているような)均一重み符号を適用することを含む。したがって、W=8の上記の例では、8ビットを符号化できる符号語を選択しなければならない。これは、各符号語が等しい「重み」(構築される識別子の数)を有することができるように、追加のビットを効果的に追加する。
【0128】
図23に関連して記載されるように、符号語は、NchooseK方式で組み合わせ空間から決定され得る。Nchoosek方式においては、すべてのN個の順序付けられた識別子に対して、k個の識別子が構築される。例えば、11choose4方式では、すべての11個の識別子に対して、正確に4つが構築される。代表的な符号語は、長さN=11ビットを有し、重みk=4を有する。Log
2(11choose4)>8であるため、11choose4方式は、各符号語において8ビットを符号化するのに十分なビットを提供する。
【0129】
工程820では、符号語を連結することによって、長さL4を有する第4の記号の列が形成される。第4の記号の列は、L3*N/Wの記号を含む。例えば、ブロック当たり1300バイトの列(例えば、工程814で形成された第3の記号の列)の場合、各ワードが8ビットであり、11choose4方式が使用されれば、L4はブロック当たり1787.5バイトに等しくなり、または各バイトが8ビットであれば、14300ビットに等しくなる。いくつかの態様において、第4の記号の列は、各ブロックについて、別々に計算および処理される。
【0130】
工程822において、第4の列内の各記号が個々の識別子配列にマッピングされる。マッピング工程822は、誤り保護を伴って核酸中にデジタル情報を印刷するためのスキームを生成する。複数の識別子核酸分子の個々の識別子核酸分子は、第4の記号の列内の個々の記号に対応する。個々の識別子は、対応する複数のコンポーネントを含み、複数のコンポーネント中の各コンポーネントは、異なる核酸配列を含む。例えば、コンポーネントは、上記のようにM個の層から選択され得る。
【0131】
工程824において、個々の識別子分子は、対応するコンポーネントを配置(または共配置)し、組み立てることによって構築される。例えば、対応するコンポーネントを区画内に配置させ、組み立てることによって個々の識別子を構築するために、
図17~21に関連して上述したプリンタ/仕上げ機システムが使用され得る。いくつかの実装形態において、複数の印字ヘッドを使用して、基材上の座標上に、複数のコンポーネントを含む複数の溶液を分配する。複数のコンポーネントを物理的に連結するために、複数のコンポーネントを物理的に連結するのに必要な条件を提供するために、またはその両方のために、反応混合物を基材上の座標上に分配し得る。
【0132】
符号語段階に基づいて、その後、プリンタ-仕上げ機システムに送られるプリンタ命令のセットが開発され得る。プリンタ命令は、印刷エラーの可能性を低減し、または印刷効率を増加するように設定され得る。例えば、符号語段階は、複数の区画内の各区画が各識別子核酸配列の同数のコピーをある統計的確実性内で含有し、したがって区画にわたって識別子の均一な存在量を提供するように識別子を分配するように設計され得る。追加の誤り保護を提供するために、いくつかの実装形態において、符号語は、記号の列内で隣接する記号を表す識別子核酸分子が隣接する区画内に構築されないように、書き込み機器に送られる前に(互いに対して)順序を変えられるか、または交互配置される。これにより、書き込み機器におけるバースト誤りが訂正不能な誤りまたは消去をもたらす可能性が低減される。例えば、これは、印刷ミスが誤った座標上への印刷のスジまたは区画間での滲みによる検出不能なエラーを引き起こし得る可能性を低減する。あるいは、書き込み機器におけるバースト誤りが訂正不能な誤りまたは消去をもたらす可能性を低減するために、隣接する記号ではなく全く異なる記号に対して誤り保護が計算され得る。
【0133】
工程826において、個々の識別子がプールに収集される。例えば、プールは、工程802~822において符号化された数百の記号に対応する数百の識別子を保持することができる。いくつかの実装形態において、プール内での識別子の存在または不存在は、記号の列内での対応するそれぞれの記号位置の記号値を表す。
【0134】
フローチャート900は、ハッシュを付加するのではなくハッシュを保存することを除いて、同じ工程に従う。工程902、904、908、910、912、914、916、918、920、922、924および926は、それぞれ工程802、804、808、810、812、814、816、818、820、822、824および826と等価である。工程906において、ハッシュはブロックに対して計算されるが、付加されない。むしろ、ハッシュは別々に保存される。例えば、ハッシュが核酸内のブロックより速くまたはより容易にアクセスされるようにするために、ハッシュは、ハードドライブに保存され得る。ハッシュは、核酸分子、磁気記憶装置、フラッシュメモリデバイス、クラウドストレージ、または任意の他の適切な場所に保存することができる。
【0135】
記号の列を符号化するとき、構築され得る異なる識別子配列の数は、使用される符号化方式のパラメータおよび符号化される記号の列に依存する。所与の記号の列に対して、重要なリソース(例えば、識別子を構築するために使用される層またはコンポーネントの数)を最小化する最適化された方式を生成することが有利であり得る。C個のコンポーネントのセットは、B(C)通りの異なる方法で分割され得、ここでB(C)は、C番目のベル番号であり、Cとともに階乗的に増加する。L個の層がそれぞれc1、c2、...、cLコンポーネントを含有する場合、構築可能な異なる識別子の総数は
【数1】
であり、
【数2】
である。(
図23に関連して述べたとおり)組み合わせスキームのスパンと呼ばれ得る、コンポーネントライブラリから構築可能な組み合わせオブジェクトの総数は、識別子の単一のプールに書き込み可能なビットストリームの長さを決定する。したがって、所与のビットストリーム長およびコンポーネントライブラリサイズについては、層の数を最小限に抑えながら、ビットストリームを符号化するのに十分大きなスパンを有するパーティションスキームが有益であり得る。各追加の層は、化学に対して追加の効率および時間的制約を課し、したがって、より少ない層を有するパーティションスキームが好ましい。層を最小化するためのパーティションスキームの例は、
図26に関連して以下に説明される。ビットストリーム長の素因数分解から可能な分割の空間にわたる分岐限定法。
【0136】
コーデックまたは任意の符号化システムは、多重化可能な反応のセットを計算するためにいくつかの戦略を使用し得る。第1に、多値の論理合成から借用された戦略は、ビットストリームなどの記号の列の全部または一部をブール関数として扱い、発見的手法を使用して関数の極小表現を抽出することを試み得る。最先端の論理合成ツールは、約10
6行の真理値表を有する関数を取り扱うことができることが示されている。ソースストリームが既にエントロピー圧縮されている場合、簡潔な表現を見出すことが困難であり得るので、この手法は、失敗することがあり得る。圧縮されたストリームの場合、局所的貪欲手法は、ストリームをZ個の隣接する識別子配列の反応ワードに分割し、多重層中に少なくともZ個のコンポーネント配列を有するコンポーネントパーティションスキームを使用することである。これは、Z個の識別子に同じ接頭辞を共有させ、それらを単一の反応区画中で組み立てることを容易にする。(例えば、
図23ではZ=2)。逆に、興味深い別の性能指標は、反応当たりに符号化されるビット数である。反応区画を最小化すると、単一の反応で書き込まれる記号の数が増加し、したがって、所与の記号の列を書き込むために書き込みシステムによって必要とされる書き込み時間および総基材長が最小化される。
【0137】
別の重要なリソースは、ソースビットを符号化するために構築することができる識別子の数である。初期設定では、LCPCCスキームは、固有の識別子配列を用いて、記号の列の各記号位置を符号化する。記号の列がビットスチーム(bitsteam)であり、「1」が識別子の存在によって示され、「0」が識別子の不存在によって表される場合には、ビットストリームを書き込むために組み立てることができる識別子の数は、ソースビットストリーム内の「1」ビット値の数に比例する。ビットストリーム長が重要な指標であるインシリコ圧縮とは異なり、ここでは、必要とされる書き込み時間または反応区画を定義し得るビットストリームの重み、すなわち「1」ビット値の数である。
【0138】
識別子(例えば、
図26の工程1008に記載されている識別子)を組み立てるには、反応の時点ですべての必要なコンポーネントおよび試薬が配置されている区画内で化学反応を実行することが必要であり得る。必要とされるこのような区画の数は、最小化され得る極めて重要なリソースである。反応区画数を最小化するための1つの戦略は、各区画において複数の反応を実行することである。しかしながら、すべての反応が相互に組み合わせ可能であるわけではない。LCPCC(
図23に関連して上述した)は、隣接する識別子配列がコンポーネント配列の共通の接頭辞を共有するように組み合わせ空間を生成する。
図23の例では、識別子配列0および1は共通のコンポーネント配列接頭辞を共有し、識別子配列0はコンポーネント配列0、3、6を有し、識別子配列1はコンポーネント配列0、3、7を有する。コンポーネント6および7は、構築により、相互に不活性であるので、これは、識別子0および1の構築が、4つのコンポーネント:0、3、6および7がその中に配置された単一の反応区画内で実行され得ることを意味する。単一の区画内で複数の反応を実行するこの戦略は、多重化と呼ばれることがあり、複数のコンポーネントがそこから得られる層は、多重化層と呼ばれることがある。
【0139】
図26は、パーティションスキームを用いてデジタル情報を核酸中に符号化するための工程の概要を表すフローチャート1000を示す。パーティションスキームは、ハードウェア構成(例えば、プリンタで利用可能なインクの数)を書き込むなど、制約下で核酸中にデジタル情報を符号化するという意図をもって設計され得る。フローチャート1000は工程1002で開始する。上述した
図24~
図25の工程802および902と同様に、工程1002において、デジタル情報は、長さLを有する記号の列として受け取られる。いくつかの実装形態においては、記号の列を長さBのビットの列に変換するために、追加の工程がフローチャート1000中に組み込まれ得る。
【0140】
所与の制約内で符号化するために、工程1004において、パーティションスキームが決定される。パーティションスキームは、C個の異なるコンポーネント配列のセットを使用して記号の列を符号化するためのルールのセットを定義する。具体的には、パーティションスキームは、C個の異なるコンポーネント配列をその中に配置するためのM個の層の数を定義し、i
th層内にc
iコンポーネント配列が存在するように、各層内のコンポーネント配列番号を定義する。いくつかの実装形態において、各層内のコンポーネント配列の数は不均一である(すなわち、c
1はc
2に等しくないなど)。層の数およびコンポーネント配列の数は、記号の列を符号化するのに必要な層の数を最小化するように設定され得、それにより、デジタル情報の全体を符号化するのに十分な識別子配列の可能性を維持しながら識別子分子を形成する化学を単純化する。記号の列を符号化するのに十分な識別子配列可能性を確保するために、コンポーネント配列数c
iの積
【数3】
は、記号の列の長さ(ビットで測定される)を超えるか、または等しくなければならず、コンポーネント配列数c
iの総和
【数4】
は、異なるコンポーネント配列の数C未満であるか、または数Cと等しくなければならない。いくつかの実装形態において、識別子は、各々がM個の層の各々からの1つのコンポーネントを含む、可能な識別子配列の組み合わせ空間のサブセットを表す。単純な例として、Lが1,000ビット(例えば、工程1002において受け取られたビットストリーム中の1,000ビット)に等しく、Cが70(例えば、印刷に利用可能な70のプリンタインク)に等しい場合、データを符号化するために、層当たり10個のコンポーネント配列を有する3つの層(M=3)を使用することができる。しかしながら、利用可能な70個のコンポーネント配列を最大限に活用するためには、第1の層中に50個のコンポーネント配列、第2の層中に20個のコンポーネント配列を有する2つの層(M=2)を使用してデータを符号化することがより効率的であり得る。
【0141】
いくつかの実装形態において、記号の列が長さBの記号の列に変換されている場合、コンポーネント配列数c
iの積は、ビットに変換された長さBの記号の列の長さを超えるか、または等しくなければならない。例えば、変換された記号の列が「LETTER」である場合、Bは6に等しいが、各文字が8ビットによって符号化されていれば、等しいビットの列は48ビットからなる(Bは48に等しい)。したがって、「LETTER」を符号化するのに必要なM個の層およびC個のコンポーネント配列の数は、
【数5】
のようにならなければならない。
【0142】
工程1006において、(i)M個の層の各々から1つのコンポーネントを選択し、(ii)M個の選択されたコンポーネントを1つの区画内に配置し、(iii)選択されたコンポーネントを物理的に組み立てることによって、例えばプリンタ-仕上げ機システムを用いて第1の識別子が形成される。いくつかの実装形態において、選択されたコンポーネントはライゲーションによって組み立てられる。いくつかの例では、M個の層は異なる優先レベルを伴う。例えば、第1の層が最も高い優先度を有し得、第2の層が2番目に高い優先度を有し得る。
【0143】
工程1008において、追加の識別子が形成される。追加の識別子は、符号化されるべきデジタル情報を表す記号の列内でのそれぞれの記号位置に対応する。記号の列内での各記号位置は、対応する異なる識別子を有し得る。必要な量の識別子が形成されたら、工程1010において識別子がプールに収集される。いくつかの局面において、情報は核酸配列から読み取られる。いくつかの実装形態において、識別子のプールが取得される。プール内の識別子は、長さLの記号の列からのデジタル情報を保存する。識別子のプールは、長さLを有する任意の記号の列を符号化することができる識別子ライブラリ内の識別子配列のサブセットに対応する。プール内の各個々の識別子は、記号の列内の記号値および記号位置に対応する。各個々の識別子は複数のコンポーネントを含み、したがって特定の配列のインスタンスである。いくつかの実装形態において、プールは、遺伝子、ペプチドまたはRNAをコードするDNAを含む。
【0144】
図27は、各ワードを固定された重みを有する符号語に変換するための均一重み符号を示す。均一重み符号化は、復号を改善し、書き込みシステムの構成を単純化することができる。これに対する1つの手法は、すべての可能なソース語およびすべての可能な符号語へのそれらのマッピングの完全二部グラフを構築することである。完全二部グラフの各辺は、符号語によって導入された「1」ビット値の数によって重み付けられる。線形計画法をベースとした多項式時間アルゴリズムがそれに対して存在する問題である最小重みマッチングを選択することによって、ビットストリーム重みを最小化し、これを書き込むために必要とされる識別子配列の総数を効果的に「圧縮」するマッピングを見つけることができる。このような符号は、重み最小化符号と称され得る。「1」ビット値の数は、より長い符号語を使用してソースビットストリームを再符号化することによって最小化され得る。
図27において、3ビットのワードを符号化するために必要な長さ5の符号語の最小重みは、重み2である。しかしながら、3ビットのワードは平均して1.5の重みを有するので、この符号語方式は、長さ5の符号語に対して重みは最小であるが、実際にはメッセージの総重みを増加させる。例えば、符号語が長さ8に拡張された場合、3ビットを符号化するために1の符号語重みが存在し得る。この例では、メッセージの全体的な重みが軽減される。ソースビット当たり必要とされる識別子配列の数を低減させるために、重み最小化技術が使用され得る。
【0145】
配列決定によって識別子ライブラリを読み取ることは、異なる識別子配列の複数のコピー(複数の核酸分子)の分布から標本抽出することを含む。識別子の濃縮の不均一性は、より低コピーの識別子を標本抽出することを困難にし、より大きなサンプルの必要性を押し上げ得る。本明細書に記載される書き込みシステムは多重化を介して反応区画内で複数の識別子を組み立てるため、および各反応区画内の識別子配列の数はソースビットストリームによって規定されるため、最終ライブラリ内での各識別子の濃縮は変化し得る。この問題を軽減するための1つの手法は、
図27に示されるように、すべての符号語が「1」値という固定された定数を含む均一重み符号、1を使用してソースビットストリームを再符号化することである。その結果、各反応区画は固定された数の識別子を組み立てるので、書き込みシステムに対する変更なしに濃縮の変動が最小限に抑えられる。さらに、符号語長を賢明に選択することによって、均一重み符号は、ビットストリームの重みも最小化することができる。例えば、13の固定された重みの37.4×10
6の28ビット符号語のセットは、すべての25ビットのソース語を符号化することができ、25/13=1.92ビット/識別子をもたらす。別の例として、10の固定された重みの64.5×10
6の32ビット符号語のセットは、すべての25ビットのソース語を符号化することができ、25/10=2.5ビット/識別子をもたらす。
【0146】
均一重み符号化のさらなる利点は、ライブラリが読み取られたときに、復号された各符号語が、既知の固定された数の「1」値を含有することが予想されることであり、これにより、よりロバストな復号技術の使用が可能になる。この考え方を極端に押し進めると、長い符号語、例えば1024ビットは複数の反応にまたがることがあり得るが、10ビットを符号化する単一の識別子のみを組み立てる必要があり得る。これは、極端な「重み圧縮」をもたらすことができ、極めて少数の識別子を構築する必要があるために高い符号化速度を可能にし、識別子当たり符号化されるビットがより高いために高い復号速度を可能にする。
【0147】
上記再符号化技術は、古典的な冗長バイトが計算された後に組み合わせ層において適用されるので、誤り保護性能に対して影響を及ぼし得る。例えば、25ビットのソース語が均一な重み13の28ビットの符号語にマッピングされる場合、マッピングは等尺性ではないことがあり得、1符号語エラーがソース語中にマルチバイトエラーを引き起こし得る。符号の最小距離が短縮されるので、極端な重み最小化は、符号化されたビットのSNR(信号対ノイズ比)にも影響を与え得る。これらの問題を調査し、改善するために、ソース語を含む、重みを最小化する均一重み符号が使用され得、符号語中にほぼ等尺性に組み込まれ得る。これは、より長い符号語の使用をもたらし得るが、より良好なエラー性能も提供し得る。これらすべての制約に対して同時最適化する符号化方式を生成するために、ツールは、層を最小化し、スパンを最大化し、反応区画を最小化し、重みを最小化し、誤り保護性能を維持する定重み符号語を使用する符号を見出し得る。
【0148】
上述したように、エンコーダのCPUスレッド当たり概ね1Mb/秒のスループットが達成可能であり得る。一例として、93Mb/秒(1TB/日)の速度は、32個のCPUの4つのインスタンス、10TBの一時ディスクスペース、および1080のジョブにわたってならされ得る3TBの送信帯域幅を使用して達成可能であり得る。この符号化された情報を生成するコストは、同様の基礎構造が書き込みシステムにローカルに接続されていれば、ほぼ半分にすることができ、送信帯域幅のコストを節約し、インジェストは無料であったと仮定される。GPUまたはサーバレスクラウド機能を使用すると、ソフトウェアリファクタリングおよびプラットフォーム依存性を犠牲にして、このコストをさらに削減することができる。
【0149】
アーカイブからソースビットストリームを回復することは、上記のプロセスとほぼ逆のプロセスに従う。
図28は、識別子のセットを復号する基本工程を有する系統図を示す。システムは、関心対象の識別子のサブセットのプールを取得する。目標は、プールの適切な標本抽出において観察された配列を生成した可能性が最も高い識別子配列のセットを再構築することである。シミュレーションモデルを使用し、不完全なサンプリングの確率が小さく許容され得ることを前提として、まず、復号されるべき識別子サブライブラリに対してサンプルサイズ推定値が計算される。計算サンプルサイズを使用して、識別子ライブラリがサンプリングされ、配列決定されて、観察された配列のストリームまたは集合を得る。
【0150】
観測された配列sを考える。上述のアーカイブに保存された表現情報から、配列はL個の層を有するLCPCC識別子ライブラリに由来することが知られており、総iのj番目のコンポーネントはコンポーネント配列cijを含む。したがって、観測された配列sは、まず、すべてのjについてコンポーネント配列c1jと比較される。完全一致がみつかった場合、sの一致しなかった接尾辞は、今度はi=2でこの同じプロセスを経験する。完全一致が見つからない場合、近似文字列合致技術(ASM)もしくはアライメント技術、またはn-グラム手法を使用して、sの任意の接頭辞およびコンポーネント配列c1jに対して高速近似合致スコアが計算される。以下に記載されるナノポア配列決定装置から予想されるように、ASM(近似文字列合致)法は、ストリーミング配列データの「オンライン」合致に対するASM法の適合性を判定するために評価され得る。
【0151】
長さlcのコンポーネント配列の場合、コンポーネント配列の可変セグメントのみを同定する必要がある。すべての塩基を復号しようと努めるビットごとの書き込み方式とは異なり、コンポーネント配列の可変セグメントは、1c/3ほどの小ささであり得る。このプロセスは、sの未処理の接尾辞を用いて繰り返され、一致スコアによって重み付けされた頂点を有するL部グラフをもたらす。最も重み付けられた経路は候補識別子配列に対応し、各候補はスコアを有する。識別子配列は順序付けられた組み合わせ空間に属するので、各候補識別子配列は符号化されたストリーム内の記号に対応する。いくつかの候補識別子配列は、符号語規則と矛盾することがあり得、例えば、符号語は固定された重みのものであり得る。これらの候補は、低いスコアに基づいて排除され得、または候補の代替セットとして保存され得る。最後に、符号語の候補配列を取得するために、最上位候補を通る経路が構築される。次いで、符号語のこの配列は、固定データに対してチェックされ、可能であれば誤り訂正記号を用いて訂正される。極端なノイズまたは誤りの場合、この技術は、候補の正しい配列を探索するために、候補識別子を通る別の経路を後戻りして、選択することができる。
【0152】
符号語が取得されたら、誤り保護されたソースブロックを取得するために暗黙的Lehmerコードブックを使用して、符号語はソース語にマッピングし直される。次いで、これらのブロックは復号され、固定性を検証するためにチェックされる。誤りが見つかった場合、可能であれば誤りを訂正するために誤り保護記号が使用され、ソースブロックが回復される。ソースブロックは、ソースビットストリームに適切に組み立てられ、クエリ応答の組み立て、配信およびキャッシングのためにブロック層に渡される。
【0153】
図29は、核酸配列中に保存されたデジタル情報を読み取るための工程の概要を表すフローチャート1300を示す。工程1302において、識別子のプールが(例えば、
図30に関連して記載される方法によって)取得される。プール内の識別子は、長さLの記号の列からのデジタル情報を保存する。識別子のプールは、長さLを有する任意の記号の列を符号化することができる識別子ライブラリ内の識別子配列のサブセットに対応する。プール内の各個々の識別子は、記号の列内の記号値および記号位置に対応する。各個々の識別子は複数のコンポーネントを含み、したがって特定の配列のインスタンスである。
【0154】
工程1302と1304との間で、識別子は様々な方法で処理され得る。いくつかの実装形態において、識別子は第2の識別子に連結される。いくつかの実装形態において、識別子の1つの鎖が分解される。例えば、識別子の1つの鎖を選択的に分解するために、鎖特異的エキソヌクレアーゼが使用され得る。
【0155】
工程1304において、少なくとも1つの識別子の一部に対応する読み取り配列を得るために、得られた識別子の少なくとも1つが読み取られる。工程1304は、化学的配列決定、鎖伸長停止配列決定、ショットガン配列決定、ブリッジPCR配列決定、一分子リアルタイム配列決定、イオン半導体配列決定、パイロシーケンシング、合成による配列決定、コンビナトリアルプローブアンカ合成配列決定、ライゲーションによる配列決定、ナノポア配列決定、ナノチャネル配列決定、超並列シグネチャ配列決定、ポロニー配列決定、DNAナノボール配列決定、一分子蛍光配列決定、トンネル電流配列決定、ハイブリダイゼーションによる配列決定、質量分析配列決定、マイクロ流体配列決定、透過型電子顕微鏡配列決定、RNAポリメラーゼ配列決定、またはインビトロウイルス配列決定などの任意の配列決定技術によって達成され得る。核酸のプール、本事例では識別子を配列決定することにより、プール全体に対して読み取り配列が得られる。しかしながら、プールの各識別子がどのように読み取り配列にマッピングされるかは不明である。配列決定方法は、単一塩基エラーを起こしやすく、読み取り配列に対する識別子の合致をさらに妨げる。
【0156】
いくつかの実装形態において、工程1304は、ナノポア配列決定を含む。電解液および少なくとも1つのナノポアチャネルに電場が印加される。いくつかの実装形態において、少なくとも1つのナノポアチャネルは、固体状態の膜内に形成される。いくつかの実装形態において、ナノポアチャネルは、α-ヘモリシン(αHL)またはmycobacterium smegmatisのポリンA(MspA)から形成される。ナノポア配列決定の間、識別子は少なくとも1つのナノポアチャネルを通って転位し、その間にチャネルを横切るインピーダンスが測定される。識別子内の各コンポーネントは、コンポーネント配列の長さに沿って、対応する固有のインピーダンスシグネチャを有し、したがって、測定されたインピーダンス値を固有のインピーダンスシグネチャと比較することによって読み取り配列中のコンポーネントを決定することができる。
【0157】
いくつかの実装形態において、工程1304がナノポア配列決定を含む場合、印加される電場は、100mVを超えるかまたは100mVに等しい差分電位を生成する。この高い差分電位により、識別子は比較的高い速度でナノポアチャネルを通過することが可能になる。例えば、識別子の転位は、1,000塩基/秒を超える速度で起こり得る。特に、転位速度は100万塩基/秒であり得る。
【0158】
いくつかの実装形態において、工程1304がナノポア配列決定を含む場合、転位前に作用物質が識別子に結合される。例えば、作用物質は、化学的部分、タンパク質、酵素、塩基類似体、コンジュゲートされた核酸、ヘアピンを有する核酸、またはメチル基であり得る。いくつかの実装形態において、作用物質が化学的部分である場合、メチルトランスフェラーゼなどの酵素が、少なくとも1つの識別子核酸分子に化学的部分を結合する。いくつかの実装形態において、作用物質が塩基類似体であり、作用物質がポリメラーゼなどの酵素を使用して結合される場合、酵素は複製中に塩基類似体を少なくとも1つの識別子核酸分子に結合する。
【0159】
作用物質は、読み取り中に識別子内の配列を決定するのを助けるために使用し得る作用物質シグネチャを伴う。少なくとも1つの識別子核酸分子に作用物質を結合させることは、識別子のコンポーネント上の既知の位置で起こり、その結果、既知の位置における作用物質シグネチャは、転位中にインピーダンス値の既知のシフトをもたらす。したがって、作用物質の存在は、識別子に対して誇張された「プロファイル」を作製し、それによって読み取り時の信号対ノイズ比を増加させ得る。これにより、読み取り時の精度を維持しつつ、転位速度を増加させ得る。特に、少なくとも1つの識別子上の作用物質の存在は、少なくとも1つの核酸分子上の作用物質の不存在下で所望の精度レベルを達成する第2の最大転位速度より速い、所望の精度レベルを達成する第1の最大転位速度を可能にし得る。読み取り中に信号対ノイズ比(ration)を増加させる別の方法は、識別子が修飾された塩基または塩基類似体を含むように識別子を複製することを含む。これは、別個に、または識別子に作用物質を結合することに加えて行われ得る。
【0160】
工程1306、1308、1310および1312は、読み取り配列を識別子配列の既知のセット(すなわち、識別子ライブラリ)と合致する方法を記載する。工程1306において、読み取り配列は、読み取り配列に近いまたは正確に一致するコンポーネント配列を有する識別子ライブラリから候補識別子配列のセットを識別するために使用される。一例として、読み取り配列(識別子と正確に一致してもよく、またはしなくてもよい)はCAGCTGであり得る。候補識別子配列のセットは、完全一致(CAGCTG)の他、ある数の塩基(例えば、1、2、3、10、20、100など)だけ異なる識別子配列など、読み取り配列と類似する他の潜在的な一致を含み得る。例えば、候補識別子配列のセットは、CAGATG、AAGCTAおよびCACGTGも含み得る。参照を容易にするために、「誤った」ヌクレオチド(すなわち、例における読み取り配列と一致しない)には、下線が引かれている。
【0161】
いくつかの実装形態において、識別子は、各識別子が(例えば、同じ層のコンポーネント間で最小ハミングまたはレーベンシュタイン距離を確保することによって)読み取り誤り耐性を伴うように符号化される。識別子が読み取られる速度を増加させるために、寛大な読み取り誤り耐性が使用され得る。読み取り速度を増加させるための別の方法としては、識別子のサブセットを読み取ることが挙げられる。いくつかの実装形態において、識別子は、(
図26に関連して上述したように)M個の層に対応するM個のコンポーネントを含む。いくつかの実装形態において、識別子を読み取ることは、M個のコンポーネントのうちのN個のみを読み取ることを含み、ここで、NはM未満である。例えば、5つの層のうち最初の2つの層のみが読み取られ得る。これにより、所与の時間内に識別子が読み取られる数を増やすことができる。これは、プール内で符号化されたデータのサブセットにアクセスする必要がある場合に役立ち得る。例えば、第1の層が常にある意味のある値を示す場合、第1の層にアクセスすることのみによってある有用な識別子を識別することができる。または、例えば、すべてのアクセスされた識別子が最初の4つの層内に同じコンポーネントを有する場合、それらの4つの層は読み取られる必要がない。
【0162】
工程1308において、各候補識別子配列には、各候補識別子配列のコンポーネント配列が読み取り配列とどの程度類似しているかと関連付けられたスコアが割り当てられる。候補識別子配列が読み取り配列と一致するほど、スコアはより低く(またはより高く)なり得る。スコアは、最小距離アルゴリズム、パーセント一致、または任意の他の適切なアルゴリズムを含む様々な方法で計算され得る。一例として、読み取り配列CAGCTGについて、候補配列CAGCTGは0のスコアを有し得るが、候補配列の第4の塩基が読み取り配列と一致しないので、候補配列CAGATGは1のスコアを有し得る。スコアは、誤っている塩基の数および/または誤った塩基の配置に依存し得る。例えば、互いに隣接する2つの誤ったヌクレオチドを有する候補(CACGTG)は、隣接していない2つの誤ったヌクレオチドを有する候補(AAGCTA)よりも低いスコアを有し得る。
【0163】
スコアのセットは、工程1304において読み取られた(または観測された)識別子との潜在的一致として候補識別子配列のうちの1つを選択するように工程1310における決定を導き、それによって単一塩基配列決定の誤りの影響を軽減する。例えば、最低のスコアを有する候補配列は読み取り配列に最も近い潜在的一致であるので、最低のスコアを有する候補配列が選択され得る。工程1312において、次いで、選択された候補識別子配列は、識別子ライブラリを使用して記号位置および記号値にマッピングされる。いくつかの実装形態において、工程1304がナノポア配列決定を含み、作用物質が識別子に結合されている場合、識別子内の配列を決定することは、転位中に測定されたインピーダンス値を作用物質シグネチャと比較することを含む。
【0164】
いくつかの実装形態において、所望のデジタル情報が識別子のプール(または複数のプール)から完全にアクセスされるまで、工程1306、1308、1310および1312が繰り返される。いくつかの実装形態において、復号された記号の列が決定され、精度について試験される。具体的には、復号された記号の列の一部のハッシュが計算され、次いで、工程1302で得られた記号の列の対応する一部に関連付けられたハッシュと比較され得る。ハッシュは、
図24に関連して記載されているように、プール中に複数の識別子として保存され得(その後、上記の
図29の工程を介して読み取られ得る)、
図25に関連して記載されているように、離れて保存され得る。ハッシュは、MD5、SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224もしくはSHA-512/256または任意の他の適切なアルゴリズムを使用して計算される。読み出されたハッシュまたは元のハッシュと計算されたハッシュとの不一致は、データの読み取りにおいて読み取りエラーが存在したことを示し、例えば、核酸分子から抽出された情報はソースデータと一致しない。計算されたハッシュが読み出された元のハッシュと一致するかどうかに基づいて、復号された記号の列の一部が、工程1302で得られた記号の列の一部に対する一致として検証され得る。ハッシュが一致しない場合(または、復号された列が、いずれかの他の手段を通じて、得られた列と一致しないと判定された場合)、(例えば、工程1306からの候補識別子配列のセットの)異なる候補識別子配列が(例えば、上述の工程1310におけるように)選択され得る。識別子が復号および検証されるにつれて、コンピュータシステムは、この情報を追跡し、復号された記号の列が記号の列と一致する可能性を増加させるために機械学習技術を使用し得る。したがって、
図29によって開示される誤り耐性を有する方法は、配列決定技術、例えば上述のように相当大きな印加電圧で実行するナノポア配列決定に対して非従来的な改善を行うための基礎を設定する。
【0165】
グラムを単位として、所与のプール中の材料の総量はマイクログラム量であり得る。プール内の分子を正確に読み取るため、冗長性、保管およびアクセスのために十分な材料が存在することを保証するために、プールをPCRで増幅し得る。識別子ライブラリ全体を1回のPCR反応などで指数関数的に複製することができるように、識別子のそれぞれの端のコンポーネントは、共通のプライマー結合部位を有するように設計することができる。増幅プロセスは、2つの主要な工程を含み得る。(A)プライマーを用いた第1の増幅工程では、所望のデータブロックが選択および濃縮され、(B)プライマーを用いた第2の増幅工程では、配列決定のためにアンプリコンが調製される。第1の工程(A)は、ユニークなプライマーおよび数回のPCRサイクルのみを使用して特異的標的を選択することが意図されており、第2の工程(B)は、配列決定のための大量の分子を生成するために、次いで、プライマーを含まない、特異的標的の標的配列を増幅することが意図されている。増幅のためのこのネステッドアプローチにより、アクセスされる識別子の数および同一性が調整され、配列決定の負担が軽減される。いくつかの実装形態において、ライブラリにおける増幅バイアスを低減するために、および配列存在量の均一性を維持するために、増幅工程は7サイクルまたはそれ未満に制限される。プライマーの組み合わせは、増幅プロセスの効率および均一性を実証するために識別子を用いて検証され得る。最初の最適化は、qPCRによって測定される。産物純度のレベルは、両方のqPCR増幅効率を測定し、部分配列決定産物の存在を配列決定することによって、PCRクリーンアップに必要なもの(例えば、ExoSAP-IT、ThermoFisher)を使用することによって決定され得る。読み取りの精度の速度を増加させるためにタグで分子を選択的に濃縮することも有利であり得る。ナノポア配列決定においてより良好なシグナル分解能を得るために核酸分子にタグを付加することができる態様と同様に、各コンポーネントまたは識別子は、タンパク質または磁石をベースとする選択プロトコルのような他の選択技術を可能にする特異的プローブ/アダプタでタグを付加され得る。濃縮の方法の例としては、i)ストレプトアビジンで被覆された磁気ビーズ、ii)AmpureXPサイズ選択、iii)ワトソン・クリックベイト配列による特異的プライマー捕捉が挙げられる。
【0166】
さらに、読み取りのための識別子のサブライブラリを効率的にするために、ネステッドPCRをベースとした化学的ランダムアクセス方法を使用することができる。
図30は、保管されDNAライブラリから識別子のサブライブラリにアクセスするためのネステッドPCR増幅スキームの一例を示す。サブライブラリは、1つのデータブロック、いくつかのデータブロック、単一の識別子、いくつかの識別子など、アクセスしたい識別子の任意の群であり得る。識別子の端層上のコンポーネントを結合する(A)プライマーを用いた第1の増幅工程では、所望のデータブロックを含む識別子の群が選択され、濃縮される。このプロセスは、次の2つの層上のコンポーネントを内側に結合する(B)プライマーを用いて繰り返され、したがって、所望のデータブロックを含む識別子の群をより小さなサンプルにさらに減少させる。このプロセスは、回収された(またはアクセスされた、または選択された)識別子の群が、所望のデータブロックを表すすべての識別子のみまたはほぼそれらのみから構成されるまで反復され得、したがって、配列決定によってデータブロックを効率的に読み戻すことが可能となる。最終回のネステッドPCRでは、配列決定のために識別子が同時に調製され得る。増幅のためのこのネステッドアプローチにより、アクセスされる識別子の数および同一性が調整され、配列決定の負担が軽減される。いくつかの実装形態において、ライブラリにおける増幅バイアスを低減するために、および配列存在量の均一性を維持するために、増幅工程は7サイクルまたはそれ未満に制限される。プライマーの組み合わせは、増幅プロセスの効率および均一性を実証するために識別子を用いて検証され得る。以下に記載されているように、このアクセス方法は、付随するブロックIDによってデータのブロックを回収するためのデータ構造と併せて使用され得る。ネステッドPCRの代替として、読み取りのために(例えば、データブロックを表す)識別子の特定のサブライブラリにアクセスするために、特定のコンポーネントを特異的に結合するアフィニティタグ付きプローブがネステッド方式で使用され得る。
【0167】
1304における識別子核酸分子の読み取りは、ナノポア配列決定によって達成され得る。ナノポア配列決定は、サイズおよび拡張性による利点を提供する。ナノポア配列決定は、電解液およびナノポアに電場を印加することを含む。印加された電圧下において、核酸分子はナノポアを通過し、電解液の流れを遮断し、測定可能なインピーダンスを生じさせる。各ヌクレオチドは、インピーダンスデータセットを処理することによって、核酸分子に対応する配列全体を得ることができるように、特有のインピーダンス値と相関させることができる。ナノポアは、固体状基材内のチャネルによってまたはタンパク質によって形成することができる。タンパク質は、脂質膜または金属、金属合金およびポリマーベースの基材などの固体状基材中に埋め込まれ得、一般的なナノポアタンパク質としては、α-ヘモリシン(αHL)およびmycobacterium smegmatisポリンA(MspA)が挙げられる。評価基準として、Oxford NanoporeのPromethIONシステムは、サイズが約1.5平方フィートであり、48時間で12Tb(12.0E+12の塩基対)を配列決定することが可能である。本明細書に記載される書き込みスキームは、高い忠実度を有することが確認された予め作製されているDNAコンポーネントを使用するので、サンプル調製および配列決定中にのみすべての配列エラーが導入される可能性が高いことに留意することが重要である。さらに、識別子内に存在するコンポーネントを識別するために、単一塩基分解能は必要とされないことがあり得る。これらの理由のために、サンプル調製プロトコルを調整し、(少なくともまだ圧縮されていないデジタル情報に対して)圧縮技術を実行することによって、配列決定速度に対する改善が可能になる。
【0168】
Oxfordナノポアナノポア配列決定のための標準的な鋳型調製スキームは、核酸分子へのアダプタタンパク質複合体のライゲーションを含む。いくつかのアダプタタンパク質は、核酸分子が脂質二重層を標的とすることを可能にする疎水性係留綱として作用し、ナノポアが占有されていない時間を短縮する。α-ヘモリシンなどの別のタンパク質またはモーターは、一本鎖がナノポアに入るように二本鎖核酸分子を分離する。次いで、このモーターは、ナノポアを通して一本鎖核酸分子を歯止めで動かすのに役立つ。このプロトコルは、本明細書に記載される識別子ライブラリおよびアンプリコン濃縮計画と完全に適合的である。
【0169】
配列決定効率を増加させるために、増幅されたサブライブラリ中の識別子を物理的に連結することによってナノポア配列決定を最適化することが有利であり得る。ナノポア配列決定は、読み取り速度に寄与するナノポアを見つけるために標的核酸分子を必要とし得る。読み出し時間を増加させるために、識別子はライゲーションによってより長い分子中に物理的に連結され得る。配列決定された分子の長さを500bp未満から5,000bpに(またはそれを超えて)増加させることによって、ポア占有率を最大化させ得る。
【0170】
核酸分子がナノポアを通って転位する速度は、増加させ得る。現在のナノポア配列決定装置は、500塩基対/秒の速度でナノポアを通して核酸分子を転位させる。ナノポア膜を横切る差分膜電位(例えば、100mV超)を確立することにより、核酸分子はより高い速度(例えば、約100万塩基/秒)で転位する。ほとんどの配列決定用途では、数十万の桁での速度は速すぎ、単一の別個の塩基を検出するため、ポアを通して核酸分子を歯止めで動かすためにタンパク質「モーター」を使用することができる。したがって、「モーター」なしでナノポア配列決定を行うには、一本鎖核酸分子入力を生成し、核酸分子シグナルを増幅する必要があり得る。反応から50%を超える一本鎖核酸分子を達成する非対称PCRのためのいくつかの方法が存在する。プライマー融解温度を調節することによって、反応を1つの鎖の線形増幅に促すように、増幅プライマーを設計することができる。あるいは、5’リン酸化された核酸分子鎖に特異的に結合し、二重鎖の1つの鎖を選択的に分解するために、ラムダエキソヌクレアーゼなどの鎖特異的エキソヌクレアーゼを使用することができる。このプロトコルは、一本鎖分子の90%超の産生を提供し得る。
【0171】
シグナル増幅に関して、核酸分子は、シグナル対ノイズ比を増強するために作用物質で修飾することができ、本質的に「スーパーシグネチャ」を作り出す。例えば、作用物質は、小分子、化学基、塩基類似体、酵素、タンパク質、タンパク質複合体、ペプチドまたはアミノ酸であり得る。ナノポアシグナル増強のための1つの方法である、mTAG(活性化された基のメチルトランスフェラーゼ指向性転移)は、ビオチン化されたS-アデノシル-L-メチオニンコファクター類似体のような化学基を配列モチーフ内のアデニン塩基のN6原子に付加するために、メチルトランスフェラーゼを使用する。作用物質が塩基類似体である場合、作用物質はPCRを通じて識別子分子に付加されることができ、PCRでは、塩基類似体が反応混合物中に含められ、複製中に、識別子分子の一本鎖に結合した相補鎖中に組み込まれる。次いで、塩基類似体を有する識別子分子の新しいハイブリッドを配列決定することができ、塩基類似体は、配列決定読み出しにおけるシグナル対ノイズ比を改善することができる。
【0172】
図31A~31Bは、DNA識別子をシグナル事象とともに示す。特に、
図31A~31Bは、作用物質でDNAを修飾することがコンダクタンスをどのように低下させてシグナルの増加をもたらし、それにより配列決定事象に関連するシグナル対ノイズ比(SNR)を増加させるかを示す。
図31Aに示されるような非修飾DNA識別子と比較して、
図31Bに示されるようなより大きな化学構造を有するDNA識別子はコンダクタンスを低下させ、配列シグナルを増強する。グラフ1502、1512は、それぞれ配列決定識別子1500および1510からのシグナル(例えば、固体状ポアからの代表的な信号事象)を示す。修飾の種類、修飾の数および修飾間の間隔によって規定される複雑なシグナルシグネチャを作製するために、単一および複数の修飾された塩基を使用することができる。示されるように、修正された識別子読み取りの信号を示すグラフ1512は、修正されていない識別子読み取りの信号を示すグラフ1502よりも高いSNRを示す。
【0173】
いくつかの実装形態において、ナノポアを通して核酸分子を転位させるために、タンパク質モーターが使用され得る。タンパク質は、タンパク質モーターによる転位の速度を増大させるように選択され得る。例えば、転位は、毎秒1,000;1万;10万;または100万塩基のオーダーであり得る。現在のモータータンパク質は、増加した速度でより良好に機能するように最適化され得る。例えば、運動速度についての公開されているヘリカーゼバリアントは、(商業的DNA合成業者を使用して)複数のバリアント構築物を合成することを含む。
【0174】
コア復号の取り組みは、信号復号および誤り回復を含む。一例として、アーカイブが10個のプールとして書き込まれると仮定すると、各プールは113個のコンポーネント配列のコンポーネントライブラリで書き込まれ、それぞれ5個のコンポーネント配列の17セットと28個のコンポーネント配列の1セットとに分割される。それぞれの25ビットのソース語は、重み14識別子配列の28ビットの符号語にマッピングされる。そのような組み合わせ空間のスパンは、プールあたり21.4×1012の識別子であり、データを符号化する任意のライブラリのサイズは、4.16×1011の反応で概ね5.82×1012の識別子である。各識別子の均一な濃縮を仮定し、不完全なサンプリング確率を10-6に設定すると、5.82×1012個の識別子のプールのサイズの44倍のサイズのサンプルが必要とされる。したがって、単一のプールを配列決定すると、256×1012のリードがもたらされる。各コンポーネントが30塩基長であると仮定すると、各リードは540塩基長となり、およその長さ34.6PB(ペタバイト)の配列ストリームがもたらされる。代わりに、それぞれの14ビットのソース語が重み4の28ビットの符号語にマッピングされるように、符号語重みが4に低減される場合、必要とされ得るスパンおよびコンポーネントの数は変わらないままであるが、反応の数は2.97×1012に増加する。各識別子は、前のスキームにおける1.79ビットの代わりに3.5ビットを符号化し、総リードは128×1012に半減され、結果として長さ17.2PBのストリームがもたらされる。34.6PBの推定値を使用すると、約34.6×1015バイトのストリームを24時間のスパンで処理することができ、これは3.2×1012b/秒のスループットを必要とし得る。高性能Xeon CPUに接続された12GBのメモリを有するNvidia GeForce GTX Titan X GPUのようなグラフィックス処理ユニット(GPU)が、テキストおよびパターン長、ならびに許容される編集距離に応じて、0.35×1012~1×1012b/秒を達成する近似文字列合致のために使用され得る。Nvidia Tesla V100の10個のインスタンスと、クラウドプロバイダによって提供されるGeForce Titan Xに匹敵するGPUとを使用して、より高い信号復号化スループットが達成され得る。
【0175】
10-4の符号語の書き込み誤り率、および上記の符号化方式を仮定すると、25万ビットごと、または122個の255バイトスライスごとに概ね25個の誤ったビットが見られると予想される。したがって、独立した均一にランダムな誤りを仮定すると、4つの255バイトスライスごとに1つのビット誤りが予想される。したがって、仮定された誤り率において、復号されたすべてのスライスの少なくとも75%は誤りを含まない。誤りのあるスライスを復号するにはそれを符号化する3倍の時間がかかり、誤りのないスライスを復号するにはそれを符号化する3分の1の時間がかかるとすれば、復号時間の合計は符号化時間に概ね等しいことが分かる。
【0176】
信号を復号するGPU設定は、クラウドベースであり得る。このことから、ならびに上で仮定したように、帯域幅および保存コストを二重にカウントせず、復号のための計算コストのみを含むことから、データを読み取るコストは、ビットごとの配列決定プロセスのために必要とされるコストよりも有意に小さくなり得る。すべてのデータ保存およびコンピューティングがクラウドではなくローカルで行われれば、このコストはさらに低減され得る。
【0177】
図32は、保管動作の系統図を示す。アーカイブ(CAR)は、ブート、オントロジ、インデックスおよびコンテンツ領域に分割される。ブートパーティションは、外部のメタデータなしに復号することができる標準的な符号化方式を使用して書き込まれることができ、他のパーティションを読み取るために必要とされるパラメータ、キーおよびアドレスを保存し得る。OSは、上述したように、固定サイズのブロックの集合として記憶媒体を抽象化する。各ブロックは、識別子の単一のプールとして保存された、単一の識別子ライブラリ内の識別子配列の連続する配列である。(しかしながら、ブロックは、耐障害性のためにいくつかのプールにコピーを作製してもよい。)OSは、ブロックの編成、割り当ておよび書き込みを担当することができる。ブロック層がソースビットストリームパケットを受け取ると、ブロックインデックスはパケットを分割してアーカイブ内のブロックに割り当てる。ブートパーティションは、(容器および識別子から構成される)物理アドレスにブロックIDをマッピングする階層データ構造であるブロックインデックスを含む。ブロックインデックスは、空き/使用済みブロックを追跡し、ブロックを新しいパケットに割り当てる。各ブロックIDは論理アドレスとすることができ、分子アーカイブ内での物理アドレスに変換することができる。これは、
図32に示されるブロックインデックスをトラバースすることによって実現される。アドレスノードと呼ばれるデータ構造内の各ノードは、(例えば、
図34に関連して以下に記載されているような)Bツリーデータ構造と同様の、一連の子ブロックid範囲を含む。各範囲は、関心対象のブロックへの経路上にある次のブロックを指す。このようにして、アドレスノードのツリーが維持され、最後には、実際のデータを含む分子アーカイブ内のブロックを指すリーフノードになる。このように到達したリーフノードは、ブロックの物理アドレスを識別するブロックIDを保持し、ブロックのハッシュも保持することができる。内部ノードはまた、ハッシュ、その子ノードのハッシュの連結を含むことができ、このようにしてハッシュツリーを形成する。ブロックの物理アドレスは、ロケーションコード、容器コード、ならびに複数の識別子を記述した開始および終了識別子によって定義される識別子範囲を含む。ブロックIDは、耐障害性を可能にするために1つより多くの物理アドレスに分かれ得る。例えば、ブロックIDは、2もしくはそれを超える全く異なる容器、または2もしくはそれを超える全く異なる識別子範囲にわたって広がり得る。
【0178】
分子レベルでは、2つの動作:(例えば、上記されたネステッドPCRまたはネステッドアフィニティタグアクセス方法を用いた)識別子サブライブラリ選択操動作および(例えば、上記されたインピーダンスベースの方法を用いた、または合成による配列決定を用いた)識別子読み取り動作の組み合わせを使用して回収クエリが回答される。各動作は正のコストを有し、数分から数時間で測定される正の時間量を要する。選択動作は、コンポーネントの所与の固定された接頭辞を有する識別子を再帰的に選択するいくつかの連続的PCRを含み得る。長さl
c塩基の各コンポーネント配列を有するL個の層を有するLCPCCの場合、識別子ライブラリに対してp回の連続的PCR(SPCR)を実行すると、θp層だけ識別子ライブラリの多様性が減少し、ここで、θは単一のPCRによってカバーされる層の数である。したがって、非多重層上でのp回のSPCRの後に、存在する識別子はL-θp層で多様である。それぞれのこのような識別子は、(L-θp)l
c多様な塩基に対応する。配列決定技術が最大長6の分子を読み取ることができる場合、p回のSPCRの後に任意の識別子を配列決定することができるために必要とされるSPCRの数pは、以下のように制約される:
【数6】
。pが所与の制約を満たすp回のSPCRの後、スパンDの可能な識別子の識別子ライブラリは、D’の識別子を含む識別子ライブラリに切り詰められ、ここで、
【数7】
、c
bは、パーティションスキームの任意の基層内のコンポーネントの数である。L=15層、c
b=6、l
c=30塩基、σ=300およびθ=4の符号化方式を仮定すると、p=2となる。この事例では、切り詰められた識別子ライブラリサイズ
【数8】
識別子。例えば、各識別子の完全に均一な濃縮という単純なモデルを仮定すると、高い確率ですべての識別子をサンプリングするために必要とされ得るサンプルサイズは、クーポンコレクターモデルを使用して計算され得、
【数9】
であることが分かり、ここで、
【数10】
、αは不完全なサンプルの確率である。α=10
-6に設定すると、β=2およびおよそ
【数11】
となり、選択されたサブライブラリのサイズの28×倍のサンプルサイズが十分であり得ることを示す。均一な濃縮の仮定は理想的であり、カバレッジは幾分より大きい必要があり得る(ただし、非均一なクーポンコレクション分布は平均付近に集中していることも知られていることを考えると、異常に大きいわけではない)ことに留意されたい。これにより、aの10~100倍高い値の誤差が許容される。
【0179】
必要とされるブロック動作の数は、以下の工程を介して計算され得る。一例として、おおよそエクサバイトである1019ビットのアーカイブ内のサイズ106ビットのデータブロックを考える。このアーカイブは、各々が1012ビットを含む107個の区画化された識別子ライブラリに分割された1013個のデータブロックから構成される。各識別子ライブラリは106個のデータブロックを含む。各ブロックが順序付けられた識別子の連続した範囲によって表される場合、各ブロックは、その最初の識別子内のコンポーネントの配列およびその最後の識別子内のコンポーネントの配列によって完全に定義され得る。C個のコンポーネントのコンポーネントライブラリを用いたL層スキームの場合、したがって、識別子範囲を含む物理ブロックアドレスは、2L[log2C]ビットを使用して符号化することができる。したがって、C=112およびL=15の場合、識別子範囲は27バイトで符号化され得る。同様の推論により、物理容器アドレスの符号化は、少なくとも3バイトを必要とし得る。識別子範囲と物理容器アドレスとを含む物理ブロックアドレスを符号化するために、合計64バイトが割り当てられ得る。ハッシュを保存するために128バイトを割り当てることができる。同様に、ソースビットストリーム内の任意のブロックのためのソースブロックIDは64バイトを必要とし得る。最大512個の子ノードをサポートすることができるアドレスノードは、511個のブロックID範囲マーカおよび512個のポインタを必要とし得、これらのそれぞれは子ブロックの物理アーカイブアドレス(例えば、容器アドレスおよび識別子範囲)である。したがって、アドレスノードは、511×64+512×128バイト、すなわち524,800ビットを必要とし得る。誤り訂正バイトを含めて、このようなアドレスノードは、106ビットのアーカイブブロックで符号化可能である。したがって、106ビットのアーカイブブロックを選択して読み取ることができる。
【0180】
このような方式を使用すると、エクサバイトスケールのアーカイブのための階層ブロックアドレス指定構造は、5レベル以下の深さである必要がある。ブロックの「コールド」キャッシュ、すなわち、ブロックが照会されていない、から始めて、ブロックIDを有する単一ブロックアクセスは、最大で6つの選択-読み取り動作:問題のブロックの物理アドレスを見つける(例えば、Bツリーをトラバースする)ための5つの選択-読み取りペア、およびデータブロックを読み取るための1つの選択-読み取りペアを必要とし得る。OSは、インデックス可能なアーカイブを構築するために、ブロックおよびブロックインデックスのこの基礎を使用することができる。保存の基本単位はブロックであり、ブロックは、ブロックインデックスを使用して物理アドレスにマッピングされるブロックidを使用して他のブロックを参照する。
【0181】
ビットのブロックに対するそれぞれの高レベルの動作は、多数の物理的動作に依存し、多数の物理的動作をもたらし、物理的動作は化学的方法または物理的工程が結集されることに依存する。これは、ブロック動作を物理的動作の最適化されたセットに変換する最適化ツール、および物理的動作を技術者または自動化装置によって実行されるべき動作の詳細なプログラムに変換する変換ツールという2つのタイプのソフトウェアツールを含むことができ、ビットのブロックに対する動作と物理的および化学的操動作との間での変換機構を設計および実装することを含み得る。
【0182】
OSは、ボトルネックとなるリソース(例えば、液体取り扱いロボットおよび技術者の時間)を割り当て、書き込み動作のメイクスパンを最小化するように他の書き込み動作のスケジュールを決定することもできる。読み取り要求は、(後述するように)パターンクエリから生じ得、ブロックIDによって指定されるブロックの範囲を読み取ることを含み得る。(例えば、
図34に関連して以下に記載されているように)CARインデックスはBツリーとして編成されるので、各パターンクエリは、隣接するブロックの範囲内の隣接する単語の範囲のアクセスに変換される可能性が高い。
【0183】
通常、パターンクエリは連言および選言を含み、リードフットプリントを最小化するために結合演算の最適化されたシーケンスに変換される。本明細書に記載されるシステムおよび方法において使用されるクエリ最適化機構は、アクセスコストモデルをCAR中に忠実に反映するように変更および増強され得る。結合最適化の後、連言および選言を含む複雑なパターンクエリは、読み取られるべきブロックのセットをもたらし得る。OSは、ブロックIDを物理アドレス(容器および識別子)に変換するためにブロックインデックスを読み取るための化学的工程と、標的ブロックを読み取るための工程とを生成し得る。標的ブロックのセットを読み取ることは、クエリ最適化機構によって特定された一連の連続的PCRを実行するために必要とされるプライマーのセットを特定することを必要とし得る。OSは、SPCRおよび他の化学的方法のインスタンスを生成し、物理的サンプルアドレスならびに体積および濃度などの方法パラメータ値でそれらを完成させ、すべての必須の実験器具、機器、および技術者を割り当てることができる。全体的なフレームワークは、タイムスケジューリング、リソース割り当て、ならびに実行プログラムのコンパイルおよび生成という3つのタスクを担当することができる。OSは、jBPMおよびCamundaなどのビジネスプロセスモデリングおよび自動化空間から現存のフレームワークを適合させることができ、Simple Workflow ServiceおよびLogic Appsなどのクラウドワークフローツールからフレームワークに対して適合され得る。
【0184】
OSは、書き込みシステム、読み取りシステム、液体取り扱いロボット、ならびにサンプルおよび容器管理システムという少なくとも4つの自動化装置と相互作用することができる。OSは、これらの装置のいずれかによって自動化可能な物理的および化学的変換機構によって出力されたワークフロー中の工程を装置固有の命令に変換することができる。書き込みシステムは、どのコンポーネントのセットを並置するかについてプログラムされることができ、反応仕様フォーマットの設計および生成を必要とし得る。
図19は、例示的なフォーマットを示し、ビットストリームを符号化し、反応仕様に直列化するためにどのように組み合わせ空間が使用され得るかを示す。この例では、3ビットの固定された重みの5ビット符号語がソース語を符号化する。符号語は、符号語内のビットに対応する、4つの基層と5つのコンポーネントを含む多重層との組み合わせ空間に変換される。各符号語は、単一の反応で組み立てられるべきであり、各反応は、4つの基本コンポーネントおよび5つの多重層コンポーネントのうちの3つ、すなわち合計7つのコンポーネントを含み得る。階層化された積コンストラクタからの組み合わせ空間は、トライとして視覚化することができ、このトライ中のルートからリーフへの各経路が識別子である。各反応において組み立てられるべき識別子のセットは、一番下に示されているように、後行順でトライをトラバースすることによって直列化することができる。この反応セット仕様は、
図33に示されるように、各書き込みジョブに対してOSによって生成され、ジョブおよびブロック記述子の形式で追加の記述情報とともにパッケージされる。
【0185】
図33は、ある例示的な態様による、プリンタ-仕上げ機システムを有する書き込みワークフローを示す。印刷ジョブ命令は、印字ヘッドコントローラコマンドフレームに分割され、個々の印字ヘッドに送られ、それぞれが、各インクが単一のコンポーネントを含有する最大4つのインクを印刷することができる。書き込みシステムは、ノズル試験(チャープ)信号を画像化するカメラを備えている。OSは、この画像データをオフラインで処理し、書き込み誤り率を推定し、誤り率が誤り保護方式によって扱いやすくなるまで、欠落している可能性がある識別子に対する書き直し要求を生成する。OSは、容器を提出および検査し、容器バーコードラベルを生成するように容器管理システムに指示するための命令も生成する。Exabyteスケールのアーカイブの場合、Hamilton VersoまたはBrooks SampleStore IIなどのコンテナバンクによって最大10
6個の識別子ライブラリを管理することができる。このようなコンテナバンクはまた、第三者の実験室情報管理システム(LIMS)と統合し、例えば、Verso APIはLabVantage 8 LIMSおよびMosaicによってサポートされる。VersoとMosaicはいずれも、OSとの統合のために、RESTful APIを介してプログラムによる制御をサポートする。OSは、配列決定およびSPCRのためのサンプル調製を容易にするために、リキッドハンドラに対する「候補リスト」転送命令も生成し得る。
【0186】
本明細書に記載されるシステムおよび方法は、アーカイブの大部分を復号することを必要とすることなしに、アーカイブの保存、発見および照会を徐々に提供する。アーカイブ上の結合およびその他の構造を計算する必要性を最小限に抑えながら、ターゲットコンテンツを選択的かつ徐々に発見、照会および読み取りすることが可能であるはずである。最小化されるべき重要なメトリックは、一連のクエリを満たすために復号されるビットの総数である。
【0187】
図34は、書き込みシステムのデータ経路の一例を示す。データブロックの意味的注釈が提供され、それらを結び付ける関係情報を有するブロックIDと、アクセスのためにブロックに用語をマッピングするコンパクトなインデックスとを含み得る。リソース・ディスクリプション・フレームワーク(RDF)は、アクセスのコストを最小化し、解釈の寿命を最大化しながら、インデックス作成および見つけやすさに対処するために発見レイヤを実装するフレームワークとすることができる。RDFは、エンティティのグラフを符号化する主語-述語-目的語(SPO)の3つの要素として、リソースに関する情報を表すために、ワールド・ワイド・ウェブ・コンソーシアムによって標準化された形式メタ言語である。データおよびさらにはデータセットのブロックを連結する能力、ドメイン固有の語彙の統合、ならびに変換、インデックス作成、コンパクションおよびマイニングのためのツールを含む、RDFの重要な利点を活用することができる。
【0188】
アーカイブは、起動、オントロジ、インデックスおよびコンテンツという4つのパーティションに分けることができる。オントロジパーティションは、用語およびクラスの語彙と、アーカイブ中に見られる全てのエンティティのラベルのリストとを含む。したがって、オントロジパーティションは、アーカイブのコンテンツの分類法を提供し、復号フットプリントを最小化しながらターゲットを定めた発見を容易にすることを意図している。オントロジは、制作者によって提供されてもよく、またはドメイン固有ソフトウェアを使用して取り込み中に構築されてもよい。インデックスパーティションは、トリプルストアとして編成することができる。例えば、インデックスパーティションは、パターンクエリを迅速に提供することを目的として、辞書編集のようにソートされたトリプルのいくつかの集合、典型的には6~18の集合を格納することができる。RDFクエリは例示であり、「select x
1,x
2,...x
k where {p
1 and p
2 and...p
n}」の形式をとり、xiは関心対象のデータ属性であり、piは主語-述語-目的語パターンであり、それぞれは変数またはリテラル値のいずれかである。例えば、「select name wherein{author<hasName>name and book<writtenBy>author and movie<basedOn>book and movie<directedBy>dir and dir<hasName>“Kubrick”}」は、その書籍が、「Kubrick」によって監督された映画に映画化された全ての著者の名前を返す。パターンの各要素は、リテラルまたは変数であり得るので、クエリ内のパターンを満たすトリプルを検索するために、SPOの6つの順列のいずれもが必要とされ得る。充足するトリプルのカウントとともにすべての単項および二項関係(例えば、SO、SP、OSなど)を格納する追加のインデックスも保持され得る。これらのインデックスは、(
図34に関連して後述するように)Bツリーとしてまたはトライとして格納され、パターン内のリテラルは、Bツリーまたはトライを通じてキーとして機能し、充足するトリプルは、リーフノードによって指し示されるブロック中に格納される。このインデックス編成およびシリアル化スキームを実施するために、RDF Header Dictionary Triplesフレームワークが使用され得る。RDFリテラルは文字列URIであり得るが、これらは、これらのインデックス中に格納されるときに整数idにマッピングされる。隣接するトリプルは接頭辞リテラルを共有することがあり得るので、隣接するトリプルは圧縮形式で差分として格納することができ、識別子の範囲に直接変換され得る。
【0189】
このようなネイティブ意味データ保存の利点は、インデックス全体を読み取って復号する必要なしにクエリが充足され得るようになることである。分析者によって開始されるアーカイブの発見は、起動およびオントロジパーティションの復号をもたらす。これらは分析者に伝えられ、分析者はそこから最初のクエリを構築し得る。本明細書に記載されるソフトウェアと結合されたRDFクエリエンジン(例えば、Redland Rasqal)は、BツリーインデックスおよびCARブロックを介して、このパターンクエリを、最適化されたスキャンのセットに変換することができる。結果は、充足するトリプルのセット、および/または推定されるトリプルカウントのセットであり得る。これらの結果に基づいて、分析者は、画像、動画または科学データセットを含む長文式の標的コンテンツの復号をもたらし得るさらなるクエリを提出し得る。インデックス作成は出願人の記憶装置と元々一体化されているので、復号されるフットプリントはクエリ最適化機構によって最小化することができる。
【0190】
インデックス中に含まれる各エンティティは、統一資源識別子(URI)に拡大する整数IDによって参照される。しかしながら、URIによって参照されるエンティティは、必要に応じて追加の圧縮されたインデックスを有し得るコンテンツパーティション中に格納される。圧縮されたインデックス(例えば、ウェーブレットツリー)は、すべて小さなスペースオーバヘッドで、多重解像度アクセス、マルチスキーム書き込みおよび高速検索を可能にする。
【0191】
図34は、容器内のブロック識別情報(ID)と関連付けられたデータのブロックを保存するための工程の概要を示すフローチャート1800を示す。工程1802において、複数のブロックが取得される。各ブロックは記号の列を含み、ブロックIDに関連付けられる。ブロックIDは、特定のブロックに関連付けられた任意の識別特徴または記号であり得る。例えば、ブロックIDは、トリプルの形式の意味的注釈であり得る。いくつかの実装形態において、ブロックIDは、整数、文字列、トリプル、属性のリストまたは意味的注釈である。例えば、ブロック中に含まれる記号の列の最初のX個の記号は、そのブロックの数値IDを示し得る。
【0192】
工程1804において、ブロック(工程1802において受け取られた複数のブロックに属するブロックのうちの1つ)が容器に割り当てられる。容器は、入れ物、チューブ、または核酸分子がそこに保存され得るその他の物理的保存媒体などの物理的位置であり得る。容器は、単一のブロックまたは複数のブロックに連結され得る。例えば、1つの容器が、B個の情報ブロックと関連付けられ得る。いくつかの態様において、容器は複数のサブ容器を備え得る。
【0193】
工程1806において、ブロックは、容器に関連付けられるべき識別子配列にマッピングされる。これらの識別子は、1つの識別子範囲または複数の識別子範囲の複数の異なる識別子を含み得る。識別子範囲は、その範囲に隣接する識別子を含むコンポーネント配列によって指定され得る。いくつかの実装形態において、各個々の識別子は、識別子範囲が2つの整数によって指定され得るように、別個の整数に関連付けられる。複数の識別子配列の個々の識別子配列は、ブロック中に保存された記号の列内の個々の記号に対応する。各識別子配列は、対応する複数のコンポーネント配列を含む。これらのコンポーネント配列の各々は、異なる核酸配列を含む。
【0194】
工程1808において、複数の識別子配列の個々の識別子が構築される。例えば、Q個の識別子配列のセットを特定の容器に関連付け得る。これらのQ個の識別子配列のサブセットVは、上述した様々な方法で説明したように、ブロック内の情報を表すように物理的に構築され得る。
【0195】
工程1810において、工程1808において構築された識別子は、割り当てられた容器中に保存される。例えば、割り当てられた容器は、次いで、ブロック中に保存された情報を表すVの数の識別子を保持し得る。容器およびそれに関連する複数の識別子核酸配列の同一性は、関連するブロックIDを使用して決定されるように設定される。いくつかの実装形態において、同一性は、関連するブロックIDを使用して各容器の同一性のアクセスを容易にするように設計されたデータ構造中に保存される。例えば、データ構造は、Bツリー、トライまたはアレイのうちの1つであり得る。いくつかの実装形態において、データ構造の少なくとも一部は、デジタル情報と共にインデックス中に保存される。インデックスは、第2の容器に関連付けられた第2の複数の識別子配列を含み得る。いくつかの実装形態において、インデックスは、磁気記憶装置、光記憶装置、フラッシュメモリ装置またはクラウドストレージ中に保存される。
【0196】
インデックスがBツリーデータ構造を含む場合、Bツリーの各ノードは、第2の複数の識別子配列の異なる複数の識別子(すなわち、工程1808において構築された識別子のセットとは異なる)を含み得る。いくつかの実装形態において、異なる複数の識別子のアイデンティティを決定するために、Bツリーを検索し得る。Bツリー内の特定のブロックIDを検索することは、第1のノードを構成する異なる複数の識別子を選択することと、第1のノードの値を読み取ることとを含み得る。識別子を選択し、ノードの値を読み取る工程は、後続のノードで繰り返され得る。後続のノードを構成する異なる複数の識別子のアイデンティティは、第1のノードの値との関連でブロックIDによって決定される。一例では、第1のノードはBツリーのルートノードであり、Bツリーのリーフノードの値が読み取られるまで、(上述のランダムアクセス法で)選択し、ノードを読み取るプロセスが継続する。リーフノードの値は、ブロックIDに対するブロックが存在するかどうかを伝達するように設定される。ブロックIDが存在すれば、容器のアイデンティティおよび前記ブロック(例えば、識別子範囲)を含む複数の識別子核酸配列のアイデンティティは、ユーザまたはシステムに伝達され得る。
【0197】
インデックスがトライデータ構造を含む場合、トライの各ノードは、第2の複数の識別子配列の異なる複数の識別子を含み得る。いくつかの実装形態において、ブロックIDは記号の列であり、トライ中の各ノードは記号の列の可能な接頭辞に対応する。ブロックIDへのトライを通る経路が存在する場合、対応するブロックの(容器および1つの識別子範囲または複数の識別子範囲で構成される)物理アドレスは、その経路のリーフノードによって指定されることができる。トライの各中間ノードは、別個の複数の識別子によって表されることができ、各中間ノードがいくつの娘ノードを有するか、それらの娘ノードが表す記号は何か、およびそれらの娘ノードの(容器アイデンティティおよび1つの識別子範囲または複数の識別子範囲から構成される)物理アドレスに関する情報を含むことができる。このようにして、上記のように選択-読み取り動作を使用して、Bツリーと同様に、DNA内でトライを探しながら進むことができる。
【0198】
データ構造がアレイである場合、アレイの各要素は、識別子配列の第2の複数の異なる複数の識別子を含む。いくつかの実装形態において、アレイ内の各要素はブロックIDに対応し、各要素はそのブロックIDの(容器アイデンティティおよび1つの識別子範囲または複数の識別子範囲から構成される)物理アドレスを含む。
【0199】
いくつかの実装形態において、上記の工程1810において導入された(各ブロックに対する容器および複数の識別子の)アイデンティティのインデックス内での位置は、ブロックIDに対して固有に設定される。ブロックIDは、ブロックの物理アドレスを含む全ての識別子のみが共有する複数のコンポーネントに直接マッピングし得る。アイデンティティを保存するインデックス中の複数の識別子核酸分子は、それぞれが複数のコンポーネントを含む個々の識別子核酸分子から構成され得る。いくつかの実装形態において、ブロックIDは、容器および容器内の対応するブロックのすべての識別子のみが共有する複数の核酸コンポーネントに直接マッピングする。いくつかの実装形態において、ブロックIDは、関連するブロックに注釈を付けるエンティティのトリプルであり、トリプルのエンティティは複数の核酸コンポーネントにマッピングする。コンポーネントを含む個々の識別子を含むインデックス内の複数の識別子は、エンティティで注釈付けされたすべてのブロックの物理アドレスを格納することができる。代替的にまたは追加的に、前記エンティティによって注釈付けされたすべてのブロックを含むアーカイブのコンテンツ内の複数の識別子は、前記エンティティを表す対応する複数の核酸コンポーネントを排他的に含み得る。
【0200】
本明細書中に記載される方法(例えば、
図24~
図26、
図34に関連して説明した方法)のいずれかによるデジタル情報を保存するためのシステムは、核酸の複数の容器を保存するためのサンプル管理システムを含み得る。システムは、サンプル管理システムから指定された容器を回収するために自動化機械を使用し得る。いくつかの実装形態において、このサンプル管理システムは、
図34に関連して上述したDNA保持識別子を含むが、任意の種類の物理的なまたはコンピュータによって表象されたデータ保存要素も含む、任意の種類の容器にアクセスするために使用される。
【0201】
上記は、本開示の原理の単なる例示であり、装置は、限定ではなく例示を目的として提示されている記載された態様以外によって実施することができる。核酸をベースとしたデータ保存における使用について示されているが、本明細書に開示される方法は、データ保存を必要とする他の用途におけるシステムに適用され得ることを理解されたい。
【0202】
本開示を検討した後、当業者は変形および修正に想到するであろう。開示された特徴は、本明細書に記載される1またはそれを超える他の特徴との任意の組み合わせおよび部分的組み合わせ(複数従属の組み合わせおよび部分的組み合わせを含む)で実施され得る。上で記載または例示された様々な特徴は、その任意の構成要素を含めて、他のシステムにおいて組み合わされ、または統合され得る。さらに、ある特徴は省略され得、または実施されなくてもよい。
【0203】
記載されたシステムおよび方法は、プリンタ/仕上げ機システム上でローカルに実施され得る。プリンタ/仕上げ機システムは、データ処理装置を含み得る。本明細書に記載されるシステムおよび方法は、別個のデータ処理装置上で遠隔的に実施され得る。別個のデータ処理装置は、クラウドアプリケーションを介してプリンタ/仕上げ機システムに直接的または間接的に接続され得る。プリンタ/仕上げ機システムは、別個のデータ処理装置とリアルタイム(またはほぼリアルタイムで)通信し得る。
【0204】
一般に、本明細書に記載されている主題および機能操作の態様は、本明細書に開示された構造およびそれらの構造的均等物を含むデジタル電子回路、もしくはコンピュータソフトウェア、ファームウェアもしくはハードウェアで、またはそれらの1もしくはそれを超える組み合わせで実施することができる。本明細書で記載される主題の態様は、1またはそれを超えるコンピュータプログラム製品、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1またはそれを超えるモジュールとして実施することができる。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、機械可読伝播信号に影響を及ぼす組成物、またはそれらの1もしくはそれを超える組み合わせであり得る。「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての装置、デバイスおよび機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1もしくはそれを超える組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、例えば、適切な受信装置に伝達するための情報を符号化するために生成される機械生成の電気信号、光信号または電磁信号である。
【0205】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られている)は、コンパイラ型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてなど、任意の形式で配置することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語文書中に保存された1またはそれを超えるスクリプト)を保持するファイルの一部に、問題のプログラム専用の単一のファイルに、または複数の協調したファイル(例えば、1またはそれを超えるモジュール、サブプログラムまたはコードの一部を保存するファイル)に保存することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に位置する複数のコンピュータ、もしくは複数の場所に分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように配置することができる。
【0206】
本明細書に記載されているプロセスおよび論理フローは、入力データに対して操作を行い、出力を生成することによって機能を実行するために1またはそれを超えるコンピュータプログラムを実行する1またはそれを超えるプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、装置は、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路として実装することもできる。
【0207】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1またはそれを超えるプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを保存するための1またはそれを超えるメモリ装置である。一般に、コンピュータはまた、データを記憶するための1またはそれを超える大容量記憶装置、例えば、磁気、光磁気ディスクもしくは光ディスクを含むか、またはそれらからデータを受け取り、もしくはそれらにデータを伝達し、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータは、このような装置を有する必要はない。
【0208】
変更、置換および改変の例は、当業者によって解明可能であり、本明細書に開示される情報の範囲から逸脱することなく行うことができる。本明細書で引用されるすべての参考文献は、その全体が参照により組み入れられ、本出願の一部とされる。
【国際調査報告】