(57)【要約】本明細書に記載されるシステム、デバイスおよび方法は、核酸分子へとデータを書き込み、核酸分子からデータを読むためのスケーラブルな方法を提供する。本開示は、４種の目的の主要領域を網羅する：（１）核酸分子に記憶された情報を正確にかつ迅速に読むこと、（２）核酸分子におけるデータを効率的にコードするためにデータを分割すること、（３）核酸分子におけるデータをコードする場合は、誤り保護および訂正、ならびに（４）核酸分子に記憶された情報への効率的なアクセスを提供するためのデータ構造。
2021532799.tif 000002
【特許請求の範囲】
【請求項１】
核酸配列に記憶された情報を読むための方法であって、
長さＬの記号のストリング由来のデジタル情報を記憶する識別子核酸分子のプールを得るステップであって、個々の識別子核酸分子のそれぞれが、複数のコンポーネント核酸分子を含み、前記記号のストリングにおける記号値および記号位置に対応し、識別子核酸分子の前記プールが、長さＬを有する記号のいずれかのストリングをコードすることができる識別子ライブラリーにおける識別子核酸配列のサブセットに対応する、ステップと、
前記得られた識別子核酸分子の識別子核酸分子を読むステップであって、前記識別子核酸分子の部分に対応する読み取りデータ配列を識別するステップと、
前記読み取りデータ配列に基づき、それぞれ（ｉ）前記識別子ライブラリーにおけるエントリーに対応し、（ｉｉ）前記読み取りデータ配列に近似するまたは的確にマッチする配列を有するコンポーネント核酸分子を含む、候補識別子核酸配列のセットを識別するステップと、
各候補識別子核酸配列に、前記それぞれの候補識別子核酸配列が前記識別子核酸分子とどの程度類似するかを代表するスコアを割り当てるステップと、
前記スコアに基づき、前記候補識別子核酸配列のうち１個を選択された配列として選択するステップと
を含む方法。
【請求項２】
前記識別子ライブラリーを使用して、前記選択された配列を、前記記号のストリング内の前記記号位置の１個および前記記号値の１個にマッピングするステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記識別子ライブラリーを使用して、前記プールにおける識別子核酸分子の可能性がある配列に対応する追加的な選択された配列をマッピングすることにより、前記記号のストリング内の追加的な記号位置および記号値を決定するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記識別子核酸分子を読むステップが、化学的配列決定、チェーン・ターミネーション配列決定、ショットガン配列決定、ブリッジＰＣＲ配列決定、単一分子リアルタイム配列決定、イオン半導体配列決定、パイロシークエンシング、合成による配列決定、組み合わせプローブアンカー合成配列決定、ライゲーションによる配列決定、ナノポア配列決定、ナノチャネル配列決定、超並列シグネチャー配列決定、ポロニー配列決定、ＤＮＡナノボール配列決定、単一分子蛍光配列決定、トンネル電流配列決定、ハイブリダイゼーションによる配列決定、質量分析配列決定、マイクロ流体配列決定、透過型電子顕微鏡配列決定、ＲＮＡポリメラーゼ配列決定またはｉｎ  ｖｉｔｒｏウイルス配列決定のうち少なくとも１種によって、前記識別子核酸分子の少なくとも部分を配列決定することを含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記配列決定することが、
電場を電解液および少なくとも１個のナノポアチャネルに印加することと、
前記少なくとも１個のナノポアチャネルを通して前記識別子核酸分子を移行させることと、
前記少なくとも１個のナノポアチャネルにおけるインピーダンスを測定することであって、前記コンポーネント核酸配列がそれぞれ、前記配列の前記長さに沿って対応するユニークインピーダンスシグネチャーを有することとを含む、請求項４に記載の方法。
【請求項６】
前記識別子核酸分子における少なくとも１個のコンポーネント核酸配列を配列決定することが、測定されたインピーダンス値を前記ユニークインピーダンスシグネチャーと比較することを含む、請求項５に記載の方法。
【請求項７】
前記少なくとも１個のナノポアチャネルが、アルファ−溶血素（αＨＬ）またはｍｙｃｏｂａｃｔｅｒｉｕｍ  ｓｍｅｇｍａｔｉｓポリンＡ（ＭｓｐＡ）から形成される、請求項５または６に記載の方法。
【請求項８】
前記少なくとも１個のナノポアチャネルが、ソリッドステート膜内に形成される、請求項５または６に記載の方法。
【請求項９】
識別子核酸分子を読むステップに先立ち、前記少なくとも１個の識別子核酸分子を第２の識別子核酸分子にライゲーションするステップをさらに含む、請求項５から８のいずれかに記載の方法。
【請求項１０】
前記識別子核酸分子を読むステップに先立ち、前記少なくとも１個の識別子核酸分子の一方の鎖を分解するステップをさらに含む、請求項５から９のいずれかに記載の方法。
【請求項１１】
鎖特異的エキソヌクレアーゼを使用して、前記少なくとも１個の識別子核酸分子の一方の鎖を選択的に分解する、請求項１０に記載の方法。
【請求項１２】
前記電場が、前記少なくとも１個のナノポアチャネルをわたる１００ｍＶを超える差次的電位を生成し、前記少なくとも１個の識別子核酸分子の移行が、毎秒１，０００塩基を超える速度で起こる、請求項５から１１のいずれかに記載の方法。
【請求項１３】
移行前に、前記少なくとも１個の識別子核酸分子に薬剤を結合させるステップをさらに含み、前記薬剤が、測定インピーダンスにおける薬剤シグネチャーに関連する、請求項５から１２のいずれかに記載の方法。
【請求項１４】
少なくとも１個のユニークインピーダンスシグネチャーが、薬剤シグネチャーを含み、前記識別子核酸分子における少なくとも１個のコンポーネント核酸配列を決定することが、測定されたインピーダンス値を前記少なくとも１個のユニークインピーダンスシグネチャーと比較することを含む、請求項５から１３のいずれかに記載の方法。
【請求項１５】
前記少なくとも１個の核酸分子上の前記薬剤の存在が、前記少なくとも１個の核酸分子上の前記薬剤の非存在下での所望のレベルの精度を達成する第２の最大移行速度よりも速い、所望のレベルの精度を達成する第１の最大移行速度を可能にする、請求項１３または１４に記載の方法。
【請求項１６】
前記少なくとも１個の識別子核酸分子に前記薬剤を結合させるステップが、酵素を使用することを含み、既知の場所における前記薬剤シグネチャーが、移行中のインピーダンス値の既知シフトをもたらすように、前記少なくとも１個の識別子核酸分子に前記薬剤を結合させるステップが、コンポーネント核酸分子における既知の場所で発生する、請求項１３から１５のいずれかに記載の方法。
【請求項１７】
前記薬剤が、塩基アナログであり、前記酵素が、ポリメラーゼであり、前記ポリメラーゼが、複製中に前記少なくとも１個の識別子核酸分子に前記塩基アナログを取り込む、請求項１６に記載の方法。
【請求項１８】
前記複数のコンポーネント核酸分子における既知の場所において複数の薬剤の各薬剤を結合させるステップをさらに含み、前記複数の薬剤および各薬剤の既知の場所が、薬剤シグネチャーを含む、請求項１３から１７のいずれかに記載の方法。
【請求項１９】
前記酵素が、メチルトランスフェラーゼである、請求項１６および１８のいずれか一項に記載の方法。
【請求項２０】
各識別子核酸分子が読み誤り許容度に関連するように、前記得られた識別子核酸分子が、互いとの最小数の塩基差によりコードされる、請求項１から１９のいずれかに記載の方法。
【請求項２１】
前記読み誤り許容度が、前記識別子核酸分子のより速い読みを可能にする、請求項２０に記載の方法。
【請求項２２】
前記記号のストリング内の前記記号位置の１個および前記記号値の１個への前記選択された配列のマッピングに基づき、デコードされた記号のストリングを決定するステップと、
前記デコードされた記号のストリングの部分のハッシュを計算するステップと、
前記計算されたハッシュを、前記記号のストリングの対応する部分に関連する本来のハッシュと比較するステップと、
前記比較に基づき、前記デコードされた記号のストリングの前記部分が、前記記号のストリングの前記部分にマッチするか検証するステップと
をさらに含む、請求項１から２１のいずれかに記載の方法。
【請求項２３】
前記デコードされた記号のストリングの前記部分が、前記記号のストリングの前記部分にマッチしないと決定するステップと、
前記スコアに基づき、第２の候補識別子核酸配列を前記選択された配列として選択するステップと、
前記識別子ライブラリーを使用して、前記選択された配列を、前記記号のストリング内の前記記号位置の１個および前記記号値の１個にマッピングするステップと
をさらに含む、請求項２２に記載の方法。
【請求項２４】
前記デコードされた記号のストリングの前記部分の前記ハッシュが、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４またはＳＨＡ−５１２／２５６のうち少なくとも１種を使用して計算される、請求項２０から２３のいずれかに記載の方法。
【請求項２５】
識別子核酸分子の前記プールに関する試料サイズ推定値をコンピュータ処理するステップと、
前記試料サイズ推定値に基づき、識別子核酸分子の前記プールをサンプリングして、前記識別子核酸分子を得るステップと
をさらに含む、請求項１からＡ４のいずれかに記載の方法。
【請求項２６】
核酸分子の前記プールにおける各識別子核酸分子が、Ｍ個の層に対応するＭ個のコンポーネント核酸分子を含む、請求項１から２５のいずれかに記載の方法。
【請求項２７】
前記識別子核酸分子を読むステップが、前記Ｍ個の層のうちＮ個を読むことを含む、請求項２６に記載の方法。
【請求項２８】
前記識別子核酸分子が改変された塩基を含むように、前記識別子核酸分子を複製するステップをさらに含む、請求項１から２７のいずれかに記載の方法。
【請求項２９】
前記スコアが、前記それぞれの候補識別子核酸配列と前記識別子核酸分子との間の類似性の程度を代表する距離メトリックである、請求項１から２８のいずれかに記載の方法。
【請求項３０】
核酸分子にデジタル情報を記憶するための方法であって、
前記デジタル情報を記号のストリングとして受け取るステップであって、前記記号のストリングにおける各記号が、前記記号のストリング内の記号値および記号位置を有し、前記記号のストリングが長さＬを有する、ステップと、
Ｃ個の別個のコンポーネント核酸配列のセットを使用して、前記記号のストリングをコードするための分割スキームを決定するステップであって、前記分割スキームが、コンポーネント数ｃｉの積が、前記記号のストリングの長さＬを超えるか、またはこれに等しく、前記コンポーネント数ｃｉの和が、別個のコンポーネント核酸配列の前記数Ｃ未満であるか、またはこれに等しいように、（ｉ）その内に前記Ｃ個の別個のコンポーネント核酸配列を配置するための数Ｍの層、および（ｉｉ）各第ｉの層におけるコンポーネントの数を定義する前記コンポーネント数ｃｉを定義する、ステップと、
（１）前記Ｍ個の層のそれぞれからコンポーネント核酸配列を有する１個のコンポーネント核酸分子を選択すること、
（２）前記Ｍ個の選択されたコンポーネント核酸分子を区画に置くこと、
（３）（２）における前記Ｍ個の選択されたコンポーネント核酸分子を物理的にアセンブルして、第１の識別子核酸分子を形成すること
により、第１の識別子核酸分子を形成するステップと、
それぞれの記号位置にそれぞれ対応する、複数の追加的な識別子核酸分子を形成するステップと、
プールにおいて前記識別子核酸分子の少なくとも部分を収集するステップとを含む方法。
【請求項３１】
前記Ｍ個の層のそれぞれにおけるコンポーネント核酸配列の前記数ｃｉの分布が、不均一である、請求項３０に記載の方法。
【請求項３２】
長さＬを有する記号のいずれかのストリングが、前記Ｃ個の別個のコンポーネント核酸配列のいずれかの組合せを有する分子から形成された前記識別子核酸分子によって表され得るように、前記分割スキームが設計され、１個のコンポーネント核酸配列が、前記Ｍ個の層のそれぞれから選択される、請求項３０または３１に記載の方法。
【請求項３３】
前記識別子核酸分子における各層が、トライデータ構造における層を表す、請求項３０から３２のいずれかに記載の方法。
【請求項３４】
各層における前記コンポーネント核酸分子が、第１および第２の末端領域により構造化され、前記Ｍ個の層の１個に由来する各コンポーネント核酸分子の前記第１の末端領域が、前記Ｍ個の層の別のものに由来するいずれかのコンポーネント核酸分子の前記第２の末端領域に結合するように構造化される、請求項３０から３３のいずれかに記載の方法。
【請求項３５】
前記記号のストリング内の各記号位置が、対応する異なる識別子核酸配列を有する、請求項３０から３４のいずれかに記載の方法。
【請求項３６】
前記識別子核酸分子が、前記Ｍ個の層のそれぞれに由来する１個のコンポーネント核酸配列をそれぞれ含む、可能な識別子核酸配列の組み合わせ空間のサブセットを代表する、請求項３０から３５のいずれかに記載の方法。
【請求項３７】
前記プールにおける識別子核酸分子の存在または非存在が、前記記号のストリング内の前記対応するそれぞれの記号位置の前記記号値を代表する、請求項３６に記載の方法。
【請求項３８】
前記コンポーネント数ｃｉの前記積が、ビット単位の前記記号のストリングの長さを超えるか、またはこれに等しい、請求項３０から３７のいずれかに記載の方法。
【請求項３９】
前記分割スキームが、Ｍ個の選択されたコンポーネント核酸分子の少なくともいずれかのセットを区画に置くことができるプリンターシステムの構成にさらに基づく、請求項３０から３８のいずれかに記載の方法。
【請求項４０】
Ｃが、前記プリンターシステムにおける利用できるインクの数に等しく、各利用できるインクが、１個のコンポーネント核酸配列を含む、請求項３９に記載の方法。
【請求項４１】
核酸分子にデジタル情報を記憶するための方法であって、
長さＬ１を有する記号の第１のストリングとしてデジタル情報を受け取るステップであって、前記記号の第１のストリングにおける各記号が、前記記号の第１のストリング内の記号値および記号位置を有する、ステップと、
前記記号のストリングを複数のブロックに分けるステップであって、各ブロックが長さＢを有する、ステップと、
ブロック毎に、長さＨのハッシュをコンピュータ処理し、前記ハッシュを前記ブロックに加えて、ハッシュ化ブロックを得るステップと、
前記ハッシュ化ブロックをつなぐことにより、長さＬ２を有する記号の第２のストリングを形成するステップと、
前記記号の第２のストリングを複数のスライスに分けるステップであって、各スライスが長さＳを有する、ステップと、
スライス毎に、長さＰの誤り保護記号の数をコンピュータ処理し、前記誤り保護記号を前記スライスに付加して、誤り保護されたスライスを得るステップと、
前記誤り保護されたスライスをつなぐことにより、長さＬ３を有する記号の第３のストリングを形成するステップと、
前記記号の第３のストリングを複数のワードに分けるステップであって、各ワードが長さＷを有する、ステップと、
１個または複数のコードブックを使用して、ワード毎に、コードワードを決定するステップと、
前記コードワードをつなぐことにより、長さＬ４を有する記号の第４のストリングを形成するステップと
前記記号の第４のストリングを複数の識別子核酸分子にマッピングするステップであって、前記複数の識別子核酸分子の個々の識別子核酸分子が、前記記号の第４のストリングにおける個々の記号に対応し、対応する複数のコンポーネント核酸配列を含み、前記複数のコンポーネント核酸配列における各コンポーネント核酸配列が、別個の核酸配列を含む、ステップと、
前記対応する複数のコンポーネント核酸配列を区画に置き、前記複数のコンポーネント核酸配列を一緒にアセンブルすることにより、前記複数の識別子核酸分子の個々の識別子核酸分子を構築するステップと
を含む方法。
【請求項４２】
プールにおいて前記複数の識別子を収集するステップをさらに含む、請求項４１に記載の方法。
【請求項４３】
前記プールにおける識別子核酸分子の存在または非存在が、記号のストリング内の対応するそれぞれの記号位置の前記記号値を代表する、請求項４１〜４２のいずれかに記載の方法。
【請求項４４】
各コードワードが、前記複数のワードの前記それぞれのワードの的確なマッチである、請求項４１から４３のいずれかに記載の方法。
【請求項４５】
前記コードワードが、コードまたはデコードの際の化学条件に最適化される、請求項４１から４４のいずれかに記載の方法。
【請求項４６】
各コードワードに固定された数の１個または複数の種類の記号が存在するように、前記コードワードが、固定された重みを有する、請求項４１から４５のいずれかに記載の方法。
【請求項４７】
各区画が、固定された数の識別子核酸配列を含有し、各区画内のおよび区画にわたる識別子核酸分子の濃度がほぼ等しい、請求項４１から４６のいずれかに記載の方法。
【請求項４８】
前記対応する複数のコンポーネントを区画に置き、前記複数のコンポーネントを一緒にアセンブルすることが、
複数のプリントヘッドを使用して、複数のコンポーネントを含む複数の溶液を基板上の座標に分配することと、
反応ミックスを前記基板上の前記座標に分配して、前記複数のコンポーネントを物理的にリンクさせる、前記複数のコンポーネントを物理的にリンクするのに必要な条件を提供する、またはその両方を行うことと
を含む、請求項４１から４７のいずれかに記載の方法。
【請求項４９】
前記記号の第４のストリングを複数の識別子核酸分子にマッピングするステップが、前記複数の区画における各区画が同数の識別子核酸分子を含有するように、前記識別子核酸分子を分布させることを含む、請求項４１から４８のいずれかに記載の方法。
【請求項５０】
前記誤り保護記号が、リード・ソロモンコードを使用して決定される、請求項４１から４９のいずれかに記載の方法。
【請求項５１】
前記誤り保護記号が、２個の記号で割ったＰの誤り許容度を提供し、Ｐの抹消許容度が、保護されたスライスにおいて抹消する、請求項４１に記載の方法。
【請求項５２】
前記複数の区画が、基板上に設置され、前記記号のストリングにおける隣接する記号を表す識別子核酸分子が、隣接する区画において構築されないように、前記対応する複数のコンポーネントを前記区画に置く前記ステップを並べ替える、インタリーブするまたはプログラミングすることをさらに含む、請求項４１から５１のいずれかに記載の方法。
【請求項５３】
前記複数の識別子核酸分子への前記記号の第４のストリングのマッピングに基づきプリンター指令のセットを開発するステップと、
プリント指令の前記セットをプリンター・フィニッシャーシステムに送るステップと
をさらに含む、請求項４１から５２のいずれかに記載の方法。
【請求項５４】
前記ハッシュ、誤り保護またはコードワード決定が、前記複数のブロックにおける個々のブロックで行われる、請求項４１から５３のいずれかに記載の方法。
【請求項５５】
前記ハッシュ、誤り保護またはコードワード決定が、前記個々のブロックおよび追加的なブロックで並行して行われる、請求項５４に記載の方法。
【請求項５６】
Ｈが、ゼロに等しい、請求項４１から５５のいずれかに記載の方法。
【請求項５７】
Ｐが、ゼロに等しい、請求項４１から５６のいずれかに記載の方法。
【請求項５８】
追加的な誤り保護記号またはハッシュ記号が、磁気ストレージデバイス、光学ストレージデバイス、フラッシュメモリデバイスまたはクラウドストレージに記憶される、請求項４１から５７のいずれかに記載の方法。
【請求項５９】
核酸分子にデジタル情報を記憶するための方法であって、
デジタル情報を記号の第１のストリングとして受け取るステップであって、前記記号の第１のストリングにおける各記号が、前記記号の第１のストリング内の記号値および記号位置を有し、前記記号の第１のストリングが長さＬ１を有する、ステップと、
前記記号のストリングを複数のブロックに分けるステップであって、各ブロックが長さＢを有する、ステップと、
ブロック毎に、長さＨのハッシュをコンピュータ処理するステップと、
前記ハッシュをブロック毎に記憶するステップと、
前記ハッシュ化ブロックをアセンブルすることにより、長さＬ２を有する記号の第２のストリングを形成するステップと、
前記記号の第２のストリングを複数のスライスに分けるステップであって、各スライスが長さＳを有する、ステップと、
スライス毎に、長さＰの誤り保護記号の数をコンピュータ処理し、前記スライスの末端に前記誤り保護記号を加えて、誤り保護されたスライスを得るステップと、
前記誤り保護されたスライスをアセンブルすることにより、長さＬ３を有する記号の第３のストリングを形成するステップと、
前記記号の第３のストリングを複数のワードに分けるステップであって、各ワードが長さＷを有する、ステップと、
１個または複数のコードブックを使用して、ワード毎に、コードワードをコンピュータ処理するステップと、
前記コードワードをつなぐことにより、長さＬ４を有する記号の第４のストリングを形成するステップと、
前記記号の第４のストリングを複数の識別子核酸分子にマッピングするステップであって、前記複数の識別子核酸分子の個々の識別子が、対応する複数のコンポーネントを含み、前記複数のコンポーネントにおける各コンポーネントが、別個の核酸配列を含み、前記複数の識別子核酸分子の個々の識別子のそれぞれが、前記記号の第４のストリングにおける個々の記号に対応する、ステップと、
前記対応する複数のコンポーネントを区画に置き、前記複数のコンポーネントを一緒にアセンブルすることにより、前記複数の識別子の個々の識別子を構築するステップと
を含む方法。
【請求項６０】
前記複数の識別子を含む識別子プールを構築するステップをさらに含む、請求項５９に記載の方法。
【請求項６１】
各ブロック毎の前記ハッシュが、核酸分子、磁気ストレージデバイス、光学ストレージデバイス、フラッシュメモリデバイスまたはクラウドストレージに記憶される、請求項５９または６０に記載の方法。
【請求項６２】
核酸分子にデジタル情報を記憶するための方法であって、
複数のブロックを得るステップであって、各ブロックが、記号のストリングを含み、ブロックＩＤに関連する、ステップと、
前記複数のブロックのブロックをコンテナに割り当てるステップと、
前記ブロックを、前記コンテナと関連するべき複数の識別子核酸配列にマッピングするステップであって、前記複数の識別子核酸配列の個々の識別子核酸配列が、前記記号のストリングにおける個々の記号に対応し、対応する複数のコンポーネント核酸配列を含み、前記複数のコンポーネント核酸配列における各コンポーネント核酸配列が、別個の核酸配列を含む、ステップと、
前記複数の識別子核酸配列の個々の識別子核酸分子を構築するステップと、
前記割り当てられたコンテナにおいて前記個々の識別子核酸分子を記憶するステップであって、前記コンテナおよびそれに関連する前記複数の識別子核酸配列の同一性を含む物理的アドレスが、前記関連ブロックＩＤを使用して決定されるように構成される、ステップと
を含む方法。
【請求項６３】
前記ブロックＩＤが、整数、ストリング、三重、属性のリスト、または意味的アノテーションである、請求項６２に記載の方法。
【請求項６４】
前記物理的アドレスが、前記関連ブロックＩＤを使用して前記物理的アドレスのアクセスを容易にするように設計されたデータ構造に記憶される、請求項６２または６３に記載の方法。
【請求項６５】
前記データ構造が、Ｂツリー、トライまたはアレイのうち１種である、請求項６２から６４のいずれかに記載の方法。
【請求項６６】
前記データ構造の少なくとも部分が、インデックスにおける前記デジタル情報と共に記憶される、請求項６４〜６５のいずれかに記載の方法。
【請求項６７】
前記インデックスが、第２のコンテナに関連する第２の複数の識別子核酸配列を含む、請求項６６に記載の方法。
【請求項６８】
前記インデックスが、Ｂツリーデータ構造を含み、前記Ｂツリーの各ノードが、前記第２の複数の識別子核酸配列の別個の複数の識別子核酸分子を含む、請求項６７に記載の方法。
【請求項６９】
前記Ｂツリーにおける前記ブロックＩＤを探索することが、
（ｉ）第１のノードを含む前記別個の複数の識別子核酸分子を選択するステップと、
（ｉｉ）前記第１のノードの値を読むステップと、
（ｉｉｉ）後続のノードにより、ステップ（ｉ）および（ｉｉ）のプロセスを反復するステップであって、前記後続のノードを含む前記別個の複数の識別子核酸分子の同一性が、前記第１のノードの前記値に関する前記ブロックＩＤによって決定される、ステップと、
を含む、請求項６８に記載の方法。
【請求項７０】
前記第１のノードが、前記Ｂツリーのルートノードであり、ステップ（ｉ）および（ｉｉ）の前記プロセスが、前記Ｂツリーのリーフノードの値が読まれるまで続き、前記リーフノードの前記値が、前記ブロックＩＤに対するブロックが存在するか連絡するように構成され、前記ブロックＩＤが存在する場合、前記ブロックの前記物理的アドレスを連絡する、請求項６９に記載の方法。
【請求項７１】
前記インデックスが、トライデータ構造を含み、前記トライの各ノードが、前記第２の複数の識別子核酸配列の別個の複数の識別子核酸分子を含む、請求項６７に記載の方法。
【請求項７２】
前記ブロックＩＤが、記号のストリングであり、前記トライにおける各ノードが、前記記号のストリングの可能な接頭語に対応する、請求項７１に記載の方法。
【請求項７３】
前記データ構造が、アレイであり、前記アレイの各エレメントが、前記第２の複数の識別子核酸配列の別個の複数の識別子核酸分子を含む、請求項６７に記載の方法。
【請求項７４】
前記アレイにおける各エレメントが、ブロックＩＤに対応する、Ｅ７３に記載の方法。
【請求項７５】
前記インデックスが、磁気ストレージデバイス、光学ストレージデバイス、フラッシュメモリデバイスまたはクラウドストレージに記憶される、請求項６６に記載の方法。
【請求項７６】
前記物理的アドレスの前記インデックスにおける場所が、前記ブロックＩＤにネイティブに構成される、請求項６７に記載の方法。
【請求項７７】
前記ブロックＩＤが、複数の核酸コンポーネントに直接マッピングされる、請求項７６に記載の方法。
【請求項７８】
前記物理的アドレスを記憶する前記インデックスにおける前記複数の識別子核酸分子が、前記複数のコンポーネントをそれぞれ含む個々の識別子核酸分子で構成される、請求項７７に記載の方法。
【請求項７９】
前記ブロックＩＤが、前記関連ブロックをアノテートする三重の実体であり、前記三重の実体が、複数の核酸コンポーネントにマッピングする、請求項７７または７８に記載の方法。
【請求項８０】
前記複数の核酸コンポーネントを含む個々の識別子核酸分子を含む前記インデックスにおける前記複数の識別子核酸分子が、前記実体によりアノテートされる全ブロックの前記物理的アドレスを記憶する、請求項７９に記載の方法。
【請求項８１】
前記物理的アドレスが、前記ブロックＩＤにネイティブに構成される、請求項６７に記載の方法。
【請求項８２】
前記ブロックＩＤが、前記物理的アドレスに直接マッピングされる、請求項７６に記載の方法。
【請求項８３】
前記関連ブロックを記憶する前記複数の識別子核酸分子が、前記複数のコンポーネントをそれぞれ含む個々の識別子核酸分子で構成される、請求項８２に記載の方法。
【請求項８４】
前記ブロックＩＤが、前記関連ブロックをアノテートする三重の実体であり、前記三重の実体が、複数の核酸コンポーネントにマッピングする、請求項８２または８３に記載の方法。
【請求項８５】
前記複数の核酸コンポーネントを含む個々の識別子核酸分子を含む前記コンテナにおける前記複数の識別子核酸分子が、前記実体によりアノテートされる全ブロックを記憶する、請求項８２に記載の方法。
【請求項８６】
前記トライのリーフノードが、前記リーフノードにおける前記トライによって指定された前記記号のストリングにマッチする前記ブロックＩＤに関連する前記物理的アドレスを記憶するように構成される、請求項７２に記載の方法。
【請求項８７】
前記アレイの各エレメントが、前記関連ブロックＩＤの前記物理的アドレスを記憶する、請求項７４に記載の方法。
【請求項８８】
複数の識別子核酸分子が、前記識別子範囲における前記第１のおよび最後の識別子の前記同一性を含む識別子範囲によって指定されるように構成されるように、連続して順序付けされた識別子核酸配列で完全に構成される、請求項６２から８７のいずれかに記載の方法。
【請求項８９】
前記識別子範囲における前記第１のおよび最後の識別子が、整数によって表される、請求項８８に記載の方法。
【請求項９０】
前記デジタル情報と共に起動およびオントロジー情報を記憶するステップをさらに含む、請求項６２からＥ８９のいずれかに記載の方法。
【請求項９１】
請求項３０から９０に記載の方法のいずれかに従って核酸分子にデジタル情報を記憶するためのシステムであって、核酸の複数のコンテナを記憶するための試料管理システムを含むシステム。
【請求項９２】
前記試料管理システムから指定されたコンテナを回収するための自動化機械をさらに含む、請求項９１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への参照
本願は、２０１８年８月３日に出願された「ＣＯＭＰＯＳＩＴＩＯＮＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＮＵＣＬＥＩＣ  ＡＣＩＤ−ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ」という標題の米国仮特許出願第６２／７１４，５５７号に基づく優先権およびその利益を主張し、２０１９年８月５日に出願された「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＳＴＯＲＩＮＧ  ＡＮＤ  ＲＥＡＤＩＮＧ  ＮＵＣＬＥＩＣ  ＡＣＩＤ−ＢＡＳＥＤ  ＤＡＴＡ  ＷＩＴＨ  ＥＲＲＯＲ  ＰＲＯＴＥＣＴＩＯＮ」という標題の米国特許出願第１６／５３２，０７７号に関連する。上記で参照される出願の内容全体は、参照することによって本明細書に援用される。
【背景技術】
【０００２】
背景
核酸デジタルデータ記憶は、長い期間情報をコードおよび記憶するための安定したアプローチであり、データは、磁気テープまたはハードドライブ記憶システムよりも高密度で記憶される。核酸デジタルデータ記憶のための現在の方法は、多段階ケミストリーを使用して、配列における塩基間の（ｂａｓｅ−ｔｏ−ｂａｓｅ）関係性がデジタル情報（例えば、２進コード）に直接変わるように、デジタル情報（例えば、２進コード）を塩基毎の（ｂａｓｅ−ｂｙ−ｂａｓｅ）核酸配列にコードすることに頼る。ｄｅ  ｎｏｖｏの塩基毎の核酸合成のコストは高価となり得るため、デジタルでコードされた情報のビットストリームまたはバイトに読み込むことができる塩基毎の配列に記憶されるデジタルデータの配列決定は、コードするのに誤りがちでありコストがかかる場合がある。
【０００３】
塩基毎の合成により書き込まれたデータに関して、読むのにかかる時間およびコストは、法外な高さのものとなり得る。高密度（１塩基当たりのビット数を単位として）で記憶された情報は、リードバックするために高精度かつ高分解能の配列決定を必要とし得る。実際に、２ビット／塩基の理論的最大値でまたはその付近で記憶されたデータは、ゲノム情報と同様の、配列決定のためのストリンジェンシー要求を有する。これは、ゲノム適用に意図される最先端のシーケンサーを上回る技術革新の余地を殆ど残さない。参照のため、フルＴＢのデータを回収するために、およそ４５０Ｂの読み取りデータ（ｒｅａｄ）が処理される必要があり、これは、処理のために数百万ドルのコストおよび数千時間を要する場合がある。配列決定の一方法は、ナノポア配列決定である。ナノポア配列決定のための鍵となる障害物は、個々のＤＮＡ塩基を配列決定するのに十分な遅さのＤＮＡ移行および十分な狭さのポアを達成することであった。
【発明の概要】
【課題を解決するための手段】
【０００４】
要旨
本明細書に記載されるシステム、デバイスおよび方法は、既存の方法よりもコストがかからず商業的な実行がより容易な、核酸デジタルデータ記憶のコードおよび回収方法を提供する。本明細書に記載されるシステム、デバイスおよび方法は、核酸分子へとデータを書き込み、核酸分子からデータを読むためのスケーラブルな方法を提供する。本開示は、４種の目的の主要領域を網羅する：（１）核酸分子に記憶された情報を正確にかつ迅速に読むこと、（２）核酸分子におけるデータを効率的にコードするためにデータを分割すること、（３）核酸分子におけるデータをコードする場合は、誤り保護および訂正、ならびに（４）核酸分子に記憶された情報への効率的なアクセスを提供するためのデータ構造。
【０００５】
本明細書に記載される読み取り方法を使用して、いかなる核酸配列を読むこともできるが、本開示の読み取り方法は、識別子核酸分子（本明細書において、単純に「識別子」または「識別子分子」とも称される）にデータまたは情報を書き込むコード方法を使用して、核酸配列に記憶された、前記配列に書き込まれた情報を読む場合に特に有利である。各識別子分子の核酸配列は、記号のストリング（例えば、ビットストリーム）における、特定の記号値（例えば、ビットまたは一連のビット）、当該記号の位置（例えば、ランクまたはアドレス）またはその両方に対応する。例えば、識別子分子の存在または非存在は、それぞれ１またはゼロ（または逆もまた同様）のビット値のシグナルを送ることができる。識別子核酸分子は、コンポーネント核酸分子（本明細書において、単純に「コンポーネント」または「コンポーネント分子」とも称される）の組み合わせ配置を含む。コンポーネントの核酸配列は、ユニークセット（層とも称される）へと分けられる。識別子分子は、複数のコンポーネント分子を一体にライゲーションする（または他の仕方でアセンブルする）ことにより、アセンブルされ、１個のコンポーネント分子は、各層から選択される。可能な識別子配列のセットは、コンポーネント配列の様々な可能な組み合わせの組合せに対応する。例えば、ｃｉが、各第ｉ番目の層におけるコンポーネント配列の数を表す、Ｍ個の層へと分けられたＣ個のコンポーネント配列について、形成され得る可能な識別子配列の数は、ｃ１×ｃ２×…．×ｃＭによって表すことができる。例として、それぞれが１０個のコンポーネント配列を含有する１２層のコードスキームは、１０１２個の異なるユニーク識別子配列をもたらすことができる。各識別子配列が、ビットストリームにおける１ビットに対応する場合、このコードスキームは、１ＴＢのデータを表すことができる。
【０００６】
核酸分子を配列決定するまたは読むことは、ヌクレオチド間を区別することの困難が原因で誤りがちなことが多い（例えば、不十分なシグナル対ノイズ比のため）。上述の方法を使用してコードされた記号は、事前に既知であるコンポーネント分子のセットから形成された識別子核酸分子として表されるため、所与の分子の配列を読んで、その中にコードされる情報を決定することは、当該配列におけるありとあらゆる単一塩基を正確に読むことを要求しない。その代わりに、本明細書に開示される読み取り方法は、相対的に高い誤り率を許容することができ、依然として、核酸分子由来のデジタル情報を正確にデコードする。これを行うために、読まれた配列の部分は、近似ストリングマッチング技法を使用することにより、コンポーネント配列の既知セットにマッチさせて、記号のストリングにおけるいずれの記号が、識別子分子によって表される可能性が最も高いか決定することができる。一部のインプリメンテーションでは、各コンポーネント配列が、少なくとも最小数の塩基差によって、各他のコンポーネント配列から分けられるように、コンポーネント配列は設計される。コンポーネント配列が、この様式で互いに別個となることの要求は、配列をマッチさせる際に、配列決定されているコンポーネント分子のある一配列が、別のコンポーネント配列と間違えられるであろう機会を低減させる。したがって、本開示の読み取りシステムは、頑強（例えば、塩基誤りに対して低感度）であり、識別子分子は、伝統的な配列決定におけるものよりも速い速度で、より少ない誤りにより読まれ得る。
【０００７】
核酸分子に記憶されたデータを読む際の誤りに対する許容度を改善するための仕方の１つは、データをコードする際に、誤り保護記号および誤り訂正スキームを含むことである。これを達成するために、原始データ（例えば、記号のストリング）は、ブロックへと分断され、ハッシュは、ブロック毎に計算され、ハッシュは、各ブロックの終わりにおいて原始データに付加されて、ＤＮＡに書き込まれる、記号の改変されたストリングを得る。これらのハッシュのうち１つに対応する記号の改変されたストリングの部分は、ＤＮＡから読み出される場合、対応するブロックの読み出された記号においてコンピュータ処理されたハッシュと比較される。読み出されたハッシュとコンピュータ処理されたハッシュとの間のミスマッチは、読み誤りを指し示す  −  例えば、核酸分子から抽出された情報は、原始データにマッチしない。核酸分子に記憶されたデータを読む際の誤りに対する許容度をさらに改善するために、リード・ソロモンコード等の誤り保護コードは、原始データまたはハッシュ化原始データを表す記号の上述の改変されたストリングに適用することができる。リード・ソロモンコードは、データを読む際に、誤ったエレメントおよびエレメント抹消の両方について誤り許容度を増加させる。
【０００８】
それを核酸分子に書き込む前のデータに均一重み（ｕｎｉｆｏｒｍ  ｗｅｉｇｈｔ）コードを適用することは、当該データを核酸分子からリードバックする効率を増加させることもできる。複数の識別子分子は、固体、液体または粉末形態を有するプールに設置することができる。例えば、識別子分子は、別々の区画に形成することができ、次いで、区画は、プールを形成するように強化することができる。均一重みコードは、各プールが、ある特定の数の識別子分子を有することを確実にする。データは、ワードに分け、次いで、その結果得られるコードワードのそれぞれが、特定の種類の同数の記号を有することを確実にする（例えば、記号がビットである場合、全コードワードが、値１を有する同数のビットを有することができる）様式で、水増ししてコードワードを形成することができ、同じ「重み」を有するコードワードをもたらす。例えば、ＮｃｈｏｏｓｅＫコードスキームにおいて、各プールは、的確にＫ個の識別子配列を含有するであろう（プールまたは区画が、個々の識別子分子の集団を含み、識別子分子の各集団が、同じ識別子配列を有することに留意する。本明細書で使用される場合、プールまたは区画における「識別子配列の数」または「識別子の数」は、個々の識別子分子の集団の数を指し、各集団は、同じ識別子配列に対応する）。当該プールを配列決定する際に、Ｋ個未満の識別子配列が読まれる場合、これは、配列決定中に発生した誤りを指し示すであろう。他方では、配列決定中にＫ個の識別子配列が読まれたら、配列決定プロセスを停止することができ、これにより、配列決定時間の量を減少させ、効率を改善することができる。
【０００９】
ＤＮＡから情報を読む効率を改善するための仕方の１つは、データ構造を使用して、データストリングのデータブロックの場所を保持することが関与する。例えば、大きいデータストリングは、２個またはそれよりも多いコンテナに分けて記憶することができる。いずれのコンテナが、ユーザーがアクセスすることを望む情報を含有するか決定するために、システムは、場所（例えば、コンテナ数または配置）を保持するＢツリーまたは三重記憶構造にアクセスすることができる。これにより、ユーザーは、データストリングを含有するコンテナのそれぞれにおける情報を読むのではなく、都合のよい様式で、ユーザーが探している情報にアクセスすることができる。
【００１０】
よって、本明細書に記載されるシステムおよび方法は、核酸分子に情報を書き込むコストを減少させ、スループットを増加させるいくつかの契機を提供する。第１に、コンポーネントのセットを再使用し再度組み合わせて、デジタル情報の新たなパケットを書き込む。よって、新たな書き込みジョブ毎に塩基毎の合成を使用するという高価な要求は、いくつかの書き込みジョブにわたり償却され得る１回の塩基毎の合成コストによって置き換えられる（例えば、８６０テラビットパケットを書き込むための、１０μｍｏｌスケールにおける２２４個の３０塩基オリゴ（ｏｌｉｇｏ））。第２に、コードされた情報は、ＤＮＡコンポーネントの配列からデカップリングされて、演算を書き込む、記憶する、コピーする、問い合わせるおよび読むために最適化され得る大きい配列設計空間の使用を可能にする。第３に、本明細書に記載される核酸分子コードスキームは、増強された誤り訂正を含み、最適化された演算スピードを提供する。
【００１１】
一部の態様では、コードされた情報は、誤り保護とともに核酸分子に記憶される。デジタル情報は、長さＬ１を有する記号の第１のストリングとして受け取られる。記号の第１のストリングにおける各記号は、記号の第１のストリング内の記号値および記号位置を有する。記号は、ビット、バイト、いずれかの長さのビットストリング、英数字の文字、いずれかの長さの文字ストリング、または他のいずれかの適した記号となることができる。一部のインプリメンテーションでは、記号のストリングは、ビットストリームへと変換される。例えば、記号のストリングは、６個の記号「ＬＥＴＴＥＲ」からなることができる。英数字の文字のストリング「ＬＥＴＴＥＲ」は、２進法に変換されて、４８ビットをもたらすことができる（「０１００１１００  ０１０００１０１  ０１０１０１００  ０１０１０１００  ０１０００１０１  ０１０１００１０」）。この例では、Ｌは、４８に等しくなるであろう。一部のインプリメンテーションでは、記号のストリングにおける情報は、別々に受け取られる  −  すなわち、記号は、個々にまたはいずれかの組合せで受け取ることができる。次に、記号または記号の群を連結または他の仕方で組み合わせて、記号のストリングを形成することができる。例えば、８ビットのブロック１０個を個々に受け取り、次いで、一緒に連結して、８０ビット長の記号のストリングを形成することができる。
【００１２】
一部のインプリメンテーションでは、受け取った情報をコードする３種のステージが存在する：（１）ハッシュ化、（２）誤り保護記号の追加、および（３）記号を表すためのコードワードの決定。記号の第１のストリングは、これらのステージのうち全３種を使用してコードすることができ、ステージは、別々にまたはそれらのいずれかの組合せにおいて行うことができる。例えば、情報がコードワードとしてのみコードされるように、ハッシュ化および誤り保護記号の追加のステージは、迂回することができる。ステージは、いずれかの順序で行うことができる。
【００１３】
一部のインプリメンテーションでは、ハッシュ化ステージは、記号のストリングをブロックに分けることにより始まる。一部のインプリメンテーションでは、各ブロックは、同じ長さＢのものであり、Ｂは、ブロックの数で割ったＬ（記号のストリングの長さ）に等しい。例として、記号のストリングは、１，０００ビットとなることができる。１，０００ビットは、２００ビットからそれぞれなる５個のブロック；１０ビットからそれぞれなる１００個のブロック；１００ビットからそれぞれなる１０個のブロックまたはいずれかのかかる組合せ等、いずれかの長さのブロックに分けることができる。一部のインプリメンテーションでは、ブロックは、等しい長さのものではない。例えば、１，０００ビットのストリングに関して、ブロック１は５００ビットからなり；ブロック２は１００ビットからなり；ブロック３は３００ビットからなり；ブロック４は１００ビットからなることができる。
【００１４】
一部のインプリメンテーションでは、長さＨのハッシュは、ブロック毎にコンピュータ処理される。一部のインプリメンテーションでは、ハッシュは、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４またはＳＨＡ−５１２／２５６のうち１種を使用してコンピュータ処理される。各コンピュータ処理されたハッシュは、対応するブロックに加えられて、ハッシュ化ブロックを形成する。これにより、記号のストリングおよびハッシュが、核酸において一緒に記憶されることが可能になる。各ブロックが、長さＢのものである場合、ハッシュを付加した後に、ハッシュ化ブロックは、長さＨプラスＢのものとなる。例えば、記号のストリングは、１，０００ビットからなることができ、これは次いで、それぞれ１００ビット（Ｂ＝１００）のブロック１０個へと分けられる。各ブロックのハッシュは、１０ビット長（Ｈ＝１０）となることができる。加えた後に、ハッシュ化ブロックは、１１０ビット（本来の１００ビット、プラス、１００ビットのハッシュ）からなる。一部のインプリメンテーションでは、ハッシュは、それに代えてまたはその上、記号のストリングとは別々に記憶される。一部のインプリメンテーションでは、Ｈは、ゼロに等しい。
【００１５】
一部のインプリメンテーションでは、ハッシュ化ブロックがつなげられて、長さＬ２の記号の第２のストリングを形成する。上述の例では、１０個のハッシュ化ブロックの各ハッシュ化ブロックが、１，１００ビットを含む場合、記号のストリングは、１，１００ビット（受け取った本来の１，０００ビット、プラス、１００ハッシュビット）に等しくなるであろう。一部のインプリメンテーションでは、ハッシュは、ブロック毎にコンピュータ処理されるが、加えられない；むしろ、ハッシュは、別々に記憶される。ハッシュが、核酸におけるブロックよりも速くまたはより容易にアクセスされるために、例えば、ハッシュは、ハードドライブに記憶することができる。ハッシュは、核酸分子、磁気ストレージデバイス、フラッシュメモリデバイス、クラウドストレージまたは他のいずれかの適した場所に記憶することができる。
【００１６】
一部のインプリメンテーションでは、記号の第２のストリングは、スライスに分けられる。一部のインプリメンテーションでは、各スライスは、同じ長さＳのものであり、Ｓは、スライスの数で割ったＬ２（ハッシュ化ブロックから形成された記号の第２のストリングの長さ）に等しい。例として、記号の第２のストリングは、１，１００ビットからなることができる。１，１００ビットは、１１０ビットからそれぞれなる１０個のブロック；１１ビットからそれぞれなる百個のスライス；２２０ビットの５個のスライスまたはいずれかのかかる組合せ等、いずれかの長さのスライスに分けることができる。一部のインプリメンテーションでは、スライスは、等しい長さのものではない。例えば、１，１００ビットのストリングに関して、スライス１は５００ビットからなり；スライス２は１００ビットからなり；スライス３は３００ビットからなり；スライス４は２００ビットからなることができる。一部のインプリメンテーションでは、上に記載されているハッシュ化ステージは迂回される。よって、長さＬ１の記号の第２のストリングは、長さＬ１の記号のストリングと同じになるであろう。
【００１７】
一部のインプリメンテーションでは、誤り保護記号は、スライス毎にコンピュータ処理される。いずれかの数の誤り保護記号は、スライス毎にコンピュータ処理することができる。誤り保護記号は、これがコンピュータ処理されたスライスに付加され、これにより、誤り保護されたスライスを形成する。一部のインプリメンテーションでは、各誤り保護されたスライスがＳプラスＰビット長となるように、同数Ｐの誤り保護記号は、スライス毎にコンピュータ処理される。例えば、第２のストリングが、それぞれ２２０ビットからなる５個のブロックに分けけられる１，１００ビットからなり、Ｐが４０に等しい場合、４０ビットが各スライスに付加され、それぞれ２６０ビットからなる誤り保護されたスライスをもたらす。一部のインプリメンテーションでは、Ｐはゼロに等しい。
【００１８】
一部のインプリメンテーションでは、誤り保護記号は、リード・ソロモンコードを使用して決定される。リード・ソロモンコードは、ブロックに基づく誤り訂正コードである。Ｐ個の誤り保護記号が、リード・ソロモンコードを使用してコンピュータ処理される場合、
【数１】
2021532799.tif 000003
個の誤ったビットが許容され得る。例えば、２６０ビットストリングに関して、Ｐが４０に等しい場合、２６０ビットのうち２０ビットが、このような２６０ビットの処理に否定的な影響を与えることなく不正確となり得る。Ｐ個の誤り保護記号が、リード・ソロモンコードを使用してコンピュータ処理される場合、Ｐ個の誤ったビットが許容され得る。例えば、２６０ビットストリングに関して、Ｐが４０に等しい場合、２６０ビットのうち４０ビットが、このような２６０ビットの処理に否定的な影響を与えることなく消去され得る。
【００１９】
一部のインプリメンテーションでは、誤り保護されたスライスがつなげられて、長さＬ３を有する記号の第３のストリングを形成する。上述の例では、５個の誤り保護されたスライスの各誤り保護されたスライスが、２６０ビットを含む場合、記号の第３のストリングは、１，３００ビットからなるであろう（受け取った本来の１，０００ビット、プラス、１００ハッシュビット、プラス、決定された２００誤り保護ビット）。長さＬ３の記号の第３のストリングは、長さＬ２の記号の第２のストリングに等しい（すなわち、誤り保護ビットは追加されなくてよい）。一部のインプリメンテーションでは、ハッシュ化および誤り保護ステージの両方が迂回される。この場合、長さＬ３の記号の第３のストリングは、長さＬ１の記号の第１のストリングに等しくなるであろう。
【００２０】
一部のインプリメンテーションでは、第３のストリングは、複数のワードに分けられ、各ワードは長さＷを有する。例えば、Ｗは、８に等しくなることができ、各ワードは、８ビット長となるであろう。一部のインプリメンテーションでは、コードワードは、少なくとも１個のコードブックを使用して、ワード毎に決定される。一部のインプリメンテーションでは、各コードワードは、それぞれのワードの的確なマッチである（すなわち、記号の第３および第４のストリングの間に変化なし）。しかし、一部のインプリメンテーションでは、コードワードの決定は、各ワードの長さに影響を与える。
【００２１】
コードワードは、コードまたはデコードの際の化学条件に最適化することができる。上に記載されている通り、識別子の存在は、ある特定の記号位置における「１」を指し示すことができる一方、当該位置に関する識別子の非存在は、「０」を指し示すであろう。一部のインプリメンテーションでは、コードワードの決定は、記号の第３のストリングに均一重みコードを適用して、全ワードが、「１」の同数（すなわち、構築されるべき識別子）を有することを確実にすることを含む。よって、８ビットをコードするコードワードが選ばれる必要がある。これは、各コードワードが等しい「重み」（構築されるべき識別子の数）を有することができるように、追加的なビットを有効に追加する。コードワードは、ＮｃｈｏｏｓｅＫスキームにおける組み合わせ空間から決定することができる。Ｎｃｈｏｏｓｅｋスキームにおいて、全Ｎ個の識別子について、ｋ個の識別子が構築される。例えば、１１ｃｈｏｏｓｅ４スキームにおいて、全１１個の識別子について、的確に４個が構築される。１１ｃｈｏｏｓｅ４スキームは、各コードワードにおける８ビットをコードするのに十分なビットを提供する。
【００２２】
一部のインプリメンテーションでは、長さＬ４を有する記号の第４のストリングは、コードワードをつなぐことにより形成される。記号の第４のストリングは、
【数２】
2021532799.tif 000004
個の記号を含む。例えば、１３００ビットのストリング（例えば、長さＬ３の記号の第３のストリング）に関して、各ワードが８ビットであり、１１ｃｈｏｏｓｅ４スキームが使用される場合、Ｌ４は、１７８８に等しいであろう。
【００２３】
一部のインプリメンテーションでは、第４のストリングにおける各記号は、個々の識別子配列にマッピングされる。マッピングステップは、誤り保護による核酸にデジタル情報をプリントするためのスキームを産生する。複数の識別子核酸分子の個々の識別子核酸分子は、記号の第４のストリングにおける個々の記号に対応する。個々の識別子は、対応する複数のコンポーネントを含み、複数のコンポーネントにおける各コンポーネントは、別個の核酸配列を含む。例えば、コンポーネントは、上に記載されている通り、Ｍ個の層から選択することができる。
【００２４】
一部のインプリメンテーションでは、個々の識別子分子は、対応するコンポーネントを置くおよびアセンブルすることにより構築される。例えば、本明細書に記載されるプリンター／フィニッシャーシステムのいずれかを使用して、対応するコンポーネントを区画に置くおよびアセンブルすることにより、個々の識別子を構築することができる。一部のインプリメンテーションでは、複数のプリントヘッドを使用して、複数のコンポーネントを含む複数の溶液を基板上の座標に分配する。反応ミックスを基板上の座標に分配して、複数のコンポーネントを物理的にリンクする、複数のコンポーネントを物理的にリンクするのに必要な条件を提供する、またはその両方を行うことができる。
【００２５】
コードワードステージに基づき、プリンター指令のセットを開発することができ、次いでこれを、プリンター・フィニッシャーシステムに送る。プリンター指令は、プリント誤りの可能性を低減させる、またはプリント効率を増加させるように構成することができる。例えば、コードワードステージは、複数の区画における各区画が、同数の識別子核酸分子を含有するように、識別子を分布させるように設計することができ、よって、区画にわたる識別子の均一な存在量を提供する。追加的な誤り保護を提供するために、一部のインプリメンテーションでは、区画にコンポーネントを置くことは、記号のストリングにおける隣接する記号を表す識別子核酸分子が、隣接する区画において構築されないように並べ替えられる。これは、プリント間違えが、間違った座標におけるプリントまたは区画間のにじみが原因の検出不能な誤りを引き起こし得る機会を低減させる。
【００２６】
一部のインプリメンテーションでは、個々の識別子は、プールに収集される。例えば、プールは、上に記載されているステップにおいてコードされた数百個の記号に対応する数百個の識別子を保持することができる。一部のインプリメンテーションでは、プールにおける識別子の存在または非存在は、記号のストリング内の対応するそれぞれの記号位置の記号値を代表する。
【００２７】
一部のインプリメンテーションでは、ハッシュ化、誤り保護またはコードワード決定は、複数のブロックにおける個々のブロックで行われる。ハッシュ化、誤り保護またはコードワード決定が、個々のブロックおよび追加的なブロックで並行して行われる、請求項Ｃ１４に記載の方法。一部のインプリメンテーションでは、追加的な誤り保護記号またはハッシュ記号は、磁気ストレージデバイス、光学ストレージデバイス、フラッシュメモリデバイスまたはクラウドストレージに記憶される。
【００２８】
一部の態様では、デジタル情報は、分割スキームにより核酸へと記憶される。分割スキームは、書き込みハードウェア構成等、制限下で核酸にデジタル情報をコードする意図で設計することができる（例えば、プリンターで利用できるインクの数）。デジタル情報は、長さＬを有する記号の第１のストリングとして受け取られる。記号の第１のストリングにおける各記号は、記号の第１のストリング内の記号値および記号位置を有する。記号は、ビット、バイト、いずれかの長さのビットストリング、英数字の文字、いずれかの長さの文字ストリング、または他のいずれかの適した記号となることができる。一部のインプリメンテーションでは、記号のストリングは、ビットストリームへと変換される。例えば、記号のストリングは、６個の記号「ＬＥＴＴＥＲ」からなることができる。英数字の文字のストリング「ＬＥＴＴＥＲ」は、２進法に変換されて、４８ビットをもたらすことができる（「０１００１１００  ０１０００１０１  ０１０１０１００  ０１０１０１００  ０１０００１０１  ０１０１００１０」）。この例では、Ｌは、４８に等しくなるであろう。一部のインプリメンテーションでは、記号のストリングにおける情報は、別々に受け取られる  −  すなわち、記号は、個々にまたはいずれかの組合せで受け取ることができる。次に、記号または記号の群を連結または他の仕方で組み合わせて、記号のストリングを形成することができる。例えば、８ビットのブロック１０個を個々に受け取り、次いで、一緒に連結して、８０ビット長の記号のストリングを形成することができる。
【００２９】
一部のインプリメンテーションでは、所与の制限内でコードするために、分割スキームが決定される。分割スキームは、Ｃ個の別個コンポーネント配列のセットを使用して、記号のストリングをコードするためのルールのセットを定義する。具体的には、分割スキームは、Ｃ個の別個コンポーネント配列を配置するべきＭ個の層の数を定義し、第ｉの層にｃｉ個のコンポーネント配列が存在するように、各層におけるコンポーネント配列数を定義する。一部のインプリメンテーションでは、各層におけるコンポーネント配列の数は、不均一である（すなわち、ｃ１は、ｃ２に等しくない、等）。層の数およびコンポーネント配列の数は、記号のストリングのコードに必要な層の数を最小化するように構成することができ、これにより、デジタル情報の全体をコードするのに十分な識別子配列可能性を維持しつつ、識別子分子を形成するケミストリーを単純化する。記号のストリングをコードするのに十分な識別子配列可能性を確実にするために、コンポーネント配列数ｃｉの積（
【数３】
2021532799.tif 000005
）は、記号のストリングの長さＬを超えるまたはこれに等しくなければならず、コンポーネント配列数ｃｉの和（
【数４】
2021532799.tif 000006
）は、別個のコンポーネント配列の数Ｃ未満であるまたはこれに等しくなければならない。一部のインプリメンテーションでは、識別子は、Ｍ個の層のそれぞれに由来する１個のコンポーネントをそれぞれ含む、可能な識別子配列の組み合わせ空間のサブセットを代表する。単純な例として、Ｌが１，０００に等しく（例えば、受け取ったビットストリームにおける１，０００ビット）、Ｃが７０に等しい（例えば、プリントに利用できる７０個のプリンターインク）場合、層当たり１０個のコンポーネント配列を有する３個の層（Ｍ＝３）を使用して、データをコードすることができる。しかし、利用できる７０個のコンポーネント配列を最もよく活用するために、第１の層に５０個のコンポーネント配列を、および第２の層に２０個のコンポーネント配列を有する２個の層（Ｍ＝２）を使用して、データをコードすることがより効率的となり得る。
【００３０】
一部のインプリメンテーションでは、記号のストリングが、長さＢの記号のストリングに翻訳された場合、コンポーネント配列数ｃｉの積は、ビットのストリングの長さＢを超えるまたはこれに等しくなければならない。例えば、記号のストリングが「ＬＥＴＴＥＲ」である場合、Ｌは、６に等しいが、ビットの均等なストリングは、４８ビットからなる（Ｂは４８に等しい）。よって、長さＢを有するビットのストリングをコードするのに必要とされるＭ個の層およびＣ個のコンポーネント配列の数は、長さＬを有する記号のストリングをコードするのに必要とされる層の数とは異なるであろう。
【００３１】
一部のインプリメンテーションでは、第１の識別子は、例えば、（ｉ）Ｍ個の層のそれぞれから１個のコンポーネントを選択すること、（ｉｉ）Ｍ個の選択されたコンポーネントを区画に置くこと、および（ｉｉｉ）選択されたコンポーネントを物理的にアセンブルすることにより、プリンター／フィニッシャーシステムにより形成される（ｉｉ）。一部のインプリメンテーションでは、選択されたコンポーネントは、ライゲーションによってアセンブルされる。第１の識別子は、第１および第２の末端分子、ならびに第１および第２の末端分子の間に位置する第３の分子を含む。Ｍ個の層の第１および第２の層由来のコンポーネントは、識別子核酸分子の第１および第２の末端分子に対応し、Ｍ個の層の第３の層におけるコンポーネントは、識別子の第３の分子に対応し、これにより、第１の識別子核酸におけるＭ個の層の物理的順序を定義する。一部の層では、Ｍ個の層は、異なる優先度レベルに関連する。例えば、第１の層は、最高の優先度を有することができ、第２の層は、２番目に高い優先度を有することができる。残っているＭ−２層は、第１および第２の末端分子の間の対応するコンポーネントを有することができる。
【００３２】
一部のインプリメンテーションでは、追加的な識別子が形成される。追加的な識別子は、コードされるべきデジタル情報を表す記号のストリングにおけるそれぞれの記号位置に対応する。記号のストリング内の各記号位置は、対応する異なる識別子を有することができる。一部のインプリメンテーションでは、必要な量の識別子が形成されたら、識別子は、プールに収集される。
【００３３】
一部の態様では、情報は、核酸配列から読まれる。一部のインプリメンテーションでは、識別子のプールが得られる。プールにおける識別子は、長さＬの記号のストリング由来のデジタル情報を記憶する。識別子のプールは、長さＬを有する記号のいずれかのストリングをコードすることができる、識別子ライブラリーにおける識別子配列のサブセットに対応する。プールにおける個々の識別子のそれぞれは、記号のストリングにおける記号値および記号位置に対応する。個々の識別子のそれぞれは、複数のコンポーネントを含み、よって、特異的配列のインスタンスである。一部のインプリメンテーションでは、プールは、遺伝子を、ペプチドをまたはＲＮＡをコードするＤＮＡを含む。
【００３４】
識別子は、様々な仕方で処理することができる。一部のインプリメンテーションでは、識別子は、第２の識別子にライゲーションされる。一部のインプリメンテーションでは、識別子の一方の鎖が分解される。例えば、鎖特異的エキソヌクレアーゼを使用して、識別子の一方の鎖を選択的に分解することができる。
【００３５】
一部のインプリメンテーションでは、得られた識別子のうち少なくとも１個を読んで、少なくとも１個の識別子の部分に対応する読み取りデータ配列を得る。読み取りデータ配列は、化学的配列決定、チェーン・ターミネーション配列決定、ショットガン配列決定、ブリッジＰＣＲ配列決定、単一分子リアルタイム配列決定、イオン半導体配列決定、パイロシークエンシング、合成による配列決定、組み合わせプローブアンカー合成配列決定、ライゲーションによる配列決定、ナノポア配列決定、ナノチャネル配列決定、超並列シグネチャー配列決定、ポロニー（Ｐｏｌｏｎｙ）配列決定、ＤＮＡナノボール（ｎａｎｏｂａｌｌ）配列決定、単一分子蛍光配列決定、トンネル電流配列決定、ハイブリダイゼーションによる配列決定、質量分析配列決定、マイクロ流体配列決定、透過型電子顕微鏡配列決定、ＲＮＡポリメラーゼ配列決定またはｉｎ  ｖｉｔｒｏウイルス配列決定等、いずれかの配列決定技法により得ることができる。核酸、この場合は識別子のプールの配列決定は、プール全体の読み取りデータ配列を生じる；しかし、プールの各識別子が読み取りデータ配列にマッピングする仕方については分かっていない。配列決定方法は、単一塩基誤りの傾向があり、読み取りデータ配列への識別子のマッチングをさらに邪魔する。
【００３６】
一部のインプリメンテーションでは、読み取りデータ配列は、ナノポア配列決定により得ることができる。電場が、電解液および少なくとも１個のナノポアチャネルに印加される。一部のインプリメンテーションでは、少なくとも１個のナノポアチャネルが、ソリッドステート膜内に形成される。一部のインプリメンテーションでは、ナノポアチャネルは、アルファ−溶血素（αＨＬ）またはｍｙｃｏｂａｃｔｅｒｉｕｍ  ｓｍｅｇｍａｔｉｓポリンＡ（ＭｓｐＡ）から形成される。ナノポア配列決定中に、識別子が、少なくとも１個のナノポアチャネルを通って移行され、その際に、チャネルをわたるインピーダンスが測定される。識別子における各コンポーネントは、コンポーネント配列の長さに沿って、対応するユニークインピーダンスシグネチャーを有し、よって、読み取りデータ配列におけるコンポーネントが、測定されたインピーダンス値をユニークインピーダンスシグネチャーと比較することによって決定されることを可能にする。
【００３７】
一部のインプリメンテーションでは、識別子が、ナノポア配列決定を使用して読まれる場合、印加された電場は、１００ｍＶを超えるか、またはこれに等しい差次的電位を生成する。この高い差次的電位は、識別子が、相対的に高速でナノポアチャネルを通過することを可能にする。例えば、識別子の移行は、毎秒１，０００塩基を超える速度で起こり得る。特に、移行速度は、毎秒１，０００，０００塩基となり得る。
【００３８】
一部のインプリメンテーションでは、識別子を読むステップが、ナノポア配列決定を含む場合、移行前に識別子に薬剤を結合させる。例えば、薬剤は、化学的部分、タンパク質、酵素、塩基アナログ、コンジュゲートされた核酸、ヘアピンを有する核酸、またはメチル基となることができる。一部のインプリメンテーションでは、薬剤が化学的部分である場合、メチルトランスフェラーゼ等の酵素が、化学的部分を少なくとも１個の識別子核酸分子に結合させる。一部のインプリメンテーションでは、薬剤が塩基アナログであり、薬剤が、ポリメラーゼ等の酵素を使用して結合される場合、酵素は、塩基アナログを複製中の少なくとも１個の識別子核酸分子に結合させる。
【００３９】
一部のインプリメンテーションでは、薬剤は、読むステップにおいて識別子における配列の決定を助けるために使用することができる薬剤シグネチャーに関連する。少なくとも１個の識別子核酸分子に薬剤を結合させるステップは、既知の場所における薬剤シグネチャーが、移行中のインピーダンス値の既知シフトをもたらすように、識別子のコンポーネント上の既知の場所において発生する。よって、薬剤の存在は、識別子に関する誇張された「プロファイル」を作成し、これにより、読むステップにおけるシグナル対ノイズ比を増加させ得る。これは、読むステップにおける精度を維持しつつ、移行スピードを増加させることができる。特に、少なくとも１個の識別子における薬剤の存在は、少なくとも１個の核酸分子上の薬剤の非存在下で所望のレベルの精度を達成する第２の最大移行速度よりも速い、所望のレベルの精度を達成する第１の最大移行速度を可能にすることができる。読むステップにおけるシグナル対ノイズ比を増加させる別の仕方は、改変された塩基または塩基アナログを含むように、識別子を複製するステップを含む。これは、別々に、または識別子に薬剤を結合するステップに加えて行うことができる。
【００４０】
一部のインプリメンテーションでは、本明細書に記載される方法は、読み取りデータ配列を識別子配列の既知セット（すなわち、識別子ライブラリー）にマッチさせるステップを含む。読み取りデータ配列を使用して、読み取りデータ配列に近似するまたは的確にマッチするコンポーネント配列を有する識別子ライブラリーから候補識別子配列のセットを識別する。例として、読み取りデータ配列（識別子と正確にマッチしてもマッチしなくてもよい）は、ＣＡＧＣＴＧとなることができる。候補識別子配列のセットは、的確なマッチ（ＣＡＧＣＴＧ）と共に、ある特定の数の塩基（例えば、１、２、３、１０、２０、１００個等）が異なる識別子配列等、読み取りデータ配列と類似する他の潜在的マッチを含むことができる。例えば、候補識別子配列のセットは、ＣＡＧＡＴＧ、ＡＡＧＣＴＡおよびＣＡＣＧＴＧを含むこともできる。参照し易くするために、「不正確な」ヌクレオチド（すなわち、この例では読み取りデータ配列にマッチしないヌクレオチド）に下線を引く。
【００４１】
一部のインプリメンテーションでは、識別子は、識別子が読み誤り許容度に関連するように、誤り許容度記号によりコードされる。この読み誤り許容度を使用して、識別子が読まれる速度を限定することができる。読みスピードを増加させる別の仕方は、識別子のサブセットを読むステップを含む。一部のインプリメンテーションでは、識別子は、Ｍ個の層に対応するＭ個のコンポーネントを含む。一部のインプリメンテーションでは、識別子を読むステップは、Ｍ個のコンポーネントのうちＮ個のみを読むステップを含み、ＮはＭ未満である。例えば、５個の層のうち最初の２個の層のみを読むことができる。これは、読み取りデータの分解能を低下させるが、所与の時間量で読まれる識別子の数を増加させることができる。これは、プールにおいてコードされたデータのサブセットが、アクセスされる必要がある場合に役立つことができる。例えば、第１の層が、ある特定の有意義な値を常に指し示す場合、ある特定の有用な識別子は、第１の層にアクセスすることによってのみ識別することができる。
【００４２】
一部のインプリメンテーションでは、各候補識別子配列は、各候補識別子配列のコンポーネント配列が読み取りデータ配列とどの程度類似するかに関連するスコアを割り当てられる。候補識別子配列が、読み取りデータ配列に良くマッチするにつれて、スコアは、より低く（またはより高く）なることができる。スコアは、最小距離（ｌｅａｓｔ  ｄｉｓｔａｎｃｅ）アルゴリズム、パーセントマッチまたは他のいずれかの適したアルゴリズムを含む、種々の仕方でコンピュータ処理することができる。例として、読み取りデータ配列ＣＡＧＣＴＧに関して、候補配列ＣＡＧＣＴＧは、ゼロのスコアを有することができる一方、候補配列ＣＡＧＡＴＧは、候補配列の第４の塩基が読み取りデータ配列にマッチしないため、１のスコアを有することができる。スコアは、不正確である塩基の数および／または不正確な塩基の配置に依存し得る。例えば、互いに隣接する２個の不正確なヌクレオチドを有する候補（ＣＡＣＧＴＧ）は、隣接しない２個の不正確なヌクレオチドを有する候補（ＡＡＧＣＴＡ）よりも低いスコアを有することができる。
【００４３】
一部のインプリメンテーションでは、スコアのセットは、識別子との潜在的マッチとしての候補識別子配列のうちいずれか１種の選択をガイドし、これにより、単一塩基配列決定誤りの効果を軽減する。例えば、読み取りデータ配列に最も近い潜在的マッチであるため、最低スコアを有する候補配列を選択することができる。一部のインプリメンテーションでは、次に、選択された候補識別子配列は、識別子ライブラリーを使用して、記号位置および記号値にマッピングされる。一部のインプリメンテーションでは、例えば、識別子を読むステップが、ナノポア配列決定を含み、識別子に薬剤が結合されている場合、識別子における配列を決定するステップは、移行中の測定されたインピーダンス値を薬剤シグネチャーと比較するステップを含む。
【００４４】
一部のインプリメンテーションでは、上述のステップは、所望のデジタル情報が、識別子のプール（または複数のプール）から完全にアクセスされるまで反復される。一部のインプリメンテーションでは、デコードされた記号のストリングは、精度に関して決定および検査される。具体的には、デコードされた記号のストリングの部分のハッシュを計算し、次いで、受け取った記号のストリングの対応する部分に関連するハッシュと比較することができる。ハッシュは、プールにおいて識別子もしくはコンポーネントとして記憶する（そして、その後に読む）ことができる、または遠隔に記憶することができる。記号の改変されたストリングの部分が、これらのハッシュのうち１種（すなわち、ＤＮＡとは別々に記憶された本来のハッシュ、または識別子から読み出されたハッシュ）に対応する場合、これは、対応するブロックの読み出された記号においてコンピュータ処理されたハッシュと比較される。ハッシュは、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４もしくはＳＨＡ−５１２／２５６または他のいずれかの適したアルゴリズムを使用して計算することができる。読み出されたまたは本来のハッシュと、コンピュータ処理されたハッシュとの間のミスマッチは、データを読む際の読み誤りが存在したことを指し示す  −  例えば、核酸分子から抽出された情報は、原始データにマッチしない。計算されたハッシュが、読み出された本来のハッシュにマッチするか否かに基づき、デコードされた記号のストリングの部分は、受け取った記号のストリングの部分へのマッチとして検証することができる。ハッシュがマッチしない場合（または、デコードされたストリングが、他のいずれかの手段により得られたストリングにマッチしないことが決定される場合）、（例えば、候補識別子配列のセットの）異なる候補識別子配列を選択することができる。識別子は、デコードおよび検証されるため、コンピュータシステムは、この情報を追跡し、機械学習技法を使用して、デコードされた記号のストリングが記号のストリングにマッチする見込みを増加させることができる。よって、誤りに寛容な方法は、配列決定技法に対し異例の改善を為すための基盤を設ける、例えば、上に記載されている通り、相当に大きい印加電圧でナノポア配列決定を実行する。
【００４５】
グラムを単位として、所与のプールにおける材料の総量は、マイクログラム含量で表すことができる。プールにおける分子を正確に読むために、これを増幅して、冗長性、アーカイブおよびアクセスに十分な材料が存在することを確実にすることができる。例えば、アーカイブされたＤＮＡライブラリーから識別子のサブライブラリーにアクセスするためのＰＣＲ増幅スキームを使用することができる。サブライブラリーは、データブロック、いくつかのデータブロック、単一の識別子、いくつかの識別子等、アクセスすることが望まれる識別子のいずれかの群となることができる。増幅プロセスは、２種の主要なステップを含むことができる。（Ａ）プライマーによる第１の増幅ステップにおいて、所望のデータブロックが選択および濃縮される；（Ｂ）プライマーによる第２の増幅ステップにおいて、配列決定のためのアンプリコンが調製される。第１のステップ（Ａ）は、ユニークプライマーおよびほんの数回のＰＣＲサイクルを使用して、特異的な標的を選択することを意図し、第２のステップ（Ｂ）は、次に、プライマーを含まずに、特異的な標的の標的配列を増幅して、配列決定のための大量の分子を生成することを意図する。増幅のためのこのネステッドアプローチにより、アクセスされる識別子の数および同一性が調整され、配列決定負荷が低減される。一部のインプリメンテーションでは、増幅ステップは、７サイクルまたはそれ未満に限定されて、ライブラリーにおける増幅バイアスを低減し、配列存在量の均一性を維持する。プライマー組合せは、識別子により検証して、増幅プロセスの効率および均一性を実証することができる。初期最適化は、ｑＰＣＲによって測定されるであろう。産物純度のレベルは、ｑＰＣＲ増幅効率を測定し、部分的配列決定産物の存在を配列決定することの両方による、ＰＣＲ純化（ｃｌｅａｎｕｐ）要求（例えば、ＥｘｏＳＡＰ−ＩＴ、ＴｈｅｒｍｏＦｉｓｈｅｒ）を使用することにより決定することができる。
【００４６】
タグを有する分子を選択的に濃縮して、読むスピードまたは精度を増加させることが有利となる場合もある。ナノポア配列決定においてより良いシグナル分解能のために核酸分子にタグ付けすることができる仕方と同様に、各コンポーネントまたは識別子は、タンパク質にまたは磁石に基づく選択プロトコール等の他の選択技法を可能にする、特異的プローブ／アダプターをタグ付けすることができる。濃縮方法の例として、ｉ）ストレプトアビジンコーティングされた磁気ビーズ、ｉｉ）Ａｍｐｕｒｅ  ＸＰサイズ選択、ｉｉｉ）ワトソン・クリックベイト配列による特異的プライマー捕捉が挙げられる。
【００４７】
一部のインプリメンテーションでは、核酸分子は、ナノポア配列決定を使用して読むことができる。ナノポア配列決定のためのある特定の方法は、核酸分子へのアダプタータンパク質複合体のライゲーションが関与する。一部のアダプタータンパク質は、核酸分子が脂質二重層を標的とすることを可能にする疎水性テザーとして作用し、ナノポアが占有されていない時間を低減する。α−溶血素等の別のタンパク質またはモーターは、一本鎖がナノポアに進入することができるように、二本鎖核酸分子を分ける。次に、このモーターは、ナノポアを通して一本鎖核酸分子を徐々に動かすのを助ける。このプロトコールは、本明細書に記載される識別子ライブラリーおよびアンプリコン濃縮プランと全体的に適合性である。
【００４８】
配列決定効率を増加させるために、増幅されたサブライブラリーにおける識別子を物理的につなぐことにより、ナノポア配列決定を最適化することが有利となり得る。ナノポア配列決定は、標的核酸分子がナノポアを見出すことを要求することができ、これは、読むスピードに寄与する。読む時間を増加させるために、識別子は、ライゲーションによって、より長い分子となるように物理的につなぐことができる。配列決定される分子の長さを５００ｂｐ未満から５，０００ｂｐ（またはそれよりも大きい）へと増加させることにより、ポア占有率を最大化させることができる。
【００４９】
核酸分子がナノポアを通って移行するスピードを増加させることができる。電流ナノポア配列決定機器は、毎秒５００塩基対の速度で、ナノポアを通して核酸分子を移行させる。ナノポア膜をわたる差次的膜電位（例えば、１００ｍＶを超える）の確立は、より速い速度（例えば、毎秒１，０００超またはほぼ１，０００，０００塩基）で核酸分子を移行する。大部分の配列決定適用に関して、数十万オーダーでの速度は速すぎ、単一の別個の塩基が検出されるために、タンパク質「モーター」を使用して、ポアを通して核酸分子を徐々に動かすことができる。よって、「モーター」なしでのナノポア配列決定の実行は、一本鎖核酸分子入力の生成および核酸分子シグナルの増幅を必要とし得る。反応から５０％を超える一本鎖核酸分子を達成する非対称ＰＣＲのために、いくつかの方法が存在する。プライマー融解温度を調整することにより、増幅プライマーは、一方の鎖の線形増幅へと反応を駆動するように設計することができる。それに代えて、ラムダエキソヌクレアーゼ等の鎖特異的エキソヌクレアーゼを使用して、５’リン酸化核酸分子鎖に特異的に結合し、二重鎖の一方の鎖を選択的に分解することができる。プロトコールは、一本鎖分子の９０％を超える産生を提供することができる。
【００５０】
シグナル増幅に関して、核酸分子は、シグナル対ノイズ比を増強するための薬剤で改変することができ、「スーパーシグネチャー」を基本的に作成する。例えば、薬剤は、小分子、化学基、塩基アナログ、酵素、タンパク質、タンパク質複合体、ペプチドまたはアミノ酸となることができる。ナノポアシグナル増強のための一方法である、ｍＴＡＧ（活性化された基のメチルトランスフェラーゼ指向性移入）は、メチルトランスフェラーゼを使用して、ビオチン化Ｓ−アデノシル−Ｌ−メチオニン補助因子アナログ等の化学基を、配列モチーフにおけるアデニン塩基のＮ６原子に付加する。薬剤が塩基アナログである場合、これをＰＣＲにより識別子分子に付加することができ、ＰＣＲにおいて、塩基アナログは、反応ミックスに含まれ、複製の際に識別子分子の一本鎖に結合される相補鎖に取り込まれる。次に、識別子分子と塩基アナログの新たなハイブリッドを配列決定することができ、塩基アナログは、配列決定読み出しにおけるシグナル対ノイズ比を改善することができる。
【００５１】
前述および他の目的および利点は、添付の図面と併せた、次の詳細な説明の考慮により明らかになるであろう。図中、同様の参照文字は、全体を通して同様のパーツを指し、次に図の説明を記す。
【図面の簡単な説明】
【００５２】
【図１】図１は、例示的なインプリメンテーションに従った、プリンター・フィニッシャーシステムの基礎（ｂａｓｅ）モジュールを示す。
【００５３】
【図２−１】図２Ａ〜図２Ｂは、説明的なインプリメンテーションに従った、プリンターエンジンラックおよびプリントヘッドの位置決めを示す。
【図２−２】図２Ａ〜図２Ｂは、説明的なインプリメンテーションに従った、プリンターエンジンラックおよびプリントヘッドの位置決めを示す。
【００５４】
【図３】図３は、例示的なインプリメンテーションに従った、識別子のトライ（ｔｒｉｅ）に従って区画に溶液を分配する図を示す。
【００５５】
【図４】図４は、例示的なインプリメンテーションに従った、プールサブシステムを示す。
【００５６】
【図５】図５は、例示的なインプリメンテーションに従った、アーカイブ情報システムを示す。
【００５７】
【図６】図６は、例示的なインプリメンテーションに従った、層によって組織化されたオペレーティングシステムの系統図を示す。
【００５８】
【図７】図７は、例示的なインプリメンテーションに従った、３個の層および８個のコンポーネントのコンポーネントライブラリーを有する階層化積コンストラクターの系統図を示す。
【００５９】
【図８】図８は、例示的なインプリメンテーションに従った、ハッシュを付加することによる、誤り保護とともにデジタル情報を核酸分子に記憶するためのフローチャートを示す。
【００６０】
【図９】図９は、例示的なインプリメンテーションに従った、ハッシュを別々に記憶することによる、誤り保護とともにデジタル情報を核酸分子に記憶するためのフローチャートを示す。
【００６１】
【図１０】図１０は、例示的なインプリメンテーションに従った、分割スキームを使用した、デジタル情報を核酸分子に記憶するためのフローチャートを示す。
【００６２】
【図１１】図１１は、例示的なインプリメンテーションに従った、均一重みコードの系統図を示す。
【００６３】
【図１２】図１２は、例示的なインプリメンテーションに従った、デコードスタックの系統図を示す。
【００６４】
【図１３】図１３は、例示的なインプリメンテーションに従った、核酸配列に記憶された情報を読むためのフローチャートを示す。
【００６５】
【図１４】図１４は、例示的なインプリメンテーションに従った、ＰＣＲ増幅スキームを示す。
【００６６】
【図１５】図１５Ａ〜図１５Ｂは、例示的なインプリメンテーションに従った、シグナルイベントを有する識別子核酸分子を示す。
【００６７】
【図１６】図１６は、例示的なインプリメンテーションに従った、アーカイブ演算の系統図を示す。
【００６８】
【図１７】図１７は、例示的なインプリメンテーションに従った、データを書き込む系統図を示す。
【００６９】
【図１８】図１８は、例示的なインプリメンテーションに従った、コンテナにおけるデータのブロックを記憶するためのフローチャートを示す。
【発明を実施するための形態】
【００７０】
詳細な説明
本明細書に記載されるシステム、方法およびデバイスの全体的な理解を与えるために、ある特定の説明的な実施形態を記載する。本明細書に記載される実施形態および特色は、核酸に基づくデータ記憶に関連した使用について特に記載されているが、下に概要を述べる全コンポーネントおよび他の特色が、いずれか適した様式で互いに組み合わせることができ、他の種類のデータ記憶および核酸技術に適応および適用することができることが理解されるであろう。
【００７１】
既存の方法よりもコストがかからず商業的な実行がより容易な、核酸デジタルデータ記憶のコードおよび回収方法の必要がある。本明細書に記載されるシステム、デバイスおよび方法は、核酸分子へとデータを書き込み、核酸分子からデータを読むためのスケーラブルな方法を提供する。本開示は、４種の目的の主要領域を網羅する：（１）核酸分子に記憶された情報を正確にかつ迅速に読むこと、（２）核酸分子におけるデータを効率的にコードするためにデータを分割すること、（３）核酸分子におけるデータをコードする場合は、誤り保護および訂正、ならびに（４）核酸分子に記憶された情報への効率的なアクセスを提供するためのデータ構造。
【００７２】
本明細書に記載される読み取り方法を使用して、いかなる核酸配列を読むこともでき、本開示の読み取り方法は、識別子核酸分子（本明細書において、単純に「識別子」または「識別子分子」とも称される）にデータまたは情報を書き込むコード方法を使用して、核酸配列に記憶された、前記配列に書き込まれた情報を読む場合に特に有利である。各識別子分子の核酸配列は、記号のストリング（例えば、ビットストリーム）における、特定の記号値（例えば、ビットまたは一連のビット）、当該記号の位置（例えば、ランクまたはアドレス）またはその両方に対応する。例えば、識別子分子の存在または非存在は、それぞれ１または０（または逆もまた同様）のビット値のシグナルを送ることができる。識別子核酸分子は、コンポーネント核酸分子（本明細書において、単純に「コンポーネント」または「コンポーネント分子」とも称される）の組み合わせ配置を含む。一部のインプリメンテーションでは、コンポーネントの核酸配列は、層とも称されるユニークセットへと分けられる。識別子分子は、複数のコンポーネント分子を一体にライゲーションする（または他の仕方でアセンブルする）ことにより、アセンブルされ、１個のコンポーネント分子は、各層から選択される。可能な識別子配列のセットは、コンポーネント配列の様々な可能な組み合わせの組合せに対応する。例えば、ｃｉが、各第ｉの層におけるコンポーネント配列の数を表す、Ｍ個の層へと分けられたＣ個のコンポーネント配列について、形成され得る可能な識別子配列の数は、ｃ１×ｃ２×…．×ｃＭによって表すことができる。例として、それぞれが１０個のコンポーネント配列を含有する１２層のコードスキームは、１０１２個の異なるユニーク識別子配列をもたらすことができる。各識別子配列が、ビットストリームにおける１ビットに対応する場合、このコードスキームは、１Ｔｂのデータを表すことができる。デジタル情報を核酸分子に書き込む様々な方法の例は、「ＮＵＣＬＥＩＣ  ＡＣＩＤ−ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ」という標題の、２０１７年１２月２１日に出願された、米国特許出願公開第２０１８／０１３７４１８号として発表された米国特許出願第１５／８５０，１１２号；「ＳＹＳＴＥＭＳ  ＦＯＲ  ＮＵＣＬＥＩＣ  ＡＣＩＤ−ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ」という標題の、２０１９年５月１６日に出願された、米国特許出願第１６／４６１，７７４号；および「ＣＯＭＰＯＳＩＴＩＯＮＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＮＵＣＬＥＩＣ  ＡＣＩＤ−ＢＡＳＥＤ  ＤＡＴＡ  ＳＴＯＲＡＧＥ」という標題の、２０１９年５月１６日に出願された、米国特許出願第１６／４１４，７５８号に記載されており、これら出願のそれぞれは、これにより参照により本明細書に組み込まれる。
【００７３】
核酸分子を配列決定するまたは読むことは、ヌクレオチド間を区別することの困難が原因で誤りがちなことが多い（例えば、不十分なシグナル対ノイズ比のため）。上述の方法を使用してコードされた記号は、事前に既知であるコンポーネント分子のセットから形成された識別子核酸分子として表されるため、所与の分子の配列を読んで、その中にコードされる情報を決定することは、当該配列におけるありとあらゆる単一塩基を正確に読むことを要求しない。その代わりに、本明細書に開示される読み取り方法は、相対的に高い誤り率を許容することができ、依然として、核酸分子由来のデジタル情報を正確にデコードする。これを行うために、読まれた配列の部分は、近似ストリングマッチング技法を使用することにより、コンポーネント配列の既知セットにマッチさせて、記号のストリングにおけるいずれの記号が、観察された（または読まれた）識別子分子によって表される可能性が最も高いか決定することができる。一部のインプリメンテーションでは、各コンポーネント配列が、少なくとも最小数の塩基差によって、互いのコンポーネント配列から分けられるように（例えば、最小ハミング距離またはレーベンシュタイン距離）、コンポーネント配列は設計される。コンポーネント配列が、この様式で互いに別個となることの要求は、配列をマッチさせる際に、配列決定されているコンポーネント分子のある一配列が、別のコンポーネント配列と間違えられるであろう機会を低減させる。したがって、下でさらに詳細に説明される通り、図１２および図１３を参照して、本開示の読み取りシステムは、頑強（例えば、塩基誤りに対して低感度）であり、識別子分子は、伝統的な配列決定におけるものよりも速い速度で、より少ない誤りにより読まれ得る。
【００７４】
核酸分子に記憶されたデータを読む際の誤りに対する許容度を改善するための仕方の１つは、データをコードする際に、誤り保護記号および誤り訂正スキームを含むことである。これを達成するために、原始データ（例えば、記号のストリング）は、ブロックへと分断され、ハッシュは、ブロック毎に計算され、ハッシュは、各ブロックの終わりにおいて原始データに付加されて、ＤＮＡに書き込まれる、記号の改変されたストリングを得る。これらのハッシュのうち１つに対応する記号の改変されたストリングの部分は、ＤＮＡから読み出される場合、対応するブロックの読み出された記号においてコンピュータ処理されたハッシュと比較される。読み出されたハッシュと、コンピュータ処理されたハッシュとの間のミスマッチは、読み誤りを指し示す  −  例えば、核酸分子から抽出された情報は、原始データにマッチしない。核酸分子に記憶されたデータを読む際の誤りに対する許容度をさらに改善するために、リード・ソロモンコード等の誤り保護コードは、原始データまたはハッシュ化原始データを表す記号の上述の改変されたストリングに適用することができる。下でさらに詳細に記載される通り、図８〜図９を参照して、リード・ソロモンコードは、データを読む際に、誤ったエレメントおよびエレメント抹消の両方について誤り許容度を増加させる。
【００７５】
それを核酸分子に書き込む前のデータに均一重みコードを適用することは、当該データを核酸分子からリードバックする効率を増加させることもできる。複数の識別子分子は、固体、液体または粉末形態を有するプールに設置することができる。例えば、識別子分子は、別々の区画に形成することができ、次いで、区画は、プールを形成するように強化することができる。均一重みコードは、各区画が、ある特定の数の識別子分子を有することを確実にする。得られたコードワードのそれぞれが、特定の種類の同数の記号を有する（例えば、記号がビットである場合、全コードワードが、値１を有する同数のビットを有することができる）ことを確実にする様式で、データをワードに分け、次いで翻訳して、コードワードを形成することができ、同じ「重み」を有するコードワードをもたらす。例えば、ＮｃｈｏｏｓｅＫコードスキームにおいて、各コードワードは、１個の区画に形成された識別子によって表すことができ、各区画は、Ｎ個の可能な配列の的確にＫ個の識別子配列を含有するであろう（プールまたは区画が、個々の識別子分子のコピーを含み、識別子分子の各コピーが、同じ識別子配列を有することに留意する。本明細書で使用される場合、プールまたは区画における「識別子配列の数」または「識別子の数」は、個々の識別子分子のコピーの数を指し、各コピーは、同じ識別子配列に対応する）。当該プールまたは区画を配列決定する際に、コードワードを表すＮ個の可能な配列につき、Ｋ個未満の識別子配列が読まれる（または観察される）場合、これは、コードワードの値を解釈するには不十分なデータが存在することを指し示すであろう。かかるイベントをコードワード抹消と言うことができる。他方では、配列決定の際にＫ個の識別子配列が読まれたら（コードワードを表すＮ個の可能な配列につき）、配列決定プロセスを停止することができ、これは、配列決定時間の量を減少させ、コードワードの解釈に必要とされる効率を改善することができる。一部の例では、コードワードを表すＮ個の可能な配列につき、Ｋ個を超える識別子配列が読まれる場合、コードワードは、最高のコピー数を有するＫ個の識別子配列から解釈することができる。一部の例では、観察された＞Ｋ個の配列由来のＫ個の識別子配列のあらゆる組合せを考慮して、可能なコードワード値のより限定されたセットを決定することができる。正確な値は、さらなる下流処理において、例えば、ハッシュ化により決定することができる。
【００７６】
ＤＮＡから情報を読む効率を改善するための仕方の１つは、データ構造を使用して、データストリングのデータブロックの場所を保持することが関与する。例えば、大きいデータストリングは、２個またはそれよりも多いコンテナに分けて記憶することができる。いずれのコンテナが、ユーザーがアクセスすることを望む情報を含有するか決定するために、システムは、場所（例えば、コンテナ数または配置）を保持するＢツリーまたはトライ構造にアクセスすることができる。これにより、ユーザーは、データストリングを含有するコンテナのそれぞれにおける情報を読むのではなく、都合のよい様式で、ユーザーが探している情報にアクセスすることができる。さらに、ユーザーがアクセスすることを望む情報は、コンテナに含有される識別子の総数よりも小さい複数の識別子のみを含むことができる。かかる実例では、コンテナに存在する可能な識別子の空間全体ではなく標的の複数を含む可能な識別子の小さいサブセットのみにアクセスしこれを読むことは、より効率的でありかつコストがかかるであろう。そこで、Ｂツリーまたはトライ構造に含有される場所情報は、コンテナに加えて標的の複数の識別子に関する情報を含有するようにさらに構成され得る。
【００７７】
よって、本明細書に記載されるシステムおよび方法は、コストを減少させ、核酸分子に情報を書き込むスループットを増加させるいくつかの契機を提供する。第１に、コンポーネントのセットを再使用し再度組み合わせて、デジタル情報の新たなパケットを書き込む。よって、新たな書き込みジョブ毎に塩基毎の合成を使用するという高価な要求は、いくつかの書き込みジョブにわたり償却され得る１回の塩基毎の合成コストによって置き換えられる（例えば、８６０テラビットパケットを書き込むための、１０μｍｏｌスケールにおける２２４個の３０塩基オリゴ）。第２に、コードされた情報は、ＤＮＡコンポーネントの配列からデカップリングされて、演算を書き込む、記憶する、コピーする、問い合わせるおよび読むために最適化され得る大きい配列設計空間の使用を可能にする。第３に、本明細書に記載される核酸分子コードスキームは、増強された誤り訂正を含み、最適化された演算スピードを提供する。
【００７８】
図１〜図５に関して記載されている通り、続く記述は、核酸分子におけるデータのコードの概要から始まり、コードされた核酸分子をプリントおよび記憶するように構成された書き込みおよびアーカイブシステムの記述が続く。本開示は、誤り保護、効率的コードおよび「重み最小化」のために設計されたスキームを含む、図６〜図１１に関する様々なコード方法について記載する。次に、記述は、図１２〜図１５において、デコードシステムおよび方法について記載する。記述は、図１８において、核酸分子からの特異的な情報の回収において使用することができるデータ構造を導入する。図１６は、アーカイブ演算の概要を示し、図１７は、データを核酸分子に書き込む系統図を示す。
【００７９】
本明細書に記載される方法を使用して情報を核酸分子に書き込むことは、記号のストリングを識別子配列としてコードすることが関与し、各記号の位置および値は、識別子配列によって表される。一部のインプリメンテーションでは、各識別子分子は、定義された層に基づき順序付けされる、ライゲーションされた予め作製されたＤＮＡコンポーネント分子で構成される。各層内で、いくつかのユニークＤＮＡコンポーネント配列を選択して、識別子配列を作製することができる。記号の、その対応する識別子配列への１対１のマッピングは、そのコンポーネントの効率的にコンピュータ処理された関数である識別子の順序によって確立される。具体例として、利用できる識別子配列のセットは、１５個の層を含むことができ、そのうち１４個の層はそれぞれ、６個のユニークＤＮＡコンポーネント配列を含有する。第１５の層は、２８個のＤＮＡコンポーネント配列（６個ではなく）を含むマルチプレックス層となることができ、これもまた取り込まれるであろう。よって、各識別子は、全長識別子核酸分子に１５個のコンポーネント（各層に１個のコンポーネント）を含有することができる。書き込みプロセスにおいて、コンポーネント分子は、反応区画において一緒にアセンブルされて、識別子分子を形成する。一部のインプリメンテーションでは、「マルチプレックス層」のみに由来する複数のコンポーネントは、同じ反応区画へと組み合わされるであろう。
【００８０】
例として、８６４００秒間（２４時間）で１テラバイトを書き込むために、およそ８Ｅ＋１１個の識別子分子がアセンブルされることが必要となる（識別子当たり１０ビットの情報がコードされることを仮定）またはおよそ５．７Ｅ＋１０個の液滴反応区画が必要である。各反応は、２８個の識別子の可能なセット由来の１４個の識別子をアセンブルすることができる。１４個のコンポーネント（６個の可能なコンポーネントをそれぞれ有する１４個の層のそれぞれから１個）は、識別子の「塩基」を指定およびアセンブルする。マルチプレックス層由来の２８個の可能なコンポーネントのうち残っている１４個のコンポーネントは、いずれの１４個の識別子（２８個の可能性のうち）がアセンブルされることになるかを指定する。よって、各反応区画は、２８個のＤＮＡコンポーネント、プラス、リガーゼまたは他の反応ミックスを必要とすることができる。
【００８１】
本明細書に記載される方法は、後述する書き込みシステムを使用して実行することができる。書き込みシステムは、２０１９年５月１６日に出願された、Ｐｒｉｎｔｅｒ−Ｆｉｎｉｓｈｅｒ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｄａｔａ  Ｓｔｏｒａｇｅ  ｉｎ  ＤＮＡという標題の、これにより参照により本明細書に組み込まれる米国特許出願第１６／４１４，７５２号に記載されているシステム等、プリンター・フィニッシャーシステムとなることができる。ライターシステムは、基板上の個別の場所（例えば、反応区画）にＤＮＡコンポーネントを分配し、ライゲーションマスターミックスを分配し、ライゲーション反応に最適な条件を提供し、ライブラリーを含むＤＮＡ識別子を全てプールすることができる。書き込みシステムは、図２〜図５に関して後述する通り、４種のモジュラーコンポーネントである、基礎機器、プリントエンジン、インキュベーターおよびプールサブシステムを含むことができる。
【００８２】
本明細書に記載される書き込みシステムは、識別子を構築するためのライゲーション反応のハイスループット並列化プリントを実行することができる。反応は、ローラーの上を移動する可撓性シート（ウェビング（ｗｅｂｂｉｎｇ）または基板とも称される）上にプリントされたピコリットル（ｐＬ）スケールの液滴において遂行することができる。書き込みシステムは、適した既製の（ｏｆｆ−ｔｈｅ−ｓｈｅｌｆ）プリントヘッド、ドライバーおよび機械インフラストラクチャーを使用して、デジタルインクジェットプリントおよび織物処理等の技術を取り込むことができる。本明細書に記載されるシステムおよび方法は、記憶容量および書き込みスループットを達成するために、巻き取り紙送りスピード、プリントヘッド分配スピード、液滴サイズおよびライゲーションケミストリー等の要因の最適化を含む。この目的のため、また、潜在的なケミストリーおよびハードウェア誤りに対するデータ許容度を確実にするため、本明細書に記載されるシステムおよび方法は、ＤＮＡコンポーネント配列を層に分割する仕方、およびプリントされた反応のそれぞれにおいて構築するべき識別子分子の数に関する明細を含む、データをコードし、プリント指令を開発するための構成を含む。例えば、かかる構成は、書き込みシステムと連絡しその性能を追跡する、コンピュータシステムを含むことができる。
【００８３】
図１は、本明細書に記載される方法を実行するように構成された書き込みシステムの基礎モジュール１０２を示す。基礎モジュール１０２は、その上にコンポーネントが置かれ得るように書き込みシステムを通ってウェビング１０４を移動させる、巻き戻し／巻き直しコンポーネントを含有する。ウェビング１０４（基板とも称される）は、その上に液滴が分配されて液滴反応区画を形成することになる材料である。例えば、ウェビングは、ポリエチレンテレフタレート（ＰＥＴ）またはポリプロピレン等の低結合性プラスチックとなることができる。基礎モジュール１０２は、オープンリール式（ｒｅｅｌ−ｔｏ−ｒｅｅｌ）の機械である。基礎モジュール１０２は、例えば、研究および標識製造業界のために開発されたＷｅｒｏｓｙｓ  Ｃｏｍｐａｃｔシステムとなることができる。
【００８４】
書き込みシステムは、プリントエンジンも含む。プリントエンジンの２種の主要なコンポーネントは、液滴分配のためのインク管理システムおよびプリントヘッドである。インク管理システムは、液体の上のヘッドスペースにおける真空圧のローカル制御のための真空ポンプ、弁調節（ｖａｌｖｉｎｇ）／チューブ調節（ｔｕｂｉｎｇ）、および搭載ソフトウェア／電子機器を含む。例えば、インク管理システムは、Ｍｅｇｎａｊｅｔシステムとなることができる。インクリザーバは、最大１ｍ離して設置することができ、Ｍｅｔｅｏｒ  ４色コントローラーカードを使用することができる。
【００８５】
図２Ａは、プリントヘッドマウントラック２００を示す。ラック２００は、プリントヘッド保持スポット２０２〜２０４において最大６個のプリントヘッドを保持する。ラック２００は、ウェビング上にコンポーネントを置くために使用されるプリントヘッドと、プリントエンジンを通過するウェビングとの間のインターフェースである。ラック２００は、ウェビングの近くにプリントヘッドを保持する。例えば、プリントヘッドは、巻き取り紙のおよそ０．５ｍｍ、１ｍｍ、２ｍｍまたは３ｍｍ上に保持することができる。ある特定のプリントヘッドは、液滴をオーバープリントする本発明の能力を限定する不整列ノズル配置を有するため、ラック２００は、傾斜してプリントヘッドを保持して、反応区画におけるオーバープリント（ｏｖｅｒ−ｐｒｉｎｔ）のためにプリントヘッドノズルを適切に並べる。傾斜角度は、ノズルが整列して液滴をオーバープリントできるような、ノズルプレートの法線ベクトルからの僅かな回転である。傾斜角度は、例えば、１度、２度、４度、８度、１０度、２０度またはいずれかの適した角度となることができる。例えば、４つの異なるノズル列のオーバープリントを達成するために、プリントヘッドは、８．７°の角度で回転させることができる。液滴分配の精度は、所望のスペーシング、接触角に依存する巻き取り紙上の液滴の直径によって、および分配の再現性によって駆動される。これらのパラメーターは、利用できるハードウェアコンポーネントに応じる場合があるが、開発の際に何らかのカスタマイズを必要とする場合がある。
【００８６】
図２Ｂは、４列のプリントヘッドノズル２１２、２１４、２１６、２１８を示す。列２１２、２１４、２１６、２１８のそれぞれが、異なるコンポーネントを分配することができる。基板２２２（対角線上に上方に、また、矢印２１９によって示される線から右に延在する）は、ノズル２１２、２１４、２１６、２１８を有するプリントヘッドの下を線形に移動される。プリントヘッドの８．７度回転のため、基板２２２上の座標２２４は、各ノズルが座標２２４上にコンポーネントを置くことができるように、線２１７に沿って列２１２、２１４、２１６、２１８におけるノズルの下を直接的に通過するであろう。
【００８７】
プリントヘッドは、プリントヘッド（４）当たり複数の「色」を分配することができ、これはオーバープリントを可能にする。プリントヘッドの各ノズルによって分配される液滴体積は、１ｐＬ、２ｐＬ、３ｐＬ、７ｐＬ、１０ｐＬ、２０ｐＬまたは他のいずれかの適した量となることができる。一部のインプリメンテーションでは、液滴の体積は調整することができる。液滴体積における柔軟性は、このパラメーターは蒸発率およびライゲーションインキュベーション条件に影響を与えるため、役立つ。添加物をコンポーネントインクに添加して、プリントヘッドとの適合性を容易にすることができる。例えば、トリス等の溶質を添加して、伝導率を増加させることができる。例として、保水剤または界面活性物質（例えば、グリセロール）を添加して、射出品質およびプリントヘッドノズル寿命を改善することができる。
【００８８】
一部のインプリメンテーションでは、プリントヘッドは、ＭＥＭＳ（微小電気機械システム）デバイスである。例えば、プリントヘッドは、Ｒｉｃｏｈ  ＭＨ５４２０プリントヘッドとすることができる。プリントヘッドは、ＤＮＡ識別子の統合性を損なう場合がある、多くのサーマルプリントヘッドに関連するリスクおよび不確実性を回避するように選択される。プリントヘッドは、速く、少ない体積で、水性に適合性で、かつ滴をアドレス可能な（ｄｒｏｐ−ａｄｄｒｅｓｓａｂｌｅ）圧電分配ができる。プリントヘッドは、ステンレス鋼ノズルプレートを含むことができる。
【００８９】
ノズル詰まりは、プリントヘッドに一般的な故障モードである。例えば、停止したプリントヘッドは、閉塞、乾固のリスクがあり、よって、再循環を必要とする。このような理由から、書き込みシステムは、登録を維持しつつ、パージし拭き取るために書き込みシステムからプリントヘッドを移動させ、次いで置き換える。
【００９０】
プリントの再現性を助けるために、書き込みシステムは、液滴形態、体積およびスピードを最適化することができる。プリントヘッド中の溶液は、可視性のための色素を含有する水−トリス溶液を含むことができる。例えば、色素は、ブロモフェノールブルーであってもよい。プリントヘッド中に使用される溶液は、低い粘性および高い表面張力を有するという点において、伝統的なプリントヘッドインクとは異なる。溶液は、基本的に水であり、１０〜１１ｃＰの理想的なインクと比較して、ほぼ１ｃＰの低い粘性を有するであろう。溶液は、基本的に水であるため、３２ｍＮ／ｍの理想的なインクと比較して、７２ｍＮ／ｍの高い表面張力を有するであろう。
【００９１】
最適な波形により、液滴再現性は、液滴形状、体積およびスピードを測定することにより検証することができる。個々の液滴体積は、鉱物油容器に数百万個の滴を分配し、容器の質量の変化を測定して検証することができる。液体の蒸発を回避するために、水性の液滴が水浸するように、液滴を油中に分配することができる。液滴形状およびスピードは、飛行中（ｉｎ−ｆｌｉｇｈｔ）の液滴分配を捕捉するためのＣＣＤカメラを使用した「滴監視（ｄｒｏｐ  ｗａｔｃｈ）」システムを使用して測定することができる。
【００９２】
図３は、トライから構築された識別子配列に従って、反応区画に溶液を分配する図を示す。トライの各層は、識別子の層を表し、各トライ層の各エッジ（ｅｄｇｅ）は、対応する識別子層内のコンポーネントを表す。トライの最終層は、識別子のマルチプレックス層を表すことができる。記号のストリング３００は、ＤＮＡ識別子核酸分子に記憶されるべきコードワードのセットを表す。コードワードは、ソースワードと呼ばれるソースアルファベット由来の記号の特異的なストリングを表す記号のストリングである。コードは、コードとして既知のプロセスにおいてコードワードにソースワードをマッピングする。液滴３０４は、個々の反応区画（例えば、区画３０６）に分配される。記号のストリング３００は、ツリーのルート（図示せず）を、「１」の記号値を指す最終（マルチプレックス）層３０２のリーフ（ｌｅａｖｅｓ）に接続するトライパスによって表される識別子を構築することによりコードされる。図３に示す通り、また、特に図１１に関してさらに後述する通り、コードワードの「重み」を均等に分布することができる  −  すなわち、記号のストリング３００は、反応区画において５ビットの各ストリングがコードされるように分けられ、５ビットの各ストリングは、的確に３個の「１」値を有するため、各区画は、マルチプレックス層から３個のコンポーネントを受け取って、３個の識別子を形成する。例えば、マルチプレックス層に示す通り、また、記号のストリング「１０１０１」の位置に対応する通り、反応区画３０６は、それぞれ基層由来のコンポーネント（マルチプレックス層までのトライのパスを含むコンポーネント  −  コンポーネント７、Ｂ、Ｄ、…）、ならびにマルチプレックス層由来のコンポーネント０、２および４のユニーク組合せを有する識別子を含有するであろう。「１」値のそれぞれについて、当該記号位置の対応する識別子分子（それに導くパスを作製するコンポーネントで構成される）は、反応区画に置かれるであろう。
【００９３】
プリントヘッドが、コンポーネントを反応区画に置いた後に、反応区画は、プリントエンジンからインキュベーターモジュールへと移動される。インキュベーターは、最適ライゲーション効率に要求される温度および液滴蒸発の防止に必要とされる湿度を制御するため、ライゲーション反応に決定的に重要である。インキュベーターモジュールは、一連のローラーを使用して、ウェビングの大部分（例えば、１０ｍ、２０ｍ、４０ｍ、１００ｍまたはいずれかの適した長さ）をチャンバー内にライゲーション反応の持続時間にわたり維持する。ローラーの数および位置は、インキュベーション時間またはウェビングスピードの変化を可能にする。インキュベーターモジュール中に、反応区画における液滴内の溶質の濃度は、最大ライゲーション効率を保持するために一定を保つ必要がある。このような理由から、インキュベーターの主要機能は、蒸発による体積損失を最小化するであろう湿度のレベルを維持することである。液滴の蒸発率に影響を与える要因は、（１）要求されるライゲーション時間よりもはるかに短い（＜１秒）時間における液滴の完全蒸発を防止するために、リガーゼ液体内に保水剤（グリセロールである可能性がある）が要求され得ること、および（２）リガーゼ内のグリセロールの濃度が、要求される湿度レベルおよび湿度許容度に強く影響を与えることである。
【００９４】
図４は、スプレー洗浄４１４およびプール緩衝剤４０８における浸漬を使用して、ウェビング４１６からプリントされた液滴を除去するプールサブシステムを示す。プールサブシステムは、移動する巻き取り紙４１６からＤＮＡ分子を除去し、これをＤＮＡ結合カラムに移入する。ウェビング４１６は、ローラー４０２、４０４、４０６の上を通過する。ＤＮＡ分子は、２種の機構（１）プール緩衝剤を使用した移動する巻き取り紙のスプレー洗浄４１４、および（２）プールチャンバー内のプール緩衝剤４０８への移動する巻き取り紙の浸漬の組合せを使用して、ウェビング４１６から除去される。一部のインプリメンテーションでは、２種の機構のうち１種のみが使用される、または機構は、他のＤＮＡ分子除去手段と組み合わせて使用される。
【００９５】
ウェビング４１６から除去した後に、ＤＮＡ分子は、結合カラムを通過させて、全長ＤＮＡ識別子を収集する４１０。次に、貯蔵に適した容器内へのＤＮＡ溶出および収集を含む下流処理のために、書き込みシステムからカラム４１０を取り出す。
【００９６】
本明細書に記載されるシステムおよび方法は、分子データをデコードするための、ナノポア配列決定の周辺に基づく完全に自動化可能なワークフローを提供する。ワークフローは、物理的ＤＮＡ貯蔵システムを検証することと、ＰＣＲに基づくデータアクセス方法を開発することと、ナノポア配列決定技術を改善することと（変更された試料調製、意図的に設計されたＤＮＡコンポーネント配列および化学的に改変された核酸により）、複数のデバイスでの大規模並列配列決定のために配列決定システムおよびワークフローを最適化することとを含む。本明細書に記載される方法を使用して産生されたＤＮＡに基づく情報は、戦略的に最適化されたナノポア（または電子チャネル）配列決定方法による回収にユニークに適する。ナノポアシーケンサーにとって鍵となる障害物は、単一塩基分解能で配列決定するのに十分に遅いＤＮＡ移行および十分に狭いポアを達成することであった。本明細書に記載される方法によってコードされるＤＮＡコンポーネントは、各コンポーネント分子の配列シグナルを同時にブーストし、コンポーネント配列の間の識別を増加させるように設計することができる。ノイズに対するシグナルを増強するために化学的に改変された塩基を取り込む選択肢と一緒に、これらの特色は、ナノポア技術が、人工ＤＮＡ情報の再現できるＴＢスケール回収を達成することを可能にする。本明細書に記載されるシステムおよび方法は、ＤＮＡの組織化および貯蔵システムの開発、ＤＮＡライブラリーにアクセスするためのプロトコールの開発、コードされたＤＮＡの読む能力改善のための試料調製プロトコールの改変、ならびに配列決定機器の読む能力を増加させるためのナノポア技術の進歩を提供する。
【００９７】
上に記載されている通り、記号のストリングの書き込みプロセスからの出力は、長期貯蔵および低頻度アクセスを要求し得る、コードされたＤＮＡ（識別子）のライブラリーである。コードされたＤＮＡの産生されたプールは、各識別子配列の数十万個の分子を含有することができる。グラムを単位として、産生された材料の総量は、マイクログラム含量となることができる。図１４に関して後述する通り、プールは、ＰＣＲにより増幅して、冗長性、アーカイブおよびアクセスに十分な材料が存在することを確実にすることができる。
【００９８】
増幅後に、プールは、複数のコンテナに割り振り、異なる場所に貯蔵することができる。プールは、ある範囲の核酸貯蔵およびアーカイブシステムに貯蔵することができる。例えば、ＤＮＡは、冷凍庫内のエッペンドルフ管に貯蔵する、液体窒素中に凍結保存する、またはトリス−ＥＤＴＡ中に貯蔵することができる。ＤＮＡの有効期間は、異なる温度等の加速された安定性条件に付された材料を読むことにより査定する。本明細書に記載されるシステムおよび方法は、貯蔵ＤＮＡの長期貯蔵およびランダムアクセスの両方を可能にする自動試料管理システムを含むことができる。
【００９９】
一部のインプリメンテーションでは、オペレーティングシステム（ＯＳ）は、エクサバイトサイズにスケーラブルなアーカイブの書き込み、読み、発見可能な問い合わせ、またはそれらのいずれかの組合せを協調することができる場合がある。具体的には、一部のインプリメンテーションでは、ＯＳは、上に記載されている読み／書き込みプラットフォームのために最適化されたコーデックにより、意味的にアノテートおよびインデックス付けされたブロックのツリーの読みおよび書き込みを可能にすることを目標とする。ＯＳは、摂取ＡＰＩを含むことができる翻訳スタック、ならびに長期にわたりデータを組織化およびフォーマットするが、粒度の細かいデータ問い合わせおよび発見のためのモジュールを含む。ＯＳのこれらの態様は、いずれかの書き込み、読みまたはアクセス方法に幅広く適することができる。ＯＳの他の態様は、情報を書き込む、アクセスするおよび読むための方法を特異的に最適化するように設計することができる。これらは、データを圧縮するおよび誤り保護するためのモジュール、ならびに上に記載されている書き込みシステムにデータを構成するおよび送るためのモジュールを含む。上述の方法によりＤＮＡ分子に書き込まれたデータは、いずれかのシーケンサーにより可読となるであろうが、特異的な読む方法について後述する。ＯＳは、例えば、エクサバイトの情報を支持することができる貯蔵コンテナのシステムにＤＮＡを割り振り、それに由来するＤＮＡにアクセスし、それにおけるＤＮＡを補充することにより、ライターおよびリーダーの間のＤＮＡに基づく情報の取り扱いを媒介する自動化ソフトウェアおよびワークフローを含むこともできる。
【０１００】
図５は、ＯＳのためのアーカイブ情報システムを示す。中央モジュールは、摂取、データ管理、アクセスおよびアーカイブ記憶モジュールを含む。データ管理およびアーカイブ記憶モジュールは、摂取およびアクセスモジュールと連絡する。記述的情報は、摂取モジュールからデータ管理モジュールへと通過される。次に、記述的情報は、データ管理モジュールからアクセスモジュールへと通過される。アーカイブ情報パッケージは、摂取モジュールからアーカイブ記憶モジュールへと、次いでアクセスモジュールへと通過される。中央モジュールは、摂取モジュールを介して、提出情報パッケージ等、生産者から情報を取り入れる。中央モジュールは、クエリーをフィールディング（ｆｉｅｌｄｉｎｇ）し、応答を送ることによって、アクセスモジュールを介して、消費者とも連絡する。例えば、クエリーおよび応答は、普及情報パッケージにおいて保持され得る。データ管理およびアーカイブ記憶装置は、保存計画およびアドミニストレーションモジュールとも相互作用する。
【０１０１】
図６は、７個の機能層へと組織化されたＯＳによって管理された能力の階層化された組織化を示す。各層は、下の層によって提供されるサービスを利用する。７個の層は、次のものの設計および構築が関与する開発の６個のエリアに繋がる：
（１）コーデック：ライター特異的最適化によるエンコーダー／デコーダーパイプライン
（２）ケミストリーインターフェース：ビット演算から化学的演算への翻訳装置
（３）自動化インターフェース：自動化デバイスへのインターフェースおよび翻訳装置
（４）ブロック抽象化：ブロックに基づくインターフェースおよび支持コアデータ構造
（５）探索＆インデックス付け：意味的アノテーションおよびインデックス付けのためのインフラストラクチャー
（６）アーカイブ適用：ＯＳを実証するアーカイブ適用。
本明細書に記載されるコードスキームおよびＯＳの利益は、書き込みスピード、書き込みコスト、読むコストまたはアクセスコストに最適化されたコードスキームを選択する能力；ブロックへのインデックスデータのマッピングを最適化して、デコードされたフットプリントを最小化する能力；大きいブロックから単一ビットに及ぶあらゆるスケールで情報およびネイティブにモデルデータ構造を操作する能力；ならびにデータおよび関係性に基づきアーカイブ、問い合わせおよび論拠を可能にする現在のアーカイブ標準および慣例による厳格な統合を含む。
【０１０２】
コーデックは、情報のためのエンコーダー／デコーダーとして機能する。上の層はこれを必要とし、下の層はこれなしでは有意義に検査できないため、コーデックの適正な演算は、高度に重要である。コーデックは、ソースビットストリームを受け取り、化学的方法を使用して書き込みに適した形態にこれを翻訳することを負荷される。図６に示す通り、コーデックは、コードプロセスを取り扱う３個の層：固定層、冗長性層および組み合わせ層を含む。
【０１０３】
固定層において、ソースビットストリームはパケットへと分けられ、全パケットは固定されたサイズのものである。パケットは、独立して処理することができ、並列処理のための単位として機能する。パケットは、１個または複数のブロックで構成される。ブロックは、アーカイブにおける割り振りの最小単位であり、アーカイブの組み合わせ空間は、ブロックと呼ばれるビットの一連の近接ストリングへと分けられる。固定層は、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４またはＳＨＡ−５１２／２５６等の標準暗号ハッシュ化アルゴリズムを使用したブロックハッシュのコンピュータ処理の原因となり、このハッシュは、親ブロックに含まれる。ブロックがデコードされる場合、その統合性は、そのハッシュを再度コンピュータ処理し、親ブロックを介してこれをチェックすることによりチェックすることができる。
【０１０４】
冗長性層において、ハッシュ化ブロックは、最大２、３種またはそれよりも多い誤り保護技法が適用される冗長性層へと伝わる。ある特定の書き込みシステムのノイズに対する感受性は不明となり得るため、高い冗長性コンボリューションコードを使用することができる。書き込みの際に引き起こされる誤りは、主に２種類のものとなり得る：（１）例えば、プリントヘッドノズルの悪化もしくは低効率アセンブリ反応による、見逃し識別子が原因、または（２）例えば、隣接する反応物の間での跳ね飛び（ｓｐｌａｔｔｅｒ）もしくは混入の分配による、意図されない識別子のアセンブリが原因。書き込みシステムのイメージングに基づく品質管理方法は、プリントヘッド詰まりおよび見逃し識別子が原因の誤りを軽減させることができる。誤りを訂正するために、ブロックは、スライスへと分けられ（例えば、典型的な構成において２２３バイト長）、２５５個の記号の算術フィールドを使用したリード・ソロモンコードは、スライス毎にコンピュータ処理され、バイト誤り（例えば、１６バイト）を訂正することができる誤り保護バイト（例えば、３２）をもたらす（誤りにおける各バイトは、いずれかの数のビット誤りを有することができる）。これらの誤り保護パラメーターは、構成可能であり、アーカイブに書き込まれ、例えば、コードワード当たり１０−４個の誤りの書き込みシステム誤り率を許容するように構成される。上に定義される通り、コードワードは、ソースワードと呼ばれるソースアルファベット由来の記号の特異的ストリングを表す記号のストリングである。コードは、コードとして既知のプロセスにおいてソースワードをコードワードにマッピングする。
【０１０５】
ソースワードが３ソースバイトを含むスキームを仮定すると、２５５バイトの保護されたスライスは、２５５／３＝８５個のコードワードにマッピングするであろう。独立した誤りを仮定すると、１６バイト超が誤りにある確率は、５個を超えるコードワードが誤りにある確率であり、これは、およそ４．３×１０−１６である。コンピュータ処理されるフィールドサイズまたは誤り保護バイトを変化させることにより、この確率を必要に応じて低下させることができる。上に記載されているシステム等、精密度プリンティングヘッドを有する書き込みシステムは、この予想される誤り率に準拠することができる場合があるが、コーデックは、より高いコンピュータ処理コストがかかるものの、必要であればより高い保護率を取り扱うことができる。その上、より大きいフィールド（例えば、６５，５３５）は、より高い保護を付与することができる。意図されない識別子分子の影響を軽減するために、誤り保護バイトの同じセットによって保護されたソースビットが、最終的に隣接する反応区画にならず、よって、訂正可能（ｃｏｒｒｅｃｔｉｂｌｅ）となり得る場合よりも大きいバースト誤りに対して感受性とならないように、冗長性層は、ビットの順序を並べ替える必要に応じたインタリーバー（ｉｎｔｅｒｌｅａｖｅｒ）を導入することもできる。
【０１０６】
図８〜図９に関して記載されている方法から形成された誤り保護記号等の記号は、ソース記号で構成されるソースワード（例えば、一連のビット）から、核酸ライブラリーにおける情報をコードするためのいくつかの組み合わせ方法由来のコードワードへとマッピングすることができる。一部のインプリメンテーションでは、このようなコードは、コーデックによって行われるまたは編成される。特定のコードスキームの例を図７に示す。図８は、識別子を設計および順序付けするための階層化デカルト積組み合わせコンストラクター（ＬＣＰＣＣ）の系統図を示す。積コンストラクターは、３個の層（Ｍ＝３）および８個のコンポーネント配列（Ｃ＝８）のコンポーネントライブラリーを有する。層当たり｛３，３，２｝個のコンポーネント配列を有する組み合わせ分割スキームを示す。あらゆる可能な識別子配列の空間は、組み合わせ空間を形成する。図１０に関して下でさらに詳細に記載する通り、組み合わせスキームのスパンと称され得る、コンポーネントライブラリーから構築可能な組み合わせオブジェクトの総数は、識別子の単一プールに書き込み可能なビットストリームの長さを決定する。この特定のスキームのスパンは、１８である。組み合わせオブジェクトは、コンポーネント配列におけるランキングを、これらから構築された識別子に拡張することにより、辞書編集的に組み合わせ空間において順序付けされる。この順序付け情報は、識別子において暗黙であり、組み合わせ空間におけるその位置を識別し、ソース記号ストリームにおける識別子によってコードされる記号の位置の識別に使用することができる。例えば、ＬＣＰＣＣを使用して、２進法アルファベットをコードし、構築された識別子によってコードされる記号を「１」であると定義することができる。「０」記号は、対応する識別子を構築しないことによって表され得る。ソースビットストリームは、当該ビットストリームにユニーク識別子の特異的セット（すなわち、識別子ライブラリー）を構築することによりコードされ得る。
【０１０７】
図８〜図９は、誤り保護による核酸にデジタル情報を記憶するためのフローチャート８００、９００を示す。ステップ８０２において、情報は、長さＬの記号のストリングとして受け取られる。上に記載されている通り、記号は、ビット、バイト、いずれかの長さのビットストリング、英数字の文字、いずれかの長さの文字ストリング、または他のいずれかの適した記号となることができる。一部のインプリメンテーションでは、記号のストリングは、ビットストリームへと変換される。例えば、記号のストリングは、６個の記号「ＬＥＴＴＥＲ」からなることができる。英数字の文字のストリング「ＬＥＴＴＥＲ」は、２進法に変換されて、４８ビットをもたらすことができる（「０１００１１００  ０１０００１０１  ０１０１０１００  ０１０１０１００  ０１０００１０１  ０１０１００１０」）。この例では、Ｌは、４８に等しくなるであろう。一部のインプリメンテーションでは、記号のストリングにおける情報は、別々に受け取られる  −  すなわち、記号は、個々にまたはいずれかの組合せで受け取ることができる。次に、記号または記号の群を連結または他の仕方で組み合わせて、記号のストリングを形成することができる。例えば、８ビットのブロック１０個を個々に受け取り、次いで、一緒に連結して、８０ビット長の記号のストリングを形成することができる。
【０１０８】
フローチャート８００は、受け取った情報をコードする３種のステージを含む：（１）ステップ８０４〜８０８に関して説明される通り、ハッシュ化すること；（２）ステップ８１０〜８１４に関して説明される通り、誤り保護記号を追加すること；および（３）ステップ８１６〜８２０に関して説明される通り、コードワードを決定すること。図８は、これらのステージのうち全３種を表示するが、ステージは、別々にまたはそれらのいずれかの組合せにおいて行うことができる。例えば、フローチャート８００が、ステップ８０２から直接的にステップ８１６（コードワードステージの開始）へと進むように、ステップ８０４〜８１４（ハッシュ化および誤り保護記号の追加）を迂回することができる。ステージは、いずれかの順序で行うことができる。
【０１０９】
ハッシュ化ステージは、ステップ８０４から始まり、そこで、記号のストリングは、ブロックへと分けられる。一部のインプリメンテーションでは、各ブロックは、同じ長さＢのものであり、Ｂは、ブロックの数で割ったＬ（記号のストリングの長さ）に等しい。例として、記号のストリングは、１，０００ビットとなることができる。１，０００ビットは、２００ビットからそれぞれなる５個のブロック；１０ビットからそれぞれなる１００個のブロック；１００ビットからそれぞれなる１０個のブロック、またはいずれかのかかる組合せ等、いずれかの長さのブロックに分けることができる。一部のインプリメンテーションでは、ブロックは、等しい長さのものではない。例えば、１，０００ビットのストリングに関して、ブロック１は５００ビットからなり；ブロック２は１００ビットからなり；ブロック３は３００ビットからなり；ブロック４は１００ビットからなることができる。一部の実施形態では、ブロックは、任意の記号で水増しして、標的の長さに達することができる。
【０１１０】
ステップ８０６において、長さＨのハッシュは、ブロック毎にコンピュータ処理される。一部のインプリメンテーションでは、ハッシュは、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４またはＳＨＡ−５１２／２５６のうち１種を使用してコンピュータ処理される。各コンピュータ処理されたハッシュは、対応するブロックに加えられて、ハッシュ化ブロックを形成する。これにより、記号のストリングおよびハッシュが、核酸において一緒に記憶されることが可能になる。記号のストリングとは別々にハッシュを記憶することを含む代替的なインプリメンテーションは、図９に関して後述する。各ブロックが、長さＢのものである場合、ハッシュを付加した後に、ハッシュ化ブロックは、長さＨプラスＢのものである。例えば、記号のストリングは、１，０００ビットからなることができ、これは次いで、それぞれ１００ビット（Ｂ＝１００）のブロック１０個へと分けられる。各ブロックのハッシュは、１０ビット長（Ｈ＝１０）となることができる。加えた後に、ハッシュ化ブロックは、１１０ビット（本来の１００ビット、プラス、１０ビットハッシュ）からなる。
【０１１１】
ステップ８０８において、ハッシュ化ブロックがつなげられて、長さＬ２の記号の第２のストリングを形成する。上述の例では、１０個のハッシュ化ブロックの各ハッシュ化ブロックが、１１０ビットを含む場合、記号のストリングは、１，１００ビット（ステップ８０２において受け取った本来の１，０００ビット、プラス、ステップ８０６においてコンピュータ処理された１００ハッシュビット）に等しくなるであろう。
【０１１２】
ステップ８１０において、記号の第２のストリングは、スライスに分けられる。一部のインプリメンテーションでは、各スライスは、同じ長さＳのものであり、Ｓは、スライスの数で割ったＬ２（ハッシュ化ブロックからステップ８０８において形成された記号の第２のストリングの長さ）に等しい。例として、記号の第２のストリングは、１，１００ビットからなることができる。１，１００ビットは、１１０ビットからそれぞれなる１０個のスライス；１１ビットからそれぞれなる百個のスライス；２２０ビットの５個のスライスまたはいずれかのかかる組合せ等、いずれかの長さのスライスに分けることができる。一部のインプリメンテーションでは、スライスは、等しい長さのものではない。例えば、１，１００ビットのストリングに関して、スライス１は５００ビットからなり；スライス２は１００ビットからなり；スライス３は３００ビットからなり；スライス４は２００ビットからなることができる。一部のインプリメンテーションでは、ハッシュ化ステージ（ステップ８０４〜８０８）は迂回される。よって、ステップ８１０において参照される記号の第２のストリングは、ステップ８０２において受け取った記号のストリングに等しくなるであろう。一部のインプリメンテーションでは、ブロックは、一緒に再びつなげられて、Ｌ２を形成しないがむしろ、各ブロックは、別々にスライスへと処理される。
【０１１３】
ステップ８１２において、誤り保護記号は、スライス毎にコンピュータ処理される。いずれかの数の誤り保護記号は、スライス毎にコンピュータ処理することができる。ステップ８１２において、誤り保護記号は、これがコンピュータ処理されたスライスに付加され、これにより、誤り保護されたスライスを形成する。一部のインプリメンテーションでは、各誤り保護されたスライスがＳプラスＰビット長となるように、同数Ｐの誤り保護記号は、スライス毎にコンピュータ処理される。例えば、第２のストリングが、それぞれ１，１００バイト（１０００ソースバイト、プラス、１００バイトハッシュ）であるつなげられたブロックからなる場合、それぞれを、２２０バイトからなる５個のスライスに分けることができる。次に、４０バイトの誤り保護を各スライスに加え、それぞれ２６０バイトからなる誤り保護されたスライスをもたらすことができる。
【０１１４】
一部のインプリメンテーションでは、誤り保護記号は、リード・ソロモンコードを使用して決定される。リード・ソロモンコードは、ブロックに基づく誤り訂正コードである。Ｐ個の誤り保護記号（またはバイト）が、リード・ソロモンコードを使用してコンピュータ処理される場合、
【数５】
2021532799.tif 000007
個の誤った記号（またはバイト）が、保護されたスライスにおいて許容され得る。例えば、２６０バイトの保護されたスライスについて、Ｐが４０バイトに等しい場合、これらの２６０バイトの処理に否定的な影響を与えることなく、２６０バイトのうち２０バイトが不正確となり得る。Ｐの誤り保護バイトが、リード・ソロモンコードを使用してコンピュータ処理される場合、Ｐの消去されたバイトが許容され得る。例えば、２６０バイトの保護されたスライスについて、Ｐが４０バイトに等しい場合、これらの２６０バイトの処理に否定的な影響を与えることなく、２６０バイトのうち４０バイトを消去することができる。
【０１１５】
ステップ８１４において、誤り保護されたスライスがつなげられて、長さＬ３を有する記号の第３のストリングを形成する。上述の例では、ブロック当たり５個の誤り保護されたスライスの各誤り保護されたスライスが、２６０バイトを含む場合、記号の第３のストリングは、ブロック当たり１，３００バイト（ステップ８０２において受け取った本来の１，０００バイト、プラス、ステップ８０６においてコンピュータ処理された１００ハッシュバイト、プラス、ステップ８１２において決定された２００誤り保護バイトの総計）からなるであろう。一部のインプリメンテーションでは、フローチャート８００は、ステップ８０８からステップ８１６へと進み、誤り保護ステージ（ステップ８１０〜８１４）を迂回する。よって、ステップ８１４において参照される記号の第３のストリングは、ステップ８０８において形成された記号の第２のストリングに等しくなるであろう。一部のインプリメンテーションでは、フローチャート８００が、ステップ８０２から直接的にステップ８１６へと進むように、ハッシュ化および誤り保護ステージの両方が迂回される。この場合、記号の第３のストリングは、ステップ８０２において受け取った記号のストリングに等しくなるであろう。一部のインプリメンテーションでは、記号の第３のストリングは、ブロック毎に別々にコンピュータ処理および処理される。
【０１１６】
ステップ８１６において、第３のストリングは、複数のワードに分けられ、各ワードは長さＷを有する。例えば、各ワードは、８ビット長となることができる。ステップ８１８において、コードワードは、少なくとも１個のコードブックを使用して、ワード毎に決定される。一部のインプリメンテーションでは、各コードワードは、それぞれのワードの的確なマッチである（すなわち、記号の第３および第４のストリングの間に変化なし）。しかし、一部のインプリメンテーションでは、コードワードは、それぞれのワードとは異なる場合がある。例えば、コードワードは、ワードとは異なる長さとなることができる。
【０１１７】
コードワードは、コードまたはデコードの際の化学的および機器条件に最適化することができる。上に記載されている通り、識別子の存在は、ある特定の記号位置における「１」を指し示すことができる一方、当該位置に関する識別子の非存在は、「０」を指し示すであろう。一部のインプリメンテーションでは、コードワードの決定は、記号の第３のストリングに均一重みコード（例えば、図１１に関して記載されている通り）を適用して、全コードワードが、「１」の同数（すなわち、ステップ８２４における構築されるべき識別子）を有することを確実にすることを含む。よって、Ｗ＝８による上述の例に関して、８ビットをコードすることができるコードワードが選ばれる必要がある。これは、各コードワードが等しい「重み」（構築されるべき識別子の数）を有することができるように、追加的なビットを有効に追加する。
【０１１８】
図７に関して記載されている通り、コードワードは、ＮｃｈｏｏｓｅＫスキームにおける組み合わせ空間から決定することができる。Ｎｃｈｏｏｓｅｋスキームにおいて、全Ｎ個の順序付けされた識別子について、ｋ個の識別子が構築される。例えば、１１ｃｈｏｏｓｅ４スキームにおいて、全１１個の識別子について、的確に４個が構築される。代表的なコードワードは、長さＮ＝１１ビットを有し、重みｋ＝４を有するであろう。１１ｃｈｏｏｓｅ４スキームは、Ｌｏｇ２（１１ｃｈｏｏｓｅ４）＞８であるため、各コードワードにおける８ビットをコードするのに十分なビットを提供する。
【０１１９】
ステップ８２０において、長さＬ４を有する記号の第４のストリングは、コードワードをつなぐことにより形成される。記号の第４のストリングは、
【数６】
2021532799.tif 000008
個の記号を含むであろう。例えば、ブロック当たり１３００バイトのストリング（例えば、ステップ８１４において形成された記号の第３のストリング）について、各ワードが８ビットであり、１１ｃｈｏｏｓｅ４スキームが使用される場合、Ｌ４は、ブロック当たり１７８７．５バイト、または各バイトが８ビットである場合は１４３００ビットに等しいであろう。一部の実施形態では、記号の第４のストリングは、ブロック毎に別々にコンピュータ処理および処理される。
【０１２０】
ステップ８２２において、第４のストリングにおける各記号は、個々の識別子配列にマッピングされる。マッピングステップ８２２は、誤り保護による核酸にデジタル情報をプリントするためのスキームを産生する。複数の識別子核酸分子の個々の識別子核酸分子は、記号の第４のストリングにおける個々の記号に対応する。個々の識別子は、対応する複数のコンポーネントを含み、複数のコンポーネントにおける各コンポーネントは、別個の核酸配列を含む。例えば、コンポーネントは、上に記載されている通り、Ｍ個の層から選択することができる。
【０１２１】
ステップ８２４において、個々の識別子分子は、対応するコンポーネントを置く（または一緒に設置（ｃｏｌｌｏｃａｔｅ）する）およびアセンブルすることにより構築される。例えば、図１〜図５に関して上に記載されているプリンター／フィニッシャーシステムを使用して、対応するコンポーネントを区画に置くおよびアセンブルすることにより、個々の識別子を構築することができる。一部のインプリメンテーションでは、複数のプリントヘッドを使用して、複数のコンポーネントを含む複数の溶液を基板上の座標に分配する。反応ミックスを基板上の座標に分配して、複数のコンポーネントを物理的にリンクする、複数のコンポーネントを物理的にリンクするのに必要な条件を提供する、またはその両方を行うことができる。
【０１２２】
コードワードステージに基づき、プリンター指令のセットを開発することができ、次いでこれを、プリンター・フィニッシャーシステムに送る。プリンター指令は、プリント誤りの可能性を低減させる、またはプリント効率を増加させるように構成することができる。例えば、複数の区画における各区画が、統計的確実性内まで各識別子核酸配列の同数のコピーを含有するように、コードワードステージは、識別子を分布させるように設計し、よって、区画にわたる識別子の均一な存在量を提供することができる。追加的な誤り保護を提供するために、一部のインプリメンテーションでは、記号のストリングにおける隣接する記号を表す識別子核酸分子が、隣接する区画において構築されないように、コードワードは、書き込み機器に送られる前に、並べ替えられるまたはインタリーブされる（互いに関して）。これは、書き込み機器におけるバースト誤りが、訂正不可能な誤りまたは抹消をもたらす機会を低減させる。例えば、これは、プリント間違えが、間違った座標におけるプリントまたは区画間のにじみを立て続けに経験することにより、検出不能な誤りを引き起こし得る機会を低減させる。それに代えて、誤り保護は、隣接する記号ではなく異質な記号においてコンピュータ処理して、書き込み機器におけるバースト誤りが、訂正不可能な誤りまたは抹消をもたらす機会を低減させることができる。
【０１２３】
ステップ８２６において、個々の識別子は、プールに収集される。例えば、プールは、ステップ８０２〜８２２においてコードされた数百個の記号に対応する数百個の識別子を保持することができる。一部のインプリメンテーションでは、プールにおける識別子の存在または非存在は、記号のストリング内の対応するそれぞれの記号位置の記号値を代表する。
【０１２４】
フローチャート９００は、ハッシュを付加するのではなくハッシュを記憶することを除いて、同じステップに従う。ステップ９０２、９０４、９０８、９１０、９１２、９１４、９１６、９１８、９２０、９２２、９２４および９２６は、それぞれステップ８０２、８０４、８０８、８１０、８１２、８１４、８１６、８１８、８２０、８２２、８２４および８２６と均等である。ステップ９０６において、ハッシュは、ブロック毎にコンピュータ処理されるが、加えられない；むしろ、ハッシュは、別々に記憶される。例えば、ハッシュが、核酸におけるブロックよりも速くまたはより容易にアクセスされるために、ハッシュは、ハードドライブに記憶することができる。ハッシュは、核酸分子、磁気ストレージデバイス、フラッシュメモリデバイス、クラウドストレージまたは他のいずれかの適した場所に記憶することができる。
【０１２５】
記号のストリングをコードする場合、構築され得る別個の識別子配列の数は、使用されるコードスキームのパラメーターおよびコードされるべき記号のストリングに依存する。記号の所与のストリングに関して、鍵となる資源（例えば、識別子を築くために使用される層またはコンポーネントの数）を最小化する最適化されたスキームを生成することが有利となり得る。Ｃ個のコンポーネントのセットは、Ｂ（Ｃ）通りの別個の仕方で分割することができ、Ｂ（Ｃ）は、第Ｃのベル数であり、Ｃにより階乗的に（ｆａｃｔｏｒｉａｌｌｙ）増加する。Ｌ個の層が、それぞれｃ１、ｃ２、．．．、ｃＬ個のコンポーネントを含有する場合、構築可能な別個の識別子の総数は、
【数７】
2021532799.tif 000009
と
【数８】
2021532799.tif 000010
である。組み合わせスキームのスパンと称され得る（図７に関して記す通り）、コンポーネントライブラリーから構築可能な組み合わせオブジェクトの総数は、識別子の単一プールに書き込み可能なビットストリームの長さを決定する。したがって、所与のビットストリーム長さおよびコンポーネントライブラリーサイズに関して、層の数を最小化しつつ、ビットストリームをコードするのに十分に大きいスパンによる分割スキームが有益となり得る。各追加的な層は、ケミストリーに追加的な効率および時間的制約を課す；したがって、より少ない層による分割スキームが好ましい。層を最小化するための分割スキームの例は、図１０に関して後述する。分枝限定（ｂｒａｎｃｈ−ａｎｄ−ｂｏｕｎｄ）は、ビットストリーム長さの素因数分解から可能な分割の空間にわたり探索する。
【０１２６】
コーデックまたはいずれかのコードシステムは、マルチプレックス化可能な反応のセットをコンピュータ処理するためのいくつかの戦略を使用することができる。第１に、多値論理合成から借用された戦略は、ブール関数、およびヒューリスティクスを使用した関数の最小表現を抽出する試みとして、ビットストリーム等の記号のストリングの全体または一部を処理することができる。最先端の論理合成ツールは、ほぼ１０６列の真理値表による関数を取り扱うことができることが示された。ソースストリームが既にエントロピー圧縮されている場合、簡潔表現は見出すことが困難となり得るため、このアプローチは失敗し得る。圧縮されたストリームに関して、ローカル欲張り（ｇｒｅｅｄｙ）アプローチとは、Ｚ個の隣接する識別子配列の反応ワードへとストリームを分け、マルチプレックス化層において少なくともＺ個のコンポーネント配列を有するコンポーネント分割スキームを使用することである。これは、Ｚ個の識別子に、同じ接頭語を共有させ、これらを単一反応区画にアセンブルすることを容易にする（例えば、図７におけるＺ＝２）。逆に、目的の別の性能尺度は、反応毎にコードされるビットの数である。反応区画の最小化は、単一反応に書き込まれる記号の数を増加させ、よって、記号の所与のストリングを書き込むために書き込みシステムによって必要とされる書き込み時間および総基板長さを最小化する。
【０１２７】
別の鍵となる資源は、ソースビットをコードするために構築され得る識別子の数である。デフォルトによって、ＬＣＰＣＣスキームは、ユニーク識別子配列を有する記号のストリングの各記号位置をコードする。記号のストリングがビットストリームである場合に、「１」が識別子の存在によって指し示され、「０」がその非存在によって表される場合、ビットストリームを書き込むためにアセンブルすることができる識別子の数は、ソースビットストリームにおける「１」ビット値の数に比例する。ビットストリーム長さが鍵となる尺度であるｉｎ  ｓｉｌｉｃｏ圧縮とは異なり、この場合、鍵となる尺度は、必要とされる書き込む時間または反応区画を定義することができるビットストリームの重み、「１」ビット値の数である。
【０１２８】
識別子（例えば、図１０のステップ１００８に記載されている識別子）のアセンブルは、反応時に必要なコンポーネントおよび試薬の全てが一緒に設置された区画において化学反応を行うことを要求する場合がある。必要とされるかかる区画の数は、最小化され得る決定的な資源である。反応区画カウントを最小化するための戦略の１つは、各区画において複数の反応を実行することである。しかし、全ての反応が相互に組み合わせ可能（ｃｏｍｂｉｎａｂｌｅ）である必要はない。ＬＣＰＣＣ（図７に関して上に記載されている）は、隣接する識別子配列がコンポーネント配列の共通接頭語を共有するように、組み合わせ空間を生成する。図７における例に関して、識別子配列０および１は、共通コンポーネント配列接頭語を共有する  −  識別子配列０は、コンポーネント配列０、３、６を有し、識別子配列１は、コンポーネント配列０、３、７を有する。コンポーネント６および７は、構築により、相互に不活性であるため、これは、識別子０および１の構築が、４種のコンポーネント：０、３、６および７が一緒に設置された単一反応区画において実行され得ることを暗示する。単一区画において複数の反応を実行するこの戦略は、マルチプレックス化と称することができ、複数のコンポーネントが得られる層をマルチプレックス化層と称することができる。
【０１２９】
図１０は、分割スキームにより核酸へとデジタル情報をコードするためのステップの概要を述べるフローチャート１０００を示す。分割スキームは、書き込みハードウェア構成等、制限下で核酸にデジタル情報をコードする意図で設計することができる（例えば、プリンターで利用できるインクの数）。フローチャート１０００は、ステップ１００２において始まる。上に記載されている図８〜図９のステップ８０２および９０２と同様に、ステップ１００２において、デジタル情報は、長さＬを有する記号のストリングとして受け取られる。一部のインプリメンテーションでは、フローチャート１０００において追加的なステップを取り込んで、記号のストリングを長さＢのビットのストリングに翻訳することができる。
【０１３０】
所与の制限内でコードするために、ステップ１００４において、分割スキームが決定される。分割スキームは、Ｃ個の別個コンポーネント配列のセットを使用して、記号のストリングをコードするためのルールのセットを定義する。具体的には、分割スキームは、第ｉの層にｃｉ個のコンポーネント配列が存在するように、Ｃ個の別個コンポーネント配列を配置するべきＭ個の層の数を定義し、各層におけるコンポーネント配列数を定義する。一部のインプリメンテーションでは、各層におけるコンポーネント配列の数は、不均一である（すなわち、ｃ１は、ｃ２に等しくない、等）。層の数およびコンポーネント配列の数は、記号のストリングのコードに必要な層の数を最小化するように構成し、これにより、デジタル情報の全体をコードするのに十分な識別子配列可能性を維持しつつ、識別子分子を形成するケミストリーを単純化することができる。記号のストリングをコードするのに十分な識別子配列可能性を確実にするために、コンポーネント配列数ｃｉの積（
【数９】
2021532799.tif 000011
）は、記号のストリングの長さ（ビット数で測定される）を超えるまたはこれに等しくなければならず、コンポーネント配列数ｃｉの和（
【数１０】
2021532799.tif 000012
）は、別個のコンポーネント配列の数Ｃ未満であるまたはこれに等しくならなければならない。一部のインプリメンテーションでは、識別子は、Ｍ個の層のそれぞれに由来する１個のコンポーネントをそれぞれ含む、可能な識別子配列の組み合わせ空間のサブセットを代表する。単純な例として、Ｌが、１，０００ビット（例えば、ステップ１００２における受け取ったビットストリームにおける１，０００ビット）に等しく、Ｃが、７０（例えば、プリントに利用できる７０個のプリンターインク）に等しい場合、層当たり１０個のコンポーネント配列を有する３個の層（Ｍ＝３）を使用して、データをコードすることができる。しかし、利用できる７０個のコンポーネント配列を最もよく活用するために、第１の層に５０個のコンポーネント配列を、第２の層に２０個のコンポーネント配列を有する２個の層（Ｍ＝２）を使用して、データをコードすることがより効率的となり得る。
【０１３１】
一部のインプリメンテーションでは、記号のストリングが、長さＢの記号のストリングに翻訳された場合、コンポーネント配列数ｃｉの積は、ビットに変換された長さＢの記号のストリングの長さを超えるまたはこれに等しくなければならない。例えば、記号の翻訳されたストリングが、「ＬＥＴＴＥＲ」である場合、Ｂは、６に等しいが、各文字が、８ビットによってコードされる場合、ビットの均等なストリングは、４８ビットからなる（Ｂは４８に等しい）。よって、をコードするのに必要とされるＭ個の層およびＣ個のコンポーネント配列の数「ＬＥＴＴＥＲ」は、
【数１１】
2021532799.tif 000013
のようにならなければならない。
【０１３２】
ステップ１００６において、第１の識別子は、例えば、（ｉ）Ｍ個の層のそれぞれから１個のコンポーネントを選択すること、（ｉｉ）Ｍ個の選択されたコンポーネントを区画に置くこと、および（ｉｉｉ）選択されたコンポーネントを物理的にアセンブルすることによって、プリンター／フィニッシャーシステムにより形成される。一部のインプリメンテーションでは、選択されたコンポーネントは、ライゲーションによってアセンブルされる。一部の例では、Ｍ個の層は、異なる優先度レベルに関連する。例えば、第１の層は、最高の優先度を有することができ、第２の層は、２番目に高い優先度を有することができる。
【０１３３】
ステップ１００８において、追加的な識別子が形成される。追加的な識別子は、コードされるべきデジタル情報を表す記号のストリングにおけるそれぞれの記号位置に対応する。記号のストリング内の各記号位置は、対応する異なる識別子を有することができる。必要な量の識別子が形成されたら、識別子は、ステップ１０１０においてプールに収集される。
【０１３４】
図１１は、各ワードを固定された重みでコードワードに翻訳するための均一重みコードを実証する。均一重みコーディングは、デコーディングを改善し、書き込みシステムの構成を単純化することができる。これのためのアプローチの１つは、あらゆる可能なソースワードの完全二部グラフを構築することおよびあらゆる可能なコードワードへのそれらのマッピングである。完全二部グラフの各エッジは、コードワードによって導入された「１」ビット値の数によって重みを加えられる。いずれの線形プログラミングに基づく多項式時間アルゴリズムが存在するかに関する問題である、最小重みマッチングを選ぶことにより、これを書き込むのに必要とされる識別子配列の総数を有効に「圧縮する」、ビットストリーム重みを最小化するマッピングを見出すことができる。かかるコードは、重み最小化コードと称することができる。「１」ビット値の数は、より長いコードワードを使用してソースビットストリームを再コーディングすることにより、最小化することができる。図１１において、３ビットのワードをコードするのに必要な、長さ５のコードワードの最小重みは、重み２である。しかし、３ビットワードは平均して、１．５の重みを有するため、このコードワードスキームは、長さ５のコードワードのための重みにおいて最小であるが、メッセージの総重みを実際に増加させる。例えば、コードワードが、長さ８へと拡張された場合、３ビットをコードするために１のコードワード重みが存在し得る。この例では、メッセージの全体的な重みは減らされるであろう。重み最小化技法を使用して、ソースビット当たりの必要とされる識別子配列の数を低減させることができる。
【０１３５】
配列決定によって識別子ライブラリーを読むことは、別個の識別子配列の複数のコピー（複数の核酸分子）分布からのサンプリングが関与する。識別子の濃縮における不均一性は、より少ないコピーの識別子のサンプリングを困難にし、より大きい試料の必要を推進し得る。本明細書に記載される書き込みシステムは、マルチプレックス化により反応区画において複数の識別子をアセンブルするため、また、各反応区画における識別子配列の数は、ソースビットストリームによって定義されるため、最終ライブラリーにおける各識別子の濃縮は変動し得る。この問題を軽減するためのアプローチの１つは、図１１に示す通り、全コードワードが固定された一定数の「１」値を含有する、均一重みコードを使用して、ソースビットストリームを再コーディングすることである。結果的に、各反応区画は、固定された数の識別子をアセンブルし、よって、濃縮における分散は、書き込みシステムを改変することなく最小化される。さらに、賢明にコードワード長さを選ぶことにより、均一重みコードは、ビットストリームの重みを最小化することもできる。例えば、１３の固定された重みの３７．４×１０６個の２８ビットコードワードのセットは、全２５ビットソースワードをコードし、２５／１３＝１．９２ビット／識別子を得ることができる。別の例として、１０の固定された重みの６４．５×１０６個の３２ビットコードワードのセットは、全２５ビットソースワードをコードし、２５／１０＝２．５ビット／識別子を得ることができる。
【０１３６】
均一重みコーディングの追加的な利益は、ライブラリーが読まれるときに、デコードされた各コードワードが、より頑強なデコーディング技法の使用を可能にする、既知の固定された数の「１」値を含有すると予想されることである。この考えを極端に推進すると、長いコードワード、例えば、１０２４ビットは、複数の反応に及び得るが、さらに１０ビットをコードする単一の識別子のみのアセンブルを要求し得る；これは、非常に少ない識別子を構築する必要が原因で高いコード率を、また、識別子当たりにコードされるより高いビットが原因で高いデコード率を可能にする極端な「重み圧縮」を生じ得る。
【０１３７】
上に記載されている再コーディング技法は、古典的冗長性バイトがコンピュータ処理された後に組み合わせ層において適用されるため、誤り保護性能に影響を有し得る。例えば、２５ビットソースワードが、均一重み１３の２８ビットコードワードにマッピングされる場合、マッピングは等尺性でない場合がある：すると、１コードワード誤りは、ソースワードにおいてマルチバイト誤りを引き起こし得る。コードの最小距離が低減されるため、極端な重み最小化は、コードされたビットのＳＮＲ（シグナル対ノイズ比）に影響を与える場合もある。これらの課題を調査および矯正するために、ほぼ等尺性にコードワードに埋め込まれ得るソースワードを含む、重み最小化均一重みコードを使用することができる。これは、より長いコードワードの使用をもたらし得るが、より優れた誤り性能も提供する。これらの制約の全てに対して同時最適化するコードスキームを生成するために、ツールは、層を最小化すること、スパンを最大化すること、反応区画を最小化すること、重みを最小化すること、および誤り保護性能を保存する一定重みコードワードを使用するコードを見出すことができる。
【０１３８】
概ね１Ｍｂ／秒のスループットは、上に記載されている通り、エンコーダーのためのＣＰＵ−スレッド当たり達成可能となり得る。例として、９３Ｍｂ／秒（１ＴＢ／日）の速度は、３２ＣＰＵ（  −  １０ＴＢの一時的ディスク空間および  −  ３ＴＢの発信帯域幅）の４インスタンスを使用して達成可能となり得、これは、１０８０ジョブにわたり償却され得る。同様のインフラストラクチャーが、書き込みシステムにローカルに接続された場合、このコードされた情報を産生するコストは概ね半減され得、発信帯域幅のコストを節約し、摂取がフリーであったことを仮定する。ＧＰＵまたはサーバーレスクラウド関数の使用は、ソフトウェアリファクタリングおよびプラットフォーム依存性の費用で、さらにこのコストを低減させることができる。
【０１３９】
アーカイブからのソースビットストリームの回復は、上に記載されているプロセスとは概ね反対のプロセスに従う。図１２は、識別子のセットをデコーディングする基本的なステップによる系統図を示す。システムは、目的の識別子のサブセットのプールを得る。目標は、プールの適切なサンプリングにおいて観察された配列を産生した最高の見込みを有する識別子配列のセットを再構築することである。シミュレーションモデルを使用して、試料サイズ推定値を先ず、デコードされるべき識別子サブライブラリーに関してコンピュータ処理し、不完全サンプリングの小さい許容される確率を得る。コンピュータ処理試料サイズを使用して、識別子ライブラリーをサンプリングおよび配列決定して、観察された配列のストリームまたは収集物を得た。
【０１４０】
観察された配列ｓを考慮する。上に記載されているアーカイブに記憶された表現情報から、配列が、Ｌ個の層を有するＬＣＰＣＣ識別子ライブラリーに由来することが既知であり、層ｉの第ｊのコンポーネントは、コンポーネント配列ｃｉｊを含有する。したがって、観察された配列ｓは先ず、全ｊについてコンポーネント配列ｃ１ｊと比較される。的確なマッチが見出される場合、ｓのマッチしない接尾語は、この場合はｉ＝２により、この同じプロセスを起こす。的確なマッチが見出されない場合、速い近似マッチングスコアは、近似ストリングマッチング技法（ＡＳＭ）または整列技法またはｎ−ｇｒａｍアプローチを使用して、ｓのいずれかの接頭語およびコンポーネント配列ｃ１ｊについてコンピュータ処理される。ＡＳＭ（近似ストリングマッチング）方法を評価して、後述するナノポア配列決定デバイスから予想される通り、ストリーミング配列データの「オンライン」マッチングに対するその適合性を決定することができる。
【０１４１】
長さｌｃのコンポーネント配列に関して、コンポーネント配列の可変セグメントのみが、識別される必要がある。全塩基をデコードしようと努めるビット毎の書き込みスキームとは異なり、コンポーネント配列の可変セグメントは、１ｃ／３もの小ささとなることができる。このプロセスは、ｓの処理されていない接尾語で反復され、マッチスコアによって重みを加えた頂点を有するＬ部グラフをもたらす。上位の重みを加えたパスは、候補識別子配列に対応し、各候補は、スコアを有する。識別子配列は、順序付けされた組み合わせ空間に属するため、各候補識別子配列は、コードされたストリームにおける記号に対応する。一部の候補識別子配列は、コードワードのルールと矛盾し得る；例えば、コードワードは、固定された重みのものとなり得る。これらの候補は、低いスコアに基づき排除することができる、または候補の代替的なセットとして節約することができる。最後に、上位ランキング候補を通ったパスが構築されて、コードワードの候補配列を得る。次に、コードワードのこの配列は、固定データに対してチェックされ、可能な場合は誤り訂正記号を使用して訂正される。極端なノイズまたは誤りの場合、技法は、バックトラックし、候補識別子を通った代替的なパスを選んで、候補の正確な配列を探索することができる。
【０１４２】
コードワードが得られたら、暗黙Ｌｅｈｍｅｒコードブックを使用して、これを再びソースワードにマッピングして、誤り保護されたソースブロックを得る。次に、これらのブロックをデコードおよびチェックして、固定を検証する。誤りが見出される場合、誤り保護記号を使用して、可能であればこれを訂正し、ソースブロックを回復する。ソースブロックは、ソースビットストリームへと適切にアセンブルされ、問い合わせ応答アセンブリ、送達およびキャッシングのためにブロック層に引き渡される。
【０１４３】
図１３は、核酸配列に記憶されたデジタル情報を読むためのステップの概要を述べるフローチャート１３００を示す。ステップ１３０２において、識別子のプールが得られる（例えば、図１４に関して記載された方法により）。プールにおける識別子は、長さＬの記号のストリング由来のデジタル情報を記憶する。識別子のプールは、長さＬを有する記号のいずれかのストリングをコードすることができる、識別子ライブラリーにおける識別子配列のサブセットに対応する。プールにおける個々の識別子のそれぞれは、記号のストリングにおける記号値および記号位置に対応する。個々の識別子のそれぞれは、複数のコンポーネントを含み、よって、特異的配列のインスタンスである。
【０１４４】
ステップ１３０２と１３０４との間に、識別子は、様々な仕方で処理することができる。一部のインプリメンテーションでは、識別子は、第２の識別子にライゲーションされる。一部のインプリメンテーションでは、識別子の一方の鎖が分解される。例えば、鎖特異的エキソヌクレアーゼを使用して、識別子の一方の鎖を選択的に分解することができる。
【０１４５】
ステップ１３０４において、得られた識別子のうち少なくとも１個を読んで、少なくとも１個の識別子の部分に対応する読み取りデータ配列を得る。ステップ１３０４は、化学的配列決定、チェーン・ターミネーション配列決定、ショットガン配列決定、ブリッジＰＣＲ配列決定、単一分子リアルタイム配列決定、イオン半導体配列決定、パイロシークエンシング、合成による配列決定、組み合わせプローブアンカー合成配列決定、ライゲーションによる配列決定、ナノポア配列決定、ナノチャネル配列決定、超並列シグネチャー配列決定、ポロニー配列決定、ＤＮＡナノボール配列決定、単一分子蛍光配列決定、トンネル電流配列決定、ハイブリダイゼーションによる配列決定、質量分析配列決定、マイクロ流体配列決定、透過型電子顕微鏡配列決定、ＲＮＡポリメラーゼ配列決定またはｉｎ  ｖｉｔｒｏウイルス配列決定等、いずれかの配列決定技法によって達成することができる。核酸、この場合は識別子のプールの配列決定は、プール全体の読み取りデータ配列を生じる；しかし、プールの各識別子が読み取りデータ配列にマッピングする仕方については分かっていない。配列決定方法は、単一塩基誤りの傾向があり、読み取りデータ配列への識別子のマッチングをさらに邪魔する。
【０１４６】
一部のインプリメンテーションでは、ステップ１３０４は、ナノポア配列決定を含む。電場が、電解液および少なくとも１個のナノポアチャネルに印加される。一部のインプリメンテーションでは、少なくとも１個のナノポアチャネルが、ソリッドステート膜内に形成される。一部のインプリメンテーションでは、ナノポアチャネルは、アルファ−溶血素（αＨＬ）またはｍｙｃｏｂａｃｔｅｒｉｕｍ  ｓｍｅｇｍａｔｉｓポリンＡ（ＭｓｐＡ）から形成される。ナノポア配列決定中に、識別子が、少なくとも１個のナノポアチャネルを通って移行され、その際に、チャネルをわたるインピーダンスが測定される。識別子における各コンポーネントは、コンポーネント配列の長さに沿って、対応するユニークインピーダンスシグネチャーを有し、よって、読み取りデータ配列におけるコンポーネントが、測定されたインピーダンス値をユニークインピーダンスシグネチャーと比較することによって決定されることを可能にする。
【０１４７】
一部のインプリメンテーションでは、ステップ１３０４が、ナノポア配列決定を含む場合、印加された電場は、１００ｍＶを超えるか、またはこれに等しい差次的電位を生成する。この高い差次的電位は、識別子が、相対的に高速でナノポアチャネルを通過することを可能にする。例えば、識別子の移行は、毎秒１，０００塩基を超える速度で起こり得る。特に、移行速度は、毎秒１，０００，０００塩基となり得る。
【０１４８】
一部のインプリメンテーションでは、ステップ１３０４がナノポア配列決定を含む場合、移行前に識別子に薬剤を結合させる。例えば、薬剤は、化学的部分、タンパク質、酵素、塩基アナログ、コンジュゲートされた核酸、ヘアピンを有する核酸またはメチル基となることができる。一部のインプリメンテーションでは、薬剤が化学的部分である場合、メチルトランスフェラーゼ等の酵素が、化学的部分を少なくとも１個の識別子核酸分子に結合させる。一部のインプリメンテーションでは、薬剤が塩基アナログであり、薬剤が、ポリメラーゼ等の酵素を使用して結合される場合、酵素は、塩基アナログを複製中の少なくとも１個の識別子核酸分子に結合させる。
【０１４９】
薬剤は、読むステップにおいて識別子における配列の決定を助けるために使用することができる薬剤シグネチャーに関連する。少なくとも１個の識別子核酸分子に薬剤を結合させるステップは、既知の場所における薬剤シグネチャーが、移行中のインピーダンス値の既知シフトをもたらすように、識別子のコンポーネント上の既知の場所において発生する。よって、薬剤の存在は、識別子に関する誇張された「プロファイル」を作成し、これにより、読むステップにおけるシグナル対ノイズ比を増加させ得る。これは、読むステップにおける精度を維持しつつ、移行スピードを増加させることができる。特に、少なくとも１個の識別子における薬剤の存在は、少なくとも１個の核酸分子上の薬剤の非存在下で所望のレベルの精度を達成する第２の最大移行速度よりも速い、所望のレベルの精度を達成する第１の最大移行速度を可能にすることができる。読むステップにおけるシグナル対ノイズ比を増加させる別の仕方は、改変された塩基または塩基アナログを含むように、識別子を複製するステップを含む。これは、別々に、または識別子に薬剤を結合させるステップに加えて行うことができる。
【０１５０】
ステップ１３０６、１３０８、１３１０および１３１２は、識別子配列の既知セット（すなわち、識別子ライブラリー）に読み取りデータ配列をマッチさせる方法について記載する。ステップ１３０６において、読み取りデータ配列を使用して、読み取りデータ配列に近似するまたは的確にマッチするコンポーネント配列を有する識別子ライブラリーから候補識別子配列のセットを識別する。例として、読み取りデータ配列（識別子と正確にマッチしてもマッチしなくてもよい）は、ＣＡＧＣＴＧとなることができる。候補識別子配列のセットは、的確なマッチ（ＣＡＧＣＴＧ）と共に、ある特定の数の塩基（例えば、１、２、３、１０、２０、１００個等）が異なる識別子配列等、読み取りデータ配列と類似する他の潜在的マッチを含むことができる。例えば、候補識別子配列のセットは、ＣＡＧＡＴＧ、ＡＡＧＣＴＡおよびＣＡＣＧＴＧを含むこともできる。参照し易くするために、「不正確な」ヌクレオチド（すなわち、この例では読み取りデータ配列にマッチしないヌクレオチド）に下線を引く。
【０１５１】
一部のインプリメンテーションでは、識別子は、各識別子が読み誤り許容度に関連する（例えば、同じ層のコンポーネント間の最小ハミングまたはレーベンシュタイン距離を確実にすることにより）ようにコードされる。許容的な読み誤り許容度を使用して、識別子が読まれる速度を増加させることができる。読みスピードを増加させる別の仕方は、識別子のサブセットを読むステップを含む。一部のインプリメンテーションでは、識別子は、Ｍ個の層に対応するＭ個のコンポーネントを含む（図１０に関して上に記載されている通り）。一部のインプリメンテーションでは、識別子を読むステップは、Ｍ個のコンポーネントのうちＮ個のみを読むステップを含み、ＮはＭ未満である。例えば、５個の層のうち最初の２個の層のみを読むことができる。これは、所与の時間量で読まれる識別子の数を増加させることができる。これは、プールにおいてコードされたデータのサブセットが、アクセスされる必要がある場合に役立つことができる。例えば、第１の層が、ある特定の有意義な値を常に指し示す場合、ある特定の有用な識別子は、第１の層にアクセスすることによってのみ識別することができる。あるいは、例えば、アクセスされた識別子が全て、最初の４個の層において同じコンポーネントを有する場合、これら４個の層は、読まれる必要がない。
【０１５２】
ステップ１３０８において、各候補識別子配列は、各候補識別子配列のコンポーネント配列が読み取りデータ配列とどの程度類似するかに関連するスコアを割り当てられる。候補識別子配列が、読み取りデータ配列に良くマッチするにつれて、スコアは、より低く（またはより高く）なることができる。スコアは、最小距離アルゴリズム、パーセントマッチまたは他のいずれかの適したアルゴリズムを含む、種々の仕方でコンピュータ処理することができる。例として、読み取りデータ配列ＣＡＧＣＴＧに関して、候補配列ＣＡＧＣＴＧは、ゼロのスコアを有することができる一方、候補配列ＣＡＧＡＴＧは、候補配列の第４の塩基が読み取りデータ配列にマッチしないため、１のスコアを有することができる。スコアは、不正確である塩基の数および／または不正確な塩基の配置に依存し得る。例えば、互いに隣接する２個の不正確なヌクレオチドを有する候補（ＣＡＣＧＴＧ）は、隣接しない２個の不正確なヌクレオチドを有する候補（ＡＡＧＣＴＡ）よりも低いスコアを有することができる。
【０１５３】
スコアのセットは、ステップ１３１０における決定をガイドして、ステップ１３０４において読まれた（または観察された）識別子との潜在的マッチとして候補識別子配列のうち１個を選択し、これにより、単一塩基配列決定誤りの効果を軽減する。例えば、読み取りデータ配列に最も近い潜在的マッチであるため、最低スコアを有する候補配列を選択することができる。ステップ１３１２において、次に、選択された候補識別子配列は、識別子ライブラリーを使用して、記号位置および記号値にマッピングされる。一部のインプリメンテーションでは、ステップ１３０４が、ナノポア配列決定を含み、識別子に薬剤が結合されている場合、識別子における配列を決定するステップは、移行中の測定されたインピーダンス値を薬剤シグネチャーと比較するステップを含む。
【０１５４】
一部のインプリメンテーションでは、ステップ１３０６、１３０８、１３１０および１３１２は、所望のデジタル情報が、識別子のプール（または複数のプール）から完全にアクセスされるまで反復される。一部のインプリメンテーションでは、デコードされた記号のストリングは、精度に関して決定および検査される。具体的には、デコードされた記号のストリングの部分のハッシュを計算し、次いで、ステップ１３０２において得られた記号のストリングの対応する部分に関連するハッシュと比較することができる。ハッシュは、図８に関して記載されている通り、プールにおける複数識別子として記憶することができる（そしてその後、上述の図１３のステップにより読むことができる）、または図９に関して記載されている通り、遠隔に記憶することができる。ハッシュは、ＭＤ５、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＳＨＡ−５１２／２２４もしくはＳＨＡ−５１２／２５６または他のいずれかの適したアルゴリズムを使用して計算することができる。読み出されたまたは本来のハッシュと、コンピュータ処理されたハッシュとの間のミスマッチは、データを読む際の読み誤りが存在したことを指し示す  −  例えば、核酸分子から抽出された情報は、原始データにマッチしない。計算されたハッシュが、読み出された本来のハッシュにマッチするか否かに基づき、デコードされた記号のストリングの部分は、ステップ１３０２において得られた記号のストリングの部分とのマッチとして検証することができる。ハッシュがマッチしない場合（または、デコードされたストリングが、他のいずれかの手段により得られたストリングにマッチしないことが決定される場合）、異なる候補識別子配列（例えば、ステップ１３０６由来の候補識別子配列のセットのもの）を選択することができる（例えば、上に記載されているステップ１３１０の通りに）。識別子は、デコードおよび検証されるため、コンピュータシステムは、この情報を追跡し、機械学習技法を使用して、デコードされた記号のストリングが記号のストリングにマッチする見込みを増加させることができる。よって、図１３によって開示される誤りに寛容な方法は、例えば、上に記載されている通り、相当に大きい印加電圧でナノポア配列決定を実行する、配列決定技法に対し異例の改善を為すための基盤を設ける。
【０１５５】
グラムを単位として、所与のプールにおける材料の総量は、マイクログラム含量とすることができる。プールにおける分子を正確に読むために、分子をＰＣＲで増幅して、冗長性、アーカイブおよびアクセスに十分な材料が存在することを確実にすることができる。識別子ライブラリー全体を１回のＰＣＲ反応で指数関数的に複製すること等ができるように、識別子の各エッジにおけるコンポーネントは、共通プライマー結合部位を有するように設計することができる。
【０１５６】
さらに、ネステッドＰＣＲに基づく化学的ランダムアクセス方法を、読むために識別子のサブライブラリーに効率的に使用することができる。図１４は、アーカイブされたＤＮＡライブラリー由来の識別子のサブライブラリーにアクセスするためのネステッドＰＣＲ増幅スキームの例を説明する。サブライブラリーは、データブロック、いくつかのデータブロック、単一の識別子、いくつかの識別子等、アクセスすることが望まれる識別子のいずれかの群となることができる。識別子のエッジ層におけるコンポーネントに結合する（Ａ）プライマーによる第１の増幅ステップにおいて、所望のデータブロックを含む識別子の群が選択および濃縮される。このプロセスは、内向きに次の２個の層におけるコンポーネントに結合する（Ｂ）プライマーにより反復され、したがって、識別子の群を、所望のデータブロックを含むより小さい試料へとさらに低減した。このプロセスは、回収された（またはアクセスされたもしくは選択された）識別子の群が、所望のデータブロックを表す全識別子のみでまたはほぼそれのみで構成されるまで反復することができ、よって、データブロックが配列決定により効率的にリードバックされることを可能にする。ネステッドＰＣＲの最終ラウンドにおいて、識別子は、配列決定のために同時に調製することができる。増幅のためのこのネステッドアプローチにより、アクセスされる識別子の数および同一性が調整され、配列決定負荷が低減される。一部のインプリメンテーションでは、増幅ステップは、７サイクルまたはそれ未満に限定されて、ライブラリーにおける増幅バイアスを低減し、配列存在量の均一性を維持する。プライマー組合せは、識別子により検証して、増幅プロセスの効率および均一性を実証することができる。後述する通り、このアクセス方法は、データ構造と併せて使用して、それらの関連するブロックＩＤによってデータのブロックを回収することができる。ネステッドＰＣＲの代替として、特定のコンポーネントにユニークに結合する親和性タグ付けされたプローブを、ネステッド様式で使用して、読むために識別子の特定のサブライブラリー（例えば、データブロックを表す）にアクセスすることができる。
【０１５７】
１３０４において識別子核酸分子を読むステップは、ナノポア配列決定により達成することができる。ナノポア配列決定は、サイズおよびスケーラビリティによる利点を提供する。ナノポア配列決定は、電解液およびナノポアに電場を印加することが関与する。印加電圧下で、核酸分子は、ナノポアを通過し、電解液の流動を中断し、測定可能なインピーダンスを引き起こす。インピーダンスデータセットを処理することにより、核酸分子に対応する全配列を得ることができるように、各ヌクレオチドは、ユニークインピーダンス値に相関し得る。ナノポアは、ソリッドステート基板におけるチャネルによってまたはタンパク質によって形成され得る。タンパク質は、脂質膜、または金属、金属合金およびポリマーに基づく基板等のソリッドステート基板に埋め込むことができ、一般的なナノポアタンパク質は、アルファ−溶血素（αＨＬ）およびｍｙｃｏｂａｃｔｅｒｉｕｍ  ｓｍｅｇｍａｔｉｓポリンＡ（ＭｓｐＡ）を含む。評価基準のため、Ｏｘｆｏｒｄ  ＮａｎｏｐｏｒｅのＰｒｏｍｅｔｈＩＯＮシステムは、およそ１．５平方フィートのサイズであり、４８時間で１２Ｔｂ（１２．０Ｅ＋１２塩基対）を配列決定することができる。本明細書に記載される書き込みスキームは、高い忠実度を有することが検証された予め作製されたＤＮＡコンポーネントを使用するため、いかなる配列誤りも、試料調製および配列決定中でのみ導入される可能性があることに留意することが重要である。さらに、識別子に存在するコンポーネントを識別するために、単一塩基分解能は必要とされない場合がある。これらの理由から、試料調製プロトコールを調整し、圧縮技法（少なくとも、既に圧縮されていないデジタル情報に対する）を実行することにより、配列決定スピードに対する改善が可能になる。
【０１５８】
Ｏｘｆｏｒｄナノポア配列決定のための標準鋳型調製スキームは、核酸分子へのアダプタータンパク質複合体のライゲーションが関与する。一部のアダプタータンパク質は、核酸分子が脂質二重層を標的とすることを可能にする疎水性テザーとして作用し、ナノポアが占有されていない時間を低減する。α−溶血素等の別のタンパク質またはモーターは、一本鎖がナノポアに進入することができるように、二本鎖核酸分子を分ける。次に、このモーターは、ナノポアを通して一本鎖核酸分子を徐々に動かすのを助ける。このプロトコールは、本明細書に記載される識別子ライブラリーおよびアンプリコン濃縮プランと全体的に適合性である。
【０１５９】
配列決定効率を増加させるために、増幅されたサブライブラリーにおける識別子を物理的につなぐことにより、ナノポア配列決定を最適化することが有利となり得る。ナノポア配列決定は、標的核酸分子がナノポアを見出すことを要求することができ、これは、読みスピードに寄与する。読み時間を増加させるために、識別子は、ライゲーションによって、より長い分子となるように物理的につなぐことができる。配列決定される分子の長さを５００ｂｐ未満から５，０００ｂｐ（またはそれよりも大きい）へと増加させることにより、ポア占有率を最大化させることができる。
【０１６０】
核酸分子がナノポアを通って移行するスピードを増加させることができる。電流ナノポア配列決定機器は、毎秒５００塩基対の速度で、ナノポアを通して核酸分子を移行させる。ナノポア膜をわたる差次的膜電位（例えば、１００ｍＶを超える）の確立は、より速い速度（例えば、毎秒ほぼ１，０００，０００塩基）で核酸分子を移行する。大部分の配列決定適用に関して、数十万オーダーでの速度は速すぎ、単一の別個の塩基が検出されるために、タンパク質「モーター」を使用して、ポアを通して核酸分子を徐々に動かすことができる。よって、「モーター」なしでのナノポア配列決定の実行は、一本鎖核酸分子入力の生成および核酸分子シグナルの増幅を必要とし得る。反応から５０％を超える一本鎖核酸分子を達成する非対称ＰＣＲのために、いくつかの方法が存在する。プライマー融解温度を調整することにより、増幅プライマーは、一方の鎖の線形増幅へと反応を駆動するように設計することができる。それに代えて、ラムダエキソヌクレアーゼ等の鎖特異的エキソヌクレアーゼを使用して、５’リン酸化核酸分子鎖に特異的に結合し、二重鎖の一方の鎖を選択的に分解することができる。プロトコールは、一本鎖分子の９０％を超える産生を提供することができる。
【０１６１】
シグナル増幅に関して、核酸分子は、シグナル対ノイズ比を増強するための薬剤で改変することができ、「スーパーシグネチャー」を基本的に作成する。例えば、薬剤は、小分子、化学基、塩基アナログ、酵素、タンパク質、タンパク質複合体、ペプチドまたはアミノ酸となることができる。ナノポアシグナル増強のための一方法である、ｍＴＡＧ（活性化された基のメチルトランスフェラーゼ指向性移入）は、メチルトランスフェラーゼを使用して、ビオチン化Ｓ−アデノシル−Ｌ−メチオニン補助因子アナログ等の化学基を、配列モチーフにおけるアデニン塩基のＮ６原子に付加する。薬剤が塩基アナログである場合、これをＰＣＲにより識別子分子に付加することができ、ＰＣＲにおいて、塩基アナログは、反応ミックスに含まれ、複製の際に識別子分子の一本鎖に結合される相補鎖に取り込まれる。次に、識別子分子と塩基アナログの新たなハイブリッドを配列決定することができ、塩基アナログは、配列決定読み出しにおいてシグナル対ノイズ比を改善することができる。
【０１６２】
図１５Ａ〜図１５Ｂは、シグナルイベントを有するＤＮＡ識別子を示す。特に、図１５Ａ〜図１５Ｂは、薬剤でＤＮＡを改変することが、どのようにコンダクタンスを低減させ、シグナルの増加をもたらし、これにより配列決定イベントに関連するシグナル対ノイズ比（ＳＮＲ）を増加させるかを示す。図１５Ａに示す通りの無改変ＤＮＡ識別子と比較して、図１５Ｂに示す通りのより大きい化学的構造を有するＤＮＡ識別子が、コンダクタンスを低減させ、配列シグナルを増強する。グラフ１５０２、１５１２は、それぞれ配列決定識別子１５００および１５１０由来のシグナル（例えば、ソリッドステートポア由来の代表的シグナルイベント）を示す。単一および複数の改変された塩基を使用して、改変の種類、改変の数、および改変間のスペーシングによって定義される複雑なシグナルシグネチャーを作成することができる。図示する通り、改変された識別子読み取りデータのシグナルを示すグラフ１５１２は、無改変識別子読み取りデータのシグナルを示すグラフ１５０２よりも高いＳＮＲを示す。
【０１６３】
一部のインプリメンテーションでは、タンパク質モーターを使用して、ナノポアを通して核酸分子を移行することができる。タンパク質は、タンパク質モーターによる移行のスピードを増加させるように選択することができる。例えば、移行は、毎秒１，０００；１０，０００；１００，０００；または１，０００，０００塩基のオーダーとなることができる。現在のモータータンパク質を最適化して、増加したスピードでより優れた性能を示すことができる。例えば、モータースピードに関する発表されたヘリカーゼバリアントは、複数のバリアント構築物の合成を含む（商業的ＤＮＡ合成ベンダーを使用して）。
【０１６４】
コアデコーディングの試みは、シグナルデコーディングおよび誤り回復を含む。例として、アーカイブは、１０個のプールとして書き込まれ、各プールは、それぞれ５個のコンポーネント配列の１７セットおよび２８個のコンポーネント配列の１セットに分割された１１３個のコンポーネント配列のコンポーネントライブラリーにより書き込まれると考える。各２５ビットソースワードは、重み１４識別子配列の２８ビットコードワードにマッピングされる。かかる組み合わせ空間のスパンは、プール当たり２１．４×１０１２個の識別子であり、いずれかのデータコードライブラリーのサイズは、４．１６×１０１１回の反応により概ね５．８２×１０１２個の識別子である。各識別子の均一な濃縮を仮定し、不完全サンプリング確率を１０−６に設定すると、サイズ４４×の、５．８２×１０１２個の識別子のプールのサイズの試料が必要とされる。よって、単一プールの配列決定は、２５６×１０１２個の読み取りデータをもたらすであろう。各コンポーネントが３０塩基長であると仮定すると、各読み取りデータは、５４０塩基の長さになり、近似長さ３４．６ＰＢ（ペタバイト）の配列ストリームをもたらすであろう。その代わりに、各１４ビットソースワードが、重み４の２８ビットコードワードにマッピングされるように、コードワード重みが４に低減される場合、要求され得るコンポーネントのスパンおよび数は未変化のままであり、一方、反応の数は、２．９７×１０１２に増加する。各識別子は、以前のスキームにおける１．７９ビットの代わりに３．５ビットをコードし、総読み取りデータは、１２８×１０１２に半減され、長さ１７．２ＰＢのストリームをもたらす。３４．６ＰＢ推定値を使用して、約３４．６×１０１５バイトのストリームを、２４時間のスパンで処理することができ、これは、３．２×１０１２ｂ／秒のスループットを要求し得る。高性能Ｘｅｏｎ  ＣＰＵに接続された１２ＧＢのメモリによるＮｖｉｄｉａ  ＧｅＦｏｒｃｅ  ＧＴＸ  Ｔｉｔａｎ  Ｘ  ＧＰＵ等の図形処理装置（ＧＰＵ）は、テキストおよびパターン長さに応じて０．３５×１０１２〜１×１０１２ｂ／秒の間を達成する近似ストリングマッチングならびに許容された編集距離のために使用することができる。Ｎｖｉｄｉａ  Ｔｅｓｌａ  Ｖ１００の１０インスタンス、およびクラウドプロバイダによって提供されるＧｅＦｏｒｃｅ  Ｔｉｔａｎ  Ｘに匹敵するＧＰＵを使用して、より高いシグナルデコーディングスループットを達成することができる。
【０１６５】
１０−４コードワードの書き込み誤り率および上に記載されているコードスキームを仮定すると、本出願人らは、２５００００ビット毎にまたは１２２個の２５５バイトスライス毎に概ね２５の誤ったビットを観察することを予想する。よって、独立的で均一にランダムな誤りを仮定すると、本出願人らは、４個の２５５バイトスライス毎にビット−誤りを予想する。よって、仮定される誤り率で、デコードされた全スライスの少なくとも７５％は誤りがないであろう。誤ったスライスをデコードすることが、これをコードすることの３倍の長さを要し、誤りのないスライスをデコードすることが、これをコードすることの３分の１の時間を要する場合、総デコーディング時間は、コード時間に概ね等しくなると算定される。
【０１６６】
シグナルデコーディングＧＰＵセットアップは、クラウドに基づくことができる。これから、ダブルカウンティング帯域幅および記憶コストではなく、上に仮定されるデコーディングのためのコンピュータ処理コストのみを含み、データを読むコストは、ビット毎の配列決定プロセスに要求されるコストに有意に満たない場合がある。全データ記憶およびコンピュータ処理が、クラウドではなくローカルに起こる場合、このコストをさらに低減させることができる。
【０１６７】
図１６は、アーカイブ演算の系統図を示す。アーカイブ（ＣＡＲ）は、ブート、オントロジー、インデックスおよびコンテンツ領域に分割される。ブート分割は、いかなる外部メタデータもなくデコードされ得る標準コードスキームを使用して書き込むことができ、他の分割を読むのに必要とされるパラメーター、キーおよびアドレスを記憶することができる。ＯＳは、上に記載されている通り、固定されたサイズブロックの収集物として記憶媒体を抽象化する。各ブロックは、識別子の単一プールとして記憶された、単一の識別子ライブラリーにおける識別子配列の近接配列である（しかし、ブロックは、故障許容度のためにいくつかのプールにおいて映され得る）。ＯＳは、ブロックの組織化、割り振りおよび書き込みの原因となる場合がある。ブロック層が、ソースビットストリームパケットを受け取る場合、ブロックインデックスは、アーカイブにおけるブロックにパケットを分け、割り振る。ブート分割は、ブロックＩＤを物理的アドレス（コンテナおよび識別子で構成される）にマッピングする階層的データ構造である、ブロックインデックスを含む。ブロックインデックスは、フリーの／使用されたブロックを追跡し、ブロックを新たなパケットに割り振る。各ブロックＩＤは、論理学的アドレスとなることができ、分子アーカイブにおける物理的アドレスに変換することができる。これは、図１６に説明されるブロックインデックスを横断することにより達成される。アドレスノードと呼ばれるデータ構造における各ノードは、Ｂツリーデータ構造と類似する子ブロックｉｄ範囲の配列を含有する（例えば、図１８に関して後述する通り）。各範囲は、目的のブロックへのパスにおける次のブロックを指す。このようにして、アドレスノードのツリーは維持されて、実際のデータを含有する分子アーカイブにおけるブロックを指すリーフノードに至る。このようにして達したリーフノードは、ブロックの物理的アドレスを識別するブロックＩＤを保持し、ブロックのハッシュを保持することもできる。内部ノードは、ハッシュ、その子ノードのハッシュの連結を含有し、よって、ハッシュツリーを形成することもできる。ブロックの物理的アドレスは、場所コード、コンテナコード、ならびに複数の識別子を記載した開始および終了識別子によって定義される識別子範囲を含む。ブロックＩＤは、２個以上の物理的アドレスへと分解して、故障許容度を許容することができる。例えば、これは、２個もしくはそれよりも多い異質なコンテナまたは２個もしくはそれよりも多い異質な識別子範囲にわたって拡散され得る。
【０１６８】
分子レベルでは、回収問い合わせは、２種の演算の組合せを使用して回答される：識別子サブライブラリー選択演算（例えば、上に記載されているネステッドＰＣＲまたはネステッド親和性タグアクセス方法による）および識別子を読む演算（例えば、上に記載されているインピーダンスに基づく方法による、または合成による配列決定による）。各演算は、正のコストを有し、数分間から数時間で測定される正の時間量を要する。選択演算は、コンポーネントの所与の固定された接頭語を有する識別子を再帰的に選択するいくつかの逐次ＰＣＲが関与し得る。長さｌｃ塩基の各コンポーネント配列を有するＬ個の層を有するＬＣＰＣＣに関して、識別子ライブラリーにおいてｐ回の逐次ＰＣＲ（ＳＰＣＲ）を行うことは、θｐ個の層によって識別子ライブラリー多様性を減少させ、θは、単一のＰＣＲによって網羅される層の数であるであろう。よって、非マルチプレックス層におけるｐ回のＳＰＣＲ後に、存在する識別子は、Ｌ−θｐ個の層において多様である。かかる識別子のそれぞれは、（Ｌ−θｐ）ｌｃ個の多様な塩基に対応する。配列決定技法が、最大長さ６の分子を読むことができる場合、ｐ回のＳＰＣＲ後にいずれかの識別子を配列決定することができるのに必要とされるＳＰＣＲの数ｐは、次の仕方で制約される：
【数１２】
2021532799.tif 000014
。ｐが所与の制約を満たすｐ回のＳＰＣＲの後で、スパンＤの可能な識別子の識別子ライブラリーは、Ｄ’識別子を含有する識別子ライブラリーへとトランケートされ、
【数１３】
2021532799.tif 000015
であり、ｃｂは、分割スキームのいずれかの基層におけるコンポーネントの数である。Ｌ＝１５層およびｃｂ＝６によるコードスキームを仮定すると、ｌｃ＝３０塩基、σ＝３００およびθ＝４は、ｐ＝２を生じる。この場合、トランケートされた識別子ライブラリーサイズＤ’≒６×１０５≦１０６識別子。例えば、各識別子の完全に均一な濃縮の単純モデルを仮定すると、高い確率を有する全識別子のサンプリングに要求され得る試料サイズは、クーポンコレクターモデルを使用して計算することができ、Ｓ≧βＤ’ｌｎＤ’であることが判明し、
【数１４】
2021532799.tif 000016
であり、αは、不完全試料の確率である。α＝１０−６の設定は、β＝２およびおよそＳ≧２８×１０６を生じ、選択されたサブライブラリーのサイズの２８×の試料サイズが十分となり得ることを示す。均一な濃縮の仮定が理想主義的であり、被覆度は、若干より大きい（ただし、不均一なクーポン収集分布はまた、平均の周りに集中されることが既知であることを考慮すると、極端に大きい訳ではない）必要がある場合があることに留意する。これは、ａの１０〜１００倍高い値の許容度を可能にする。
【０１６９】
必要とされるブロック演算の数は、次のステップにより計算することができる。例として、１０１９ビット、概ね１エクサバイトのアーカイブにおけるサイズ１０６ビットのデータブロックを考慮する。アーカイブは、１０１２ビットをそれぞれ含有する１０７個の区画化された識別子ライブラリーに分割された１０１３個のデータブロックで構成される。各識別子ライブラリーは、１０６個のデータブロックを含有する。各ブロックが、順序付けされた識別子の連続的範囲によって表される場合、各ブロックは、その第１の識別子およびその最後の識別子におけるコンポーネントの配列によって完全に定義することができる。Ｌ階層化スキームに関して、Ｃ個のコンポーネントのコンポーネントライブラリーにより、識別子範囲を含む物理的ブロックアドレスは、２Ｌ［ｌｏｇ２Ｃ］ビットを使用してコードされ得る。よって、Ｃ＝１１２およびＬ＝１５である場合、識別子範囲は、２７バイトでコードされ得る。同様の論拠によって、物理的コンテナアドレスをコードすることは、少なくとも３バイトを要求することができる。識別子範囲および物理的コンテナアドレスを含む物理的ブロックアドレスをコードするために、総計６４バイトを割り振ることができる。本出願人らは、１２８バイトを割り振って、ハッシュを記憶することができる。類似的に、ソースビットストリームにおけるいずれかのブロックのためのソースブロックＩＤは、６４バイトを要求し得る。最大５１２個の子ノードを支持することができるアドレスノードは、５１１個のブロックＩＤ範囲マーカーおよび５１２個のポインターを要求することができ、これらのそれぞれは、子ブロックの物理的アーカイブアドレス（例えば、コンテナアドレスおよび識別子範囲）である。よって、アドレスノードは、５１１×６４＋５１２×６４＋１２８バイトまたは５２４，８００ビットを要求することができる。誤り訂正バイトを含んで、かかるアドレスノードは、１０６ビットアーカイブブロックにおいてコード可能となるであろう。よって、１０６ビットアーカイブブロックを選択および読むことができる。
【０１７０】
かかるスキームを使用して、エクサバイトスケールアーカイブのための構造をアドレス指定する階層的ブロックは、５レベル以下の深さである必要があるであろう。ブロックの「コールド（ｃｏｌｄ）」キャッシュから始まり（すなわち、ブロックが問い合わせされていない）、ブロックＩＤを有する単一ブロックアクセスは、多くても６個の選択・読み演算を要求することができる：問題になっているブロックの物理的アドレスを見出すための（例えば、Ｂツリーを横断する）、５個の選択・読みペア、およびデータブロックを読むための、１個の選択・読みペア。ＯＳは、ブロックおよびブロックインデックスのこの基盤を使用して、インデックス化可能なアーカイブを築くことができる。記憶の基本単位は、ブロックであり、ブロックは、ブロックインデックスを使用して物理的アドレスにマッピングされるブロックｉｄを使用した他のブロックを指す。
【０１７１】
ビットのブロックにおける高レベル演算のそれぞれは、編成されるために化学的方法または物理的ステップに頼るいくつかの物理的演算に依存し、かつこれをもたらす。これは、２種類のソフトウェアツール：ブロック演算を物理的演算の最適化されたセットに翻訳する最適化ツール、および物理的演算を技術者または自動化デバイスによって実行されるべき動作の詳細なプログラムに変換する翻訳ツールが関与することができ、ビットのブロックにおける演算と物理的および化学的演算との間の翻訳装置の設計および実行を含むことができる。
【０１７２】
ＯＳは、ボトルネック資源（例えば、液体取り扱いロボットおよび技術者の時間）を割り振り、書き込み演算の作成−スパンを最小化するために、他の書き込み演算のスケジュールを組むこともできる。読むことの要求は、パターン問い合わせ（後述する通り）から生じ得、ブロックＩＤによって指定されたブロックの範囲を読むことを含む。ＣＡＲインデックスは、Ｂツリーとして組織化されるため（例えば、図１８に関して後述する通り）、各パターン問い合わせは、隣接するブロックの範囲における隣接するワードの範囲のアクセスへと翻訳する可能性がある。
【０１７３】
典型的には、パターン問い合わせは、結合および分離が関与し、ジョイン演算の最適化された配列へと翻訳されて、読みのフットプリントを最小化する。本明細書に記載されるシステムおよび方法において使用される問い合わせ最適化ツールは、ＣＡＲにおけるアクセスコストモデルを忠実に反映するように改変および増大され得る。ジョイン最適化後に、結合および分離を含む複雑なパターン問い合わせは、読まれるべきブロックのセットをもたらすことができる。ＯＳは、ブロックＩＤを物理的アドレス（コンテナおよび識別子）に変換するための、ブロックインデックスを読むための化学的ステップ、および標的ブロックを読むためのステップを生成することができる。標的ブロックのセットを読むことは、問い合わせ最適化ツールによって識別された逐次ＰＣＲのセットの実行に必要とされるプライマーのセットを識別することを要求し得る。ＯＳは、ＳＰＣＲおよび他の化学的方法のインスタンスを生成し、物理的試料アドレスならびに体積および濃度等の方法パラメーター値によりこれらを完了し、あらゆる必須の実験機具、機器および技術者を割り振ることができる。全体的フレームワークは、３種のタスクの原因となることができる：時間スケジューリング、資源割り振り、ならびに動作プログラムのコンパイルおよび生成。ＯＳは、ｊＢＰＭおよびＣａｍｕｎｄａ等のビジネスプロセスモデリングおよび自動化空間から現存のフレームワークを適応させることができ、Ｓｉｍｐｌｅ  Ｗｏｒｋｆｌｏｗ  ＳｅｒｖｉｃｅおよびＬｏｇｉｃ  Ａｐｐｓ等のクラウドワークフローツールは、フレームワークのために適応され得る。
【０１７４】
ＯＳは、少なくとも４種の自動化デバイスと相互作用することができる：書き込みシステム、読み取りシステム、液体取り扱いロボット、ならびに試料およびコンテナ管理システム。ＯＳは、これらのデバイスのいずれかによって自動化可能な物理的および化学的翻訳装置によって出力されるワークフローにおけるステップを、デバイス特異的指令に翻訳することができる。書き込みシステムは、コンポーネントのいずれのセットを一緒に設置するかに関してプログラムすることができ、反応明細フォーマットの設計および生成を要求することができる。図３は、例としてのフォーマットを説明し、組み合わせ空間を使用して、ビットストリームをコードし、反応明細へとシリアル化することができる仕方を示す。この例では、固定された重み３ビットの５ビットコードワードは、ソースワードをコードする。コードワードは、コードワードにおけるビットに対応する５個のコンポーネントを含む、４個の基層およびマルチプレックス層の組み合わせ空間に翻訳される。各コードワードは、単一反応にアセンブルされるべきであり、各反応は、４個の基礎コンポーネントおよび５個のうち３個のマルチプレックス層コンポーネント、または総計して７個のコンポーネントを含むことができる。階層化積コンストラクター由来の組み合わせ空間は、トライとして視覚化することができ、このトライにおけるルートからリーフへの各パスは、識別子である。下部に描写される通り、各反応においてアセンブルされるべき識別子のセットは、命令後に（ｉｎ  ｐｏｓｔ  ｏｒｄｅｒ）トライを横断することによりシリアル化することができる。この反応セット明細は、書き込みジョブ毎にＯＳによって生成され、図１７に説明される、ジョブおよびブロック記述子の形態で追加的な記述情報と共にパッケージされる。
【０１７５】
図１７は、ある特定の説明的な実施形態に従った、プリンター・フィニッシャーシステムによる書き込みワークフローを示す。プリントジョブ指令は、プリントヘッドコントローラーコマンドフレームへと分断され、個々のプリントヘッドに送られ、個々のプリントヘッドはそれぞれ、最大４種のインクをプリントすることができ、各インクは、単一コンポーネントを含有する。書き込みシステムは、ノズル検査（チャープ）シグナルをイメージングするカメラを備える。ＯＳは、誤り率が誤り保護スキームによって扱い易くなるまで、この画像データをオフラインで処理し、書き込み誤り率を推定し、潜在的見逃し識別子のための書き直し要求を生成するであろう。ＯＳは、コンテナを提出およびチェックアウトし、コンテナバーコード標識を生成するようにコンテナ管理システムを導くための指令も産生するであろう。エクサバイトスケールアーカイブのため、Ｈａｍｉｌｔｏｎ  ＶｅｒｓｏまたはＢｒｏｏｋｓ  ＳａｍｐｌｅＳｔｏｒｅ  ＩＩ等のコンテナバンクによって最大１０６個の識別子ライブラリーを管理することができる。かかるコンテナバンクも、第三者の実験室情報管理システム（ＬＩＭＳ）と統合される：例えば、Ｖｅｒｓｏ  ＡＰＩは、ＬａｂＶａｎｔａｇｅ  ８  ＬＩＭＳおよびＭｏｓａｉｃによって支持される。ＶｅｒｓｏおよびＭｏｓａｉｃは両者共に、ＯＳとの統合のためのＲＥＳＴｆｕｌ  ＡＰＩによるプログラム制御を支持する。ＯＳは、液体ハンドラーが、配列決定およびＳＰＣＲのための試料調製を容易にするための「候補リスト（ｐｉｃｋ−ｌｉｓｔ）」転送指令を生成することもできる。
【０１７６】
本明細書に記載されるシステムおよび方法は、アーカイブの大部分のデコーディングを要求することなく、増加的にアーカイブの保存、発見および問い合わせを提供する。アーカイブにおけるジョインおよび他の構造をコンピュータ処理する必要を最小化しつつ、選択的にかつ増加的に標的コンテンツを発見、問い合わせおよび読むことが可能となるべきである。最小化されるべき鍵となるメトリックは、問い合わせの配列を満たすためにデコードされるビットの総数である。
【０１７７】
図１８は、書き込みシステムのためのデータパスの例を示す。データブロックの意味的アノテーションを提供することができ、これはブロックＩＤを含み、リレーショナル情報はこれらをリンクし、コンパクトインデックスは、項をアクセスのためのブロックにマッピングする。リソース・ディスクリプション・フレームワーク（ＲＤＦ）は、アクセスのコストを最小化し、解釈の寿命を最大化しつつ、インデックス付けおよび発見可能性に取り組むための発見層を実行するフレームワークとなることができる。ＲＤＦは、実体のグラフをコードする主語−述語−目的語（ＳＰＯ）三重のセットとして資源に関する情報を表すための、ワールドワイドウェブ・コンソーシアムによって標準化された形式メタ言語である。データおよびさらにはデータセットのブロックをインターリンクする能力、ドメイン特異的語彙の統合、ならびに翻訳、インデックス付け、コンパクションおよびマイニングのためのツーリングを含む、ＲＤＦの鍵となる利点を活用することができる。
【０１７８】
アーカイブは、４個の分割へと因数分解することができる：起動、オントロジー、インデックスおよびコンテンツ。オントロジー分割は、用語およびクラスの語彙ならびにアーカイブに見出される全実体の標識のリストを含有する。そのようなものとして、これは、アーカイブのコンテンツの分類学を提供し、デコードフットプリントを最小化しつつ、標的化された発見を容易にすることを意図される。オントロジーは、生産者によって提供され得る、またはドメイン特異的ソフトウェアを使用して摂取中に構築され得る。インデックス分割は、三重記憶として組織化され得る。例えば、これは、パターン問い合わせを急速に供給する目標により、辞書編集上選別された三重（典型的には、６〜１８の間）のいくつかの収集物を記憶することができる。ＲＤＦ問い合わせは、例示であり、「ｓｅｌｅｃｔ  ｘ１，  ｘ２，  ．．．  ｘｋ  ｗｈｅｒｅ  ｛ｐ１  ａｎｄ  ｐ２  ａｎｄ  ．．．  ｐｎ｝」の形態をとり、ｘｉは、目的のデータ属性であり、ｐｉは、主語−述語−目的語パターンであり、それぞれは、変数またはリテラル値のいずれかである。例えば、「ｓｅｌｅｃｔ  名前  ｗｈｅｒｅ  ｛著者  ＜ｈａｓＮａｍｅ（名前を有する）＞  名前  ａｎｄ  本  ＜ｗｒｉｔｔｅｎＢｙ（によって書かれた）＞  著者  ａｎｄ  映画  ＜ｂａｓｅｄＯｎ（に基づく）＞  本  ａｎｄ  映画  ＜ｄｉｒｅｃｔｅｄＢｙ（によって監督された）＞  監督（ｄｉｒ）  ａｎｄ  監督（ｄｉｒ）  ＜ｈａｓＮａｍｅ（名前を有する）＞  “キューブリック（Ｋｕｂｒｉｃｋ）”｝」は、自身の著書が「キューブリック」監督によって映画化された全ての著者の名前を返す。パターンの各エレメントは、リテラルまたは変数となることができるため、ＳＰＯの６通りの並べ替えのいずれかが、問い合わせにおけるパターンを満たす三重の探索に必要とされ得る。満たした三重のカウントにより全ての単項および２進法関係（例えば、ＳＯ、ＳＰ、ＯＳ等）を記憶する追加的なインデックスを維持することができる。これらのインデックスは、Ｂツリーまたはトライ（図１８に関して後述する通り）として記憶され、パターンにおけるリテラルは、Ｂツリーまたはトライにわたるキーとして機能し、満たした三重は、リーフノードによって指されるブロックにおいて記憶される。ＲＤＦヘッダー辞書三重フレームワークを使用して、このインデックス組織化およびシリアル化スキームを実行することができる。ＲＤＦリテラルは、ストリングＵＲＩとなることができるが、これらのインデックスに記憶される場合、これは整数ｉｄにマッピングされる。隣接する三重は、接頭語リテラルを共有することができるため、圧縮された形態で差分として記憶することができ、識別子の範囲に直接的に翻訳することができる。
【０１７９】
かかるネイティブの意味的データ記憶の利点は、現在、インデックス全体を読むおよびデコードする必要がなく、問い合わせが満たされ得ることである。アーカイブのアナリスト開始発見が、起動およびオントロジー分割のデコーディングをもたらす。これらは、アナリストに普及しており、これからアナリストが初期問い合わせを構築し得る。ＲＤＦ問い合わせエンジン（例えば、Ｒｅｄｌａｎｄ  Ｒａｓｑａｌ）は、本明細書に記載されるソフトウェアと合わせて、このパターン問い合わせを、ＢツリーインデックスおよびＣＡＲブロックにわたるスキャンの最適化されたセットに転換することができる。結果は、満たした三重のセットおよび／または推定される三重カウントのセットとなることができる。これらの結果に基づき、アナリストは、画像、ビデオまたは科学的データセットを含む長い形態の標的コンテンツのデコーディングをもたらし得るさらなる問い合わせを提出することができる。インデックス付けは、申込者（Ａｐｐｌｉｃａｎｔ）記憶とネイティブに統合されるため、デコードされたフットプリントは、問い合わせ最適化ツールによって最小化され得る。
【０１８０】
インデックスに含まれる各実体は、均一な資源識別子（ＵＲＩ）に拡大する、整数ＩＤで参照される。しかし、ＵＲＩで参照される実体は、追加的な圧縮されたインデックスを必要に応じて有し得る、コンテンツ分割において記憶される。圧縮されたインデックス（例えば、ウェーブレットツリー）は、多重分解能アクセス、多重スキーム書き込み、および速い探索を可能にし、これらは全て、小空間オーバーヘッドを有する。
【０１８１】
図１８は、コンテナにおけるブロック識別（ＩＤ）に関連するデータのブロックを記憶するためのステップの概要を述べるフローチャート１８００を示す。ステップ１８０２において、複数のブロックが得られる。各ブロックは、記号のストリングを含み、ブロックＩＤに関連する。ブロックＩＤは、特定のブロックに関連するいずれかの識別する特徴または記号となることができる。例えば、これは、三重の形態の意味的アノテーションとなることができる。一部のインプリメンテーションでは、ブロックＩＤは、整数、ストリング、三重、属性のリスト、または意味的アノテーションである。例えば、ブロックに含まれる記号のストリングの第１のＸ記号は、当該ブロックのための数値的ＩＤを指し示すことができる。
【０１８２】
ステップ１８０４において、ブロック（ステップ１８０２において受け取った複数のブロックに属するブロックのうち１個）は、コンテナに割り当てられる。コンテナは、核酸分子を貯蔵することができる瓶、管または他の物理的貯蔵媒体等の物理的場所となることができる。コンテナは、単一のブロックまたは複数のブロックにリンクさせることができる。例えば、１個のコンテナは、情報のＢブロックに関連することができる。一部の実施形態では、コンテナは、複数のサブコンテナを含むことができる。
【０１８３】
ステップ１８０６において、ブロックは、コンテナに関連するべき識別子配列にマッピングされる。これらの識別子は、識別子範囲または識別子範囲の複数の異質な識別子を含むことができる。識別子範囲は、範囲に隣接する識別子を含むコンポーネント配列によって指定することができる。一部のインプリメンテーションでは、個々の識別子のそれぞれは、識別子範囲を２個の整数によって指定することができるように、別個の整数に関連する。複数の識別子配列の個々の識別子配列は、ブロックに記憶された記号のストリングにおける個々の記号に対応する。各識別子配列は、対応する複数のコンポーネント配列を含む。これらのコンポーネント配列のそれぞれは、別個の核酸配列を含む。
【０１８４】
ステップ１８０８において、複数の識別子配列の個々の識別子が構築される。例えば、Ｑ個の識別子配列のセットは、特定のコンテナに関連し得る。上に記載されている様々な方法に記載されている通り、これらＱ個の識別子配列のサブセットＶを物理的に構築して、ブロックにおける情報を表すことができる。
【０１８５】
ステップ１８１０において、ステップ１８０８において構築された識別子は、割り当てられたコンテナにおいて記憶される。例えば、次に、割り当てられたコンテナは、ブロックに記憶された情報を表す数Ｖの識別子を保持することができる。コンテナおよびそれに関連する複数の識別子核酸配列の同一性は、関連ブロックＩＤを使用して決定されるように構成される。一部のインプリメンテーションでは、同一性は、関連ブロックＩＤを使用した各コンテナの同一性のアクセスを容易にするように設計されたデータ構造において記憶される。例えば、データ構造は、Ｂツリー、トライまたはアレイのうち１種となることができる。一部のインプリメンテーションでは、データ構造の少なくとも部分は、インデックスにおけるデジタル情報と共に記憶される。インデックスは、第２のコンテナに関連する第２の複数の識別子配列を含むことができる。一部のインプリメンテーションでは、インデックスは、磁気ストレージデバイス、光学ストレージデバイス、フラッシュメモリデバイスまたはクラウドストレージにおいて記憶される。
【０１８６】
インデックスが、Ｂツリーデータ構造を含む場合、Ｂツリーの各ノードは、第２の複数の識別子配列の別個の複数の識別子（すなわち、ステップ１８０８において構築された識別子のセットとは異なる）を含むことができる。一部のインプリメンテーションでは、別個の複数の識別子の同一性を決定するために、Ｂツリーを探索することができる。Ｂツリーにおける特定のブロックＩＤを探索することは、第１のノードを含む別個の複数の識別子を選択し、第１のノードの値を読むことを含むことができる。識別子を選択し、ノードの値を読むステップは、後続のノードにより反復することができる。後続のノードを含む別個の複数の識別子の同一性は、第１のノードの値に関するブロックＩＤによって決定される。ある例では、第１のノードは、Ｂツリーのルートノードであり、ノードを選択する（上に記載されているランダムアクセス方法により）およびこれを読むプロセスは、Ｂツリーのリーフノードの値が読まれるまで続く。リーフノードの値は、ブロックＩＤに対するブロックが存在するか否か連絡するように構成される。ブロックＩＤが存在する場合、コンテナの同一性および前記ブロックを含む複数の識別子核酸配列（例えば、識別子範囲）の同一性は、ユーザーまたはシステムに連絡することができる。
【０１８７】
インデックスが、トライデータ構造を含む場合、トライの各ノードは、第２の複数の識別子配列の別個の複数の識別子を含むことができる。一部のインプリメンテーションでは、ブロックＩＤは、記号のストリングであり、トライにおける各ノードは、記号のストリングの可能な接頭語に対応する。ブロックＩＤのためのトライを通るパスが存在する場合、対応するブロックの物理的アドレス（コンテナおよび識別子範囲（単数または複数）で構成される）は、当該パスのリーフノードによって指定することができる。トライの各中間ノードは、別々の複数の識別子によって表すことができ、それが有する娘ノードの数、このような娘ノードがいずれの記号を表すか、このような娘ノードの物理的アドレス（コンテナ同一性および識別子範囲（単数または複数）で構成される）に関する情報を含有することができる。そのようにして、上に記載されている通り、選択・読み演算を使用して、Ｂツリーと類似して、ＤＮＡにおいてトライをナビゲートすることができる。
【０１８８】
データ構造が、アレイである場合、アレイの各エレメントは、第２の複数の識別子配列の別個の複数の識別子を含む。一部のインプリメンテーションでは、アレイにおける各エレメントは、ブロックＩＤに対応し、各エレメントは、当該ブロックＩＤの物理的アドレス（コンテナ同一性および識別子範囲（単数または複数）で構成される）を含有する。
【０１８９】
一部のインプリメンテーションでは、上に記載されているステップ１８１０において導入された（ブロック毎のコンテナおよび複数の識別子の）同一性のインデックスにおける場所は、ブロックＩＤにネイティブに構成される。ブロックＩＤは、ブロックの物理的アドレスを含有する唯一のおよび全ての識別子が共有する複数のコンポーネントに直接マッピングされることができる。同一性を記憶するインデックスにおける複数の識別子核酸分子は、複数のコンポーネントをそれぞれ含む個々の識別子核酸分子で構成され得る。一部のインプリメンテーションでは、ブロックＩＤは、コンテナおよびコンテナにおける対応するブロックの唯一のおよび全ての識別子が共有する複数の核酸コンポーネントに直接マッピングされる。一部のインプリメンテーションでは、ブロックＩＤは、関連ブロックをアノテートする三重の実体であり、三重の実体は、複数の核酸コンポーネントにマッピングする。コンポーネントを含む個々の識別子を含むインデックスにおける複数の識別子は、実体によりアノテートされる全ブロックの物理的アドレスを記憶することができる。それに代えてまたはそれに加えて、前記実体によってアノテートされた全ブロックを含むアーカイブのコンテンツにおける複数の識別子は、前記実体を表す対応する複数の核酸コンポーネントを排他的に含むことができる。
【０１９０】
本明細書に記載される方法（例えば、図８〜図１０、図１８に関して記載されている方法）のいずれかに従ったデジタル情報を記憶するためのシステムは、核酸の複数のコンテナを記憶するための試料管理システムを含むことができる。システムは、試料管理システムから指定されたコンテナを回収するための自動化機械を使用することができる。一部のインプリメンテーションでは、この試料管理システムは、図１８に関して上に記載されているＤＮＡ保持識別子を含むが、いずれかの種類の物理的またはコンピュータで表されるデータ記憶エレメントも含む、いずれかの種類のコンテナのアクセスに使用される。
【０１９１】
前述は、単に本開示の原理を説明しており、装置は、限定ではなく説明目的で示されている、記載されている実施形態以外によって実施することができる。本明細書に開示される方法が、核酸に基づくデータ記憶における使用のために示されているが、データ記憶を要求する他の適用におけるシステムに適用することができることを理解されたい。
【０１９２】
変動および改変は、本開示の概説後に当業者によって想定される。開示されている特色は、本明細書に記載される１種または複数の他の特色と共に、いずれかの組合せおよびサブコンビネーション（複数の従属組合せおよびサブコンビネーションを含む）において実行することができる。そのいずれかのコンポーネントを含む、上に記載または説明されている様々な特色は、他のシステムにおいて組み合わせるまたは統合することができる。さらに、ある特定の特色は、省略することができるまたは実行されなくてよい。
【０１９３】
記載されているシステムおよび方法は、プリンター／フィニッシャーシステムにおいてローカルで実行することができる。プリンター／フィニッシャーシステムは、データ処理装置を含むことができる。本明細書に記載されるシステムおよび方法は、別々のデータ処理装置において遠隔で実行することができる。別々のデータ処理装置は、クラウドアプリケーションを介してプリンター／フィニッシャーシステムに直接的にまたは間接的に接続することができる。プリンター／フィニッシャーシステムは、リアルタイム（または殆どリアルタイム）で別々のデータ処理装置と連絡することができる。
【０１９４】
一般に、本明細書に記載されている主題および関数演算の実施形態は、本明細書に開示されている構造およびその構造的均等を含む、デジタル電子回路においてまたはコンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、またはこれらの１個もしくは複数の組合せにおいて実行することができる。本明細書に記載されている主題の実施形態は、１個または複数のコンピュータプログラム製品、すなわち、データ処理装置による実行のためのまたはその演算を制御するための、コンピュータ可読媒体にコードされたコンピュータプログラム指令の１個または複数のモジュールとして実行することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬シグナルに影響する組成物、またはこれらの１個もしくは複数の組合せとなることができる。用語「データ処理装置」は、プログラム可能なプロセッサー、コンピュータまたは複数のプロセッサーもしくはコンピュータを例として含む、データを処理するためのあらゆる装置、デバイスおよび機械を包含する。装置は、ハードウェアに加えて、問題になっているコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサーファームウェア、プロトコールスタック、データベース管理システム、オペレーティングシステムを構成するコード、またはこれらの１個もしくは複数の組合せを含むことができる。伝搬シグナルは、適した受信側装置への伝送のための情報をコードするために生成される、人為的に生成されたシグナル、例えば、機械に生成された電気的、光学的または電磁気シグナルである。
【０１９５】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても公知）は、コンパイルまたは解釈された言語を含む、プログラミング言語のいずれかの形態で書き込むことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチンもしくはコンピュータ処理環境における使用に適した他のユニットとしてを含む、いずれかの形態で展開することができる。コンピュータプログラムは、ファイルシステムにおけるファイルに対応することができる。プログラムは、問題になっているプログラムに専念する単一のファイルにおいて、または複数の協調したファイル（例えば、１個または複数のモジュール、サブプログラムまたはコードの部分を記憶するファイル）において、他のプログラムまたはデータ（例えば、マークアップ言語ドキュメントにおいて記憶された１個または複数のスクリプト）を保持するファイルの部分において記憶され得る。コンピュータプログラムは、１個のコンピュータにおいて、またはある１拠点に設置されたもしくは複数の拠点にわたり分布し、通信ネットワークによって相互接続された複数のコンピュータにおいて実行されるように展開され得る。
【０１９６】
本明細書に記載されているプロセスおよび論理学の流れは、入力データにおいて操作し、出力を生成することにより関数を行うための、１個または複数のコンピュータプログラムを実行する１個または複数のプログラム可能なプロセッサーによって行うことができる。プロセスおよび論理学の流れは、特殊用途論理学回路、例えば、ＦＰＧＡ（フィールドプログラム可能ゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）によって行うこともでき、装置は、それらとして実行することもできる。
【０１９７】
コンピュータプログラムの実行に適したプロセッサーは、汎用および特殊用途マイクロプロセッサーの両方、ならびにいずれかの種類のデジタルコンピュータのいずれか１個または複数のプロセッサーを例として含む。一般に、プロセッサーは、読み取り専用メモリもしくはランダムアクセスメモリまたはその両方から指令およびデータを受け取るであろう。コンピュータの必須エレメントは、指令を行うためのプロセッサー、ならびに指令およびデータを記憶するための１個または複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための１個または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスクもしくは光ディスクを含むであろう、またはそれらからデータを受け取るもしくはそれらにデータを転送するまたはその両方を行うように動作可能に合わせるであろう。しかし、コンピュータは、かかるデバイスを有する必要はない。
【０１９８】
変化、置換および変更の例は、当業者によって確かめられ、本明細書に開示される情報の範囲から逸脱することなく為すことができる。本明細書に引用されるあらゆる参考文献は、これによりそれらの全体が参照により本明細書に組み込まれ、本願の一部を為す。
【図１】
2021532799.tif 000017
【図２−１】
2021532799.tif 000018
【図２−２】
2021532799.tif 000019
【図３】
2021532799.tif 000020
【図４】
2021532799.tif 000021
【図５】
2021532799.tif 000022
【図６】
2021532799.tif 000023
【図７】
2021532799.tif 000024
【図８】
2021532799.tif 000025
【図９】
2021532799.tif 000026
【図１０】
2021532799.tif 000027
【図１１】
2021532799.tif 000028
【図１２】
2021532799.tif 000029
【図１３】
2021532799.tif 000030
【図１４】
2021532799.tif 000031
【図１５】
2021532799.tif 000032
【図１６】
2021532799.tif 000033
【図１７】
2021532799.tif 000034
【図１８】
2021532799.tif 000035
【国際調査報告】
2021532799.tif 000036
2021532799.tif 000037
2021532799.tif 000038
2021532799.tif 000039
2021532799.tif 000040
2021532799.tif 000041