上で要約されているように、本開示は、遺伝子配列データに対するなど、一次処理手順を通じて生成されたデータについて、マッピング、アライメント、ソーティング、および/またはバリアントコールプロトコルなどの、1つまたは複数のゲノミクスおよび/またはバイオインフォマティクスプロトコルを実行する際にそれを使用するためのデバイス、システム、および方法を対象とする。たとえば、様々な態様において、本明細書において提供されるデバイス、システム、および方法は、たとえば次世代シークエンサ(「NGS」)によって、RNAおよび/またはDNAのシークエンシングによって生成されるデータなどの、遺伝子データに対して二次解析プロトコルを実行するように構成される。特定の実施形態において、遺伝子配列データを処理するための1つまたは複数の二次処理パイプラインが実現され、たとえば、これらのパイプライン、および/またはそれらの個別の要素は、当技術分野において現在利用可能である以上に広範にわたる配列導出データについて優れた感度および改善された精度をもたらすように分散されおよび/または最適化された方式でソフトウェア、ハードウェア、またはこれらの組合せで実装されてよい。それに加えて、上で要約されているように、本開示は、1つまたは複数のバリアントコールファイルなどを使用して、マッピングされた、アライメントされた、および/または他の遺伝子配列データ上での、マイクロアレイ解析プロトコル、ゲノム、たとえば、全ゲノム解析プロトコル、遺伝型判定解析プロトコル、エクソーム解析プロトコル、エピゲノム解析プロトコル、メタゲノム解析プロトコル、マイクロバイオーム解析プロトコル、ジョイント遺伝型判定を含む遺伝型判定解析プロトコル、構造バリアント、体細胞バリアント、およびGATKを含むバリアント解析プロトコル、さらにはRNAシークエンシングプロトコルおよび他の遺伝子解析プロトコルなどの、1つまたは複数のゲノミクスおよび/またはバイオインフォマティクス三次プロトコルの実行においてそれを使用するためのデバイス、システム、および方法を対象とする。
したがって、本明細書において提供されるのは、DNA/RNAシークエンシングデータの二次および/または三次解析を実行するためのソフトウェアおよび/またはハードウェア、たとえば、チップベースの、加速プラットフォーム解析技術である。より具体的には、ソフトウェア実装および/またはハード配線された構成などによる、処理エンジンのプラットフォーム、すなわちパイプラインが実現され、これらは二次遺伝子解析、たとえば、マッピング、アライメント、ソーティング、および/またはバリアントコーリングを実行するように特に設計されており、ならびに/あるいは知られているソフトウェアだけで実装される標準的なパイプラインよりも数桁速い処理速度の改善をもたらす最適化されたフォーマットで生成されていてよい、遺伝子ベースのシークエンシングデータなどに関して、マイクロアレイ解析、ゲノム、たとえば、全ゲノム解析、遺伝型判定解析、エクソーム解析、エピゲノム解析、メタゲノム解析、マイクロバイオーム解析、ジョイント遺伝型判定解析を含む遺伝型判定解析、構造バリアント解析、体細胞バリアント解析、およびGATK解析を含むバリアント解析、さらにはRNAシークエンシング解析および他の遺伝子解析などの、三次遺伝子解析を実行するよう特に設計され得る。それに加えて、本明細書で提示されているパイプラインは、核酸またはタンパク質由来の配列などの、広範な配列導出データセット上でより良好な感度および精度をもたらす。
上に示されているように、様々な事例において、バイオインフォマティクス処理の目的は、人々の個別のゲノムおよび/またはタンパク質配列を決定することであり、これらの決定は、遺伝子発見プロトコルで使用されるほかに、各特定の人および全体として人間の生活をよりよく向上させるための予防および/または治療レジメンにも使用され得る。さらに、個体のゲノムおよび/またはタンパク質コンペレーション(protein compellation)についての知識は、創薬および/またはFDA治験などにおいて使用されて、個体のゲノムおよび/またはそれから導出されるタンパク質プロファイルを解析し、それをそのような薬物投与からの予測された生物学的反応と比較することなどによって、もしあればどの薬物が個体に有効である可能性が高いか、および/または有害な副作用を有する可能性が高くなるかを詳細によりよく予測し得る。
そのようなバイオインフォマティクス処理は、通常は、情報処理の3つの明確に定義された、ただし典型的には別個のフェーズを伴う。第1のフェーズは、一次処理と呼ばれるフェーズで、DNA/RNAシークエンシングを伴い、対象のDNAおよび/またはRNAが取得されて、様々なプロセスにさらされ、それによって、対象の遺伝子コードは、機械可読デジタルコード、たとえば、FASTQファイルに変換される。第2のフェーズは、二次処理と呼ばれるフェーズで、対象の生成されたデジタル遺伝子コードを使用して、個体の遺伝子構造を決定する、たとえば、個体のゲノムヌクレオチド配列を決定するステップを伴う。そして第3のフェーズは、三次処理と呼ばれるフェーズであり、対象の遺伝子構造に対して1つまたは複数の解析を実行して治療上有用な情報をそこから決定するステップを伴う。
したがって、対象の遺伝子コードが、NextGenシークエンサなどによって配列決定され、それにより、たとえば、FASTQおよび/またはBCLファイルフォーマットで対象の遺伝子コードの機械可読デジタル表現を作成した後、デジタル方式で表現されているデータを二次処理に通すことなどによって、シークエンサおよび/またはシークエンシングプロトコルから得られた2値符号化遺伝子配列データをさらに処理することは有用であり得る。この二次処理は、たとえば、個体のゲノム全体および/またはタンパク質プロファイルをマッピングし、および/またはアライメントし、および/または他の何らかの形でアセンブルするために使用されてよく、たとえば、個体の遺伝子構造全体が決定される、たとえば、ありとあらゆる染色体のありとあらゆるヌクレオチドは、個体のゲノム全体の組成が識別された順番に決定される。そのような処理では、個体のゲノムは、参照標準などの参照ゲノム、たとえば、ヒトゲノムプロジェクトまたは同様のものから得られた1つまたは複数のゲノムとの比較などによってアセンブルされるものとしてよく、それにより、個体の遺伝子構造が参照先の構造とどれだけ異なるかを決定する。このプロセスは、バリアントコーリングとして一般に知られている。人同士のDNAの差異は、1,000塩基対に1の割合であるので、そのようなバリアントコーリングプロセスは、労働集約性も時間集約性も非常に高くなることがあり、対象のゲノムデータを解析し、その遺伝子配列が所与の参照とどれだけ異なっているかを決定するために、パイプラインなどで、次々に、および/または同時に、実行される必要があり得る多くのステップを必要とする。
個別の対象の所与のクエリ配列に対するバリアントコールファイルを生成するなどのための、二次解析パイプラインを実行する際に、遺伝子サンプル、たとえば、DNA、RNA、タンパク質サンプル、または同様のものが、対象から得られるものとしてよい。次いで、対象のDNA/RNAは、たとえば、NextGen Sequencer(NGS)および/またはシークエンサオンアチップ(sequencer-on-a-chip)技術によって、たとえば、一次処理ステップにおいて配列決定されるものとしてよく、それにより、オーバーサンプリング方式などで、個体のゲノムの全部または一部をカバーする非常に多数のリード配列セグメント(「リード」)を作成する。シークエンシングデバイスによって生成される最終作成物は、対象のゲノムの小セグメントを表す短配列、たとえば、リードの集合体、たとえば、個体のゲノム全体を表現する短遺伝子配列であってよい。示されているように、典型的には、これらのリードによって表現される情報は、画像ファイルであるか、またはデジタル形式、たとえば、FASTQ、BQL、または他の類似のファイル形式をとり得る。
特に、典型的な二次処理プロトコルにおいて、対象の遺伝子構造は、参照ゲノムとの比較によってアセンブルされる。この比較は、何百万もの短リード配列からの個体のゲノムの再構築および/または個体のDNAの全体と例示的なDNA配列モデルとの比較を伴う。典型的な二次処理プロトコルでは、画像、FASTQ、および/またはBCLファイルがシークエンサから受け取られ、これは生の配列決定されたリードデータを含む。対象のゲノムを標準参照ゲノムと比較するために、これらのリードの各々が参照ゲノムにどこでマッピングされるか、たとえば、各々が互いに関してどのようにアライメントされるか、および/または各リードがどのような位置でどの染色体に属するかを決定するために各リードも染色体の順序でどのようにソーティングされ得るかが決定される必要がある。これらの機能のうちの1つまたは複数は、完全長配列全体に対してバリアントコール機能を実行する前に、たとえばアセンブルした後に行われ得る。特に、各リードがゲノム内のどこに属しているかが決定された後、完全長遺伝子配列が決定されるものとしてよく、次いで、対象の遺伝子コードと参照先の遺伝子コードとの間の差異が評価され得る。
たとえば、典型的な二次処理アセンブリプロトコルにおける参照ベースのアセンブリは、対象の配列決定ゲノムDNA/RNAを1つまたは複数の標準のそれ、たとえば知られている参照配列と比較することを伴う。様々なマッピング、アライメント、ソーティング、および/またはバリアントコーリングアルゴリズムは、これらのプロセスを促進する手助けとなるように開発されている。したがって、これらのアルゴリズムは、各染色体上のどこに各特定のリードが配置されているかを決定するために、シークエンサによって伝達される画像、FASTQ、および/またはBCLファイルから受け取った数百万個のリードをマッピングするステップ、アライメントさせるステップ、および/またはソーティングするステップのうちの1つまたは複数のいくつかのバリエーションを含み得る。これらのプロセスは、両方ともEdico Genome Corporationに譲渡され、参照によりその全体が本明細書に組み込まれている、米国特許第9,014,989号および米国特許第9,235,680号において説明されている方法および/またはデバイスなどによって、ソフトウェアまたはハードウェアで実装されてよいことに留意されたい。多くの場合において、これらの様々なアルゴリズムおよび/またはハードウェア実装形態の機能の背後にある共通の特徴は、それらがインデックスおよび/またはアレイを使用してその処理機能を促進することである。
たとえば、マッピングに関しては、大量の、たとえば、すべての配列決定リードが、それらのリードが場合によってはアライメントされる可能性のある参照ゲノム内の可能な配置を決定するように処理され得る。この目的のために使用され得る一方法は、リードを参照ゲノムと直接比較してマッチングのすべての位置を見つけることである。別の方法は、リードを参照ゲノム内の様々な位置にマッピングすることを目的としてプレフィックスまたはサフィックスアレイを使用するか、またはプレフィックスまたはサフィックスツリーを構築することである。そのような機能を実行する際に有用な典型的なアルゴリズムは、Burrows-Wheeler変換であり、これはデータの反復配列を圧縮する圧縮公式を使用してリードの選択を参照にマッピングするために使用される。
さらなる方法はハッシュテーブルを使用する方法であり、たとえば、リードの選択されたサブセット、選択された長さ「k」のk-mer、たとえばシードがキーとしてハッシュテーブル内に置かれ、参照配列は相当するk-mer長部分とそれらの部分に分けられ、その配置はアルゴリズムによってハッシュテーブル内の、ハッシング関数に従ってマッピングするテーブル内の配置のところに挿入される。この関数を実行するための典型的なアルゴリズムは「BLAST」、Basic Local Alignment Search Toolである。そのようなハッシュテーブルベースのプログラムは、クエリヌクレオチドまたはタンパク質配列を1つまたは複数の標準参照配列データベースと比較し、マッチの統計的有意性を算出する。これらのような方式で、参照ゲノムに関して所与のリードが場合によってはどの場所に配置されるかが決定され得る。これらのアルゴリズムは、より少ないメモリ、より少ない検索回数、LUTで済み、したがって、これらのアルゴリズムがない場合、たとえば、対象のゲノムが、たとえばこれらのアルゴリズムを使用せずに、直接比較によってアセンブルされる場合などと比べてそれらの機能の実行においてより少ない処理リソースおよび時間で済むので有用である。
それに加えて、アライメント機能は、実際には元のシークエンシングプロトコルによって配列決定されることなどによって実際にそれが導出された際の配置であるゲノム内の複数の位置にリードがマッピングされ得る場合などにおいて、ゲノム上で所与のリードがマッピングされ得る可能なすべての配置から決定するように実行され得る。この機能は、ゲノムのリード、たとえば、マッピングされたリードの多くに対して実行されてよく、対象のDNA/RNAの一部または遺伝子配列全体を表す順序付けられたヌクレオチド塩基の列が取得され得る。順序付けられた遺伝子配列とともに、所与の位置における各ヌクレオチドに対してスコアが付けられるものとしてよく、これは所与のヌクレオチド位置に対して、その位置にあると予測されるヌクレオチド、たとえば、「A」、「C」、「G」、「T」(または「U」)は、実際に、その割り当てられた位置に属すヌクレオチドである確率を表す。アライメント機能を実行するための典型的なアルゴリズムは、Needleman-WunschおよびSmith-Watermanアルゴリズムを含む。いずれの場合においても、これらのアルゴリズムは、対象のクエリゲノム配列の列と参照ゲノム配列の列との間の配列アライメントを実行し、それによって、ゲノム配列全体を一方と他方とで比較する代わりに、可能な長さの選択のセグメントが比較される。
リードがどの染色体に属すか、および/またはその染色体の先頭からのオフセットを識別するステップを含み得る、参照ゲノムなどに関する、位置をリードに割り当てることが行われた後、リードは位置でソーティングされるものとしてよい。これは、下流解析で本明細書において説明されているオーバーサンプリング手順を利用することを可能にし得る。ゲノム内の所与の位置に重なるリードはすべて、ソーティングの後に互いに隣接し、それらはパイルアップに編成され、それらの大半が参照値と合致するかどうかを決定するために容易に調べられ得る。合致しない場合、バリアントにフラグが立てられるものとしてよい。
たとえば、様々な実施形態において、本開示の方法は、たとえば、1つまたは複数の参照ゲノムに関連して、DNA/RNAが配列決定された個体の遺伝的バリアントの1つまたは複数、たとえばすべてを識別するバリアントコールファイル(VCF)を生成するステップを含み得る。たとえば、実際のサンプルゲノムが知られ、参照ゲノムと比較された後、それら2つの間のバリエーションが決定されてよく、参照ゲノムとサンプルゲノムとの間のすべてのバリエーション/偏差のリストがコールアウトされてよく、たとえば、バリアントコールファイルが作成され得る。特に、一態様において、参照配列に対する対象の遺伝子配列のすべてのバリエーションを含むバリアントコールファイルが生成されるものとしてよい。
上で示されているように、2つの遺伝子配列の間のそのようなバリエーションは、多数の理由から生じ得る。したがって、そのようなファイルを生成するために、対象のゲノムは配列決定され、そのバリアントを決定する前に再構築されなければならない。しかしながら、そのようなアセンブリを生成することを試みたときに生じ得るいくつかの問題がある。たとえば、化学反応、シークエンシング機、および/またはシークエンシングプロセスにおいて生じ得るヒューマンエラーに関連する問題があり得る。さらに、そのような再構築に問題を引き起こす遺伝子のアーチファクトがあり得る。たとえば、そのようなアセンブリを実行することに関連する典型的な問題は、ヌクレオチドの同じ列を含むゲノムの長いセクションなど、自己反復するゲノムの巨大な部分があることがあるという点である。したがって、遺伝子配列はすべての場所で一意的であるとは限らないので、識別されたリードが実際にゲノム内のどこでマッピングされアライメントされるかを決定するのは困難であり得る。それに加えて、一塩基多型(SNP)があり得、たとえば、対象の遺伝子配列内の1つの塩基が別の塩基と置き換えられており、複数のヌクレオチドのより広範な置換があり得、挿入または欠失があり得、たとえば、1つまたは多数の塩基が対象の遺伝子配列に加えられるか、または欠失されており、および/または、たとえば、2つの染色体の枝の交差によって引き起こされるような、構造バリアントがあり得、および/または配列内にシフトを引き起こすオフセットが単純にあり得る。
したがって、バリエーションに対して2つの主要な可能性がある。一例として、注目している特定の配置に実際のバリエーションがあり、たとえば、ヒトのゲノムは、実際に、特定の配置において参照と異なり、たとえば、SNP(1塩基置換)、挿入もしくは欠失(ヌクレオチド1つまたは複数分の長さの)により自然なバリエーションがあり、および/または構造バリアントがあり、たとえば、1つの染色体からのDNA物質は異なる染色体または枝上に交差し、または特定の領域がDNA内で2回複製される。代替的に、バリエーションは、化学反応または機械、シークエンサまたはアライナ、もしくは他のヒューマンエラーのいずれかを通じて、リードデータ内に問題があることによって引き起こされ得る。本明細書で開示されている方法は、これらの種類のエラーを補償し、より具体的には、化学反応、機械または人間によるバリエーションと配列決定ゲノム内の現実のバリエーションにおける誤りを区別するような方式で使用され得る。より具体的には、本明細書で説明されているように、それを採用するための方法、装置、およびシステムは、これらの2つの異なる種類のバリエーションを明確に区別し、したがって真のバリアントを正しく識別するために生成されたコールファイルの精度をより確実にするように、開発された。
したがって、特定の実施形態において、遺伝子解析を実行するための技術のプラットフォームが実現され、このプラットフォームは、マッピング、アライメント、ソーティング、局所的再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーション、バリアントコーリング、圧縮、および/または復元のうちの1つまたは複数の機能の実行を含み得る。たとえば、様々な態様において、パイプラインが実現されてよく、パイプラインは、自動化シークエンサからの画像ファイルおよび/またはデジタル、たとえば、FASTQもしくはBCLファイル形式で得られたデータなどの、1人または複数の個体のゲノム配列に対して、本明細書に説明されているように1つまたは複数の解析機能を実行するステップを含む。実行されるべき典型的なパイプラインは、1人または複数の個別の対象の、一部またはゲノムの全部などの、遺伝物質を配列決定するステップのうちの1つまたは複数を含むものとしてよく、この遺伝物質は、DNA、ssDNA、RNA、rRNA、tRNA、および同様のものを含むものとしてよく、および/またはいくつかの事例において、遺伝物質は、DNAのエクソームおよび/またはエピソームなどの、コーディングまたは非コーティング領域を表し得る。パイプラインは、2値化された遺伝子データなどに対して、画像処理手順、塩基コーリング、および/または誤り訂正オペレーションを実行するステップの1つまたは複数を含むものとしてよく、ならびに/あるいは遺伝子データに対しマッピング、アライメント、および/またはソーティング機能を実行するステップの1つまたは複数を含み得る。いくつかの事例において、パイプラインは、2値化された遺伝子データに対して、再アライメント、重複除去、塩基クオリティまたはスコアリキャリブレーション、減少および/または圧縮、および/または復元のうちの1つまたは複数を実行するステップを含み得る。いくつかの事例において、パイプラインは、遺伝子データに対して、隠れマルコフモデルなどのバリアントコーリングオペレーションを実行するステップを含み得る。
したがって、いくつかの事例において、これらのプラットフォーム機能のうちの1つまたは複数の実装形態は、対象のコンセンサスゲノム配列を決定し、および/または再構築するステップ、対象のゲノム配列を参照先配列、たとえば、参照もしくはモデル遺伝子配列と比較するステップ、対象のゲノムDNAもしくはRNAが参照先、たとえば、バリアントコーリングと異なる仕方を決定するステップのうちの1つまたは複数を実行し、および/またはたとえば、ゲノムおよび/またはトランスクリプトームのゲノム規模のバリエーション解析、遺伝子機能解析、タンパク質機能解析、たとえば、タンパク質結合解析、定量および/またはアセンブリ解析、さらには様々な診断、および/または予防および/または治療評価解析などのために、対象のゲノム配列に対して三次解析を実行することを目的とする。
上で示されているように、一態様において、これらのプラットフォーム機能、たとえば、マッピング、アライメント、ソーティング、再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーション、バリアントコーリング、圧縮、および/または復元機能のうちの1つまたは複数は、ソフトウェアで実装するように構成されている。いくつかの態様において、これらのプラットフォーム機能、たとえば、マッピング、アライメント、ソーティング、局所的再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーション、復元、バリアントコーリング、圧縮、および/または復元機能のうちの1つまたは複数は、ハードウェア、たとえば、ファームウェアで実装するように構成されている。いくつかの態様において、これらの遺伝子解析技術は、より低い処理集約性でおよび/または時間をあまりかけず、および/または正確さのパーセンテージを高めて実行されるソフトウェアによって実装され得る改善されたアルゴリズムを採用するものとしてよく、たとえば、ハードウェアで実装された機能は、高速であり、処理集約性がより低く、より正確である。
たとえば、いくつかの実施形態において、本明細書で開示されているように、そのような一次、二次、および/または三次処理を実行するための改善されたアルゴリズムが実現される。改善されたアルゴリズムは、上で述べたもののうちの1つなどの自動化シークエンサから得られたFASTQもしくはBCLファイル形式などの、シークエンシングプラットフォームから得られたDNA/RNA配列データの画像ファイルおよび/またはデジタル表現などに対してマッピング、アライメント、ソーティング、および/またはバリアントコーリングのうちの1つまたは複数の機能をより効率的に、および/またはより正確に実行するステップを対象とする。特定の実施形態において、改善されたアルゴリズムは、局所的再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーション、バリアントコーリング、圧縮、および/または復元のうちの1つまたは複数の機能をより効率的に、および/またはより正確に実行するステップを対象とする。さらに、本明細書に以下でより詳しく説明されているように、いくつかの実施形態において、これらの遺伝子解析技術は、同じことをするのに様々な従来のソフトウェア実装形態と比べて低い処理集約性でおよび/または時間をあまりかけず、および/または正確さのパーセンテージを高めて実行されるソフトウェアおよび/またはハードウェアのうちの1つまたは複数によって実装され得る、改善されたアルゴリズムなどの1つまたは複数のアルゴリズムを採用し得る。様々な事例において、量子処理プラットフォーム上の実装に対する改善されたアルゴリズムが実現される。
したがって、様々な態様において、本明細書に提示されているのは、たとえば、1つまたは複数の最適化されたアルゴリズムを介して、および/または1つまたは複数の最適化された集積および/または量子回路、たとえば1つまたは複数のハードウェア処理プラットフォーム上で、ゲノムデータなどの、遺伝子データを解析するための1つまたは複数の機能を実行するなど、バイオインフォマティクスプロトコルを実装するためのシステム、装置、および方法である。一事例において、バイオインフォマティクスプロトコルでゲノムデータを解析する1つまたは複数のステップを実行する1つまたは複数のアルゴリズムを、たとえばソフトウェアおよび/またはファームウェアで、および/または量子処理回路によって実装するためのシステムおよび方法が実現され、たとえば、これらのステップは、マッピング、アライメント、ソーティング、局所的再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーション、バリアントコーリング、圧縮、および/または復元のうちの1つまたは複数の実行を含むものとしてよく、三次処理プラットフォームにおける1つまたは複数のステップをさらに含み得る。したがって、いくつかの事例では、これらの方法を実行するためのソフトウェア、ファームウェア、ハードウェア、および/または量子処理アルゴリズムを含む方法が、本明細書において提示されており、これらの方法は、マッピング、アライメント、ソーティング、再アライメント、重複マーキング、塩基クオリティスコアキャリブレーション、バリアントコーリング、圧縮、復元、および/または1つもしくは複数の三次処理プロトコルなどの1つまたは複数の遺伝子解析機能を実装するためのアルゴリズムなどの、アルゴリズムの実行を伴い、たとえばファームウェアを含む、このアルゴリズムは、それが実装される方式に従って最適化されている。
特に、アルゴリズムがソフトウェアソリューションで実装されるべきである場合、アルゴリズムおよび/またはその付随するプロセスは、その媒体による実行に対してより高速に、および/またはより正確に実行されるように最適化されている。同様に、アルゴリズムの機能がハードウェアソリューションで、たとえば、ファームウェアとして実装されるべきである場合、ハードウェアは、その媒体による実行に対してより高速に、および/またはより正確に実行されるように最適化された方式でこれらの機能および/またはその付随するプロセスを実行するように設計されている。さらに、アルゴリズムが量子処理ソリューションで実装されるべきである場合、アルゴリズムおよび/またはその付随するプロセスは、その媒体による実行に対してより高速に、および/またはより正確に実行されるように最適化されている。これらの方法は、たとえば、反復マッピング、アライメント、ソーティング、バリアントコーリング、および/または三次処理手順などで採用され得る。別の事例では、本明細書において述べられているように、バイオインフォマティクスプロトコルでゲノムデータを解析するための1つまたは複数のステップを実行する1つまたは複数のアルゴリズムの機能を実装するためのシステムおよび方法が実現され、これらの機能は、1つまたは複数の汎用プロセッサおよび/またはスーパーコンピュータおよび/または量子コンピュータと結合されることも、結合されないこともあり得る、ハードウェアおよび/または量子アクセラレータ上に実装される。
より具体的には、いくつかの事例において、対象の遺伝的組成に関係するデータに対して二次解析を実行するための、それらの方法を実装するための方法および/または機械が実現される。一事例において、実行されるべき解析は、対象ゲノムの参照ベースの再構築を伴い得る。たとえば、参照ベースのマッピングは、参照ゲノムの使用を伴い、単一または複数の個体のゲノムのシークエンシングから生成されてよいか、またはこれは、個体の遺伝物質、たとえば、DNA/RNAが比較され得るプロトタイプの標準的な参照ゲノムを作成するような仕方で組み合わされている様々な人々のDNA/RNAの融合であってよく、たとえば、これにより、個体の遺伝子配列を決定し、再構築し、および/または遺伝子構造と標準参照の構造との間の差異、たとえば、バリアントコーリングを決定する。
特に、対象の配列決定されたDNA/RNAに対して二次解析を実行する理由は、対象のDNA/RNAが参照のDNA/RNAとどのように異なるかを決定し、たとえば、対象のヌクレオチド配列と参照のヌクレオチド配列との差異のうちの1つ、多数、またはすべてを決定することにある。たとえば、2つの無作為に選んだ人の遺伝子配列の差異は、1,000塩基対中おおよそ1であり、これは、30億を超える塩基対のゲノム全体を見たときに、1人につき最大3,000,000個の分岐塩基対のバリエーションになる。これらの差を決定することは、三次解析プロトコルなどにおいて有用であり、たとえば、予防または治療が対象のDNAまたはそれから生成されたタンパク質と相互作用することがどのように予想されるかなどに基づき、遺伝的異常などによる疾患状態の発生の潜在的可能性、および/または予防または治療方法の成功する可能性を予測する。様々な事例において、対象のゲノムのde novo、および参照ベースの両方の再構築を実行し、一方の結果を他方と突き合わせて確認し、望ましい場合には、バリアントコーリングプロトコルの精度を高めることは有用であり得る。
したがって、一態様では、様々な実施形態において、対象のゲノムが再構築され、および/またはVCFが生成された後、そのようなデータは、次いで、そのデータの解釈のために三次処理に通され、たとえば、この人がどのような疾患を患い得るか、またはその潜在的可能性を有し得るかを識別することに関してデータが何を意味しているかを決定し、および/またはこの対象が疾患状態を改善し、および/または予防するためにどのような処置もしくはライフスタイルの変更を採用することを望み得るかを決定する。たとえば、対象の遺伝子配列および/またはそのバリアントコールファイルが解析され、それにより、疾患状態に対する存在または潜在的可能性および/または提案された治療もしくは予防レジメンの対象に対して有し得る効果を示す臨床的に関連する遺伝子マーカーを決定するものとしてよい。次いで、このデータは、1つまたは複数の治療もしくは予防レジメンを対象に提供し、疾患状態を処置し、および/または予防するなど、対象のクオリティオブライフをよりよくするために使用され得る。
特に、個体の遺伝的バリエーションの1つまたは複数が決定された後、そのようなバリアントコールファイル情報は、医学的有用な情報を開発するために使用され、次いで、これは、たとえば、診断目的、たとえば、疾患または潜在性、したがって臨床的解釈(たとえば、疾患バリアントを表現するマーカーを探す)、対象が様々な治験に含まれるべきか除外されるべきかを診断する診断目的、および他のそのような目的のために、たとえば、様々な知られている統計解析モデルを使用して、健康関連データおよび/または医学的に有用な情報を決定することができる。より具体的には、様々な事例において、生成されたゲノミクスおよび/またはバイオインフォマティクス処理結果データは、マイクロアレイ解析プロトコル、ゲノム、たとえば、全ゲノム解析プロトコル、遺伝型判定解析プロトコル、エクソーム解析プロトコル、エピゲノム解析プロトコル、メタゲノム解析プロトコル、マイクロバイオーム解析プロトコル、ジョイント遺伝型判定を含む遺伝型判定解析プロトコル、構造バリアント、体細胞バリアント、およびGATKを含むバリアント解析プロトコル、さらにはRNAシークエンシングプロトコルおよび他の遺伝子解析プロトコルなどの、1つまたは複数のゲノミクスおよび/またはバイオインフォマティクス三次解析プロトコルの実行において使用され得る。
遺伝的先天性異常によって引き起こされる疾患状態の数は有限であるので、三次処理では特定の種類のバリアント、たとえば、疾患状態の発症に関係することが知られているものは、1つまたは複数の遺伝子ベースの疾患マーカーが対象のバリアントコールファイルに含まれるかどうかを決定することなどによって問い合わされ得る。その結果、様々な事例において、本明細書で開示されている方法は、ゲノムマーカーのデータベースなどにある、知られている疾患配列バリアントと突き合わせて、VCFおよび/または生成された配列を解析し、たとえば、走査し、VCFおよび/または生成された配列内の遺伝子マーカーの存在を識別し、もし存在しているならば、遺伝的に誘発される疾患状態に対する存在もしくは潜在的可能性に関するコールを行うことを伴い得る。知られている遺伝的バリエーションが多数あり、またそのようなバリエーションによって引き起こされる疾患を患う個体が多いので、いくつかの実施形態において、本明細書において開示されている方法は、ゲノム全体および/またはたとえば1人または複数の個体からなどの、それに関連するバリアントコールファイルに対する配列決定データと疾患状態とをリンクする1つまたは複数のデータベースを生成するステップ、ならびに/あるいは生成されたデータベースを探索して特定の対象がそのような疾患状態を引き起こす傾向のある遺伝的組成を有するかどうかを決定するステップを伴い得る。そのような探索は、一方のゲノム全体を1つまたは複数の他方、またはゲノムの断片、たとえば、バリエーションのみを含む断片などとともに、参照ゲノムもしくはその断片のデータベースなどにおいて1つまたは複数の他のゲノムの1つまたは複数の断片と比較するステップを伴い得る。
したがって、様々な事例において、本開示のパイプラインは、1つまたは複数のモジュールであって、モジュールは、遺伝子データ、たとえば配列決定遺伝子データに対して、画像処理または塩基コーリングおよび/または誤り訂正オペレーションおよび/またはマッピングおよび/またはアライメント、たとえばギャップもしくは無ギャップアライメント、および/またはソーティング機能などの、1つまたは複数の機能を実行するように構成される、1つまたは複数のモジュールを備え得る。そして、様々な事例において、パイプラインは、1つまたは複数のモジュールであって、モジュールは、遺伝子データに対して、局所的再アライメント、重複除去、塩基クオリティスコアリキャリブレーション、バリアントコーリング、たとえば、HMM、減少および/または圧縮、および/または復元のうちの1つまたは複数を実行するように構成される、1つまたは複数のモジュールを備え得る。それに加えて、パイプラインは、1つまたは複数のモジュールであって、モジュールは、マイクロアレイプロトコル、ゲノム、たとえば、全ゲノムプロトコル、遺伝型判定プロトコル、エクソームプロトコル、エピゲノムプロトコル、メタゲノムプロトコル、マイクロバイオームプロトコル、ジョイント遺伝型判定プロトコルを含む遺伝型判定プロトコル、構造バリアントプロトコル、体細胞バリアントプロトコル、およびGATKプロトコルを含むバリアント解析プロトコル、さらにはRNAシークエンシングプロトコルおよび他の遺伝子解析プロトコルなどの、三次解析プロトコルを実行するように構成される、1つまたは複数のモジュールを備え得る。
これらのモジュールの多くは、クラウド上など、たとえば、リモートサーバおよび/または量子コンピューティングクラスタなどのサーババンク上で、たとえばソフトウェアまたはハードウェアを介してローカルもしくはリモートで、ソフトウェアによってまたはハードウェア上のいずれかで実行されてよい。それに加えて、パイプラインのこれらのモジュールおよび/またはステップの多くは任意選択のものであり、および/または任意の論理的順序で配置構成され、および/または完全に省かれてもよい。たとえば、本明細書において開示されているソフトウェアおよび/またはハードウェアは、画像処理および/または塩基コーリングまたは配列訂正アルゴリズムを含むことも、含まないこともあり得、たとえば、そのような機能が結果として統計的偏りを引き起こし得るという懸念があり得る。結果として、システムは、それぞれ望ましい精度および/または効率のレベルに応じて塩基コーリングおよび/または配列訂正機能を含むことも、含まないこともあり得る。そして上で示されているように、パイプライン機能のうちの1つまたは複数は、参照ベースのゲノム再構築などを通じて対象のゲノム配列の生成において使用されてよい。また、上で示されているように、いくつかの事例において、二次処理パイプラインからの出力は、ゲノムまたはその一部における一部またはバリアントの全部を示すバリアントコールファイル(VCF、gVCF)であってよい。
特に、リードがどの染色体に属すかおよびその染色体の先頭からのオフセットを識別するステップを含み得る、参照ゲノムに関する位置をリードに割り当てることが行われた後、それらは、位置などにより、重複除去されおよび/またはソーティングされるものとしてよい。これは、下流解析で本明細書において説明されている様々なオーバーサンプリングプロトコルを利用することを可能にする。ゲノム内の所与の位置に重なるリードはすべて、ソーティングの後に互いに隣接して位置決めされるものとしてよく、それらはパイルアップされ、たとえば、パイルアップを形成し、それらの大半が参照値と合致するかどうかを決定するために容易に調べられ得る。上で示されているように、合致しない場合、バリアントにフラグが立てられるものとしてよい。
したがって、マッピングに関して上で示されているように、シークエンサから得られた、画像ファイル、BCLファイル、および/またはFASTQファイルは、個体のゲノムの一部または全体を表現するヌクレオチド配列データの短い列からなる複数の、たとえば、数百万から10億またはそれ以上のリードから構成される。たとえば、本明細書において開示されている、二次解析パイプラインにおける第1のステップは、シークエンサなどのゲノムデータ生成装置などから、ゲノムおよび/またはバイオインフォマティクスデータを受信するステップである。典型的には、シークエンサ、たとえば、NextGen Sequencerによって作成されるデータは、BCLファイル形式であり、これは、いくつかの事例において、伝送の前または後のいずれかで、FASTQファイル形式に変換され、たとえば、本明細書で説明されている二次処理プラットフォームに送られるものとしてよい。特に、ヒトゲノムのシークエンシングを行うときに、対象のDNAおよび/またはRNAが、塩基毎に識別されなければならず、そのようなシークエンシングの結果がBCLファイルである。BCLファイルは、対象のゲノムの少なくとも一部または全体を構成する配列の集合体の各配列の各塩基に対して作られる塩基コールおよびクオリティスコアを含むバイナリファイルである。
従来、シークエンサ生成BCLファイルは、FASTQファイルに変換され、その後、本明細書で開示されているような二次処理プラットフォームに伝送され、そこでさらに処理され、たとえば、それらのゲノミクスバリアントを決定し得る。FASTQファイルは、生物学的配列(たとえば、ヌクレオチド配列)およびその対応するクオリティスコアの両方を伝送し、記憶するためのテキストベースのファイル形式であり、配列文字、たとえば、A、C、G、T、および/またはUならびにクオリティスコアは両方とも、各々、簡単のため、単一のASCII文字で符号化されてよい。したがって、このシステムおよび他のシステム内で、これはさらに処理をすることを目的として使用されるFASTQファイルである。FASTQファイルをゲノミクス処理に使用することは有用であるが、生成されたBCLファイルをFASTQファイルに変換するのは、シークエンサ装置で実装されるときには、時間がかかり不効率である。したがって、一態様において、BCLファイルをFASTQファイルに直接変換する、および/またはそのようなデータを、本明細書で説明されているような、本発明のプラットフォームパイプラインに直接入力するためのデバイスおよび方法が、実現される。
たとえば、様々な実施形態において、次世代シークエンサ、すなわち、シークエンサオンアチップ技術は、受け取った遺伝子データに対してシークエンシングオペレーションを実行するように構成され得る。たとえば、図1Aを見るとわかるように、遺伝子データ6aは、次世代シークエンサ内に挿入され、反復方式で配列決定されるように、シークエンシングプラットフォーム6に結合されるものとしてよく、それにより、各配列は1ステップずつヌクレオチドを次々に追加することによって成長する。特に、シークエンシングプラットフォーム6は、グリッド状に配置構成されプラットフォーム6上にタイル6bを形成する対象からの多数のテンプレートヌクレオチド配列6aを備えてよく、このテンプレート配列6aが配列決定される。プラットフォーム6は、シークエンシング反応を実行するように適合されているシークエンサの流動セル6cに追加されてよい。
シークエンシング反応が生じると、各ステップにおいて、蛍光タグ6dを有するヌクレオチドが、流動セル6cのプラットフォーム6に追加される。混成化反応が生じた場合、蛍光が観察され、撮像され、次いで画像が処理され、適切な塩基コールが行われる。これは、テンプレート配列のすべて、たとえば、ゲノム全体が配列決定され、リードに変換されるまで塩基毎に繰り返され、それによって、システムのリードデータが作成される。したがって、配列決定された後、生成されたデータ、たとえば、リードは、シークエンシングプラットフォームから二次処理システムに転送される必要がある。たとえば、典型的には、この画像データは、その後システム内に転置され得るBCLおよび/またはFASTQファイルに変換される。
しかしながら、様々な事例において、この変換および/または転送プロセスはより効率的に行われ得る。特に、本明細書に提示されているのは、二次処理システム内で高速処理され得るファイルへの促進BCL変換のための方法およびアーキテクチャである。より具体的には、特定の事例において、生のBCLもしくはFASTQファイルを伝送する代わりに、シークエンシングオペレーションの各タイルを表す作成された画像は、システム内に直接転送され、マッピングおよびアライメントなどの準備が行われ得る。たとえば、タイルは、適切に構成されているPCIeにわたって、ASIC、FPGA、またはQPUにストリーミングされてよく、リードデータはそこから直接抽出され、それらのリードはマッピングおよびアライメントおよび/または他の処理エンジン内に送られ得る。
特に、FPGA/CPU/GPU/QPUへのシークエンサによって取得されたタイルからのデータの転送に関して、図1Aを見るとわかるように、シークエンシングプラットフォーム6は、3D立方体6cとして画像化されてよく、その中で成長する配列6aが生成される。本質的に、図1Bを見るとわかるように、シークエンシングプラットフォーム6は16レーンから構成され、前部に8レーン、後部に8レーンを備え、約96個のタイル6bを形成するように構成され得る。各タイル6b内に、配列決定されそれによってリードを形成する多数のテンプレート配列6aがあり、各リードは対象のゲノムの所与の領域に対するヌクレオチド配列を表し、各列は1つのファイルを表し、デジタル符号化されている通り、すべてのファイルについて1バイトを表し、ファイル毎に8ビットを有し、たとえば、2ビットがコールされた塩基を表し、残り6ビットはクオリティスコアを表す。
より具体的には、Next Gen Sequencingに関して、シークエンシングは、シークエンシングのために自動化シークエンサに入れられる流動セル6cを形成するガラス板6上に典型的には実行される。図1Bを見るとわかるように、流動セル6cは8個の垂直列と8個の水平行(前後)から構成されるプラットフォーム6であり、これらが一緒になって16レーンを形成し、各レーンはゲノム全体のシークエンシングに十分なものである。配列決定されるべき対象のDNAおよび/またはRNA 6aは、タイル6bを形成するようにプラットフォーム6の列および行の流体的に絶縁されている交差の間の指定された位置内に関連付けられており、各タイルは配列決定されるべきテンプレート遺伝物質6aを含む。シークエンシングプラットフォーム6は、したがって、対象からの多数のテンプレートヌクレオチド配列を含み、この配列はプラットフォーム上にグリッド状のタイルとして配置構成される。(図1B参照)次いで、遺伝子データ6は、反復方式で配列決定され、各配列は、ヌクレオチドを次々に流動セル内に1ステップずつ導入することによって成長させられ、各反復成長ステップは、1つのシークエンシングサイクルを表す。
示されているように、画像は各ステップの後にキャプチャされ、たとえば画像の成長する配列は、BCLファイルが生成される基礎を形成する。図1Cを見るとわかるように、シークエンシング手順からのリードはクラスタを形成するものとしてよく、これは理論的3D立方体6cを形成するクラスタである。したがって、この理論的3D立方体内で、配列決定される各成長するヌクレオチド鎖の各塩基は、x次元およびy次元を有する。この3D立方体6cからの画像データ、すなわち、タイル6bは抽出されて、2次元マップ内にコンパイルされるものとしてよく、そこから行列が、図1Dに示されているように、形成され得る。行列は、水平軸を表す、シークエンシングサイクルと、垂直軸を表す、リード識別とから形成される。したがって、図1Cを参照してわかるように、配列決定されたリードは流動セル6c内にクラスタを形成し、それらのクラスタは垂直および水平軸によって、サイクル毎に定義されるものとしてよく、各リードに対する各サイクルからの塩基毎のデータは、ストリーミングおよび/またはパイプライン方式などで、図1Dの行列内に挿入されてよい。
特に、各サイクルは、1つのヌクレオチドの追加によって流動セル内の各リードの潜在的成長を表し、これは1つまたは複数のヒトゲノムのシークエンシングを行ったときに、1レーン当たり約10億以上のリードの成長を表し得る。たとえば、ヌクレオチド塩基の追加による、各リードの成長は、成長ステップの間の流動セル6cの、タイル6bの、画像の反復キャプチャによって識別される。これらの画像から、塩基コールが行われ、クオリティスコアが決定され、図1Dの仮想行列が形成される。したがって、行列に入れられる塩基コールとクオリティスコアの両方があり、各サイクルからの各タイルは、別個のファイルを表す。シークエンシングが集積回路上で実行される場合、感知された電子データは画像データの代わりに使用され得ることに留意されたい
たとえば、図1Dを見るとわかるように、行列それ自体は、画像がキャプチャされ処理され、塩基がコールされ、クオリティスコアが各リードについてサイクル毎に決定されるとともに反復的に成長する。これは、流動セルの各タイルに対する、リード内の各塩基について繰り返される。たとえば、リードのクラスタ1Cは番号が振られ、垂直軸として行列内に入れられ得る。同様に、サイクル番号が水平軸として入力されてよく、次いで、塩基コールおよびクオリティスコアが入力され、行列を列毎、行毎に埋めるものとしてよい。したがって、各リードは、多数の塩基、たとえば、シークエンサに応じてリード毎に約100または150から最大1000個以上の塩基によって表され、タイル毎に最大1000万以上のリードがあり得る。したがって、各々1000万のリードを有する約100個のタイルがある場合、行列は約10億のリードを含み、これは編成され、二次処理装置にストリーミングされる必要がある。
したがって、そのような編成は、データを高速に効率よく処理する上で基本的である。したがって、一態様において、本明細書に提示されるのは、データが本明細書で開示されているシステムのパイプライン内により直接的に効率的にストリーミングされ得るような仕方で仮想シークエンシング行列によって表されるデータを転置するための方法である。たとえば、図1Cの星形クラスタによって表されるような、シークエンシングデータの生成は、大幅に未編成状態にあり、これはデータ処理の観点からは問題である。特に、データがシークエンシングオペレーションによって生成されるときに、これはサイクル毎に1ファイルとして編成され、これはシークエンシングオペレーションの終わりまでに、何百万ものファイルが生成されることを意味し、ファイルは列内のデータによって表され、これは図1Eにおいて実線で描かれている。しかしながら、二次および/または三次処理を目的として、本明細書において開示されているように、ファイルデータはリードデータに再編成される必要があり、これは図1Eの破線で描かれている。
より具体的には、シークエンサによって生成されるデータを二次処理データにより効率的にストリーミングするために、仮想行列によって表されるデータは、ファイルデータをサイクル毎にタイルの列毎の基準からリードの各々の塩基を識別する行毎の基準に再編成することなどによって、転置されるべきである。特に、行列を形成する生成済みファイルのデータ構造は、シークエンサによって作成されるときに、サイクル毎に、列毎の基準で編成される。本明細書で開示されているプロセスによって、このデータは、リード毎に、行毎の基準で、仮想行列内に見える通りに表されるように、たとえば実質的に同時に、転置されてよく、各行は個別のリードを表し、各リードは塩基コールおよびクオリティスコアの連番によって表され、それによって、各リードに対する配列およびその信頼度の両方を識別する。したがって、本明細書において説明されているような転置オペレーションにおいて、メモリ内のデータは、たとえば、仮想行列内で、入力データ順序を表す、列毎の基準から出力データ順序を表す、行毎の基準に再編成され、それによって、データ順序を垂直編成から水平編成に転置する。さらに、プロセスはソフトウェアで効率的に実装され得るが、これは、ハードウェアで、および/または量子プロセッサによって実装されることによってなおいっそう効率的にされ、高速化され得る。
たとえば、様々な事例において、転置プロセスは、ハードウェアで実装されることによって加速され得る。たとえば、一実装形態において、第1のステップで、たとえばシークエンサのホストソフトウェアは、入力データをたとえば入力順序で列毎の基準で、FPGAに関連付けられるメモリ内に書き込むものとしてよい。特に、データが生成され、関連付けられているメモリ内に記憶されるときに、データはファイルに、サイクル毎に編成されてよく、そのデータは別の個別のファイルとして保存される。このデータは、図1Aの3D立方体によって表され得る。次いで、この生成された列編成データは、たとえば直ちに(in flight)ハードウェアによりキューに入れられ、および/またはストリーミングされ、専用処理エンジンは列編成データをキューに入れ、そのデータを列毎のサイクル順序構成から行毎のリード順序構成に、3Dタイルデータを2D行列に変換することなど、本明細書において上で説明される仕方で転置し、それによって、列データは行データに、たとえば、リード毎の基準に再編成され得る。次いで、この転置データは、より戦略的な順序でメモリ内に記憶され得る。
たとえば、ホストソフトウェアは、入力データを列毎の入力順序などで、チップ、たとえばFPGAに関連付けられているメモリ内に書き込むように構成されてよく、同様に、ハードウェアは、図1Fに述べられるような、戦略的な仕方でメモリ内に読み込まれるような仕方でデータをキューに入れるように構成されてよい。特に、ハードウェアは、サイクルファイルが列から1塩基を行に編成されているレジスタ内に書き込むことなどによって、個別のリードデータに分散され再編成され得るレジスタ8aのアレイを備え得る。より具体的には、図1Gを見るとわかるように、転置処理エンジン8を備える、ハードウェアデバイス1は、転置されるべきデータをキューに入れるものとしてよいDRAMポート8aを備えるものとしてよく、ポートは、複数のレジスタおよび/または外部メモリ8cに関連付けられているメモリインターフェース8bに動作可能に結合され、サイクル毎に増大する量のトランザクションを取り扱うように構成され、キューに入れられているデータは、バーストで伝送される。
特に、この転置は、一度に1つのデータセグメントで行われるものとしてよく、たとえば、メモリアクセスはDDR伝送速度を最大限活かすような仕方でキューに入れられる。たとえば、DRAMに関しては、DDRの最小バースト長は、たとえば、64バイトであるものとしてよい。したがって、ホストメモリに記憶される列配置構成データは、メモリアクセス毎に、たとえば64バイト分のデータが対応する列が取得されるような仕方でアクセスされ得る。したがって、メモリを1回アクセスすることで、たとえば対応する「64」サイクルまたはファイルを表す、タイルの一部は、列毎の基準でアクセスされ得る。
しかしながら、図1Fを見るとわかるように、ホストメモリ内のデータは列データとしてアクセスされるが、ハードウェアに伝送されるときに、これは関連付けられているより小さいメモリ、たとえば、レジスタに異なる順序でアップロードされてよく、それによって、データは、DDRの最小バーストレートなどに従って行毎のリードデータのバイト、たとえば、64バイトに変換され、それにより、アクセス毎に対応する「64」メモリユニットまたはブロックを生成し得る。これは、図1Dの仮想行列によって例示され、そこでは、多数のリード、たとえば、64個のリードがブロック単位でアクセスされ、図1Eによって表されているように、セグメント単位でメモリ内に読み込まれ、たとえば、各レジスタ、またはフリップフロップは、特定のリード、たとえば、64サイクル×64リード×1リード当たり8ビット=32Kフリップフロップを占める。特に、これは、ハードウェアで様々な異なる方法により達成されるものとしてよく、たとえば、入力配線は列順序とマッチするように編成され、出力配線は行順序とマッチするように編成される。したがって、この構成では、ハードウェアは、サイクル毎に「64」個の異なるアドレスの読出しおよび/または書込みの両方を行うように適合され得る。
より具体的には、ハードウェアは、リードの各塩基が単一のレジスタ(または行内の複数のレジスタ)に向けられ書き込まれ、各ブロックが完了したときに、新たに順序付けられた行データが出力、たとえば、FASTQデータとして行毎の編成でメモリに伝送され得るようにレジスタのアレイに関連付けられ得る。次いで、FASTQデータは、本明細書で説明されているように、マッピング、アライメント、および/またはバリアントコーリングエンジンなどによって、さらなる処理のために二次処理システムの1つまたは複数のさらなる処理エンジンによってアクセスされ得る。本明細書で説明されているように、転置は、小ブロック単位で実行されるが、システムは、場合によっては、より大きいブロックの処理にも適用されてよいことに留意されたい。
示されているように、BCLファイルがFASTQファイルに、上で説明されているように変換され、および/またはBCLもしくはFASTQファイルが二次処理プラットフォームによって他の何らかの形で受け取られた後、マッピングオペレーションが受け取られたデータに対して実行され得る。マッピングは、一般に、マッチがある参照ゲノム内のすべての配置へのリードをプロットするステップを伴う。たとえば、リードのサイズに応じて、リードが参照ゲノム内の対応する配列と実質的にマッチする1つまたは複数の配置があり得る。したがって、本明細書で開示されているマッピングおよび/または他の機能は、1つまたは複数のリードが参照ゲノム内でマッチし得る可能なすべての配置のうちどこが実際に、マッピングされる真の配置であるかを決定するように構成され得る。
たとえば、様々な事例において、参照ゲノムのインデックスが生成されるか、または他の何らかの形で提供されてよく、したがって、それらのリードまたはリードの一部は、たとえば、インデックスへの参照で、ルックアップテーブル(LUT)内で検索され、それによって参照内の配置の指示を取り出し、それらのリードを参照にマッピングし得る。参照のそのようなインデックスは、様々な形態で構築され、様々な仕方で問い合わせされ得る。いくつかの方法において、インデックスは、プレフィックスおよび/またはサフィックスツリーを含み得る。特定の方法において、インデックスは、参照のBurrows/Wheeler変換から導出され得る。したがって、代替的に、またはプレフィックスもしくはサフィックスツリーを採用することに加えて、Burrows/Wheeler変換がデータに対して実行され得る。たとえば、Burrows/Wheeler変換は、プレフィックスおよび/またはサフィックスツリーに抽象的に同等であるツリー状データ構造をコンパクトな形式で、たとえば、参照ゲノムを記憶するように割り振られている空間に記憶するために使用され得る。様々な事例において、記憶されているデータは、ツリー状構造ではなく、むしろ、参照配列データは、かなり特有の方法で変換するように異なる順序でスクランブルされているものとしてよい線形リストであり、それにより、付随するアルゴリズムはその参照が「ツリー」を効果的に辿るようにサンプルリードへの参照で探索されることを可能にする。
それに加えて、様々な事例において、インデックスは、1つまたは複数のハッシュテーブルを含むものとしてよく、本明細書で開示されている方法は、リードを参照、たとえば、参照のインデックスにマッピングしようとしてリードの1つまたは複数の部分上で実行され得るハッシュ関数を含み得る。たとえば、代替的に、または一方が他方に対してどこにマッピングされるかを見つけるために、一方または両方のプレフィックス/サフィックスツリーおよび/または参照ゲノムおよび対象配列データ上のBurrows/Wheeler変換を利用することに加えて、別のそのような方法は、ハッシュテーブルインデックスの作成および/またはハッシュ関数の実行を伴う。ハッシュテーブルインデックスは、その後リードの1つまたは複数の部分と比較されて一方が他方とどこでマッチし得るかを決定し得る参照ゲノムの配列から構築される大きい参照構造であってよい。同様に、ハッシュテーブルインデックスは、その後参照ゲノムの1つまたは複数の配列と比較され、それによって一方が他方とどこでマッチし得るかを決定するために使用され得るリードの一部から構築されてよい。
ハッシュテーブルの実装形態は、パターンマッチを実行するための高速な方法である。各検索は、実行するのにほぼ一定の時間量を要する。そのような方法は、マッチを見つけるためにクエリ毎に多数のプローブを必要とし得る(数は固有のパターンを見つけるためにビットがいくつ必要かに応じて異なり得る)Burrows-Wheeler法、またはNをテーブル内のシードパターンの数であるとしてlog2(N)個のプローブを取る二分探索法と対比され得る。さらに、ハッシュ関数は参照ゲノムを所与の長さ、たとえば、28塩基対のシードのセグメントに分けることができ、次いで、シードを56ビットのデジタル、たとえば、バイナリ表現に変換することができるとしても、56ビットすべてが全体的に全く同時に、または同じ方法でアクセスされる必要はない、たとえば、ハッシュ関数は、各シードに対するアドレスが56ビット未満、たとえば約18から約44もしくは46ビット、たとえば約20から約40ビット、たとえば、約24から約36ビットの数によって指定されるような仕方で実装されてよく、約28から約32もしくは約30ビットを含めることは、ハッシュテーブルにアクセスするために初期キーまたはアドレスとして使用され得る。たとえば、いくつかの事例において、約26から約29ビットがハッシュテーブルに対する一次アクセスキーとして使用され、残りの約27から約30ビットが残され、第1の鍵を二重チェックするための手段として使用されてよく、たとえば、第1のキーおよび第2のキーの両方がハッシュテーブル内の同じセルに到来した場合に、前記配置がそれらが属している場所であることは比較的明らかである。
たとえば、デジタル表現されたシードの第1の部分、たとえば、約26から約32、たとえば約29ビットは、一次アクセスキーを形成し、ハッシュされるものとしてよく、第1のステップで検索され得る。そして、第2のステップにおいて、残りの約27から約30ビット、たとえば、二次アクセスキーが、第1のパスを確認するための手段として、ハッシュチェーンなど、ハッシュテーブルに挿入され得る。したがって、どのシードについても、元のアドレスビットは第1のステップでハッシュされるものとしてよく、二次アドレスビットは、第2のステップ、確認ステップで使用され得る。そのような事例において、シードの第1の部分は、一次レコード配置に挿入されるものとしてよく、第2の部分は、テーブル内の二次レコードチェーン配置に収められ得る。そして、上で示されているように、様々な事例において、これら2つの異なるレコード配置は、チェーンフォーマットレコード(chain format record)などによって位置を隔てられ得る。
特定の事例において、参照をリード、またはその一部と比較するために総当たりの線形走査が使用されてよい。しかしながら、総当たりの線形探索を使用してシードがマッチする配置に対する参照ゲノムを走査する場合、30億を超える配置がチェックされなければならないこともある。その探索は、本明細書で開示されている方法に従って、ソフトウェアまたはハードウェアで実行され得る。それにもかかわらず、ハッシングアプローチを使用することによって、本明細書で述べられているように、各シード検索は、おおよそ一定の時間量内に行われ得る。しばしば、配置は、少ない回数の、たとえば、単一のアクセスで確認され得る。しかしながら、複数のシードがテーブル内の同じ配置にマッピングされる場合、たとえば、十分に固有のものでない場合、現在検索されているシードを見つけるためにさらに何回かアクセスが行われ得る。したがって、参照ゲノムに関して、所与の100のヌクレオチド長のリードが合う30Mまたはそれ以上の可能な配置があり得るとしても、ハッシュテーブルおよびハッシュ関数は、そのリードが参照ゲノム内のどこに現れようとしているかを素早く決定することができる。したがって、ハッシュテーブルインデックスを使用することによって、リードがどこにマッピングしアライメントするかを決定するために、たとえば総当たりで参照ゲノム全体を探索する必要はない。
上記に照らして、これらの目的のために好適な任意のハッシュ関数が使用されてよいが、様々な事例において、各シードに対するテーブルアドレスを決定するために使用されるハッシュ関数は、上で示されているように、2kビットプリミティブ多項式に基づき得る巡回冗長検査(CRC)であってよい。代替的に、2kビットのうちのいくつかを単純に落とすなどによって自明なハッシュ関数マッパが使用され得る。しかしながら、様々な事例において、CRCは同時にテーブルの混雑状態を回避しながら類似のシードをよりよく分離し得るより強いハッシュ関数であってよい。これは、本明細書で説明されている専用ハードウェアなどによってCRCを計算するときに速度ペナルティがない場合に特に有益であり得る。そのような事例において、各シードについて初期値を入力されたハッシュレコードは、シードが生じた参照位置と、ハッシングの前に逆相補にされたかどうかを示すフラグとを含み得る。
マッピング機能の実行で返される出力は、1つまたは複数の、たとえば、各々のリードが1つまたは複数の参照ゲノムのどこにマッピングされるかに関する可能性のリストであってよい。たとえば、各マッピングされるリードに対する出力は、リードが参照ゲノム内のマッチする配列にマッピングされ得る可能な配置のリストであってよい。様々な実施形態において、少なくとも個片、たとえば、リードのすべてではないとしても、リードのシードに対する参照への完全マッチが求められ得る。したがって、様々な事例において、すべてのリードのすべての部分が参照ゲノムのすべての部分と完全にマッチすることは必要でない。
本明細書で説明されているように、これらのオペレーションはすべて、ソフトウェアを介して実行され得るか、またはたとえば、回路基板の一部として、チップなどの集積回路などにハード配線され得る。たとえば、これらのアルゴリズムのうちの1つまたは複数の機能は、チップ上に、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)チップなどに組み込まれてよく、そのようなハードウェアにそれらを実装するのでより効率的に実行するように最適化され得る。それに加えて、これらのマッピング機能のうちの1つまたは複数、たとえば、2つまたは3つすべては、個体の実際のゲノム配列全体、またはその一部を決定するためにプロセスにおいて使用されるシステムの一部、たとえば、パイプラインを形成し得る、マッピングモジュールなどのモジュールを形成し得る。
ハッシュモジュールをハードウェアに実装する利点は、プロセスが加速され、したがって実行をかなり速くし得る点である。たとえば、ソフトウェアがこれらの様々な機能のうちの1つまたは複数を実行するための様々な命令を含み得る場合、そのような命令の実装は多くの場合に、実行する前などに、データおよび命令が記憶され、および/またはフェッチされ、および/または読み出され、および/または解釈されることを必要とする。しかしながら、上に示されているように、また本明細書においてより詳細に説明されているように、一連の命令のうちの1つまたは複数をフェッチし、解釈し、および/または実行しなくても、これらの機能を実行するようにチップをハード配線することができる。むしろ、チップは、そのような機能を直接実行するように配線されてよい。したがって、様々な態様において、本開示は、上述のマッピング、たとえば、ハッシング、モジュールの一部または全部がFPGAまたはASICなどのチップ上にハード配線された集積回路などの1つまたは複数のネットワーク回路によって実装され得るように構成され得るカスタムハード配線された機械を対象とする。
たとえば、様々な事例において、ハッシュテーブルインデックスが構築されてよく、ハッシュ関数はチップ上で実行されてよく、他の事例では、ハッシュテーブルインデックスは、ホストCPUによって実行されるソフトウェアなどを介して、チップから生成されてよいが、生成されると、これはハードウェア上にロードされるか、または他の何らかの形でアクセス可能にされ、たとえばハッシュモジュールを実行する際に、チップによって使用される。特に、様々な事例において、FPGAなどのチップは、QPIインターコネクトなどの低遅延インターコネクトなどによって、ホストCPUに密結合されるように構成され得る。より具体的には、チップおよびCPUは、以下でより詳しく説明されるように、キャッシュコヒーレント構成において、1つまたは複数のメモリリソース、たとえば、DRAMを共有するような仕方で一緒に密結合されるように構成されてよい。そのような事例において、ホストメモリは、ホストメモリ内に記憶され得るが、ハッシュまたは他のマッピング機能の実行の際に使用するなどのためにFPGAに容易にアクセス可能にされ得る、参照インデックス、たとえば、ハッシュテーブルを構築し、および/または含むものとしてよい。特定の実施形態において、CPUおよびFPGAの一方または両方は、一方のキャッシュ内に記憶されているデータが他方によって実質的にミラー化されるようなコヒーレント構成となるように一緒に結合され得る1つまたは複数のキャッシュもしくはレジスタを備え得る。
したがって、上記に照らして、実行時に、たとえば、参照ゲノムのインデックスを含む、1つまたは複数の以前に構築されたハッシュテーブル、または構築されたもしくは構築されるべきハッシュテーブルは、オンボードメモリ上にロードされ得るか、または少なくとも、本明細書において以下でより詳しく説明されているように、ホストアプリケーションによってアクセス可能にされ得る。そのような事例において、たとえば、FASTQファイル形式で記憶されている、リードは、ホストアプリケーションによってオンボード処理エンジン、たとえば、メモリもしくはキャッシュもしくはそれらに関連付けられている他のレジスタに、たとえばマッピングおよび/またはアライメントおよび/またはソーティングエンジンによる使用のために送られてよく、たとえば、それらの結果はバリアントコール機能に送られ、バリアントコール機能を実行するために使用され得る。それに関して、上で示されているように、様々な事例において、重なり合うシードのパイルアップは、たとえば、シード生成機能を介して生成され、配列決定されたリード、またはリード対から抽出されてよく、生成された後、シードはインデックスなどと突き合わせてハッシュされ、参照内の候補リードマッピング位置を決定するためにハッシュテーブル内で検索され得る。
より具体的には、様々な事例において、マッピングモジュールが実現されてよく、たとえば、マッピングモジュールはハード配線された構成などにおいて1つまたは複数のマッピング機能を実行するように構成される。特に、ハード配線されたマッピングモジュールは、CPU上で実行される1つまたは複数のアルゴリズムによって典型的には実行される1つまたは複数の機能、たとえば、プレフィックスおよび/またはサフィックスツリーを生成するソフトウェアベースのアルゴリズム、Burrows-Wheeler Transformで典型的には実装される機能を実行するように構成されてよく、あるいは/ならびにハッシュ関数、たとえば、参照ゲノム配列などの、ハッシュテーブルインデックス作成を使用するか、または他の何らかの形でそれに頼るハッシュ関数を実行する。そのような事例において、ハッシュ関数は、実行されるメモリアクセスの回数、たとえば、大メモリランダムアクセスの回数を最小化し、それによってチップアーキテクチャ内の空間などによって基本的に制約され得る、オンボードまたは他の何らかの形で関連付けられているメモリ帯域幅の利用を最大化するように構成され得る最適化されたマッピング戦略などの、戦略を実装するように構造化され得る。
さらに、いくつかの事例において、システムをより効率的にするために、ホストCPU/GPU/QPUは、関連付けられているハードウェア、たとえば、FPGAに、低遅延インターフェース、たとえばクイックパスインターコネクト(「QPI」)などによって密結合され、それにより、集積回路の処理エンジンがホストメモリにすぐにアクセスできるようにし得る。特定の事例において、ホストCPUと結合されているチップおよびそれぞれの関連付けられているメモリ、たとえば、1つまたは複数のDRAMとの間の相互作用は、キャッシュコヒーレントであるように構成され得る。したがって、様々な実施形態において、集積回路が実現されるものとしてよく、その集積回路は、たとえば、1つまたは複数の物理的電気的インターコネクトによって相互接続され得る、配線構成をとり得る1つまたは複数のデジタル論理回路を備えるような仕方で事前構成、たとえば、事前配線されており、様々な実施形態において、ハード配線されたデジタル論理回路は、マッピングモジュールなどの、1つまたは複数のモジュールを形成するように1つまたは複数の処理エンジン内に配置構成され得る。
したがって、様々な事例において、マッピングモジュールは、第1の事前構成された配線された、たとえば、ハード配線された構成などで実現されてよく、マッピングモジュールは、様々なマッピング機能を実行するように構成される。たとえば、マッピングモジュールは、対象の配列決定された遺伝子サンプルから導出された、複数のリードのうちの1つのリードにおけるヌクレオチドの配列の少なくとも一部、および/または遺伝子参照配列、および/または1つもしくは複数の遺伝子参照配列のインデックスに、メモリまたはそれに関連付けられているキャッシュから、たとえば、プロセスインターコネクト、たとえば、クイックパスインターコネクト、および同様のものなどのメモリインターフェースを介してアクセスするように構成され得る。マッピングモジュールは、インデックスに基づくなどして、リードを1つまたは複数の遺伝子参照配列の1つまたは複数のセグメントにマッピングするようにさらに構成され得る。たとえば、様々な特定の実施形態において、本明細書において提示されているマッピングアルゴリズムおよび/またはモジュールは、ハッシュテーブルを構築するか、または他の何らかの形で構築するために使用されてよく、それによって、対象からの配列決定遺伝物質のリード、またはその一部は、参照ゲノムの1つまたは複数のセグメントと比較され、マッピングされたリードを作成するものとしてよい。そのような事例において、マッピングが実行された後、アライメントが実行され得る。
たとえば、参照ゲノムと突き合わせてシードに対して可能なすべてのマッチがどこにあるかが決定された後、所与のリードがマッチし得る可能なすべての配置からどれが実際にアライメントする正しい位置であるかが決定されなければならない。したがって、マッピングの後、参照ゲノム内に1つまたは複数のリードがマッチするように見える複数の位置があり得る。結果として、完全に同じことを示すように見える複数のシードがあり得る、たとえば、これらはリード内のシードの位置を考慮した場合に、参照上の完全に同じ位置とマッチし得る。したがって、実際のアライメントは、各所与のリードについて決定されなければならない。この決定は、いくつかの異なる方法で行われ得る。
一事例において、すべてのリードは、マッピング、たとえばハッシュ検索、プロセスの間に、位置情報を返したリードからのすべてのシードによって示される位置に基づき参照ゲノムに関して正しいアライメントを決定するために評価され得る。しかしながら、様々な事例において、アライメントを実行する前に、シードチェーンフィルタリング機能がシードのうちの1つまたは複数に対して実行され得る。たとえば、いくつかの事例において、参照ゲノムと突き合わせた場合と同じ一般的な場所にマッピングするように見える所与のリードに関連付けられているシードは、同じ一般的な領域を参照する単一のチェーンに集められ得る。1つのリードに関連付けられているシードのすべてが、各シードがただ1つのチェーンのメンバーであるように1つまたは複数のシードチェーンにグループ化され得る。これは、その後、参照ゲノムにおける各示された位置にリードをアライメントさせるようなチェーンである。
特に、様々な事例において、参照における同じ一般的な配置にすべて属することを示す根拠となる同じ証拠を有するシードのすべてが一緒にまとめられ、1つまたは複数のチェーンを形成し得る。したがって、一緒のグループになるか、またはたとえば、特定のバンド内の、参照ゲノムにおいて互いに近づこうとするように少なくとも見えるシードは、シードのチェーン内にグループ化され、このバンドの外側にあるものはシードの異なるチェーンに入れられる。これらの様々なシードが1つまたは複数の様々なシードチェーン内に集められた後、チェーンのうちのどれが実際にアライメントされるべき正しいチェーンを表すかが決定され得る。これは、少なくとも一部において、正しいものであることが非常にありそうもない弱いシードチェーンを排除するように設計されている発見的手法であるフィルタリングアルゴリズムを使用することによって行われ得る。
これらのマッピング、フィルタリング、および/または編集機能のうちの1つまたは複数を実行した結果は、各リードについて、リードが参照ゲノムとマッチアップし得る場所への可能なすべての配置のリストを含むリードのリストである。したがって、マッピング機能は、シークエンサから得られた画像ファイル、BCLファイル、および/またはFASTQファイルのリードが参照ゲノムのどこにマッピングするか、たとえば、ゲノム全体において様々なリードがどこにマッピングするかを素早く決定するように実行され得る。しながら、リードまたは遺伝的バリエーションのどれかに誤りがある場合に、参照への完全マッチを取得し得ず、および/または1つもしくは複数のリードがマッチするように見えるいくつかの場所があり得る。したがって、様々なリードが実際に全体としてゲノムに関してどこにアライメントするかが決定されなければならない。
したがって、マッピングおよび/またはフィルタリングおよび/または編集の後に、多数のリードに対する配置位置が決定されており、個別のリードのいくつかについて、多数の配置位置が決定されており、次に、可能なすべての配置のうちのどれが実際に、様々なリードがアライメントする真のまたは最もありそうな配置であるかが決定される必要がある。そのようなアライメントは、マッピングされたリードを参照ゲノムとマッチし、アライメント機能をそれに対して実行する動的プログラミングアルゴリズムなどの、1つまたは複数のアルゴリズムによって実行され得る。例示的なアライメント機能は、リードの1つまたは複数、たとえばすべてを、たとえば、テーブル、たとえば、仮想アレイまたは行列などにおいて、それらを互いに対してグラフ関係に入れることなどによって、参照と比較し、参照ゲノムまたはマッピングされたリードのうちの1つの配列は、一方の次元もしくは軸、たとえば、水平軸上に置かれ、他の配列は、垂直軸などの、対向する次元もしくは軸上に置かれる。次いで、概念的なスコアリング波面がアレイに受け渡され、それにより、リードと参照ゲノムとのアライメントを、行列内の各セルに対するアライメントスコアを計算することなどによって決定する。
スコアリング波面は、Smith-Waterman、および/またはNeedleman-Wunsch、および/または関係するアルゴリズムなどの、アライメントアルゴリズムにおいて適用可能な動的プログラミングのルールに従って独立しておよび/または同時にスコアリングされ得る、行列のセル、またはそれらのセルの一部の1つまたは複数、たとえば、すべてを表す。アライメントスコアは、順次、または他の順序で、上行内のすべてのスコアを左から右に、その後、次の行内のすべてのスコアを左から右に、などと計算することなどによって計算され得る。このような仕方で、対角線上をスイープする対角線波面は、一連の波面ステップにおいて同時にまたは並行して計算されるスコアのバッチの最適な配列を表す。
たとえば、一実施形態において、リードがマッピングされたセグメントを含む参照ゲノムのウィンドウは、水平軸上に置かれてよく、リードは、垂直軸上に位置決めされ得る。このような仕方で、アレイまたは行列が生成され、たとえば、仮想行列が生成され、それによって、リード内の各位置におけるヌクレオチドは、参照ウィンドウ内の各位置におけるヌクレオチドと比較され得る。波面がアレイ上を通り過ぎるときに、リードを参照ウィンドウにアライメントするすべての潜在的方法が、1つの配列への変更が、リードの1つもしくは複数のヌクレオチドを他のヌクレオチドに変更するか、または1つもしくは複数の新しいヌクレオチドを1つの配列に挿入するか、または1つもしくは複数のヌクレオチドを1つの配列から削除することなどによって、リードを参照配列にマッチさせるために必要になる場合を含めて、考慮される。
完全なアライメントを達成するために行われる必要が生じるであろう変更の程度を表す、アライメントスコアが生成され、このスコアおよび/または他の関連付けられているデータは、アレイの所与のセル内に記憶され得る。アレイの各セルは、リード軸上の位置におけるヌクレオチドが参照軸上の位置におけるヌクレオチドにアライメントする可能性に対応し、各セルについて生成されるスコアは、リードおよび参照ウィンドウ内のセルの位置で終了する部分的アライメントを表す。セル内の生成される最高のスコアは、リードと参照ウィンドウとの最良の全体的アライメントを表す。様々な事例において、アライメントは大域的であってよく、リード全体は、Needleman-Wunschまたは類似のアルゴリズムなどを使用して、参照ウィンドウの何らかの部分にアライメントされなければならないか、または他の事例において、アライメントは局所的であってよく、リードの一部のみが参照ウィンドウの一部に、Smith-Watermanまたは類似のアルゴリズムなどを使用することによって、アライメントされ得る。
したがって、様々な事例において、アライメント機能が、マッピングモジュールから得られたデータなどに対して実行され得る。したがって、様々な事例において、アライメント機能は、個体の実際のゲノム配列全体、またはその一部を決定するためにプロセスにおいて、マッピングモジュールなどとともに加えて、使用されるシステムの一部、たとえば、パイプラインを形成し得る、アライメントモジュールなどのモジュールを形成し得る。たとえば、マッピングモジュールなどからの、マッピング機能の実行から返された出力、たとえば、リードのうちの1つもしくは複数またはすべてが1つまたは複数の参照ゲノム内の1つまたは複数の位置にどこにマッピングするかに関する可能性のリストは、対象の配列決定DNAの実際の配列アライメントを決定するためにアライメント機能によって使用され得る。
そのようなアライメント機能は、時々、上で説明されているように、しばしば、様々な異なる理由から、配列決定されたリードが必ずしも参照ゲノムと完全にはマッチしないことから有用であり得る。たとえば、リードのうちの1つまたは複数にSNP(一塩基多型)があり得る、たとえば、単一の位置における一方のヌクレオチドの他方のヌクレオチドに対する置換があり得、リード配列の1つまたは複数に沿って1つまたは複数の塩基の「インデル」、すなわち、挿入または欠失があり得、挿入または欠失が参照ゲノム内に存在しせず、ならびに/あるいはこれらの明白なバリエーションのうちの1つまたは複数を引き起こすシークエンシングの誤り(たとえば、サンプル調製および/またはシークエンサリードおよび/またはシークエンサ出力などにおける誤り)があり得る。したがって、SNPまたはインデルなどによって、リードが参照から異なるときに、これがあり得るのは、参照がサンプリングされた真のDNA配列と異なるか、またはリードがサンプリングされた真のDNA配列と異なるからである。問題は、すべての可能性において2つの配列が多数の異なる仕方で相互に変わろうとするという事実が与えられた場合にリードを参照ゲノムに正しくアライメントする方法を見つけ出すことである。
様々な事例において、プレフィックス/サフィックスツリー、Burrows/Wheeler変換、またはハッシュテーブルおよび/またはハッシュ関数などのマッピング機能などからのアライメント機能への入力は、1つまたは複数のリードが1つまたは複数の参照配列の1つまたは複数の位置にどこでマッチし得るかに関する可能性のリストであってよい。たとえば、所与のリードについて、これはゲノム内で所与のリードがマッピングされる1つの配置または16、もしくは32、もしくは64、もしくは100、もしくは500、もしくは1,000、もしくはそれ以上の配置などにおける、参照ゲノム内の任意の数の位置とマッチし得る。しかしながら、個別のリードは、ゲノムのただ1つの特定の部分から導出、たとえば、配列決定された。したがって、所与の特定のリードが導出された場所から真の配置を見つけるために、アライメント機能、たとえば、Smith-Watermanギャップもしくは無ギャップアライメント、Needleman-Wunschアライメントなどが実行されてよく、それにより、ゲノム内のどこでリードの1つまたは複数が実際に導出されたかを、たとえば、マッチが生じる可能な配置のすべてを比較し、すべての可能性のうちのどれがリードが配列決定されたゲノム内の最もありそうな配置であるかを、どの配置のアライメントスコアが最大となるか基づき決定することなどによって決定する。
示されているように、典型的には、そのようなアライメント機能を実行するためにアルゴリズムが使用される。たとえば、Smith-Watermanおよび/またはNeedleman-Wunschアライメントアルゴリズムは、2つまたはそれ以上の配列を互いに対してアライメントするために使用され得る。この事例では、これらは、リードが参照ゲノムにマッピングされる所与の位置についてマッピングが実際にはリードの始まりの場所からの位置である確率を決定するような仕方で使用され得る。典型的には、これらのアルゴリズムは、ソフトウェアによって実行されるように構成されるが、様々な事例において、本明細書において提示されているように、これらのアルゴリズムのうちの1つまたは複数は、本明細書において以下でより詳しく説明されているように、ハードウェアで実行されるように構成され得る。
特に、アライメント機能は、少なくとも一部には、リードの1つまたは複数、たとえばすべてを、ミスマッチの1つまたは複数、たとえば、SNP、挿入、欠失、構造的アーチファクトなどが存在しているにもかかわらず、参照ゲノムにアライメントし、それにより、リードがゲノム内のどこで正しく適合しそうかを決定するように動作する。たとえば、1つまたは複数のリードは、参照ゲノムと突き合わせて比較され、ゲノムに対するリードの可能な最良の適合は、置換および/またはインデルおよび/または構造バリアントを考慮しながら決定される。しかしながら、リードの修正バージョンのうちのどれが参照ゲノムに対して最もよく適合するかをよりよく決定するために、提案された変更が考慮されなければならず、したがって、スコアリング機能も実行されてよい。
たとえば、スコアリング機能は、たとえば、アライメント機能全体の一部として実行されてよく、それによって、アライメントモジュールがその機能を実行し、1つまたは複数の変更を他方と比較される配列内に導入し、たとえば、それによってそれら2つの間のよりよいまたは最良の適合を達成し、よりよいアライメントを達成するために行われる変更毎に、アライメントが実行されるときにアライメントに対するスコアも決定されるような仕方で開始スコア、たとえば完全スコアもしくはゼロ開始スコアのいずれかからある数が減じられ、たとえばマッチが検出された場合にスコアが増やされ、導入された変更毎に、ペナルティが課され、それにより、可能なアライメントに対する最良適合が、たとえば、可能な修正されたリードのすべてのうちどれが最高スコアでゲノムに適合するかを見つけ出すことによって決定され得る。したがって、事例において、アライメント機能は、最高のスコアリングのアライメントを達成するためにリードに行われる必要のある変更の最良の組合せを決定するように構成されるものとしてよく、そのアライメントは、次いで、正しい、または最もありそうなアライメントであると決定され得る。
上記に照らして、したがって、アライメント機能を実行することから達成され得る少なくとも2つの目標がある。1つは、最良のアライメントのレポートであり、これは参照ゲノム内の位置と、その位置でリードを参照セグメントにマッチさせるのに必要な変更がどのようなものであるかの記述とを含み、もう1つは、アライメントクオリティスコアである。たとえば、様々な事例において、アライメントモジュールからの出力は、コンパクトイディオシンクラティックギャップアライメントレポート(Compact Idiosyncratic Gapped Alignment Report)、たとえば、CIGAR文字列であってよく、CIGAR文字列出力は、最良適合アライメントを達成するようにリードに対して行われたすべての変更、たとえば、クエリが実際に参照とどのようにアライメントするかを示す詳細なアライメント命令を詳述するレポートである。読み出されたそのようなCIGAR文字列は、所与の対象のゲノムヌクレオチド配列について、参照ゲノムと突き合わせて比較された予測されたバリエーションが実際には真のバリエーションであり、単に機械、ソフトウェア、または人間の誤りによるものでないとよりよく決定するために処理のさらなる段階において有用であり得る。
上で述べたように、様々な実施形態において、アライメントは、典型的には、順次的に実行され、アルゴリズムおよび/またはファームウェアは、リードおよびリードが1つまたは複数の参照ゲノムに潜在的にマッピングし得る1つまたは複数の可能な配置に関連するリード配列データをマッピングモジュールなどから受け取り、リードがマッピングし得る1つまたは複数の参照ゲノム内の1つまたは複数の位置に関連するゲノム配列データを、関連付けられているDRAMなどの、1つまたは複数のメモリなどからさらに受け取る。特に、様々な実施形態において、マッピングモジュールは、FASTQファイルなどからのリードを処理し、それらの各々をそれらが場合によってはアライメントし得る参照ゲノム内の1つまたは複数の位置にマッピングする。次いで、アライナは、これらの予測された位置を取り、それらを使用して、リードを参照ゲノムにアライメントすることを、それによってリードを参照ゲノムと比較する仮想アレイを構築することなどによって行う。
この機能を実行する際に、アライナは、各個別のリードに対する各マッピングされた位置を評価し、特に、参照ゲノム内の複数の可能な配置にマッピングするそれらのリードを評価し、各位置が正しい位置である確率をスコアリングする。次いで、最良のスコア、たとえば、2つの最良のスコアを比較し、特定のリードが実際にどこにアライメントするかに関する決定を行う。たとえば、第1および第2の最良のアライメントスコアを比較する際に、アライナは、スコア間の差を見て、それらの間の差が大きい場合に、より大きいスコアを有するものが正しいとする信頼スコアが高くなる。しかしながら、それらの間の差が小さい、たとえば、ゼロである場合、2つの位置のどちらからリードが実際に導出されたかを言える信頼スコアは低く、リードが導出された場所から参照ゲノム内の真の配置を明確に決定することができるためにより多くの処理が役立ち得る。
したがって、アライナは一部において、所与のリードが参照ゲノム内の所与の配置にマッピングするというコールを行う際に第1の最良の信頼スコアと第2の最良の信頼スコアとの間の最大の差を探すことになる。理想的には、アライメントの最良の可能な選択のスコアは、その配列に対する第2の最良のアライメントに対するスコアよりも著しく大きい。アライメントスコアリング方法を実装する方法は多数あり、また様々であり、たとえば、本明細書で開示されている方法などに従って、アレイの各セルがスコアリングされ得るか、またはセルの一部分がスコアリングされ得る。様々な事例において、ヌクレオチドのマッチ、ヌクレオチドのミスマッチ、挿入、および欠失に対するスコアリングパラメータは、様々な正または負またはゼロの値を有し得る。様々な事例において、これらのスコアリングパラメータは、利用可能な情報に基づき修正され得る。たとえば、正確なアライメントは、ヌクレオチドのマッチスコア、ヌクレオチドのミスマッチスコアのどれかまたはすべてを含む、スコアリングパラメータを作ることによって達成されるものとしてよく、ギャップ(挿入および/または欠失)ペナルティ、ギャップオープンペナルティ、および/またはギャップエクステンドペナルティは、現在のリードヌクレオチドまたは位置に関連付けられている塩基クオリティスコアに応じて変化する。たとえば、スコアボーナスおよび/またはペナルティは、塩基クオリティスコアがシークエンシングまたは他の誤りが存在している高い確率を示すときにより小さくされることもあり得る。塩基クオリティに敏感なスコアリングが、たとえば、対応するスコアリングパラメータを返す、塩基クオリティスコアを使用してアクセスされる、固定されたまたは構成可能なルックアップテーブルを使用して、実装され得る。
FPGAまたはASICなどの、集積回路によるハードウェア実装では、スコアリング波面は、16セル、または32セル、または64セル、または128セル、または同様のものなどの、スコアリングセルの線形アレイとして実装されてよい。スコアリングセルの各々は、アライメントスコアを計算するために配線構成におけるデジタル論理素子から構築され得る。したがって、波面の各ステップについて、たとえば、各クロックサイクル、または他の何らかの固定された、もしくは可変の時間単位、スコアリングセルの各々、またはセルの一部は、仮想アライメント行列内の新しいセルについて必要な1つまたは複数のスコアを計算する。概念上、様々なスコアリングセルは、たとえば、行列内の左下から右上まで伸びる直線に沿って、本明細書で説明されているようなスコアリング波面に対応する、アライメント行列内の様々な位置にあると考えられる。デジタル論理設計の分野ではよく理解されているように、物理的スコアリングセルおよびその構成されるデジタル論理は、集積回路上に類似の様式で物理的に配置構成される必要はない。
したがって、波面が仮想アライメント行列をスイープするステップを実行するときに、スコアリングセルの概念的位置は、それに対応して、各セルを更新し、たとえば、右に1ステップ概念的に「移動する」か、またはたとえば、アライメント行列内の下方に1ステップ移動する。すべてのスコアリングセルが、同じ相対的概念的移動を行い、対角線波面配置構成を変えずにそのままにする。波面が新しい位置に、たとえば、行列内で垂直下方のステップまたは水平右方向のステップで移動するたびに、スコアリングセルは新しい概念的位置に到達し、それらが入っている仮想アライメント行列セルに対するアライメントスコアを計算する。そのような実装形態において、線形アレイ内の隣接するスコアリングセルは、クエリ(リード)ヌクレオチド、参照ヌクレオチド、および以前に計算されたアライメントスコアを伝達するように結合される。参照ウィンドウのヌクレオチドは、順次波面の一端に、たとえば、線形アレイ内の右上スコアリングセル内に送り込まれるものとしてよく、そこから波面の長さだけ順次下にシフトするものとしてよく、それにより、常に、スコアリングセルの数に等しい長さの参照ヌクレオチドのセグメントがセル内に存在し、1つの連続するヌクレオチドが各連続するスコアリングセル内にある。
たとえば、波面が水平方向に1ステップずつ進む毎に、別の参照ヌクレオチドが右上のセルに送り込まれ、他の参照ヌクレオチドが左下にシフトして波面を通る。参照ヌクレオチドのこのシフトは、アライメント行列を通って右方向に進むスコアリングセルの波面の概念的移動の基礎となる現実であり得る。したがって、リードのヌクレオチドは、順次波面の対向端に、たとえば、線形アレイ内の左下スコアリングセル内に送り込まれるものとしてよく、そこから波面の長さだけ順次上にシフトするものとしてよく、それにより、常に、スコアリングセルの数に等しい長さのクエリヌクレオチドのセグメントがセル内に存在し、1つの連続するヌクレオチドが各連続するスコアリングセル内にある。同様に、波面が垂直方向に1ステップずつ進む毎に、別のクエリヌクレオチドが左下のセルに送り込まれ、他のクエリヌクレオチドが右上にシフトして波面を通る。クエリヌクレオチドのこのシフトは、アライメント行列を通って下方に進むスコアリングセルの波面の概念的移動の基礎となる現実である。したがって、参照ヌクレオチドのシフトを指令することによって、波面は1ステップ水平方向に移動されてよく、クエリヌクレオチドのシフトを指令することによって、波面は1ステップ垂直方向に移動されてよい。したがって、一般的に対角線上にある波面移動を作成するために、たとえば、挿入も欠失もなしでクエリおよび参照配列の典型的なアライメントに追随するために、波面ステップは垂直方向と水平方向の交互で指令され得る。
したがって、線形アレイ内の隣接するスコアリングセルは、以前に計算されたアライメントスコアを伝達するように結合され得る。Smith-WatermanもしくはNeedleman-Wunsch、またはそのようなバリアントなどの、様々なアライメントスコアリングアルゴリズムにおいて、仮想アライメント行列の各セル内のアライメントスコアは、現在のセルのすぐ左、現在のセルの上、および現在のセルの対角線上左上に位置する3つのセルなどの、行列の他のセル内の以前に計算されたスコアを使用して計算され得る。スコアリングセルが、それが入った別の行列位置について新しいスコアを計算するときに、これはそのような他の行列位置に対応するそのような以前に計算されたスコアを取り出さなければならない。これらの以前に計算されたスコアは、同じセル内の以前に計算されたスコアの記憶域から、および/または線形アレイ内の1つまたは複数の隣接するスコアリングセルにおける以前に計算されたスコアの記憶域から取得され得る。これは、仮想アライメント行列内の3つの寄与するスコア位置(すぐ左、上、および対角線上左上)であれば現在のスコアリングセルによって、または線形アレイ内の隣接するスコアリングセルのうちの1つのセルによってのいずれかでスコアリングされているからである。
たとえば、行列内のすぐ左にあるセルは、一番最近の波面ステップが水平(右方向)であった場合に、現在のスコアリングセルによってスコアリングされているか、または一番最近の波面ステップが垂直(下方)であった場合に、線形アレイ内で左下にある隣接するセルによってスコアリングされている。同様に、行列内のすぐ上にあるセルは、一番最近の波面ステップが垂直(下向き)であった場合に、現在のスコアリングセルによってスコアリングされているか、または一番最近の波面ステップが水平(右方向)であった場合に、線形アレイ内で右上にある隣接するセルによってスコアリングされている。特に、行列内の対角線上左上のセルは、一番最近の2つの波面ステップが異なる方向、たとえば、下次いで右、または右次いで下にある場合に、現在のスコアリングセルによってスコアリングされているか、または一番最近の2つの波面ステップが両方とも水平(右方向)であった場合に、線形アレイ内で右上にある隣接するセルによってスコアリングされているか、または一番最近の2つの波面ステップが両方とも垂直(下方)であった場合に、線形アレイ内で左下の隣接するセルによってスコアリングされている。
したがって、最後の1つまたは2つの波面ステップ方向に関する情報を考慮することによって、スコアリングセルは、以前に計算された適切なスコアを選択して、それ自体の内部でそれらにアクセスし、および/または隣接するスコアリングセル内で隣接するセル間の結合を利用するものとしてよい。変更形態では、波面の2つの端のスコアリングセルは、その無効な、またはゼロの、または最小値のスコアにハード配線された外向きスコア入力を有するものとしてよく、それらはこれらの両端のセルにおける新しいスコア計算に影響を与えない。したがって、波面を垂直および水平、たとえば対角線方向のステップで概念的に移動するために参照およびクエリヌクレオチドをアレイを通して対向方向にシフトするためのそのような結合、および波面が入った新しい仮想行列セル位置におけるアライメントスコアを計算するために隣接するセルによって以前に計算されたスコアにアクセスするための結合により、波面がスコアリングセルの線形アレイ内に実装されているので、仮想行列内のセルのバンド、波面の幅を、波面の連続するステップで行列内をスイープすることを指令することなどによってスコアリングすることがしかるべく可能である。
したがって、新しいリードおよび参照ウィンドウがアライメントされるように、波面はスコアリング行列の内側に位置決めされることを開始し得るか、または有利には、たとえば左へ、または上に、または対角線上左に、および行列の左上隅の上と始めて外側から徐々にスコアリング行列に入り得る。たとえば、波面は、仮想行列の左上セルのちょうど左に位置する左上のスコアリングセルから始まるものとしてよく、次いで、波面は、一連の水平ステップによって右方向にスイープして行列内に入り、行列の左上領域のセルの水平バンドをスコアリングするものとしてよい。波面が参照とクエリとの間の予測されたアライメント関係に達したときに、またはマッチングが増大するアライメントスコアから検出されたときに、波面は対角線上右下にスイープすることを、垂直ステップと水平ステップとを交互にし、行列の真ん中を通るセルの対角線上バンドをスコアリングすることによって開始し得る。左下波面スコアリングセルが、アライメント行列の底部に達したときに、波面は、連続する水平ステップにより、再び右方向にスイープすることを開始し、いくつかのまたはすべての波面セルがスイープしてアライメント行列の境界から外に出るまで行い、行列の右下領域内のセルの水平バンドをスコアリングするものとしてよい。
そのようなアライメント手順の1つまたは複数は、本明細書で説明されている機能に対応できるように修正されているものとしてよいNeedleman-Wunschアライメントアルゴリズムおよび/またはSmith-Watermanアライメントアルゴリズムなどの、好適なアライメントアルゴリズムによって実行され得る。一般に、これらのアルゴリズムの両方およびそれらに類似のものは、基本的に、いくつかの事例において、類似の仕方で実行される。たとえば、上で述べたように、これらのアライメントアルゴリズムは、典型的には、様々な事例において、水平上境界が塩基対組成に従ってアレイの上行の端から端までレイアウトされてよい、ゲノム参照配列を表すように構成され得るように仮想アレイを構築する。同様に、垂直境界は、第1の列に沿って下方に、順に位置決めされている、配列決定され、マッピングされたクエリ配列を表すように構成されてよく、それらのヌクレオチド配列順序は、それらがマッピングした参照のヌクレオチド配列に一般的にマッチする。次いで、間にあるセルは、所与の位置におけるクエリの関連する塩基が参照に関するその配置で位置決めされる確率に関するスコアを初期値として与えられ得る。この機能を実行する際に、スワスが間にあるセル内でスコアを初期値として埋めている行列において対角線上に移動されてよく、示されている位置内にあるクエリの各塩基に対する確率が決定され得る。
最適な大域的(または半大域的)アライメントを生成する、Needleman-Wunschアライメント機能に関して、リード配列全体を参照ゲノムの一部のセグメントにアライメントすることで、波面操縦(wave front steering)は、アライメント行列の上エッジから下エッジまで残らず典型的にスイープするように構成され得る。波面スイープが完了すると、アライメント行列の下エッジ(リードの端に対応する)の最大スコアが選択され、アライメントは行列の上エッジ(リードの始まりに対応する)上のセルまでバックトレースされる。本明細書において開示されている様々な事例において、リードは任意の長さをとることができ、任意のサイズであってよく、アライメントが実行される仕方に関して広範なリードパラメータがある必要はなく、たとえば、様々な事例において、リードは染色体の長さと同じくらいであってよい。しかしながら、そのような事例において、メモリのサイズおよび染色体の長さは、限定因子であり得る。
最適な局所的アライメントを生成する、Smith-Watermanアルゴリズムに関して、リード配列全体またはリード配列の一部を参照ゲノムの一部のセグメントにアライメントすることで、リードの完全なまたは部分的なアライメントに基づき可能な最良のスコアリングを見つけるようにこのアルゴリズムは構成されてよい。したがって、様々な事例において、波面スコアバンド(wave front-scored band)は、非常に長いリードが参照ゲノムへの中間マッピングにおいてシードのみを有していた場合などに、アライメント行列の上エッジおよび/または下エッジまで延在し得ないが、一般には波面はそれでも行列の上から下へスコアリングし得る。局所的アライメントは、典型的には2つの調整によって達成される。第1に、アライメントスコアは、決して、ゼロ(または他の何らかの下限)を下回ることを許されず、他の何らかの方法で計算されたセルスコアが負になる場合、ゼロスコアが置き換えられ、新しいアライメントの開始を表す。第2に、必ずしも下エッジに沿っていない、行列内の任意のセルで作成された最大アライメントスコアは、アライメントの終端として使用される。アライメントは、この最大スコアから上および左に行列を通りゼロスコアまでバックトレースされ、これは行列の上行にない場合であっても、局所的アライメントの開始位置として使用される。
上記に照らして、仮想アレイを通るいくつかの異なる可能な経路がある。様々な実施形態において、波面は仮想アレイの左上隅から始まり、下方に移動して最大スコアの識別子の方へ向かう。たとえば、可能なすべてのアライメントの結果が収集され、処理され、相関され、スコアリングされて、最大スコアを決定することができる。境界の端またはアレイの端に到達し、および/または処理されたセルのすべてに対する最高スコアをもたらす計算が決定されたときに(たとえば、全体的に最高のスコアが識別される)、その最高のスコアを達成するために取られた経路を見つけるためにバックトレースが実行されてよい。たとえば、予測された最大スコアに至る経路が識別されてよく、識別された後、その最大スコアがどのように導出されたかを決定するために、たとえば、後方に移動して最良のスコアアライメントに追随し波面スコアリングセルによって計算されるような識別された最大スコアを達成させた経路を再トレースすることによって監査が実行され得る。
この後方再構築またはバックトレースは、決定された最大スコアから開始し、前のセルを通って後方へ進み、最大スコアを達成することをもたらしたスコアを有するセルの経路をこのテーブルに至るまでナビゲートし、初期境界に、たとえば、アレイの先頭に、または局所的アライメントの場合にはゼロスコアに、戻るようにナビゲートすることを伴う。バックトレースでは、アライメント行列内の特定のセルに到達した後、次のバックトレースステップは、隣接するセルに、すぐ左の方へ、または上に、または対角線上左上に進むステップであり、これは現在のセル内のスコアを構築するために選択された最良のスコアを与えた。この方式で、最大スコアの展開が決定されるものとしてよく、それにより最大スコアにどのように達したかを見出す。バックトレースは、隅、エッジ、または境界で終了してよいか、またはアレイの左上側の隅などの中でゼロスコアで終了し得る。したがって、これは、適切なアライメントを識別し、それによって、個体、またはその一部から導出されたサンプルゲノム配列が参照DNAのゲノム配列にどのようにマッチするか、または何らかの形でアライメントするかを表すCIGAR鎖読出しを作成するバックトレースである。
各リードがマッピングされた場所が決定され、各リードがどこにアライメントされるかがさらに決定される、たとえば、各関連するリードが位置および位置が正しいアライメントである確率を反映するクオリティスコアを与えられて、対象のDNAに対するヌクレオチド配列が知られるようになされた後、様々なリードおよび/または対象のゲノム核酸配列の順序が、バックトレース機能を実行しアレイを通り後戻りしサンプルゲノム配列内の適切な順序のすべての核酸の同一性を決定することなどによって検証され得る。結果として、いくつかの態様において、本開示は、個体からのゲノムサンプルを形成するなどの生の配列リードデータを取り、その後ソーティングされ得る、そのデータをマッピングし、および/またはアライメントすることを対象とするパイプラインなどの、モジュールのパイプラインの一部であり得るモジュールなどの、アライメントおよびバックトレース機能の両方を実行するアライメントモジュールの一部であるような、バックトレース機能を対象とする。
バックトレースオペレーションを円滑にするために、アライメント行列内に各スコアリングされたセルに対するスコアリングベクトルを記憶し、スコア選択決定を符号化することは有用である。線形ギャップペナルティによる古典的なSmith-Watermanおよび/またはNeedleman-Wunschスコアリングの実装では、スコアリングベクトルは、4つの可能性を符号化することができ、これは任意選択により、0から3の2ビット整数として記憶されてよく、たとえば、0=新しいアライメント(ヌルスコアが選択される)、1=垂直アライメント(上のセルからのスコアが選択され、ギャップペナルティによって修正される)、2=水平アライメント(左のセルからのスコアが選択され、ギャップペナルティによって修正される)、3=対角線上アライメント(上および左のセルからのスコアが選択され、ヌクレオチドマッチまたはミスマッチスコアによって修正される)である。任意選択により、各スコアリングされた行列セルに対する計算されたスコアも記憶され得るが(標準的に記憶されている達成された最大アライメントスコアに加えて)、これはバックトレースに一般的に必要でなく、大量のメモリを消費する可能性がある。次いで、バックトレースを実行するステップは、スコアリングベクトルに追随するという問題となり、バックトレースが行列内の所与のセルに到達したときに、次のバックトレースステップは、そのセルに対する記憶されているスコアリングベクトルによって決定され、たとえば、0=バックトレースを終了する、1=上方にバックトレースする、2=左方向にバックトレースする、3=対角線上左上にバックトレースする、となる。
そのようなスコアリングベクトルは、アライメント行列の次元に従って配置構成された2次元テーブルに記憶されるものとしてよく、波面によってスコアリングされるセルに対応するエントリのみが初期値を入力される。代替的に、メモリを節約し、スコアリングベクトルを生成されるとともにより容易に記録し、様々なサイズのアライメント行列により容易に適応するために、スコアリングベクトルが、各行がスコアリングセルの単一の波面からのスコアリングベクトルを記憶するサイズ、たとえば64セル波面からの64個の2ビットスコアリングベクトルを記憶する128ビット、およびアライメントオペレーションにおける波面ステップの最大数に等しい行の数のサイズを有するテーブルに記憶されるものとしてよい。それに加えて、このオプションに対して、様々な波面ステップ、たとえば、各テーブル行内に余分な、たとえば、129番目の、ビットを記憶するステップ、たとえばこの波面位置に先行する垂直波面ステップに対しては0、この波面位置に先行する水平波面ステップに対しては1を符号化するステップの方向が記録され得る。この余分なビットは、各テーブル行内のスコアリングベクトルがどの仮想スコアリング行列位置に対応するかを追跡するためにバックトレースで使用されるものとしてよく、それにより、適切なスコアリングベクトルが、各連続するバックトレースステップの後に取り出され得る。バックトレースステップが垂直または水平であるときに、次のスコアリングベクトルは、前のテーブル行から取り出されるべきであるが、バックトレースステップが対角線上であるときには、次のスコアリングベクトルは、波面が一方のセルをスコアリングするステップからセルをそこから対角線上右下にスコアリングすることへ移動するのに2ステップ進まなければならなかったので、2行前から取り出されるべきである。
アフィンギャップスコアリングの場合、スコアリングベクトル情報は、たとえば、スコアリングされたセル毎に4ビットに拡張され得る。たとえば2ビットスコア選択方向インジケータに加えて、2つの1ビットフラグ、すなわち、垂直拡張フラグ(vertical extend flag)および水平拡張フラグ(horizontal extend flag)が追加され得る。Smith-WatermanまたはNeedleman-Wunschまたは類似のアライメントアルゴリズムへのアフィンギャップスコアリング拡張の方法に従って、各セルについて、そのセル内で終端する最良スコアリングアライメントを表す一次アライメントスコアに加えて、「垂直スコア」が、最終垂直ステップでそのセルに到達する最大アライメントスコアに対応して生成されるべきであり、「水平スコア」が、最終水平ステップでそのセルに到達する最大アライメントスコアに対応して生成されるべきであり、3つのスコアのうちのどれかを計算するときに、セル内への垂直ステップは、ギャップオープンペナルティを差し引いた上のセルからの一次スコア、またはギャップエクステンドペナルティを差し引いた上のセルからの垂直スコア、のうちのいずれか大きい方を使用して計算されてよく、セル内への水平ステップは、ギャップオープンペナルティを差し引いた左側のセルからの一次スコア、またはギャップエクステンドペナルティを差し引いた左側のセルからの水平スコア、のうちのいずれか大きい方を使用して計算されてよい。ギャップエクステンドペナルティを差し引いた垂直スコアが選択された場合、スコアリングベクトル内の垂直エクステンドフラグは、セットされる、たとえば「1」であるべきであり、そうでなければ、アンセットされる、たとえば、「0」であるべきである。
ギャップエクステンドペナルティを差し引いた水平スコアが選択された場合、スコアリングベクトル内の水平エクステンドフラグは、セットされる、たとえば「1」であるべきであり、そうでなければ、アンセットされる、たとえば、「0」であるべきである。アフィンギャップスコアリングに対するバックトレースでは、バックトレースが垂直ステップで所与のセルから上方に行くときにはいつでも、そのセルのスコアリングベクトルの垂直エクステンドフラグがセットされていれば、続くバックトレースステップも、上のセルに対するスコアリングベクトルに関係なく垂直でなければならない。同様に、バックトレースが水平ステップで所与のセルから左方に行くときにはいつでも、そのセルのスコアリングベクトルの水平エクステンドフラグがセットされていれば、続くバックトレースステップも、左のセルに対するスコアリングベクトルに関係なく水平でなければならない。したがって、スコアリングベクトルのそのようなテーブル、たとえば、ある数NR個の行について、線形ギャップスコアリングを使用する場合には64セルに対して行毎に129ビット、またはアフィンギャップスコアリングを使用する場合には64セルに対して行毎に257ビットが、スコアリング波面がNR以下のステップを進んだ場合のアライメントスコアリングを完結させた後にバックトレースをサポートするのに適している。
たとえば、300ヌクレオチドリードをアライメントするときに、必要な波面ステップの数は、常に1024未満であってよく、したがって、テーブルは257×1024ビット、または約32キロバイトであってよく、多くの場合において、集積回路の内部の妥当なローカルメモリであり得る。しかし、非常に長いリードがアライメントされるべきである場合、たとえば、100,000個のヌクレオチドの場合、スコアリングベクトルに対するメモリの必要条件は、きわめて大きく、たとえば、8メガバイトにもなり得、集積回路の内部のローカルメモリとして備えるのに非常に高いコストがかかり得る。そのような支持では、スコアリングベクトル情報は、集積回路の外部のバルクメモリ、たとえば、DRAMに記録されてよいが、その後、この帯域幅要件、たとえば、1つのアライナモジュールにおいてクロックサイクル毎に257ビットは、過剰であり得、アライナの性能に対するボトルネックとなり、劇的に性能を低下させ得る。したがって、アライメントを完了する前にスコアリングベクトルを配設するための方法を有していることが望ましく、したがってその記憶要件は、たとえばインクリメンタルバックトレースを実行し、たとえばアライメントのスコアリングベクトル履歴の前の方の部分からインクリメンタルな部分的CIGAR文字列を生成し、それによりスコアリングベクトルのそのような前の方の部分がその後破棄され得るように上限が維持されていてよい。問題は、バックトレースが、アライメントスコアリングが完了するまでは不明である、アライメントの末端、最大スコアリングセルにおいて始まることが想定され、したがってアライメントが完了する前に始まるバックトレースは間違ったセルから、結果として生じる最終最適アライメント経路に沿わずに始まり得ることである。
したがって、たとえば、これまでにスコアリングされたアライメント行列セルに対する部分的スコアリングベクトル情報を含む、部分的アライメント情報からインクリメンタルバックトレースを実行するための方法が与えられる。現在完結しているアライメント境界、たとえば、特定のスコアリングされた波面位置から、境界上のすべてのセル位置からバックトレースが開始される。すべての境界セルからのそのようなバックトレースは、順次実行され得るか、または有利には、特にハードウェア実装形態において、すべてのバックトレースが一緒に実行され得る。アライメント表記、たとえば、CIGAR文字列をこれらの複数のバックトレースから抽出する必要はなく、バックトレース時にそれらがどのようなアライメント行列位置を通過するかを決定するだけでよい。スコアリング境界からの同時バックトレースの実装において、多数の1ビットレジスタが利用されてよく、これはたとえばすべて1に初期化されたアライメントセルの個数に対応し、バックトレースが対応する位置を通過するかどうかを表すものとしてよい。同時バックトレースの各ステップについて、たとえば、スコアリングベクトルテーブルの1つの行からの、これらのレジスタ内のすべての現在の「1」に対応するスコアリングベクトルが調査され、それにより、次の同時バックトレースステップに対して、レジスタ内の各「1」に対応し、レジスタ内の各「1」に対する続く位置に至る、次のバックトレースステップを決定することができる。
重要なことは、レジスタ内の複数の「1」を、共通のバックトレース経路上に一緒にマージする同時バックトレースのうちの複数に対応する、共通位置にマージさせることが容易に可能である。同時バックトレースの2つもしくはそれ以上が一緒にマージした後、それらはいつまでもマージされたままであるが、それはこれ以降同じセルからのスコアリングベクトル情報を利用することになるからである。経験的に、および理論的な理由から、高い確率で、同時バックトレースのすべてが特異バックトレース経路内に、たとえば、波面内のスコアリングセルの数の数倍、たとえば8倍であってよい、比較的少数のバックトレースステップでマージすることが観察されている。たとえば、64セル波面では、高い確率で、所与の波面境界からのすべてのバックトレースは、512のバックトレースステップ内で単一のバックトレース経路内にマージする。代替的に、すべてのバックトレースがその数の、たとえば、512個のバックトレースステップの範囲内で終了することも可能であり、また珍しいことではない。
したがって、複数の同時バックトレースは、それらがすべて単一のバックトレース経路内に、たとえば、512以下のバックトレースステップで終端するか、またはマージするかのいずれかとなる十分に遠い後方のスコアリング境界、たとえば、スコアリングされた波面位置から実行され得る。それらがすべて特異バックトレース経路内に一緒にマージし、次いでそれらがマージするスコアリング行列内の配置からマージするか、または特異バックトレース経路に沿って任意の距離だけさらに後退する場合、部分的アライメント情報からのインクリメンタルバックトレースが可能である。マージ点からのさらなるバックトレース、または任意の距離だけ離れるさらなる後退が、対応するアライメント表記、たとえば、部分的CIGAR文字列を記録するステップを含む、通常の特異バックトレース方法によって開始される。このインクリメンタルバックトレース、およびたとえば、部分的CIGAR文字列は、アライメント完了した後に結果として生じるであろう、可能な最終バックトレース、およびたとえば、完全CIGAR文字列の一部でなければならないことは、そのような最終バックトレースが同時バックトレースを開始したスコアリング境界に到達する前に終了しないことを条件とするが、それは、スコアリング境界に到達した場合に、同時バックトレース経路のうちの1つに追随し、現在はインクリメンタルに抽出された、特異バックトレース経路内にマージしなければならないからである。
したがって、たとえば抽出された特異バックトレースの開始に先行する波面位置に対するすべてのテーブル行内の、インクリメンタルに抽出されたバックトレースに対応する行列領域に対するすべてのスコアリングベクトルが安全に破棄され得る。最終バックトレースが、最大スコアリングセルから実行されたときに、スコアリング境界に到達する前に終了した場合(または代替的に、抽出された特異バックトレースの開始に到達する前に終了した場合)、インクリメンタルアライメント表記、たとえば、部分的CIGAR文字列は、破棄され得る。最終バックトレースが、抽出された特異バックトレースの開始まで続く場合、そのアライメント表記、たとえば、CIGAR文字列は、次いで、インクリメンタルアライメント表記、たとえば部分的CIGAR文字列上にグラフトされ得る。さらに、非常に長いアライメントでは、スコアリング境界、たとえば、スコアリングされた波面位置から同時バックトレースを、すべてのバックトレースが終了するかマージするまで実行し、その後アライメント表記抽出による特異バックトレースが続くプロセスは、様々な連続するスコアリング境界から、複数回繰り返され得る。次いで、各連続するインクリメンタルバックトレースからの、インクリメンタルアライメント表記、たとえば、部分的CIGAR文字列は、累積した前のアライメント表記上に、新しい同時バックトレースまたは特異バックトレースが早期に終了しない限りグラフトされてよく、その場合、累積した以前のアライメント表記は破棄され得る。結果として生じる最終バックトレースは、同様に、そのアライメント表記を、完全なバックトレース記述、たとえば、CIGAR文字列に対して、一番最近の累積したアライメント表記上にグラフトする。
したがって、この仕方で、スコアリングベクトルを記憶するためのメモリは、同時バックトレースが制限された数のステップ、たとえば、512ステップで常に一緒にマージされると仮定すると、上限を維持され得る。同時バックトレースが制限された数のステップでマージするか、または終了することに失敗する希なケースでは、現在のアライメントを怠ること、またはより高い限度で、もしくは限度なしでそれを繰り返すことを含む、様々な例外的なアクションが、たぶん、外部DRAMなどに完全なアライメントに対するすべてのスコアリングベクトルを記憶することなどの異なるもしくは従来の方法によって、実行され得る。一変更形態において、そのようなアライメントを怠ることは妥当な場合があるが、それはきわめて希であり、そのような怠ったアライメントがアライメント報告で使用されるべき最良スコアリングアライメントになっているということはなおさら希であるからである。
任意選択の変更形態において、スコアリングベクトルの記憶域は、物理的にまたは論理的に、多数の異なるブロック、たとえば、各々512行に分割されてよく、各ブロック内の最終行は、同時バックトレースを開始するためにスコアリング境界として使用され得る。任意選択により、同時バックトレースは、単一のブロック内で、たとえば512ステップで終了するか、またはマージする必要があり得る。任意選択により、同時バックトレースがより少ないステップでマージする場合、マージされるバックトレースは、それにもかかわらず、前のブロックで特異バックトレースの抽出を開始する前に、ブロック全体を通して継続され得る。したがって、スコアリングベクトルがブロックNに完全に書き込まれ、ブロックN+1への書込みを開始した後、同時バックトレースがブロックNにおいて開始し、続いてブロックN-1において特異バックトレースおよびアライメント表記抽出を開始するものとしてよい。同時バックトレース、特異バックトレース、およびアライメントスコアリングの速度がすべて類似しているか、または同一であり、同時に、たとえば、集積回路内の並列ハードウェアで実行され得る場合、ブロックN-1における特異バックトレースは、ブロックN+2に書き込むスコアリングベクトルと同時であってよく、ブロックN+3が書き込まれるべきであるときに、ブロックN-1は解放され、リサイクルされるものとしてよい。
したがって、そのような実装形態において、最小4個のスコアリングベクトルブロックが使用され、循環的に利用され得る。したがって、アライナモジュールに対する全スコアリングベクトルの記憶域は、各々257×512ビットの4ブロック、たとえば64キロバイトであてよい。一変更形態において、現在の最大アライメントスコアが現在の波面位置よりも前の方のブロックに対応する場合、このブロックおよび前のブロックは、リサイクルされるのではなく、温存され、それにより、最終バックトレースは、最大スコアのままである場合にこの位置から開始するものとしてよく、余分な2ブロックを有しこのように温存を維持することで、最小、たとえば、6ブロックにする。
別の変更形態では、オーバーラップしたアライメントをサポートするために、一方のアライメント行列から次のアライメント行列へ、上で説明されているように、追加のブロック、たとえば、1または2つの追加のブロックまで徐々に横切るスコアリング波面が利用されるものとしてよく、たとえば、合計8ブロック、たとえば、約128キロバイトであるものとしてよい。したがって、そのような制限された数のブロック、たとえば、4ブロックまたは8ブロックが循環的に使用される場合、任意に長いリード、たとえば、100,000個のヌクレオチド、または染色体全体、のアライメントおよびバックトレースが、スコアリングベクトルに外部メモリを使用することなく可能である。上記などを参照すると、マッピング機能がいくつかの事例において、マッパなどを参照しつつ説明されていることもあり得、および/またはアライメント機能がいくつかの事例において、アライナなどを参照しつつ説明されていることもあり得るが、これらの異なる機能は、当技術分野においてアライナとして一般に参照されている、同じアーキテクチャによって順次実行され得ることは理解されるであろう。したがって、様々な事例において、マッピング機能およびアライメント機能は両方とも、本明細書で説明されているように、特にアライメント機能を実行するためにマッピング機能が最初に実行される必要がある事例において、アライナであると理解され得る共通アーキテクチャによって実行され得る。
様々な事例において、本開示のデバイス、システム、およびそれらの使用方法は、データセット内のリードに対する適切なアライメントを決定するためにその後スコアリングされ得る完全リード無ギャップおよび/またはギャップアライメントのうちの1つまたは複数を実行するように構成され得る。たとえば、様々な事例において、無ギャップアライメント手順が処理されるべきデータに対して実行されるものとしてよく、そこで、無ギャップアライメント手順の後に、ギャップアライメント、および/または選択的Smith-Watermanアライメント手順のうちの1つまたは複数が続くものとしてよい。たとえば、第1のステップにおいて、無ギャップアライメントチェーンが生成され得る。本明細書において説明されているように、そのような無ギャップアライメント機能は、ギャップを考慮することなどを必要とせずに、素早く実行されるものとしてよく、無ギャップアライメントを実行する第1のステップの後に、ギャップアライメントを実行することが続くものとしてよい。
たとえば、アライメント機能は、所与のヌクレオチド配列、たとえば、リードが、リードおよび/または参照のうちの1つまたは複数にギャップを挿入する必要なく参照配列にどのようにアライメントするかを決定するために実行され得る。そのようなアライメント機能を実行するステップの重要な一部は、注目している配列と参照ゲノムの配列との間でどこでミスマッチしおよびそれがどのようにミスマッチであるかを決定するステップである。しかしながら、ヒトゲノム内では相同性が大きいので、理論上、所与のヌクレオチド配列は代表的な参照配列と大きくマッチすることとなる。ミスマッチがある場合、これらは比較的検出が容易である、一塩基多型によるものである可能性が高いか、またはそれらは、かなり検出が困難である、注目する配列内の挿入または欠失によるものである。
結果として、アライメント機能を実行する際に、時間の大部分において、注目している配列は、参照配列とマッチすることになり、SNPによるミスマッチがある場合に、これは容易に決定される。したがって、比較的大きい処理能力量は、そのような解析を実行するためには必要でない。しかしながら、参照配列に関して注目する配列内に挿入または欠失がある場合に、そのような挿入および欠失がアライメントにおけるギャップになるので、面倒なことが起きる。そのようなギャップは、正しいアライメントを決定するためにより広範な、複雑な処理プラットフォームを必要とする。それにもかかわらず、実行される数百万の無ギャップアライメントと比較して、少ないパーセンテージのインデルしかないので、比較的少ないパーセンテージのギャップアライメントプロトコルが実行されるだけでよい。したがって、無ギャップアライメント機能すべてのうちのわずかなパーセンテージのものだけが結果として、配列内のインデルの存在によりさらなる処理を必要とすることになり、したがって、ギャップアライメントが必要である。
無ギャップアライメント手順においてインデルが示されたときに、それらの配列のみがさらなる処理のためにアライメントエンジン、たとえば、Smith Watermanアライメント(SWA)などの高度なアライメント機能を実行するように構成されているアライメントエンジンに受け渡される。したがって、無ギャップまたはギャップアライメントのいずれかが実行されるべきなので、本明細書で開示されているデバイスおよびシステムは、リソースをかなり効率的に使用できる。より具体的には、いくつかの実施形態において、無ギャップおよびギャップアライメントは両方とも、配列の所与の選択に対して、たとえば、次々と実行されてよく、次いで、結果が各配列について比較され、最良の結果が選ばれる。そのような配置構成は、たとえば、精度の向上が望まれており、必要な処理を実行するための時間量およびリソースの量の増大が許容される場合に実装され得る。
特に、様々な事例において、第1のアライメントステップは、処理集約的なSmith Waterman機能に関わることなく実行され得る。したがって、複数の無ギャップアライメントが、低いリソース集約性で時間をあまりかけない方式で実行されてよく、必要なリソースが少ないので、チップ上のそのような処理専用に割り当てる空間が少なくて済む。したがって、より少ない処理要素を使用し、必要な時間を短縮してより多くの処理が実行されるものとしてよく、したがって、より多くのアライメントが実行されてよく、精度の改善も達成され得る。より具体的には、Smith Watermanアライメントを実行するためにチップリソースの少ない実装が、より少ないチップ面積を使用して専用として割り当てられる必要があり、ギャップアライメントを実行するために行うような無ギャップアライメントを実行するのに必要な処理要素に対してあまり大きなチップ面積を必要としない。チップリソース要件が下がると、より短時間のうちにより多くの処理が実行され、より多くの処理が実行できることで、より高い精度が達成され得る。
したがって、そのような事例において、たとえば、適切に構成された無ギャップアライメントリソースによって実行されるべき無ギャップアライメントプロトコルが採用され得る。たとえば、本明細書において開示されているように、様々な実施形態において、アライメント処理エンジンが実現され、たとえば、この処理エンジンは、電子データソースから、たとえば、1つまたは複数のヌクレオチド配列を表すデジタルデータなどの、ゲノムデータの1つまたは複数のリードを表すデジタル信号を受信し、そのデータに対して無ギャップアライメント機能を最初に実行し、次いで、無ギャップアライメント機能の後に、必要ならば、Smith Watermanアライメントプロトコルを実行することなどによって、ギャップアライメント機能を続いて実行することなどによってそのデータを参照配列にマッピングし、および/またはアライメントするように構成される。
結果として、様々な事例において、無ギャップアライメント機能が、たとえば、無ギャップアライナを使用して、リードの連続部分に対して実行され、無ギャップアライメントが端から端へ進み、たとえば、リードが完了した場合、ギャップアライメントは実行されない。しかしながら、無ギャップアライメントの結果がインデルが存在していることを示している、たとえば、リードがクリップされるか、または他の何らかの形で不完全である場合に、ギャップアライメントが実行されてよい。したがって、非ギャップアライメント結果は、ギャップアライメントが必要かどうかを決定するために使用されるものとしてよく、たとえば、非ギャップアライメントは、ギャップ領域内に伸びるが、リードの全長にわたって伸びることはなく、たとえば、リードはクリップされ、たとえば、ある程度までソフトクリップされるものとしてよく、クリップされた場合にギャップアライメントが実行され得る。
したがって、様々な実施形態において、完全性およびアライメントスコアに基づき、ギャップアライメントが実行されるのは、無ギャップアライメントが結局クリップされることになる、たとえば、端から端まで行かない場合のみである。より具体的には、様々な実施形態において、最良の識別可能な無ギャップおよび/またはギャップアライメントスコアは、ギャップアライメントを実行することなどによってスコアがさらなる解析を保証するのに十分によいスコアであるかを決定するためにカットオフラインとして推定され、使用され得る。したがって、アライメントの完全性、およびそのスコアは、高いスコアがアライメントが完全である、したがって非ギャップであることを示し、低いスコアがアライメントが完全でなく、ギャップアライメントが実行される必要があることを示すようにするために使用されてよい。したがって、高いスコアが達成された場合、ギャップアライメントは実行されず、スコアが十分に低いときのみ、ギャップアライメントが実行される。もちろん、様々な事例において、総当たりアプローチが使用されることもあり、それにより、その数のギャップおよび/または無ギャップアライナがチップアーキテクチャにおいてデプロイされ、それにより、より多くのアライメントが実行されることを可能にし、したがって、より多くのデータが見られ得る。
より具体的には、様々な実施形態において、各マッピングおよび/またはアライメントエンジンは、1つまたは複数の、たとえば、2つのSmith-Watermanアライナモジュールを備え得る。いくつかの事例において、これらのモジュールは、大域的(エンドツーエンド)無ギャップアライメントおよび/または局所的(クリップ済み)ギャップアライメントをサポートし、アフィンギャップスコアリングを実行するように構成されてよく、各端で非クリップ済みスコア(unclipped score)ボーナスを生成するように構成され得る。塩基クオリティに敏感なマッチおよびミスマッチスコアリングもサポートされ得る。2つのアライメントモジュールが、たとえば、集積回路の一部として、含まれる場合、たとえば、各Smith-Watermanアライナはスコアリングセルの反対角線波面として構築されてよく、波面は仮想的アライメント矩形を通って「移動」し、波面がスコアリングセルをスイープする。
しかしながら、より長いリードについては、Smith-Waterman波面も、自動操縦をサポートするように構成されてよく、それにより、蓄積されたインデルを通じて最良のアライメントを追跡し、たとえば、スコアリングされるアライメント波面およびセルがスコアリングバンドを逃れないことを確実にする。バックグラウンドでは、論理エンジンは、現在の波面スコアを調べ、最大値を見つけ、最大値よりも低い閾値距離の上でセルのサブセットにフラグを立て、2つの両端のフラグの間の中点をターゲットとするように構成され得る。そのような事例において、自動操縦は、ターゲットが波面中心にあるときに対角線上に実行するように構成されてよいが、インデルの存在などにより、ドリフトする場合にターゲットの再センタリングを行うために必要に応じて真っ直ぐ水平方向にまたは垂直方向に実行されるように構成され得る。
アライメントモジュールからの出力は、マッピングクオリティスコア(MAPA)とともにSAM(テキスト)またはBAM(たとえば、SAMのバイナリバージョン)ファイルであり、クオリティスコアは、参照へのリードの予測され、アライメントされた配置が実際にはリードが導出される場所である信頼度を反映する。したがって、各リードがマッピングされた場所が決定され、各リードがアライメントされる場所がさらに決定される、たとえば、各関連するリードが位置および位置が正しいアライメントである確率を反映するクオリティスコアを与えられて、対象のDNAに対するヌクレオチド配列が知られ、さらには対象のDNAが参照のDNAとどれだけ異なるかが知られた後(たとえば、CIGAR文字列が決定されている)、対象のゲノム核酸配列を表す様々なリードは、染色体配置によってソーティングされ、それにより染色体上のリードの正確な配置が決定され得る。結果として、いくつかの態様において、本開示は、個体からのゲノムサンプルを形成するなどの生の配列リードデータを取り、その後ソーティングされ得る、そのデータをマッピングし、および/またはアライメントすることを対象とするパイプラインなどの、モジュールのパイプラインの一部であり得るソーティングモジュールによって実行されるような、ソーティング機能を対象とする。
より具体的には、リードがどの染色体に属すかおよび/またはその染色体の先頭からのオフセットを識別するステップを含み得る、参照ゲノムなどに関する、位置をリードに割り当てることが行われた後、リードは位置でソーティングされるものとしてよい。ソーティングは、たとえば、下流解析などで有用な場合があり、それによって、ゲノム内の所与の位置と重なるリードのすべては、ソーティングモジュールを通じて処理された後などに、互いに隣接するようにパイルアップに形成されてよく、それによって、リードの大半が参照値と一致しているかどうかが容易に決定され得る。したがって、リードの大半が参照値と一致しない場合、バリアントコールにフラグが立てられ得る。したがって、ソーティングは、同じ配置をカバーするすべてのリードが物理的に一緒にグループ化されるように、パイルアップを作成するために、同じ染色体位置などの、比較的同じ位置にアライメントするリードをソーティングするステップの1つまたは複数を伴うものとしてよく、パイルアップのリードを解析し、それらのリードが参照ゲノムと比較してゲノム内の実際のバリアントを示し得る場所を決定するステップをさらに伴うものとしてよく、バリアントは、パイルアップのコンセンサスなどによって、機械リード誤りまたは少数のリードによって示され得るシークエンシング方法における誤りである誤りなどの、誤りから区別可能であるものとしてよい。
データが取得された後、データをクリーンアップするために実行され得る1つまたは複数の他のモジュールがある。たとえば、個体のゲノム配列を決定するなどのために、たとえば、配列解析パイプラインに含まれ得る1つのモジュールは局所的再アライメントモジュールであってよい。たとえば、リードの端で生じる挿入および欠失を決定することは多くの場合、困難である。これは、Smith-Watermanまたは同等のアライメントプロセスが、スコアリングでその存在を検出できるインデルを超える十分なコンテキストを欠いているからである。結果として、実際のインデルは、1つまたは複数のSNPとして報告され得る。そのような事例において、所与のリードに対する予測される配置の精度は、マッピングされた、および/またはアライメントされた、および/またはソーティングされたリードデータに対して局所的再アライメントを実行することによって高められ得る。
そのような事例において、パイルアップは、注目する位置が所与のリードの端にある場合などに、適切なアライメントを明確にしやすくするために使用されてよく、その同じ位置は、パイルアップ内の他の何らかのリードの中間にある可能性が高い。したがって、局所的再アライメントを実行する際に、パイルアップにおける様々なリードは、パイルアップにおけるリードのうちのいくつかが所与の位置で挿入または欠失があったことを示すかどうかを決定するために解析されてよく、その位置で、他のリードはインデルを含まないか、または、むしろ置換を含み、次いで、インデルは、それが存在しない場合に、参照などの中に挿入されてよく、その領域と重なる局所的パイルアップにおけるリードは、挿入および/または欠失がそこになかった場合にまとめてよりよいスコアが次いで達成されるかどうかを確認するために再アライメントされ得る。改善がある場合、パイルアップにおけるリードのセット全体が検討されるものとしてよく、セット全体のスコアが改善されている場合、実際にその位置にインデルがあったというコールを行うことは明らかである。このようなやり方で、個別のリードに対して、染色体の末端でリードをより正確にアライメントするのに十分なコンテキストがないという事実は、補償され得る。したがって、局所的再アライメントを実行するときに、1つまたは複数のインデルが位置決めされ得る1つまたは複数のパイルアップが調べられ、インデルを所与の位置に追加することによってアライメントスコア全体が高められ得るかどうかが決定される。
個体のゲノム配列を決定するなどのために、たとえば、配列解析パイプラインに含まれ得る別のモジュールは重複マーキングモジュールであってよい。たとえば、重複マーキング機能は、シークエンシングフェーズにおいて起こり得る化学誤差を補償するために実行されてよい。たとえば、上で説明されているように、いくつかのシークエンシング手順において、核酸配列はビーズに付着され、標識ヌクレオチド塩基を使用してそこから構築される。理想的には、1つのビーズにリードが1つだけある。しかしながら、時には、複数のリードが単一のビーズに付着され、この結果、付着されたリードの複製が過剰に多くなる。この現象は、リード重複として知られている。
アライメントが実行され、結果が得られた後、および/またはソーティング機能、局所的再アライメント、および/または重複除去が実行された後、結果として得られるデータ上でバリアントコール機能が使用され得る。たとえば、典型的なバリアントコール機能またはその一部は、集積回路などの、ソフトウェアおよび/またはハード配線された構成により実装されるように構成され得る。特に、バリアントコーリングは、すべての様々なアライメントされたリードからのすべての重なり合う領域が「パイルアップ」を形成するように参照上の所与の配置にアライメントするすべてのリードをグループ内に位置決めするステップを伴うプロセスである。次いで、参照ゲノムの所与の領域をカバーするリードのパイルアップは、サンプリングされた個体のDNA/RNAの最もありそうな実際の内容がその領域内で何であるかを決定するために解析される。次いで、これは、ゲノムのすべての領域について、1ステップずつ繰り返される。決定された内容は、他のメタデータとともに関連付けられている信頼水準を各々有する、参照ゲノムからの「バリエーション」または「バリアント」と呼ばれる差異のリストを生成する。
最も一般的なバリアントは、単一塩基が参照と異なる、一塩基多型(SNP)である。SNPは、ヒトゲノムでは1000箇所の位置のうち約1箇所で起きる。次に一般的なのは、挿入(参照内への)および欠失(参照からの)、またはまとめて「インデル」である。これらは、長さが短いほど一般的であるが、任意の長さをとり得る。さらなる面倒な事態が起きるが、配列決定セグメント(「リード」)の集合体がランダムであるため、いくつかの領域は他に比べてより深いカバーを有する。また、多塩基置換、およびインデルと長さが変わる置換と考えられ得る置換との組合せを含むより複雑なバリアントもある。標準的なソフトウェアベースのバリアントコーラーは、これらのうちのすべてを識別することを苦手としており、バリアントの長さに様々な制限が課される。ソフトウェアおよび/またはハードウェアの両方におけるより特殊なバリアントコーラーは、染色体の大きな変化を伴う外来の「構造バリアント」のより長いバリエーション、および多くの多様性を識別するために必要である。
しかしながら、バリアントコーリングは、ソフトウェアで実装するのが困難な手順であり、ハードウェアでデプロイするのはなおいっそう困難である。これらの種類の誤りを考慮し、および/または検出するために、典型的なバリアントコーラーは、次のタスクのうちの1つまたは複数を実行するものとしてよい。たとえば、これらは、仮説遺伝型のセット(座位にある1つまたは2つの染色体の内容)とともに現れ、ベイズ計算を使用して観察された証拠が与えられた場合に各遺伝型が真実である事後確率を推定し、最もありそうな遺伝型をその信頼水準とともに報告するものとしてよい。したがってバリアントコーラーは、単純であるか、または複雑であり得る。より単純なバリアントコーラーは、行われるコールの正確な位置でアライメントされたリードパイルアップにおける塩基の列のみを見る。より高度なバリアントコーラーは、「ハプロタイプベースコーラー」であり、これは行われるコールの周りで、ウィンドウなどにおいてコンテキストを考慮するように構成され得る。
「ハプロタイプ」は、単一の一般的な「鎖」、たとえば、領域内の2つの二倍体鎖のうちの一方の中の特定のDNA内容(ヌクレオチド配列、バリアントのリストなど)であり、ハプロタイプベースコーラーでは、同じリード内に出現することによってどちらの差異がリンクされているかというベイズ統計での意味を考慮する。したがって、バリアントコールプロトコルは、本明細書において提案されているように、ゲノム解析ツールキット(GATK)ハプロタイプコーラーにおいて、および/または隠れマルコフモデル(HMM)ツールおよび/またはDe Bruijnグラフ機能を使用して実行されるような1つまたは複数の改善された機能を実装するものとしてよく、たとえば、典型的にはGATKハプロタイプコーラー、および/またはHMMツール、および/またはDe Bruijnグラフ機能によって使用される1つまたは複数のこれらの機能は、ソフトウェアおよび/またはハードウェアで実装されるものとしてよい。
より具体的には、本明細書で実装されているように、様々な異なるバリアントコールオペレーションが、ソフトウェアまたはハードウェアで実行されるように構成されてよく、次のステップのうちの1つまたは複数を含み得る。たとえば、バリアントコール機能は、多数のリードが参照と一致しない場所を識別するステップ、および識別された能動領域の周りにウィンドウを生成するステップなどのための能動領域識別を含むものとしてよく、それによりこれらの領域のみがさらなる処理のために選択され得る。それに加えて、局所的ハプロタイプアセンブリが生じることがあり、たとえば、各所与の能動領域について、すべての重なり合うリードは「De Bruijn graph」(DBG)行列にアセンブルされ得る。このDBGから、行列を通る様々な経路が抽出されてよく、各経路は、どのような真のDNA配列が少なくとも1つの鎖上にあるのかについて候補ハプロタイプ、たとえば、仮説を構成する。さらに、ハプロタイプアライメントが生じることがあり、たとえば、各抽出されたハプロタイプ候補は、元の参照ゲノムにアライメントされ、たとえば、Smith-Watermanアライメントされ、それが参照からのどのようなバリエーションを意味するかを決定するものとしてよい。さらに、リード尤度計算が実行されてよく、たとえば、ハプロタイプがサンプリングされた真の元のDNAであったと仮定して、各リードが各ハプロタイプ、または仮説に対して検定され、リードを観察する確率を推定するものとしてよい。
これらのプロセスに関して、リード尤度計算は、典型的には、多くの場合にペアHMM評価を必要とする、実行されるべき、リソース集約性が最も高く、時間も最もかかるオペレーションである。それに加えて、固有のK-merを局所的におよび大域的に識別する関連付けられているオペレーションによる、リードの各パイルアップに対するDe Bruijnグラフの構築は、以下で説明されているように、リソース集約的であり、および/または時間がかかり得る。したがって、様々な実施形態において、これらのステップのうちの1つまたは複数を実行する際に伴う様々な計算のうちの1つまたは複数は、本明細書において説明されているように、最適化されたソフトウェア方式またはハードウェアで実装されるように、たとえば、集積回路によって加速化される方式で実行されるように構成され得る。
上に示されているように、様々な実施形態において、ソフトウェアおよび/またはハードウェアもしくはそれらの組合せで実装される、本開示のハプロタイプコーラーは、能動領域識別、局所的ハプロタイプアセンブリ、ハプロタイプアライメント、リード尤度計算、および/または遺伝型判定のうちの1つまたは複数のオペレーションを含むように構成され得る。たとえば、本開示のデバイス、システム、および/または方法は、マッピング、アライメント、および/またはソーティングが行われた結果データを生成するために対象の配列決定DNA/RNAから得られたデータに対してマッピング、アライメント、および/またはソーティングオペレーションのうちの1つまたは複数を実行するように構成され得る。次いで、この結果データは、それに対して重複除去オペレーションを実行することなどによってクリーンアップされてよく、および/またはそのデータは、その結果データに対して、上述のステップのうちの1つまたは複数を含む、バリアントコールオペレーションを実行してそれに関するバリアントコールファイルを生成するために1つまたは複数の専用のハプロタイプコーラー処理エンジンに伝達され得る。したがって、配列決定された、および/または参照ゲノム内の特定の位置にマッピングされ、および/またはアライメントされたすべてのリードは、さらなる処理を受け、それにより、決定された配列が参照ゲノム内の所与の位置における参照配列とどのように異なるかを決定し得る。
したがって、様々な実施形態において、本明細書で開示されているような、デバイス、システム、および/またはその使用方法は、得られた結果データに対して能動領域識別オペレーションを実行するためにソフトウェアおよび/またはハード配線された構成で実装されるバリアントまたはハプロタイプコーラーシステムを含み得る。能動領域識別は、たとえば、リードのパイルアップにおける多数のリードが、参照と一致しない場所を識別し決定するステップを伴い、ウィンドウ内の領域がさらなる処理のために選択され得るようにそれらの不一致(「能動領域」)の周りに1つまたは複数のウィンドウを生成するステップをさらに伴う。たとえば、マッピングおよび/またはアライメントステップにおいて、識別されたリードは、参照ゲノム内の領域にマッピングされ、および/またはアライメントされ、そこでそれらは対象の遺伝子配列に由来していると予想される。
しかしながら、ゲノムの所与の領域に対して配列決定されたリードのオーバーサンプリングを創出するためにそのような仕方でシークエンシングが実行されると、参照配列内の所与の位置において、その領域と一列に並びアライメントする配列決定されたリードのどれか、および/またはすべてからなるパイルアップが見られるものとしてよい。所与の領域またはパイルアップ位置においてアライメントし、および/または重なり合うこれらのリードのうちのすべては、バリアントコーラーシステム内に入力されるものとしてよい。したがって、解析される所与のリードについて、リードは重なりの疑わしい領域で参照と比較されてよく、そのリードは、参照の知られている配列から配列における差異を示すかどうかを決定するために参照と比較され得る。挿入または欠失なしでリードが参照と一列に並び、すべての塩基が同じである場合、アライメントは良好であると決定される。
したがって、所与のマッピングされ、および/またはアライメントされたリードについて、リードは、参照と異なる塩基を有するものとしてよく、たとえば、リードは、1つまたは複数のSNPを含み、塩基がミスマッチしている位置を創出するものとしてよく、および/またはリードは、挿入および/または欠失のうちの1つまたは複数を有し、たとえば、アライメントにおいてギャップを創出し得る。したがって、これらの事例のどれかにおいて、さらなる処理によって考慮される必要がある1つまたは複数のミスマッチがある。それにもかかわらず、時間を節約し、効率を高めるために、そのようなさらなる処理は、感知されたミスマッチが非自明である、たとえば非ノイズ差異である事例に限定されるべきである。ミスマッチの有意性を決定するために、パイルアップ内の多数のリードが参照と一致しない場所は、能動領域として識別されるものとしてよく、次いで、能動領域の周りのウィンドウは、その後さらなる処理のために受けるものとしてよい不一致の座位を選択するために使用され得る。しかしながら、不一致は、非自明であるべきである。これは様々な仕方で決定されてよく、たとえば、非参照確率は、注目する各座位について、たとえば有意な仕方で参照と一致しないリードからの十分に有意な量の指示であるとみなされる所与の閾値よりも高い、塩基マッチ対ミスマッチクオリティスコアを解析することなどによって、計算され得る。
たとえば、マッピングされた、および/またはアライメントされたリードの30個のすべてが一列に並び、および/または重なり合い、参照内の、たとえば能動領域内の所与の位置にパイルアップを形成し、30個のリードのうちの1つまたは2つのみが参照と一致しない場合、さらなる処理に対する最小閾値の条件が満たされていないとみなされるものとしてよく、非一致リードは、一致する28または29個のリードを考慮して無視されてよい。しかしながら、パイルアップ内のリードの3または4、または5、または10個、またはそれ以上が一致しない場合、その不一致は、さらなる処理を保証するのに統計的に十分に有意であるものとしてよく、差異の識別された領域の周りの能動領域は決定され得るであろう。そのような事例において、その差異を囲む塩基を確認する能動領域ウィンドウは、その差異を囲む領域に強化されたコンテキストを与えるように取られるものとしてよく、隣接する位置にわたって分布する非参照確率のガウス分布および総和を実行するステップなどの、追加の処理ステップは、その領域をさらに調査して処理し、能動領域が宣言されるべきかどうかを判断し、もしそうならば参照からのどのようなバリアントがその領域内にもしあれば実際に存在しているかを判断するために実行されるものとしてよい。したがって、能動領域を決定するステップでは、真のバリアントまたはリード誤りが生じたかどうかを明確に決定するために余分な処理が必要になることがある領域を識別する。
特に、多くの事例において、配列のパイルアップ内のすべての領域にさらなる処理を施すことは望ましくないので、能動領域が識別されるものとしてよく、それによって、それはさらなる処理の必要に応じて決定され得る真のバリアントまたはリード誤りが生じたかどうかを明確に決定するために余分な処理が必要になり得る領域のみである。そして、上で示されているように、これは能動領域のウィンドウのサイズを決定する想定されているバリアントのサイズであり得る。たとえば、様々な事例において、能動ウィンドウの限界は、1もしくは2または約10もしくは20またはさらには約25もしくは約50から約200もしくは約300、または約500または約1000塩基長以上まで様々であり、これはさらなる処理が行われている能動ウィンドウの限界内にだけある。もちろん、能動ウィンドウのサイズは、差異の統計的重要度を決定するためのコンテキストを提供する限りは任意の好適な長さであってよい。
したがって、1つまたは2つの孤立した差異のみがある場合、能動ウィンドウは、実際のバリアントが存在する統計的コールを行うのに十分なコンテキストを有するように能動領域内の1つまたは複数から数十までの塩基をカバーするだけでよい場合がある。しかしながら、差異がクラスタまたは束になってある場合、またはより多くのコンテキストが望ましいインデルが存在している場合に、ウィンドウは、より大きいものとなるように構成され得る。いずれかの事例において、クラスタ内に生じる可能性のあるあらゆる差異を解析し、それにより、1つまたは複数の能動領域内でそれらすべてを解析することが望ましいことがあるが、それは、そうすることで、各個別の差異に関するサポート情報を提供することができ、関わる能動ウィンドウの数を減らすことによって処理時間を削減するからである。様々な事例において、能動領域境界は、約0.00001または約0.00001または約0.0001以下から約0.002または約0.02または約0.2以上などの、所与の閾値を渡す能動確率によって決定され得る。そして、能動領域が所与の閾値より長い、たとえば、約300~500塩基または1000塩基以上である場合、領域は、最低能動確率スコアを有する座位によって定められる部分領域などによって、いくつかの部分領域に分けられ得る。
様々な事例において、能動領域が識別された後、局所的ハプロタイプアセンブリ手順が実行され得る。たとえば、各能動領域において、すべてのパイルアップおよび/または重なり合うリードは、「De Bruijn Graph」(DBG)にアセンブルされ得る。DBGは、選択された能動領域と重なり合ったすべてのリードに基づく有向グラフであってよく、その能動領域は約200または約300から約400または約500塩基長以上であり得、その能動領域内で、バリアントの存在および/同一性が決定されるべきである。様々な事例において、上で示されているように、能動領域は、たとえば、注目している座位の各方向にさらに約100または約200以上の塩基を含めて拡張された能動領域を生成することによって拡張されるものとしてよく、たとえば、差異を囲む追加のコンテキストがあるのが望ましい場合がある。したがって、能動領域と重なり合う部分を有するリードのすべてがパイルアップされて、たとえばパイルアップを作成し、重なり合う部分が識別され、リード配列がハプロタイプコーラーシステム内に螺入され、それによってこれはパズルのピースによく似たDe Bruijnグラフの形態で一緒にアセンブルされることは、拡張されようとされまいと、能動領域ウィンドウからである。
したがって、所与の能動ウィンドウについて、パイルアップにおける様々な重なり合うリードの重なり合う領域が能動ウィンドウ内の配列全体をそれを通じてカバーする配列経路を一斉にパイルアップが含むようにパイルアップを形成するリードがある。したがって、能動領域内の所与の座位において、所与のリードが能動領域全体に広がることはあり得ないにもかかわらず、その座位と重なり合う複数のリードがある。この結果、パイルアップ内の様々なリードの様々な領域が、能動領域内の配列における所与の座位に対してバリアントが実際に存在しているかどうかを決定する際にDBGによって使用されることになる。それがこの決定が行われている能動ウィンドウ内にあるので、それは考慮されている能動ウィンドウの境界内にある所与のリードの部分であり、能動ウィンドウの外側にある部分は破棄され得る。
示されているように、それはDBGシステム内に送り込まれる能動領域内の参照と重なり合うリードのセクションである。次いで、DBGシステムは、リードをパズルのようにグラフにアセンブルし、次いで、配列内の各位置について、所与のものについてマッチまたはミスマッチがあるかどうか、およびミスマッチがある場合に、そのミスマッチの確率がどれだけかが、その位置に対する重なり合うリードの集合体に基づき決定される。たとえば、パイルアップ内のリードのセグメントが互いに重なり合う個々の場所がある場合、それらは、マッチするそれらのエリアに基づき互いにアライメントされるものとしてよく、マッチするリードを一続きにするかまたは縫い合わせることから、それらのマッチする地点によって決定されるように、所与の位置にあるリードが互いにマッチするかまたはミスマッチするか、およびそれがどの程度であるかがそのセグメント内の各位置について確定され得る。したがって、コンパイルされている2つまたはそれ以上のリードが少しの間一列に並び、互いに完全に同じようにマッチする場合、単一の文字列を有するグラフが結果として生じるが、2つまたはそれ以上のリードは、差異点に達し、グラフ内に枝が形成され、2つまたはそれ以上の分岐文字列が結果として生じ、これは2つまたはそれ以上のリードの間のマッチングが再開するまで続く。
したがって、このグラフを通る経路は、多くの場合に直線ではない。たとえば、リードのk-mersが、たとえばパイルアップ内の、参照のk-mersおよび/または1つもしくは複数の重なり合うリードからのk-mersと異なる場合、グラフ内の差異点のところに「バブル」が形成され、その結果、2つの分岐文字列が2つの配列の間のマッチングが再開するまで2つの異なる経路線に沿って続く。各頂点は、それぞれのk-mersがパイルアップ内のリードのすべてにおいて何回重なり合うかを識別する加重スコアを与えられるものとしてよい。特に、一方の側から他方の側へ生成されたグラフを通って延在する各経路は、カウントを与えられるものとしてよい。そして、同じk-mersが多数のリードから生成される場合、たとえば、各k-mersが同じ配列パターンを有する場合、それらは、k-mersがすでに存在しているk-mer経路と重なり合うその経路に対するカウントを増やすことによってグラフ内で考慮され得る。したがって、同じk-merが同じ配列を有する多数の重なり合うリードから生成される場合、グラフの間の経路のパターンは、何度となく繰り返され、グラフを通ってこの経路を横断するステップに対するカウントは、それと対応してインクリメンタルに増やされる。そのような事例では、パターンは、k-merの第1の事例に対してのみ記録され、カウントは、そのパターンを繰り返す各k-merについてインクリメンタルに増やされる。このモードでは、パイルアップにおける様々なリードは、どのようなバリエーションがどこに生じるかを決定するために獲得され得る。
このような仕方で、グラフ行列が、すべての可能なN塩基k-mers、たとえば、10塩基k-mersを取ることによって形成されるものとしてよく、これは10塩基セグメント内のリードの長さ分を順次辿ることによって各所与のリードから生成されるものとしてよく、各新しい10塩基セグメントの始まりは、最後に生成された10塩基セグメントから1塩基だけオフセットされる。次いで、この手順は、能動ウィンドウ内のパイルアップにおけるすべてのリードについて同じことを行うことによって繰り返され得る。次いで、生成されるk-mersは、生成されたk-mersの間の同一のマッチングのエリアがそれらが重なり合うエリアにマッチするように互いにアライメントされてよく、これにより、その後走査され得るデータ構造体、たとえば、グラフを構築し、マッチおよびミスマッチのパーセンテージが決定され得る。特に、参照およびそれらとアライメントされた前に処理されたk-mersは、次の生成されたk-merに関して走査され、それにより、その瞬間の生成されたk-merが前に生成されたk-merの一部とマッチし、および/または重なり合うかどうかを決定するものとしてよく、マッチすることが見つけられた場合、次いでその瞬間の生成されたk-merが適切な位置のグラフ内に挿入され得る。
構築された後、グラフは、走査され得、このマッチングに基づいて、参照に関するリード内の所与のSNPおよび/またはインデルが対象の遺伝子コードまたは処理もしくは他の誤りの結果における実際のバリエーションとなる可能性が高いかどうかが決定される。たとえば、所与の領域内の、リードのすべてまたはすべてのうちのかなりの部分の、k-mersのすべてまたはかなりの部分が、同じSNPおよび/またはインデルミスマッチを含むが、同じ仕方で参照と異なる場合、参照ゲノムと比較して対象のゲノムにおいて実際のSNPおよび/またはインデルバリエーションがあると決定され得る。しかしながら、限られた数のリードからの限られた数のk-mersのみがアーチファクトの証拠となる場合、機械および/または処理および/または他の誤りによって引き起こされ、注目する位置における真のバリエーションを示さないという可能性がある。
示されているように、疑わしいバリアントがある場合、グラフ内にバブルが形成される。特に、リードの所与の領域のすべての中のk-mersのすべてが、参照とマッチする場合、それらは線形グラフを形成するように一列に並ぶ。しかしながら、所与の座位において塩基間に差異がある場合、差異のあるその座位でそのグラフが枝分かれする。この枝分かれは、k-mer内の任意の位置にあるものとしてよく、結果として、その差異点において、その差異を含む、10塩基k-merは、グラフ内のk-mersの残りから分岐する。そのような事例において、グラフを通じて異なる経路を形成する新しいノードが形成される。
したがって、すべてが一致している場合、たとえば、グラフにされている所与の新しいk-mer内の配列がグラフ内でそれがアライメントする配列とマッチしている場合、その差異点までのそのk-merに対する経路は、グラフに対する経路と一般的にマッチし、線形であるが、差異点をポストし、新たにグラフにされたk-merの配列内に表される差異を受け入れるようにグラフを通る正しい経路が出現する。この分岐はグラフ内で新しいノードにより表される。そのような事例において、新しい分岐経路とマッチするグラフに追加されるべき新しいk-mersは、そのノードにおいてカウントを増やす。したがって、円弧をサポートするすべてのリードについて、そのカウントはインクリメンタルに増やされる。
様々なそのような事例において、k-merおよび/またはそれが表すリードは、たとえば、分岐点の後に、もう一度マッチングを開始し、それにより、現在はk-merが参照配列のk-mersによって表されるグラフを通る主経路をマッチングするステップを開始する分岐点がある。たとえば、当然しばらくしてから枝分かれしたノードをサポートするリードが時間の経過とともにグラフを再連結するべきである。したがって、時間の経過とともに、そのリードに対するk-mersは主経路を再び再連結する。より具体的には、リード内の所与の座位におけるSNPについて、そのSNPから開始するk-merは、主グラフから分岐し、約10ノードについて分離したままとなるが、それは、リードと参照との間のミスマッチングのあるその座位と重なり合うk-mer毎に10個の塩基があるからである。したがって、SNPについて、11番目の位置において、リード内のその座位をカバーするk-mersは、完全一致のマッチングが再開されるときに主経路を再連結する。結果として、参照配列によって表される主グラフを再連結するために所与の座位においてSNPを有するリードのk-mersに対して10回のシフトを行う。
上に示されているように、典型的には、参照経路である1つの主経路または直線またはバックボーンがあり、分岐がある場合、ノードのところにバブルが形成され、リードとバックボーングラフとの間に差異がある。したがって、バックボーンから分岐し、バブルを形成するいくつかのリードがあり、分岐はバリアントの存在を示し得る。グラフの処理が進むにつれ、バブルの中のバブルが、参照バックボーンに沿って形成されるものとしてよく、それにより、それらは積み重ねられ、グラフを通る複数の経路が創出され得る。そのような事例において、参照バックボーンによって表される主経路があるものとしてよく、第1の分岐の1つの経路、および第1の分岐内の第2の分岐のさらなる経路は、すべて所与のウィンドウ内にあり、各々の経路はグラフを通り、実際のバリエーションを表し得るか、またはシークエンシング誤り、および/またはPCR誤り、および/または処理誤り、および同様のものによって引き起こされるようなアーチファクトであってよい。
そのようなグラフが作成された後、グラフを通るどの経路がサンプルゲノム内に存在する実際のバリエーションを表し、どれが単なるアーチファクトであるかが決定されなければならない。それにもかかわらず、ハンドリングまたは機械誤りを含むリードは、サンプルパイルアップ内のリードの大半によってサポートされないことが予想されるが、これは必ずしもその場合ではない。たとえば、PCR処理における誤りは、典型的には、DNAサンプルを調製するときに生じるクローニングミスの結果である場合があり、そのようなミスの結果、挿入および/または欠失がクローン配列に加えられる傾向がある。そのようなインデル誤りはリード間で一貫性がより高い場合があり、結果としてPCRクローニングにおけるミスからの同じ誤りを有する多数のリードを生成することになり得る。その結果、そのような分岐点に対するより高いカウント線が、そのような誤りがあるせいで生じ得る。
したがって、多くの経路がグラフを通る、グラフ行列が形成された後、次の段階は、グラフを通る経路のすべてを、たとえば、左から右へ、トラバースし、それによって抽出することである。1つの経路が参照バックボーンであるが、その道に沿って様々なバブルに追随する他の経路がある。すべての経路がトラバースされ、そのカウントが表示されなければならない。たとえば、グラフが1つのスポットにおける2つの水平なバブルと、別のスポットにおける3つの水平なバブルを有する経路を含む場合、そのグラフを通る経路は(2×3)6個ある。したがって、経路の各々は、個別に抽出される必要があり、その抽出された経路は、候補ハプロタイプと呼ばれる。そのような候補ハプロタイプは、何が配列決定された対象の実際のDNAを実際に表すことが可能であるかということに対する理論を表し、ハプロタイプアライメント、リード尤度計算、および/または遺伝型判定のうちの1つまたは複数を含む、次の処理ステップは、これらの理論のどれか1つおよび/または各々が正しい確率を求めるためにこれらの理論を検定するために使用され得る。したがって、De Bruijnグラフ再構築の実装は、検定すべき仮説のよいセットを確実に抽出する方法を表す。
たとえば、バリアントコール機能を実行する際に、本明細書で開示されているように、所与の領域内のパイルアップにおける多数のリードが参照と一致しない場所を識別する、および識別された能動領域の周りにウィンドウを生成するなどのために能動領域識別オペレーションが実装されてよく、それによりこれらの領域のみがさらなる処理のために選択され得る。それに加えて、局所的ハプロタイプアセンブリが生じることがあり、たとえば、各所与の能動領域について、パイルアップ内のすべての重なり合うリードは「De Bruijn graph」(DBG)行列にアセンブルされ得る。このDBGから、行列を通る様々な経路が抽出されてよく、各経路は、どのような真のDNA配列が少なくとも1つの鎖上にあるかについて候補ハプロタイプ、たとえば、仮説を構成する。
さらに、ハプロタイプアライメントが生じることがあり、たとえば、各抽出されたハプロタイプ候補は、元の参照ゲノムにアライメントされ、たとえば、Smith-Watermanアライメントされ、それが参照からのどのようなバリエーションを意味するかを決定するものとしてよい。さらに、リード尤度計算が実行されてよく、たとえば、ハプロタイプがサンプリングされた真の元のDNAであったと仮定して、各リードが各ハプロタイプに対して検定され、リードを観察する確率を推定するものとしてよい。最後に、遺伝型判定オペレーションが実装され、バリアントコールファイルが作成される。上で示されているように、これらのオペレーションのどれかまたはすべては、ソフトウェアおよび/またはハードウェアで最適な方式で実装されるように構成されるものとしてよく、様々な事例において、DBG行列を構築し、それから候補ハプロタイプを抽出することがリソース集約的で時間がかかるという性質があるため、および/または隠れマルコフモデル(HMM)評価に関与することを含み得る、ハプロタイプアライメントおよび/またはリード尤度計算を実行することがリソース集約的で時間がかかるという性質があるため、これらのオペレーション(たとえば、局所的ハプロタイプアセンブリ、および/またはハプロタイプアライメント、および/またはリード尤度計算)またはその一部は、オペレーションの1つまたは複数の機能をハード配線された形態で実装されるように、たとえば、本明細書において説明されているような集積回路によって加速化される方式で実行されるように構成され得る。様々な事例において、これらのタスクは、量子コンピューティングデバイスなどにおける1つまたは複数の量子回路によって実装されるように構成され得る。
したがって、様々な事例において、それを実行するためのデバイス、システム、および方法は、ハプロタイプアライメントおよび/またはリード尤度計算を実行するように構成され得る。たとえば、示されているように、各抽出されたハプロタイプは、元の参照ゲノムにアライメントされ、たとえば、Smith-Watermanアライメントされ、それが参照からのどのようなバリエーションを意味するかを決定するものとしてよい。様々な例示的な事例において、スコアリングが、例示的なスコアリングパラメータ、マッチ=20.0、ミスマッチ=-15.0、ギャップオープン=-26.0、およびギャップエクステンド=-1.1などに従って行われてよく、他のスコアリングパラメータも使用されてよい。したがって、この方式で、CIGAR鎖が生成され、ハプロタイプと関連付けられて、アセンブルされたハプロタイプを作成し、アセンブルされたハプロタイプは結局、バリアントを識別するために使用され得る。したがって、このような方式において、所与のハプロタイプに関連付けられている所与のリードの尤度は、すべてのリード/ハプロタイプの組合せについて計算され得る。そのような事例において、尤度は、隠れマルコフモデル(HMM)を使用して計算され得る。
たとえば、様々なアセンブルされたハプロタイプは、SWアライメントに類似する動的プログラミングモデルに従ってアライメントされ得る。そのような事例において、仮想行列は、たとえばDBGによって生成される、候補ハプロタイプが仮想アレイの一方の軸上に位置決めされてよく、リードが他方の軸上に位置決めされ得る場合などに生成され得る。次いで、行列に、グラフを通る抽出された経路をトラバースし、所与の経路が真の経路である確率を計算することによって生成されるスコアを書き込むものとしてよい。したがって、そのような事例において、典型的なSWアライメントプロトコルからのこのアライメントプロトコルの差異は、アレイを通る最もありそうな経路を見つけることに関して、最大尤度計算が使用され、たとえば、計算はハプロタイプへのリードのアライメントに対する全確率を提供するように構成されているHMMモデルによって実行される。したがって、実際のCIGAR鎖アライメントは、この事例では、作成される必要はない。むしろ、可能なすべてのアライメントが考慮され、その確率が総和される。ペアHMM評価は、リソースおよび時間集約的であり、したがって、集積回路内のハード配線された構成の中に、または量子コンピューティングプラットフォーム上の量子回路を介してそのオペレーションを実装することは、非常に有利である。
たとえば、各リードは、各候補ハプロタイプと突き合わせて検定されてよく、それにより、ハプロタイプがサンプリングされた元のDNAの真の代表であると仮定してリードを観察する確率を推定する。様々な事例において、この計算は、PCRまたはシークエンシング誤り、および同様のものなどによって、ハプロタイプ候補が修正されていると思われる様々な可能な方法をモデル化するように構成され得る、「ペア隠しマルコフモデル」(HMM)と、観察されたリードに導入されるバリエーションとを評価することによって実行されてよい。そのような事例において、HMM評価では、動的プログラミング法を使用して、リード内の分岐が誤りモデルの結果であり得る確率を考慮して観察されたリードに到達する任意の一連のマルコフ状態遷移の全確率を計算し得る。したがって、そのようなHMM計算は、増幅および/またはシークエンシングアーチファクトなどによって、リードのうちの1つまたは複数に導入されている可能性のある可能なすべてのSNPおよびインデルを解析するように構成され得る。
特に、ペアHMMは、仮想行列内で、参照候補ハプロタイプへのリードの可能なすべてのアライメントをすべての確率が加算されるそれらの各々に関連付けられている確率とともに考慮する。所与の経路に沿ったすべてのバリアントの確率のすべての総和は、加算されて、各リードに対する1つの包括的な確率が得られる。次いで、このプロセスは、すべてのペア、すべてのハプロタイプ、リードペアについて実行される。たとえば、所与の領域、たとえば、6個のハプロタイプ候補の領域と重なり合う6個のパイルアップクラスタがある場合、およびそのパイルアップが約100個のリードを含む場合、600HMMオペレーションが実行される必要がある。より具体的には、6個のハプロタイプがある場合、経路を通る6個の分岐があることになり、各分岐がその領域に対して対象の実際の遺伝子コードとマッチする正しい経路である確率が計算されなければならない。その結果、リードのすべてに対する各経路が考慮されなければならず、この所与のハプロタイプにあなたが到達することになるであろう各リードに対する確率は、計算されるべきである。
ペア隠れマルコフモデルは、サンプリングされたDNA内の真のハプロタイプが可能な異なる検出されたリードにどのように変換され得るかに関する近似モデルである。これらの種類の変換は、PCRプロセス、他のサンプル調製ステップのうちの1つまたは複数、および/またはシークエンシングプロセスによって引き起こされる誤り、および同様のものによって遺伝子サンプル内に導入されているSNPおよびインデルの組合せであることが観察されている。図2を見るとわかるように、これらの種類の誤りを考慮するために、基礎となる3状態塩基モデルが使用されてよく、たとえば、(M=アライメントマッチ、I=挿入、D=欠失)、さらに遷移はI<->Dを除き可能である。
図2を見るとわかるように、3状態塩基モデル遷移は、時間系列内にないが、むしろ、各配列内で位置0から始まり、第1の塩基が位置1である、候補ハプロタイプを通る進行の配列およびリード配列内にある。Mへの遷移は、両方の配列内で位置+1を意味し、Iへの遷移は、リード配列のみにおける位置+1を意味し、Dへの遷移は、ハプロタイプ配列のみにおける位置+1を意味する。同じ3状態モデルは、その上、本明細書において説明されているように、Smith-Watermanおよび/またはNeedleman-Wunschアライメントの基礎となるように構成され得る。したがって、そのような3状態モデルは、本明細書で述べているように、SWおよび/またはNWプロセスにおいて使用されてよく、それによって、アフィンギャップ(インデル)スコアリングを可能にするが、その際にギャップオープン(IまたはD状態に入る)はギャップエクステンション(IまたはD状態に留まる)より可能性が低いと仮定される。したがって、この事例において、ペアHMMは、アライメントとして見られるものとしてよく、様々な状態遷移の配列を符号化するためにCIGAR文字列が作成され得る。
様々な事例において、3状態塩基モデルは、遷移確率が位置で異なるようにすることで複雑なものとなり得る。たとえば、M個のすべての遷移の確率に、その塩基クオリティスコアを与えられた次のリード塩基および対応する次のハプロタイプ塩基を観察する事前確率を掛けるものとしてよい。そのような事例において、塩基クオリティスコアは、シークエンシングSNP誤りの確率に変換されてよい。2つの塩基がマッチしたときに、その事前確率は、1からこの誤り確率を引いたものとみなされ、それらがミスマッチであったときに、それは、可能な3つのSNP結果があるので、誤り確率を3で除算したものとみなされる。
上記の議論は、抽象「マルコフ」モデルに関するものである。様々な事例において、最大尤度遷移配列も決定されてよく、これは本明細書においてアライメントと呼ばれ、Needleman-Wunschまたは他の動的プログラミングアルゴリズムを使用して実行され得る。しかし、様々な事例において、バリアントコール機能を実行する際に、本明細書において開示されているように、最大尤度アライメント、または特定の任意のアライメントは、一番の関心事である必要はない。むしろ、全確率は、たとえば、グラフを通り、任意のハプロタイプ位置におけるリード位置0から、任意のハプロタイプ位置におけるリード終了位置までの可能なすべての遷移経路の確率の総和であり、各コンポーネント経路確率は単純に様々な構成要素である遷移確率の積である、ハプロタイプを与えられたリードを観察する全確率を計算することによって計算され得る。
経路確率の総和を求めることは、上で説明されているように、仮想アレイを使用し、動的プログラミングアルゴリズムを使用することによって実行されてもよく、これにより、(0 ... N)×(0 ... M)行列の各セルにおいて、M、D、およびI遷移状態に対応する、計算された3つの確率値がある。(または、同じことであるが、3つの行列がある。)行列の上行(リード位置ゼロ)は、D状態では確率1.0に、IおよびM状態では0.0に初期化され、左列の残り(ハプロタイプ位置ゼロ)は、すべてゼロに初期化され得る。(ソフトウェアでは、初期D確率は、倍精度最大値の近く、たとえば、約2^1020に設定され、それにより、アンダーフローを回避し得るが、この係数は後で完全に正規化されてよい。)
この3対1計算依存性は、セルが計算され得る順序を制限する。これらは、各行において左から右に計算され、行を通り上から下へ、または各列内で上から下へ進行し、右方向に進行するものとしてよい。それに加えて、それらは、反対角線波面において計算されてよく、次のステップは、すべてのセル(n,m)を計算することであり、n+mはインクリメントされたステップ数に等しい。この波面順序は、反対角線におけるすべてのセルが互いに無関係に計算され得るという利点を有する。次いで、行列の下行は、最終リード位置において、完了したアルゴリズムを表すように構成され得る。そのような事例において、ハプロタイプコーラーは、すべての下行のセルのIおよびM確率を総和することによって働く。様々な実施形態において、システムは、どのD遷移も下行内で許されないようにセットアップされ得るか、または0.0のD遷移確率は、そこで使用されて、二重カウントを回避するものとしてよい。
本明細書において説明されているように、様々な事例において、各HMM評価は、候補ハプロタイプおよびリードペアなどの、配列ペアに動作し得る。たとえば、所与の能動領域内で、ハプロタイプのセットの各々は、リードのセットの各々に対してHMM評価され得る。そのような事例において、ソフトウェアおよび/ハードウェア入力帯域幅は、リードのセットおよびハプロタイプのセットを一度に転送し、ソフトウェアおよび/またはハードウェアにN×Mペアオペレーションを生成させることによって低減され、および/または最小にされ得る。いくつかの事例において、Smith-Watermanエバリューエータは、個別のHMMオペレーションをキューに入れるように構成され、各々はリードおよびハプロタイプデータのコピーをそれぞれ有するものとしてよい。Smith-Waterman(SW)アライメントモジュールは、線形空間内でペアHMM計算を実行するように構成され得るか、または対数確率空間内で動作し得る。これは、固定小数点値を有する非常に大きな範囲の確率値にわたって精度を保持する上で有用である。しかしながら、他の事例では、浮動小数点演算が使用され得る。
3つの並列乗算(たとえば、対数空間内の加算)があり、次いで2つの直列加算(約5-6段階近似パイプライン)があり、次いで追加の乗算がある。そのような事例において、完全なパイプラインは、約L=12-16サイクル長である。I&D計算は、その長さの約半分であるものとしてよい。パイプラインは、1つまたは複数のすでに計算されている隣接セル(左からMおよび/またはD、上からMおよび/またはI、ならびに/あるいは左上からMおよび/またはIおよび/またはD)などから、各サイクルで2または3または5または7またはそれ以上の入力確率などの多数の入力確率を供給され得る。また、1つもしくは複数のハプロタイプ塩基、および/または1つもしくは複数のリード塩基を、たとえば関連付けられているパラメータ、たとえば、事前処理されたパラメータとともに各サイクルについて含み得る。これは、フォールスルー待ち時間の後に、サイクル毎に1つのセルに対するM&I&D結果セットを出力する。
上で示されているように、本明細書において開示されているように、バリアントコール機能を実行する際に、De Bruijnグラフが形成されるものとしてよく、パイルアップ内のリードのすべてが同一であるときに、DBGは線形となる。しかしながら、差異がある場合。グラフは差異の領域を示す「バブル」を形成し、その結果、多数の経路が参照アライメントとのマッチから分岐し、その後、マッチングアライメントにおいて再連結する。このDBGから、様々な経路が抽出されてよく、これらの経路はたとえば、どのような真のDNA配列が少なくとも1つの鎖上にあるかに対する候補ハプロタイプ、たとえば、仮説を形成し、仮説はデータに対してHMM、または修正HMMオペレーションを実行することによって検定され得る。さらになおも、遺伝型判定が、候補ハプロタイプの可能な二倍体組合せが形成され得る場合などに使用されるものとしてよく、それらの各々について、リードパイルアップ全体を観察する条件付き確率が計算され得る。次いで、これらの結果は、ベイズ公式モジュールに送られ、リードパイルアップ全体が観察された場合に、各遺伝型が真実である絶対確率を計算するものとしてよい。
したがって、本明細書で説明されているデバイス、システム、およびそれらの使用方法に従って、様々な事例において、遺伝型判定オペレーションが実行されてよく、遺伝型判定オペレーションは、ソフトウェアおよび/またはハードウェアでおよび/または量子処理ユニットによって最適な仕方で実装されるように構成され得る。たとえば、候補ハプロタイプの可能な二倍体組合せが形成され、各組合せについて、リードパイルアップ全体を観察する条件付き確率が、ペアHMM評価から各ハプロタイプが与えられた各リードを観察する構成要の確率を使用することなどによって計算され得る。これらの計算の結果は、ベイズ公式の中に送られ、リードパイルアップ全体が観察された場合に、各遺伝型が真実である絶対確率を計算する。
したがって、様々な態様において、本開示は、生成され、および/または供給されるデータに対してハプロタイプまたはバリアントコールオペレーションを実行し、それに関してバリアントコールファイルを作成するシステムを対象とする。特に、本明細書において上で説明されているように、特定の事例において、バリアントコールファイルは、サンプル配列と参照配列との間の差異などの、一方の配列と他方の配列との間の差異を符号化しているデジタルまたは他のそのようなファイルであってよい。特に、様々な事例において、バリアントコールファイルは、1つまたは複数の参照ゲノムと比較したときに人の遺伝子構造における遺伝的および/または構造的バリエーションを述べるか、または他の何らかの形で詳述しているテキストファイルであってよい。
たとえば、ハプロタイプは、人の染色体内に存在する多型などの、遺伝子、たとえばDNAおよび/またはRNAバリエーションのセットであり、したがって、子孫に伝えられ、それによって一緒に継承され得る。特に、ハプロタイプは、突然変異によって生じ得るような遺伝子のアレルの組合せ、たとえば複数の代替的形態のうちの1つを指すものとしてよく、アレルバリエーションは典型的には染色体上の同じ場所に見つかる。したがって、人のゲノムの同一性を決定する際に、様々な異なる可能なアレルのどの形態に対して特定の人の遺伝子配列がコードするのかを知ることが重要である。特定の事例において、ハプロタイプは、同じ染色体上の同じ位置に見つかる場合があるヌクレオチド多型(たとえば、SNP)の1つまたは複数、たとえば、セットを指すものとしてよい。
典型的には、様々な実施形態において、本明細書でまた上で説明されているように、対象に対する遺伝型、たとえば、アレルハプロタイプを決定するために、個体の遺伝子配列中のSNPおよび/または挿入および/または欠失、すなわち、インデルを同時に決定するために、ハプロタイプコールプログラム、たとえば、GATKを使用するアルゴリズムなどの、ソフトウェアベースのアルゴリズムが関わるものとしてよい。特に、アルゴリズムは、処理されている遺伝子配列の1つまたは複数の能動領域におけるハプロタイプの局所的なde novoアセンブリなどに対する1つまたは複数のハプロタイプアセンブリプロトコルを伴い得る。そのような処理は、典型的には、システム内の将来の状態が現在の状態にのみ依存し、それに先行する事象の配列には依存しないと仮定した場合など、ランダムに変化するシステムを例示するために使用される確率論的および/または統計的モデルである隠れマルコフモデル(HMM)と称される処理機能のデプロイを伴う。
そのような事例において、モデル化されるシステムはそれらの特性を有するか、または他の何らかの形で観察されない(隠れ)状態を有するマルコフ過程であると仮定される。特定の事例において、モデルは、単純動的ベイジアンネットワークを伴い得る。特に、遺伝的バリエーションを決定することに関して、その最も単純な形態において、参照配列、たとえば、仮説的ハプロタイプ、および対象のDNAまたはRNAの配列、たとえば、シークエンサから導出されたリードのセグメントを比較するときなどに、処理される配列内の所与の塩基の同一性に対する4つの可能性のうちの1つがある。しかしながら、そのようなバリエーションを決定するために、第1の事例において、対象の遺伝子コードを識別するリードアウトまたは「リード」を作成するために、対象のDNA/RNAは、たとえば、Next Gen Sequencer(「NGS」)を介して配列決定されなければならない。次に、1つまたは複数のリードを作成するために、対象のゲノムが配列決定された後、対象のDNAおよび/またはRNAを表す様々なリードは、本明細書において上で詳しく説明されているように、マッピングされ、および/またはアライメントされる必要がある。次いで、このプロセスの次のステップは、決定されたばかりの、たとえば、マッピングされおよび/またはアライメントされた、対象の遺伝子がプロトタイプ参照配列の遺伝子とどれだけ異なるかを決定することである。したがって、そのような解析を実行する際に、対象の所与の遺伝子を潜在的に表すリードは、現在決定されるべきである様々なSNPおよび/またはインデルを有するにもかかわらずプロトタイプハプロタイプの表現であると仮定される。
特に、特定の態様において、たとえば、高速ハプロタイプコーラーにおける、HMM機能をデプロイするなどの、ハプロタイプおよび/またはバリアントコール機能を実行するなどのそれを実施するためのデバイス、システム、および方法が実現される。様々な事例において、当技術分野で知られているこれらのおよび他のそのような様々な問題を克服するために、本明細書において提示されているHMMアクセラレータは、ソフトウェアで実装されるか、ハードウェアで実装されるか、または一部はソフトウェアによっておよび/または一部はハードウェアによって実装され、および/または他の何らかの形で制御されることの組合せで実装される仕方で操作されるように構成されてよく、ならびに/あるいは量子コンピューティング実装形態を含み得る。たとえば、特定の態様において、本開示は、対象のDNAおよび/またはRNA配列同一性に関連するデータならびに/あるいは対象の遺伝情報が参照ゲノムの遺伝情報とどのように異なり得るかを決定し得る方法を対象とする。
そのような事例において、この方法は、HMMプロトコルを使用するなどの、ハプロタイプまたはバリアントコール機能の実装形態によって実行され得る。特に、HMM機能は、本明細書で説明されている方法に従って、ハードウェア、ソフトウェアで、または加速化されたデバイスなどに載っている1つまたは複数の量子回路を介して実行され得る。そのような事例において、HMMアクセラレータは、配列決定され、マッピングされ、および/またはアライメントされたデータを受け取り、処理して、それを処理し、たとえば、バリアントコールファイルを作成し、さらには処理済みデータをシステム全体に伝送して戻すように構成され得る。したがって、この方法は、データがソフトウェア制御CPUもしくはGPUまたはさらにはQPUなどのプロセッサから加速化されたHMMを実装するハプロタイプコーラーに送信され得るシステムをデプロイするステップを含むものとしてよく、ハプロタイプコーラーは、FPGA、ASIC、もしくは構造化ASICなどのマイクロプロセッサチップ上にデプロイされるか、または1つもしくは複数の量子回路によって実装され得る。この方法は、データを処理してHMM結果データを作成するためのステップをさらに含むものとしてよく、次いで、それらの結果はCPUおよび/またはGPUおよび/またはQPUにフィードバックされ得る。
特に、一実施形態において、図3Aを見るとわかるように、HMMアクセラレータを備えるバイオインフォマティクスパイプラインシステムが実現される。たとえば、一事例において、バイオインフォマティクスパイプラインシステムは、バリアントコールシステム1として構成され得る。システムは、ハードウェアで実装されているものとして例示されているが、量子コンピューティングプラットフォームなどの、1つまたは複数の量子回路を介して実装されてもよい。特に、図3Aは、HMMインターフェース構造の高水準の図を示している。特定の実施形態において、バリアントコールシステム1は、HMMオペレーションなどの、バリアントコールオペレーションの少なくとも一部を加速するように構成される。したがって、様々な事例において、バリアントコールシステムは、HMMシステム1として本明細書において参照され得る。システム1は、配列決定された遺伝子配列を1つまたは複数の参照配列と比較するなどのために、遺伝情報のシークエンシングおよび/または処理に関係する1つまたは複数のルーチンを実行するように構成されている1つまたは複数の中央演算処理装置(CPU/GPU/QPU)1000を有するサーバを含む。
それに加えて、システム1は、FPGA、ASIC、またはsASICなどの、マイクロチップ7を備える、拡張カードなどの周辺デバイス2を備える。いくつかの事例において、本明細書で述べられている様々なオペレーションを実行するために1つまたは複数の量子回路が実現され構成され得る。また、ASICという用語は、適切ならば、構造化ASIC(sASIC)を等しく指すものとしてよいことに留意されたい。周辺デバイス2は、CPU/GPU/QPU1000をチップ7と接続する、パラレルまたはシリアルバスなどの、インターコネクト3およびバスインターフェース4を備える。たとえば、デバイス2は、PCI、PCI-X、PCIe、またはQPI(クイックパスインターコネクト)などの、ペリフェラルコンポーネントインターコネクトを備えるものとしてよく、低遅延、高データ転送速度などのために、CPU/GPU/QPU1000を周辺デバイス2に動作可能におよび/または通信可能に接続するよう適合されている、バスインターフェース4を備え得る。したがって、特定の事例において、インターフェースは、マイクロチップ7に関連付けられているペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)4であってよく、このマイクロチップはHMMアクセラレータ8を備える。たとえば、特定の事例において、HMMアクセラレータ8は、加速化されたHMM機能を実行するように構成され、たとえば、HMM機能は、いくつかの実施形態において、FPGA、ASIC、もしくはsASICのハードウェアで、または1つもしくは複数の適切に構成されている量子回路を介して少なくとも部分的に実装されてよい。
特に、図3Aは、HMMタスクを含むなど、バリアントコール機能の1つまたは複数のプロセスを実行するために、複数の処理エンジン13a~13m+1などの、1つまたは複数のエンジン13の例示的な編成を有するHMMアクセラレータ8の高水準の図を示している。したがって、HMMアクセラレータ8は、データディストリビュータ9、たとえば、CentComと、1つまたは複数のインスタンス13として編成されるか、または他の何らかの形で含むものとしてよい1つまたは多数の処理クラスタ11~11n+1とから構成されるものとしてよく、たとえば、各インスタンスは、小エンジン13a~13m+1などの処理エンジンとして構成され得る。たとえば、ディストリビュータ9は、CPU/GPU/QPU1000などからデータを受信し、そのデータを多数のHMM処理クラスタ11のうちの1つまたは複数に分配するか、または他の何らかの形で転送するように構成され得る。
特に、いくつかの実施形態において、ディストリビュータ9は、オンボードPCIeインターフェース4とHMMアクセラレータモジュール8との間に論理的に位置決めされてよく、たとえば、インターフェース4は、インターコネクトまたは他の適切に構成されているバス5、たとえば、PCIeバスなどでディストリビュータ9と通信する。ディストリビュータモジュール9は、1つまたは複数のクラスタバス10などで1つまたは複数のHMMアクセラレータクラスタ11と通信するように適合され得る。たとえば、HMMアクセラレータモジュール8は、クラスタ11a~11n+1のアレイとして構成されるか、または他の何らかの形で含むものとしてよく、たとえば、各HMMクラスタ11は、クラスタハブ11として構成されるか、または他の何らかの形で含むものとしてよく、および/または1つもしくは複数のインスタンス13を含むものとしてよく、そのインスタンスは、それによって受信されたデータに対して1つまたは複数のオペレーションを実行するように適合されている処理エンジン13として構成され得る。したがって、様々な実施形態において、各クラスタ11は、クラスタハブ11a~11n+1として形成されるか、または他の何らかの形で含むものとしてよく、ハブの各々は、多数のHMMアクセラレータエンジンインスタンス13a~13m+1に動作可能に関連付けられるものとしてよく、たとえば、各クラスタハブ11は、データをクラスタ11内の複数の処理エンジン13a~13m+1に向けるように構成され得る。
様々な事例において、HMMアクセラレータ8は、リード形式などの、対象の配列決定された遺伝子コードの各塩基を参照配列の様々の知られているまたは生成された候補ハプロタイプと比較し、考慮されている位置における所与の塩基が関連するハプロタイプとマッチするかまたはマッチしないかのいずれかである、たとえば、リードがSNP、挿入、または欠失を含み、それによって結果としてその位置における塩基のバリエーションが考慮される確率を決定するように構成される。特に、様々な実施形態において、HMMアクセラレータ8は、本明細書において以下でより詳しく説明されているようなこれらの状態、マッチ(「M」)、挿入(「I」)、または欠失(「D」)の各々の間に入るリードの塩基の配列に対する遷移確率を割り当てるように構成される。
より具体的には、構成に応じて、HMM加速機能は、CPU/GPU/QPU1000および/またはマイクロチップ7などによって、いずれかのソフトウェアで実装されてよく、および/またはハードウェアで実装されてよく、周辺拡張カードもしくはボード2上に位置決めされるような、マイクロチップ7内に存在し得る。様々な実施形態において、機能は、たとえばCPU/GPU/QPU1000などによって実行される、ソフトウェアとして部分的に実装され、部分的にハードウェアとして、チップ7上に、または1つもしくは複数の量子処理回路を介して実装され得る。したがって、様々な実施形態において、チップ7は、CPU/GPU/QPU1000のマザーボード上に存在してよいか、または周辺デバイス2の一部であり得るか、またはその両方である。その結果、HMMアクセラレータモジュール8は、様々なインターフェース、たとえば、3、5、10、および/または12を備えるか、または他の何らかの形で関連付けられ、それにより、データを処理エンジン13に、および処理エンジン13から効率よく転送することを可能にする。
したがって、図2および図3を見るとわかるように、様々な実施形態において、バリアント、たとえば、ハプロタイプ、コール機能を実行するように構成されているマイクロチップ7が実現される。マイクロチップ7は、これに直接結合される、たとえば、コンピュータのマザーボード上に搭載される、または1つまたは複数のインターコネクト、たとえば、3、4、5、10、および/または12などを介して、CPU/GPU/QPU1000に動作可能に結合されている周辺デバイス2の一部として搭載されるなど、それに間接的に結合される、ようなCPU/GPU/QPU1000に関連付けられ得る。この事例において、マイクロチップ7は、周辺デバイス2上に存在する。マイクロチップとして構成されているが、アクセラレータは量子処理ユニットの1つまたは複数の量子回路として構成されることも可能であると理解されるべきであり、量子回路は、本明細書で開示されている機能のうちの1つまたは複数を実行するように1つまたは複数の処理エンジンとして構成される。
したがって、周辺デバイス2は、インターフェース3、たとえば、DMAなどを介して、周辺デバイス2をコンピュータおよび/またはサーバの中央演算処理装置(CPU/GPU/QPU)1000に接続するなどのためにパラレルまたはシリアル拡張バス4を備え得る。特定の事例において、周辺デバイス2および/またはシリアル拡張バス4は、接続部5などを介して、マイクロチップ7と通信するか、または他の何らかの形で備えるように構成されているペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)であってよい。本明細書において説明されているように、マイクロチップ7は、HMMアクセラレータ8として少なくとも部分的に構成され得るか、または他の何らかの形で備え得る。HMMアクセラレータ8は、マイクロチップ7の一部として、たとえばハード配線されるものとして、および/またはそれと関連して実行されるコードとして構成されてよく、PCIeインターフェース4などで、CPU/GPU/QPU1000によってマイクロチップ7に供給されるデータに対して、隠れマルコフモデルの1つまたは複数のオペレーションを実行するなどのために、バリアントコール機能を実行するように構成される。同様に、1つまたは複数のバリアントコール機能が実行された後、たとえば、1つまたは複数のHMMオペレーションが実行された後、その結果は、接続部3などを介して、チップ7のHMMアクセラレータ8からバス4でCPU/GPU/QPU1000に転送され得る。
たとえば、特定の事例において、情報を処理しおよび/または転送し、ならびに/あるいは命令を実行するためのCPU/GPU/QPU1000は、HMMアクセラレータ8として少なくとも部分的に構成されているマイクロチップ7とともに実現される。CPU/GPU/QPU1000は、CPU/GPU/QPU1000とマイクロチップ7のHMMアクセラレータ8との間の通信を円滑にするように適合されているインターフェース5でマイクロチップ7と通信し、したがって、CPU/GPU/QPU1000をマイクロチップ7の一部であるHMMアクセラレータ8に通信可能に接続され得る。これらの機能を円滑にするために、マイクロチップ7は、たとえば、1つまたは複数のクラスタ11を介して、データを多数のHMMエンジン13に転送するように構成されている、CentComであってよい、ディストリビュータモジュール9を備え、各エンジン13は、データの受信および処理を、HMMプロトコルをそのデータに対して実行することなどによって行い、最終値を計算し、その結果を出力し、それを繰り返すように構成される。様々な事例において、HMMプロトコルの実行は、本明細書において以下で説明されているように、1つまたは複数の遷移確率を決定するステップを含み得る。特に、各HMMエンジン13は、それに関して最終総和値を作成し出力するためにHMM仮想行列の生成および/または評価の1つまたは複数などを含むジョブを実行するように構成されてよく、最終総和値は、本明細書において以下で説明されているように、コールされた塩基がマッチするか、または仮説的ハプロタイプ配列における対応する塩基と異なる確からしい尤度を表す。
図3Bは、図3AのHMMクラスタ11の詳細な図を示している。様々な実施形態において、各HMMクラスタ11は、1つまたは複数のHMMインスタンス13を含む。チップまたは量子コンピューティングプロセッサなどに用意されるリソースの量に従って望むようなクラスタの1つまたは多数が実現され得る。特に、HMMクラスタが実現されてよく、このクラスタは、クラスタハブ11として構成される。クラスタハブ11は、ディストリビュータ9から1つまたは複数のジョブ20に関連するデータを受け取り、1つまたは複数のHMMインスタンスバス12などを介して1つまたは複数の、たとえば、複数のHMMインスタンス13にさらに通信可能に接続され、これにクラスタハブ11がジョブデータ20を伝送する。
システム全体を通してのデータの転送に対する帯域幅は、比較的低い帯域幅のプロセスであってよく、ジョブ20が受け取られた後、システム1は、記憶のためチップ7を出ることなくジョブを完了するように構成され得る。様々な実施形態において、1つのジョブ20aが所与の時刻に1つの処理エンジン13aに送信されるが、いくつかのジョブ20a~nがクラスタハブ11によっていくつかの異なる処理エンジン13a~13m+1に分配されてよく、たとえば、処理エンジン13の各々は、単一のジョブ20、たとえば、1つまたは複数のリードと1つまたは複数のハプロタイプ配列との間の単一の比較を、並列方式で、高速に実行している。以下で説明されているように、そのようなジョブ20の実行は、典型的には、仮想行列の生成を伴うものとしてよく、それによって、対象の「リード」配列は、1つまたは複数の、たとえば2つの、仮説的ハプロタイプ配列と比較され、それにより、それらの間の差異を決定し得る。そのような事例において、単一のジョブ20は、たとえば塩基毎に、行われる各比較に対して処理される必要がある中に多数のセルを有する1つまたは複数の行列の処理を伴い得る。ヒトゲノムは約30億塩基対なので、ヒトゲノムの30Xオーバーサンプリング(関連付けられているすべてのHMMジョブの行列内の約20兆個のセルに相当する)を解析するときに実行されるべき異なるジョブは10億から20億程度になり得る。
したがって、本明細書で説明されているように、各HMMインスタンス13は、CPU/GPU/QPU1000からそれによって受け取られたデータなどの、配列データに対して、HMMプロトコル、たとえば、HMM行列の生成および処理を実行するように適合され得る。たとえば、上で説明されているように、DNAまたはRNAなどの対象の遺伝物質のシークエンシングを行う際に、DNA/RNAは、たとえば約100塩基長までの、いくつかのセグメントに分けられる。次いで、これらの100個の塩基セグメントの同一性は、自動化シークエンサなどによって決定され、Phredクオリティスコアとともにリードの両方の各塩基同一性を記憶するFASTQテキストベースファイルまたは他の形式に「読み込まれる」(たとえば、典型的には、対数スケールで0から63の間の数。スコア0はコールされた塩基が正しい最小の信頼度を示し、20から45の間のスコアは一般的に比較的正確であると認められ得る)。
特に、上で示されているように、Phredクオリティスコアは、シークエンシングプロセッサによって、たとえば、自動化DNA/RNAシークエンサによって、生成される核酸塩基同一性の識別のクオリティを測定するクオリティ指標である。したがって、各リード塩基は、シークエンサがその特定の識別のクオリティをどのようなクオリティに評価したかに基づくそれ独自のクオリティ、たとえば、Phred、スコアを含む。Phredは、それがコールされた塩基同一性が正しいとシークエンサが推定する際の信頼度を表す。次いで、このPhredスコアは、以下で詳しく説明されているように、実装されたHMMモジュール8によって使用され、たとえば、マッチ状態を出入りする、マッチ、挿入、および/または欠失遷移確率を決定することなどによって、それのマッピングおよび/またはアライメント先のハプロタイプと比較してリードにおける各コールされた塩基の正確さをさらに決定する。様々な実施形態において、システム1は、隣接する塩基/スコアおよび/または隣接するDNAの断片を考慮し、そのようなファクタが調査対象の、塩基、たとえば、セルのPhredスコアに影響を及ぼすことを可能にすることなどによって、初期Phredスコアを修正するか、または他の何らか形で調節することを、それに対するHMMプロトコルの実行前に行い得ることに留意されたい。
そのような事例において、図4を見るとわかるように、システム1、たとえば、コンピュータ/量子ソフトウェアは、探索され、および/またはシステム1全体を通して様々なコアおよび利用可能なスレッド1007の間で並列化され得るいくつかのジョブ20nに分けられ得る、本明細書で説明されているようなさらなる処理を他の何らかの形で受けるものとしてよい配列決定されたゲノム内の様々な能動領域500nを決定し、識別し得る。たとえば、そのような能動領域500は、配列決定されたゲノムと参照ゲノムとの間のバリエーションの発生源であるとして識別され得る。特に、CPU/GPU/QPU1000は、実行し、能動領域500a、500b、および500cを識別し、現在調査されている能動領域500a~cに基づき、たとえば、適切に構成されたアグリゲータ1008を介して、実行されるべき様々な異なるジョブ20nをコンパイルしアグリゲートする多数のスレッド1007を有するものとしてよい。適切な数のスレッド1007が、システム1を最大効率で実行させられるようにするために使用されるものとしてよく、たとえば、より多くのスレッドが時間をあまり能動的に使わずに待機する。
識別され、コンパイルされ、および/またはアグリゲートされた後、スレッド1007/1008は、次いで、能動的ジョブ20を、たとえばファイアアンドフォーゲット方式で、PCIeインターフェース4などを介して、HMMモジュール8のデータディストリビュータ9、たとえば、CentComに転送し、次いで、マッピングおよび/またはアライメント先の対応する能動領域500までマッチングされて戻るようにHMM8が出力データを送り返すのを待ちながら異なるプロセスに移る。次いで、データディストリビュータ9は、たとえばジョブ毎に、様々な異なるHMMクラスタ11にジョブ20を分配する。すべてが効率よく実行されている場合、これは、先入れ先出し形式であってよいが、そのようでなくてもよい。たとえば、様々な実施形態において、生ジョブデータおよび処理済みジョブ結果データは、利用可能になったときにシステムを通してシステム全体に送信されてよい。
特に、図2、図3、および図4を見るとわかるように、様々なジョブデータ20は、データの4Kバイトページにアグリゲートされてよく、これは、PCIe4を介して、CentCom9に送られCentCom9を通り、処理エンジン13に、たとえば、クラスタ11を介して送信されるものとしてよい。送信されるデータの量は、4Kバイトより多くても少なくてもよいが、典型的にはデータの4K(たとえば、1024)ページ当たり約100HMMジョブを含む。特に、これらのデータは、次いで、データディストリビュータ9によって取り込まれ、各クラスタ11に供給され、たとえば、1つの4Kページは、1つのクラスタ11に送信される。しかしながら、所与のジョブ20は、利用可能になったクラスタ、およびそれがいつなのかに基づき、所与のクラスタ11に送信され得るので、そうである必要はない。
したがって、本明細書で提示されているようなクラスタ11のアプローチは、着信データを処理エンジン13に高速に効率よく分配する。特に、データがCPU/GPU/QPU1000から、たとえば、DMA接続3でPCIeインターフェース4に到達すると、受信されたデータは、次いで、PCIeバス5でバリアントコーラーマイクロチップ7のCentComディストリビュータ9に送信され得る。次いで、ディストリビュータ9は、1つまたは複数のクラスタ専用バス10などで、データを1つまたは複数のHMM処理クラスタ11に送信し、次いで、クラスタ11は、データを、処理などのために、たとえば、1つまたは複数のインスタンスバス12を介して、1つまたは複数の処理インスタンス13に伝送するものとしてよい。この事例において、PCIeインターフェース4は、たとえば長期間にわたって、フルタイムで、システム1が実行されており、ジョブ20が処理されている期間に、およびPCIeインターフェース4で、1つまたは複数のCPU1000に送り返されるべき処理済みHMMデータの出力にも遅れずに追随しながら、ビジーであるHMMクラスタ11a-(n+1)の1つまたは複数、たとえば、すべての中でHMMアクセラレータインスタンス13a-(m+1)の1つまたは複数、たとえばすべてを保持できる速度など、高速に周辺拡張バス5、ディストリビュータ9、および/またはクラスタ10および/またはインスタンス12バスを通じてデータを提供するように適合される。
たとえば、HMMアクセラレータインスタンス13のうちの1つまたは複数に対してアイドル時間をもたらすインターフェース3、5、10、および/または12における不効率は、システム1の処理時間全体に直接的な影響を及ぼし得る。特に、ヒトゲノムを解析するときに、様々なHMMクラスタ11に分配され、1時間未満、45分未満、30分未満、20分未満など、15分、10分、5分、またはそれ以下を含む時間などの期間にわたって処理される必要がある異なるジョブ20は20億程度以上あり得る。
したがって、図4では、上で一般的に説明されているように、システム1のソフトウェアおよび/またはハードウェア全体の例示的なデータフローの概要を述べている。図4を見るとわかるように、システム1は、PCIeバス5などで、たとえば、PCIeインターフェース4とディストリビュータ9、たとえば、CentComとの間で、データを転送するように一部は構成され得る。それに加えて、システム1は、1つまたは複数のクラスタバス10などで、たとえば、ディストリビュータ9と1つまたは複数のHMMクラスタ11との間で、受信されたデータを転送するように一部はさらに構成され得る。したがって、様々な実施形態において、HMMアクセラレータ8は、HMM機能の1つまたは複数のプロセスを実行するように構成されている1つまたは複数のクラスタ11などの、1つまたは複数のクラスタ11を備え得る。そのような事例において、CentCom9をHMMクラスタ11に接続する、クラスタバス10などのインターフェースがある。
たとえば、図5は、HMMモジュール8を出入りする、たとえば、クラスタモジュールなどを出入りする、インターフェースを示す高水準図である。図6を見るとわかるように、各HMMクラスタ11は、専用クラスタバス10を通じてCentComデータディストリビュータ9と通信する、たとえば、CentComデータディストリビュータ9からデータを受信し、および/またはCentComデータディストリビュータ9に最終結果データ、たとえば、総和データを送信するように構成され得る。特に、適切なインターフェースまたはバス5は、それがPCIeインターフェース4がデータディストリビュータ9と通信することを可能にする限り用意されてよい。より具体的には、バス5は、データディストリビュータ9と通信する際に有用な解釈論理を備えるインターコネクトであってよく、その解釈論理は、この機能を提供するために採用されている任意のプロトコルに適応できるように構成され得る。特に、様々な事例において、インターコネクトは、PCIeバス5として構成されてよい。
それに加えて、クラスタ11は、本明細書において単一のまたは多数のクロック領域が使用されるように構成されてよく、したがって、1つまたは複数のクロックは、クラスタ11内に存在し得る。特定の事例において、多数のクロック領域が提供され得る。たとえば、より低速のクロックが、たとえば、クラスタ11との間の、通信などのために用意され得る。それに加えて、本明細書で説明されている様々な状態計算を実行する際に使用するためにHMMインスタンス13によって使用され得るより速い、たとえば、高速の、クロックが用意され得る。
特に、様々な実施形態において、図6を見るとわかるように、システム1は、第1の事例において、データディストリビュータ9が既存のCentCom IPを利用するときに、ガスケットなどのカラーが提供され得るようにセットアップされてよく、ガスケットは、HMMクラスタインターフェースまたはバス10からCentComインターフェース5に、およびCentComインターフェース5からHMMクラスタインターフェースまたはバス10に信号を変換するように構成される。たとえば、HMMクラスタバス10は、CPU/GPU1000をHMMアクセラレータモジュール8の様々なクラスタ11に通信可能に、および/または動作可能に接続し得る。したがって、図6を見るとわかるように、各ハプロタイプおよび/または各リードに対する構造化された書込みおよび/または読出しデータは、システム1全体に送信され得る。
ジョブ20がHMMエンジンに入力された後、HMMエンジン13は、典型的には、a)IDLEであれば即座に、またはb)その現在割り当てられているタスクを完了した後に、のいずれかで開始し得る。各HMMアクセラレータエンジン13は、ピンポン入力を取り扱うことができ(たとえば、一方のデータセットを他方のデータセットがロードされている間に操作しているものとしてよい)、それにより、ジョブ間のダウンタイムを最小限度に抑えられることに留意されたい。それに加えて、HMMクラスタカラー11は、データディストリビュータ9によって送信された入力ジョブ20を自動的に受け取り、それを新しいジョブを受信することができるクラスタ11内のHMMエンジンインスタンス13のうちの1つに割り当てるように構成され得る。特定のジョブ20に対して特定のHMMエンジンインスタンス13を選択することができるコントロールがソフトウェア側にある必要はない。しかしながら、様々な事例において、ソフトウェアは、そのようなインスタンスを制御するように構成され得る。
したがって、上記に照らして、システム1は、結果データをCPU/GPU/QPUに転送して戻したときに合理化され、この効率のおかげで、結果を役立てるためにCPU/GPU/QPUに戻る必要があるデータはあまりない。これは、システムがシステム構成に応じて、約30分以下、たとえば、約25もしくは約20分以下、たとえば、約10もしくは約7分以下、さらには約5もしくは3分以下を含む、約18もしくは約15分以下、のバリアントコールオペレーションを達成することを可能にする。
図6は、FPGAまたはASIC7上のハードウェアアクセラレータ8内の例示的なHMMエンジン13内の様々な機能ブロックの高水準ビューを示す。特に、ハードウェアHMMアクセラレータ8内に、多数のクラスタ11があり、各クラスタ11内に、多数のエンジン13がある。図6は、HMMエンジン13の単一のインスタンスを示している。図6を見るとわかるように、エンジン13は、インスタンスバスインターフェース12、複数のメモリ、たとえばHMEM16およびRMEM18、様々な他のコンポーネント17、HMM制御論理15、さらには結果出力インターフェース19を備えるものとしてよい。特に、エンジン側では、HMMインスタンスバス12は、メモリ、HMEM16およびRMEM18に動作可能に接続され、クラスタハブ11と通信するインターフェース論理を備えるものとしてよく、そのハブはディストリビュータ9と通信し、次いでこれはCPU/GPUおよび/またはサーバ1000によって実行されているバリアントコールソフトウェアと通信するPCIeインターフェース4と通信している。したがって、HMMインスタンスバス12は、データをCPU1000から受信し、それをメモリ、たとえば、HMEMおよびRMEMのうちの1つまたは複数にロードする。この構成は、1つまたは複数の量子回路でも実装され、しかるべく適合され得る。
これらのインスタンスにおいて、少なくとも1つまたは2つまたはそれ以上のハプロタイプ、たとえば、2つのハプロタイプが、たとえば、HMEM16に、たとえばRMEM18内にロードされる所与のリード配列毎に、ロードされ、このことが多数のハプロタイプがロードされたときに結果としてPCIeバス5の帯域幅にかかる負担を緩和するように十分なメモリ空間が割り振られるべきである。特定の事例において、2つのハプロタイプおよび2つのリード配列がそれぞれのメモリにロードされてよく、それにより、4つの配列が関連するすべての組合せで一緒に処理されることを可能にし得る。他の事例において、4個、または8個、または16個の配列、たとえば、配列ペアがロードされ、同様にして、組合せで処理され、たとえば、望んだときに帯域幅をさらに緩和するものとしてよい。
それに加えて、十分なメモリが確保され得、ピンポン構造がその中に実装され、メモリがメモリのピン側などで新しいジョブ20aをロードされると新しいジョブの信号が示され、制御論理15は、本明細書において以下で説明されているように、行列を生成し、必要な計算を実行することなどによって、新しいジョブ20aを処理することを開始し得る。したがって、これは、別のジョブ20bをロードするために利用可能なメモリのポン側を残し、これは第1のジョブ20aが処理されている間に中にロードされてよく、第1のジョブ20aが終了したときに、第2のジョブ20bが制御論理15によって処理されることが即座に開始し得る。
そのような事例において、ジョブ20bに対する行列は、第1のジョブ20aの処理の終了から第2のジョブ20bの処理の開始まで、事実上ダウンタイムなし、たとえば1もしくは2クロックサイクルであるように前処理され得る。したがって、メモリ構造のピンとポンの両側を利用したときに、HMEM16は、典型的には、4個のハプロタイプ配列、たとえば、2つのピースを記憶してよく、RMEM18は、典型的には、2個のリード配列を記憶し得る。このピンポン構成は、少し余分なメモリ領域を単に必要とするが、エンジン13のスループットの二重化を可能にするので、有用である。
処理中および/または処理後に、メモリ16、18は、以下で説明されているように、「Priors」データに関係する様々な情報を計算するように構成されている、遷移確率計算機およびルックアップテーブル(LUT)ブロック17aに送り、次いで、事前結果データをM、I、およびD状態計算機ブロック17bに送り込み、遷移確率を計算するときに使用する。1つまたは複数のスクラッチRAM17cも含まれ、たとえば、スワスの境界におけるM、I、およびD状態、たとえば、処理しているスワスの下行の値を保持し、示されているように、様々な事例において、これはスワス35の長さに比例するように長さが適切な量のセル、たとえば、約10セルであるものとしてよい。
それに加えて、別個の結果出力インターフェースブロック19が、総和が終了したときにそれらが、たとえば、4個の32ビットワードが、CPU/GPU/QPU1000のバリアントコールソフトウェアに伝送されて即座に戻され得るように含まれ得る。この構成は、システム1、特にM、I、およびD計算機17bが、たとえば、結果をクリアするのにジョブ20を実行するほどの時間がかからない限り、出力インターフェース19がクリアするのを待つのを妨げられないように適合され得ることに留意されたい。したがって、この構成では、メモリをロードする、MID計算を実行する、および結果を出力するなどの、システム全体のパイプラインを形成するように協力して機能する3つのパイプラインステップがあり得る。さらに、所与のHMMエンジン13は、それ専用の出力インターフェース19を備える多数あるうちの1つであるが、それらはデータディストリビュータ9に戻る共通インターフェース10を共有し得ることに留意されたい。したがって、クラスタハブ11は、衝突を回避するためにHMMアクセラレータ8を通じて情報の転送(「xfer」)を管理する管理能力を備える。
したがって、以下では、上で一般的に概要を述べたように、ハプロタイプおよびリード配列データを受け取り、それを処理し、それに関連する結果データを出力するときのHMMエンジン13の各モジュール内で実行されるプロセスを詳述する。特に、HMMクラスタ11内の、HMMエンジン13における高帯域計算は、上で説明されているように、マッチ(M)、挿入(I)、および欠失(D)状態値を計算し、および/または更新することに向けられており、これらは、調査されている特定のリードがハプロタイプ参照さらにはそれの範囲とマッチするかどうかを決定する際に使用される。特に、リードはリード内の各塩基に対するPhredスコアanf GOP値とともに、ディストリビュータ9からクラスタ11に伝送され、それによって、処理のために特定の処理エンジン13に割り当てられる。次いで、これらのデータは、処理エンジン13のM、I、およびD計算機17によって、リード内のコールされた塩基が、正しい、および/またはハプロタイプ内のそれぞれの塩基とのマッチである、またはバリエーションの産物である、たとえば、挿入もしくは欠失である可能性が高いか、または低いかを決定し、ならびに/あるいはバリエーションがある場合、そのようなバリエーションが、ハプロタイプ内の真の変動または配列生成および/またはマッピングおよび/またはアライメントシステムにおける誤りのアーチファクトの起こりそうな結果であるかどうかを決定するために使用される。
上で示されているように、そのような解析の一部は、MID計算機17が、マッチ状態から別のマッチ状態へ、またはマッチ状態から挿入状態もしくは欠失状態のいずれかへなど、参照と比較する一方のM、I、またはD状態から他方のM、I、またはD状態へ進むリードにおける一方の塩基から他方の塩基への遷移確率を決定するステップを含む。そのような決定を行う際に、関連付けられている遷移確率の各々は、リードと参照との間の観察されたバリエーションが真のバリエーションであり、単なる何らかの機械もしくは処理の誤りでないかどうかを評価するときに決定され考慮される。これらの目的のために、考慮される各塩基に対するPhredスコアは、比較においてマッチ状態から挿入もしくは欠失、たとえば、ギャップ、状態に進むなど、マッチ状態を出入りする遷移確率を決定する際に有用である。同様に、ギャップ状態を継続するか、またはギャップ状態、たとえば、挿入もしくは欠失状態からマッチ状態に戻る遷移確率も、決定される。特定の事例において、欠失または挿入状態を出入りする、たとえば、ギャップコンティニュエーション状態を出る確率は、固定値であってよく、本明細書ではギャップコンティニュエーション確率またはペナルティとして参照され得る。それにもかかわらず、様々な事例において、そのようなギャップコンティニュエーションペナルティは、浮動であり、したがって、システム構成の精度要求に応じて変化を受けるものとしてよい。
したがって、図7および図8に示されているように、M、I、およびD状態値の各々は、可能な各リードおよびハプロタイプ塩基対合について計算される。そのような事例において、行列の一方の軸上で評価されるリード配列および他方の軸上の関連付けられているハプロタイプ配列を含むセルの仮想行列30が形成され、たとえば、行列内の各セルは、リードおよびハプロタイプ参照における塩基位置を表す。したがって、リードおよびハプロタイプ配列の各々の長さが100塩基である場合、行列30は、100×100セルを含み、その所与の一部は、この特定のリードがこの特定の参照とマッチする尤度および/または程度を決定するために処理される必要があり得る。したがって、事実上形成された後、行列30は、次いで、図7および図8に示されているように、リード配列内の一方の塩基から別の塩基に移動し、それをハプロタイプ配列の塩基と比較したときに生じる様々な状態遷移を決定するために使用され得る。特に、処理エンジン13は、多数のセルが、制御論理15で行列をトラバースするときに並列および/または逐次方式で処理されるように構成される。たとえば、図7に示されているように、仮想処理スワス35が伝搬し、行列30を横断して下り、たとえば、左から右へ移動し、行列30の個別のセルを右から左に対角線上を下って処理してゆく。
より具体的には、図7を見るとわかるように、行列30内の各個別の仮想セルは、コールされた塩基の同一性の性質を評価するために計算される必要があるM、I、およびD状態値を含み、図7に示されているように、このプロセスにおける各セルに対するデータ依存関係が明確に見える。したがって、処理されている現在のセルの所与のM状態を決定するために、現在のセルの対角線上で上にあるセルのマッチ、挿入、および欠失状態は、現在のセルに押し込まれ、現在計算されているセルの状態の計算で使用される必要がある(たとえば、それにより、行列を通る対角線方向、下方、前方の進行は、マッチングを示す)。
しかしながら、I状態を決定するためには、現在のセルの真上にあるセルに対するマッチおよび挿入状態のみが処理されている現在のセル内に押し込まれる必要がある(したがって、挿入状態を続けているときの垂直下方の「ギャップ」進行)。同様に、D状態を決定するためには、現在のセルのすぐ左にあるセルに対するマッチおよび欠失状態のみが現在のセル内に押し込まれる必要がある(したがって、欠失状態を続けているときの水平横断方向の「ギャップ」進行)。図7を見るとわかるように、セル1(一番上の行内の斜線を施したセル)の計算が開始した後、セル2(第2の行内の斜線を施したセル)の処理も、セル1から結果が返るのを待つことなく開始することもできるが、それは、行2内のこのセルと処理が始まった行1のセルとの間にデータ依存関係がないからである。これは、処理が赤い矢印で示されているように下方に、そして左に進行する逆対角線35を形成する。この逆対角線35処理アプローチは、システム全体の処理効率およびスループットを高める。同様に、セル1内で生成されるデータは、即座に、前方へ押されて下のセルに送られ、前方へ押されて一番上のセル1の右に送られ、それによって、スワス35を前方へ前進させることができる。
たとえば、図7は、ハードウェア処理フローを示す例示的なHMM行列構造35を示している。行列35は、水平軸の上エッジに沿って走るように位置決めされている、たとえば、36塩基を含む、ハプロタイプ塩基インデックスを含み、セルの構造からそのような方式で垂直軸の側エッジに沿って落下するように位置決めされている塩基リードインデックス、たとえば、10塩基をさらに含み、セルの選択はM、I、およびD確率状態、および現在の状態から隣接する状態に遷移する遷移確率を初期値として書き込まれてよい。そのような事例において、上でより詳しく説明されているように、マッチ状態からマッチ状態への移動の結果、行列30を通る前方対角線進行が行われ、マッチ状態から挿入状態への移動の結果、垂直下方の進行ギャップが生じ、マッチ状態から欠失状態への移動の結果、水平進行ギャップが生じる。したがって、図8に示されているように、所与のセルについて、各セルについてマッチ、挿入、および欠失状態を決定したときに、その3つの隣接するセルのマッチ、挿入、および欠失確率が使用される。
図7の下方の矢印は、データ依存関係に従って仮想行列に沿って漸次移動する処理スワスまたは波35を作成するように構成されている処理エンジンの並列的および逐次的な性質を表すが、構造30内の各特定のセルに対するM、I、およびD状態を決定することについては図7および図8を参照されたい。したがって、いくつかの事例において、各セルの同一性を、上で説明されているように、垂直または水平軸に沿って排他的に各セルを単に計算するのではなく、下方対角線方式で各セルの同一性を計算することが望ましい場合があるが、そうしたければそれも可能である。これは、行列35の仮想セルを個別に、および逐次的に、ハードウェア構成などを介して、垂直もしくは水平軸だけに沿って処理するときに必要になるであろう待ち時間、たとえば、遅延の増大によるものである。
たとえば、そのような事例において、仮想行列を通って直線的に、および逐次的に、行毎または列毎の仕方などで移動するときに、各新しいセルを処理するために、各先行するセルの状態計算は完了していなければならず、それによって全体的に待ち時間が増大する。しかしながら、各新しいセルのM、I、D確率を下方および対角線方向に伝搬するときに、システム1は、行列の行2における隣接するセルの処理を開始する前に先行するセルの、たとえば行1の処理が完了するのを待たなくてよい。これは、対角配置構成のセルの並列および逐次処理が行われることを可能にし、さらに、M、I、およびD状態計算を有するパイプラインの様々な計算遅延を隠すことを可能にする。したがって、スワス35が行列30を左から右に移動するときに、計算処理は対角線上下方に、たとえば、左の方へ移動する(図7の矢印で示されているように)。この構成は、ハードウェアおよび/または量子回路実装に特に有用であり得、たとえば、そこではメモリおよび/またはクロック毎の待ち時間が主たる関心事である。
これらの構成において、たとえば、行列30全体を計算した後、HMMエンジン13の各コールから出力された実際の値は、M、I、およびD状態を含む下行(たとえば、図21の行35)であってよく、MおよびI状態は総和されてよく(D状態は、上記の計算を処理する際にその機能をすでに遂行しているのでこの時点で無視されてよい)、それにより、各リードおよびハプロタイプインデックスについて、たとえば、ハプロタイプがサンプリングされた真の元のDNAであったと仮定してリードを観察する確率を推定する単一の確率であり得る最終総和値を作成するものとしてよい。
特に、たとえば、図7の行列30の処理の結果は、リードがそのハプロタイプの実際の表現である確率を表現する単一値であり得る。この確率は0と1との間の値であり、HMM行列30内のセルの下行からMおよびI状態のすべてを総和することによって形成される。本質的に、評価されているものは、シークエンシングの前に何かがシークエンサ内で、または関連付けられているDNA調製方法において間違っている可能性があり、対象の遺伝子配列内に実際には存在していないリード内にミスマッチ、挿入、または欠失を不正に作成するという確率である。そのような事例において、リードは、対象の実際のDNAの真の反映ではない。
したがって、そのような作成の誤りを考慮して、所与のリードが実際にハプロタイプに関して何を表しているかが決定されるものとしてよく、それによって、システムが対象の遺伝子配列が、たとえば、一斉に、参照配列の遺伝子配列とどのように異なり得るかをよりよく決定することを可能にする。たとえば、多くのハプロタイプは、多数のリード配列に対して実行されるものとしてよく、それらのうちのすべてに対するスコアを生成し、どのマッチが最良のスコアを有するかに基づき、個体の実際のゲノム配列同一性が何であるかおよび/またはそれが参照ゲノムからどれだけ本当に異なっているかを決定する。
より具体的には、図8は、図7からのHMM状態行列30の一部の拡大図を示している。図8に示されているように、行列30内の各セルの内部構成、さらには全体として行列の構造が与えられた場合、計算される所与の「新しい」セルに対するM、I、およびD状態確率は、すでに計算されている囲む隣接要素のうちのいくつかのM、I、およびD状態に依存する。特に、図1および図16に関してより詳しく示されているように、例示的な構成において、マッチ状態から別のマッチ状態に進む確率は約0.9998であり、マッチ状態から挿入または欠失、たとえば、ギャップ、状態のいずれかに進む確率はたった0.0001(ギャップオープンペナルティ)だけであり得る。さらに、ギャップ挿入またはギャップ欠失状態のいずれかにおいてそのギャップ状態に留まる確率はたった0.1(ギャップエクステンションまたはコンティニュエーションペナルティ)だけであり得るが、マッチ状態に戻る確率は0.9である。このモデルに従って、所与の状態を出入りする確率はすべて総和すると1になるべきであることに留意されたい。特に、行列30の処理は、遷移確率を計算し、様々なギャップオープンまたはギャップコンティニュエーションペナルティを考慮することを中心として展開され、最終総和が計算される。
したがって、これらの計算された状態遷移確率は、図16に示されているように、もっぱら行列30内の直接隣接するセルから、たとえば現在計算されているその所与のセルのすぐ左、上、および対角線上左上にあるセルから導出される。それに加えて、状態遷移確率は、各リード塩基に付随する「Phred」クオリティスコアから一部は導出され得る。これらの遷移確率は、したがって、その特定のセルについて、および同様に、計算されている関連付けられた新しいセルについて、M、I、およびD状態値を計算する上で有用である。本明細書において説明されているように、ギャップオープンおよびギャップコンティニュエーションペナルティは、固定値であってよいが、様々な事例において、ギャップオープンおよびギャップコンティニュエーションペナルティは、そのような可変遷移確率計算を決定するステップ専用の追加のハードウェアリソースを用いるが、可変であり、したがって、システム内でプログラム可能であり得ることに留意されたい。そのような事例は、より高い精度が望ましい場合に有用であり得る。そうであるとしても、そのような値が一定であると仮定されたときに、リソース使用量を減らしおよび/またはチップサイズを縮小することが可能であり、それにより、以下で説明されているように処理速度を上げることができる。
したがって、各新しいM、I、およびD状態値を導出する際に伴う、乗算および/または加算などの、計算および/または他の数学的計算が多数ある。そのような事例において、最大スループットを計算するなどのために、各M、I、およびD遷移状態計算に伴うプリミティブな数学的計算がパイプライン化され得る。そのようなパイプライン化は、対応するクロック周波数が高いが、パイプラインの深さは非自明的であり得る仕方で構成されてよい。さらに、そのようなパイプラインは、有限の深さを有するように構成されてよく、そのような事例において、オペレーションを完了するのに複数クロックサイクルを要することがある。
たとえば、これらの計算は、約300MHzなど、高速でプロセッサ7内部において実行され得る。これはレジスタを多用してFPGAまたはASICをパイプライン化することなどによって達成されるものとしてよく、したがって各フリップフロップの間で行われる数学的計算はわずかである。このパイプライン構造は結果として、マッチ状態の入力から出力に進む際に複数サイクルの待ち時間を引き起こすが、逆対角計算構造が与えられた場合に、上で図7において述べられているように、これらの待ち時間は、HMM行列30全体にわたって隠されるものとしてよく、たとえば、各セルは1クロックサイクルを表す。
したがって、M、I、およびD状態計算回数は制限されてよい。そのような事例において、処理エンジン13は、行列30の多数の行内のセルのグルーピング、たとえば、スワス35が、以下の第2のスワスの処理に進む前にグループとして(図7の矢印で例示されているように下左対角線方式などで)処理されてよく、たとえば、第2のスワスは第1のものとして処理されるべき行内の同じ数のセルを含むように構成され得る。このような方式で、本明細書で説明されているような、アクセラレータ8のハードウェア実装形態は、上で説明されているように、システム全体を効率化するように適合され得る。
特に、図9では、本明細書で説明されている様々な状態処理計算を実行するための例示的な計算構造を述べている。より具体的には、図9では、HMM行列30において処理される、各特定のセル、またはセルのグルーピングに対する各M、I、およびD状態値を生成するステップに伴う状態計算を実行するための処理エンジン13の3つの専用論理ブロック17を述べている。これらの論理ブロックは、ハードウェアで実装され得るが、いくつかの事例では、1つまたは複数の量子回路によって実行されるなどのために、ソフトウェアで実装されてよい。図9を見るとわかるように、マッチ状態計算15aは、挿入15bまたは欠失15c計算のいずれかより大きく関わっており、これは処理されている現在のセルのマッチ状態15aを計算する際に、隣接するセルの前のマッチ、挿入、および欠失状態のすべてが様々な「Priors」データとともに現在のマッチ計算に含まれているが(図9および図10を参照)、マッチならびに挿入および欠失のいずれかの状態のみがそれぞれの計算に含まれるからである。したがって、図9を見るとわかるように、マッチ状態を計算する際に、Prior、たとえば、Phredデータを考慮する、3つの状態乗算器、さらには2つの加算器、および最終乗算器が含まれる。しかしながら、IまたはD状態を計算するためには、2つの乗算器および1つの加算器のみが含まれる。ハードウェアでは、乗算器は加算器よりリソース集約性が高いことに留意されたい。
したがって、様々な程度で、HMM行列30における各新しいセルを処理するためのM、I、およびD状態値では、以下の値、HMM行列内の現在計算中のセルの左、上、および/または対角線上左および上から「前の」M、I、およびD状態値などの知識または事前計算結果を使用する。それに加えて、事前情報、または「Priors」を表すそのような値は、少なくとも一部には、「Phred」クオリティスコア、ならびに行列30内の所与のセルにおけるリード塩基および参照塩基がマッチしているか、異なるかに基づくものとしてよい。そのような情報は、マッチ状態を決定するときに特に有用である。特に、図9を見るとわかるように、そのような事例において、ギャップオープンを見る、たとえば、マッチ状態から挿入状態または欠失状態への遷移を見る、ギャップクローズを見る、たとえば、挿入もしくは欠失状態からマッチ状態に戻る、および前の状態と同じ状態で続く次の状態、たとえば、マッチ-マッチ、挿入-挿入、欠失-欠失を見る確率を示し、および/または推定する「遷移確率」が基本的に7個ある(M-M、I-M、D-M、I-I、M-I、D-D、およびM-D)。
状態値(たとえば、HMM行列30内の処理されるべき任意のセル)、Priors、および遷移確率はすべて、[0,1]の範囲内の値である。それに加えて、HMM行列30の左または上エッジにあるセルに対する開始条件も知られている。図9の論理15aからわかるように、処理される所与のセルに対して決定される特定のM状態計算において計算に使用され得る乗算は4つ、加算は2つある。同様に、15bおよび15cの論理からわかるように、各I状態および各D状態の計算にそれぞれ伴う乗算が2つ、加算が1つある。まとめると、priors乗算器とともに、これは処理されるべきHMM行列8における各単一のセルに関連付けられているM、I、およびD状態計算に対して合計8回の乗算オペレーションおよび4回の加算オペレーションとなる。
たとえば1つのリードを1つまたは2つのハプロタイプと比較する単一のジョブ20に対して、行列30の計算の、最終総和出力、たとえば、図16の行34は、HMMアクセラレータ8から出力され、CPU/GPU/QPU1000に送られる最終総和値である、行列30の下行34全体にわたる最終MおよびI状態の総和である。この最終総和値は、リードがハプロタイプとどれだけよくマッチしているかを表す。値は、その後、同じ能動領域500などからの別のジョブ20bから結果として得られる出力と比較され得る単一のジョブ20aに対する、たとえば、1未満の、確率である。30Xカバレッジで「典型的な」ヒトゲノムにおいて評価するHMMセルは20兆程度あり、これらの20兆個のHMMセルはすべての関連付けられているHMMジョブ20の約10億から20億個のHMM行列30にわたって分散することに留意されたい。
次いで、そのような計算の結果は、次々に比較されて、より正確な方式で、対象の遺伝子配列が、たとえば、塩基毎の比較で、1つまたは複数の参照ゲノムの遺伝子配列とどれほど異なるかを決定するものとしてよい。最終総和計算のため、個別のセルのM、I、および/またはD状態を計算するためにすでに使用されている加算器は再デプロイされ、再デプロイされた加算器の選択への多重化を含め、それによって1つの最後の追加の行を、たとえば、計算時間に関して、行列に含め、リード長が100塩基である場合に約1%のオーバーヘッドとなる、この最終総和を計算することなどによって、最終総和値を計算し得る。代替的な実施形態において、そのような計算を実行するために専用ハードウェアリソースが使用され得る。様々な事例において、MおよびD状態計算のための加算器の論理は、最終総和を計算するためにデプロイされてよく、そのD状態加算器は、そうでなければ総和する値を生み出す最終処理で使用されることがないので効率よくデプロイされ得る。
いくつかの事例において、これらの計算および関連するプロセスは、まとめて、28分毎に30xカバレッジで新しいヒトゲノムを(平均して)出力することができるものとしてよい、シークエンサの集合体などを含む、所与のシークエンシングプラットフォームの出力に対応するように構成され得る(3日毎に約150個のゲノムのグループでシークエンサ集合体から出て来るが)。そのような事例において、現在のマッピング、アライメント、およびバリアントコーリングオペレーションが処理技術のそのようなシークエンシングプラットフォーム内に適合するように構成されたときに、シークエンシングクラスタがゲノムの配列決定を行うのに要する28分間の一部(たとえば、約10分間)が、本明細書で説明されているように、適切に構成されたマッパおよび/またはアライナによって使用され、それにより、シークエンサから画像/BCL/FASTQファイル結果を取り出し、ゲノムをマッピングし、および/アライメントするステップ、たとえば、シークエンサ後処理を実行するものとしてよい。それは、バリアントコーリングステップを実行するためにシークエンシング期間の約18分を残し、そのHMMオペレーションは、次の28分などにわたって、次のゲノムを配列決定するヌクレオチドシークエンサの前などの、主要計算コンポーネントである。したがって、そのような事例において、ゲノムの処理に従って処理される必要のある20兆個のHMMセルを計算するステップに18分が予算として割り当てられてよく、たとえば、処理されるべきHMMセルの各々は、約12回の数学的オペレーションを含む(たとえば、8回の乗算オペレーションおよび/または4回の加算オペレーション)。そのようなスループットは、次の計算力学(20兆個のHMMセル)×(1セル当たり12回の数学的オペレーション)/(18分×60秒/分)を可能にし、これは持続されるスループットの毎秒約2220億回のオペレーションである。
図10では、図9に提示されている回路の単純化を示す例示的なM、I、およびD状態更新回路を含む図9の処理エンジンの論理ブロック17を述べている。システムは、メモリ制限を受けないように構成されるものとしてよく、したがって、単一のHMMエンジンインスタンス13(たとえば、平均して1クロックサイクル当たり1セルの速度+オーバーヘッドでHMM行列30内の単一のセルのすべてを計算する)は、複数回(上で説明されているように、スループットを効率的にするため少なくとも65~70回)複製され得る。それにもかかわらず、ハードウェアのサイズ、たとえば、チップ2のサイズおよび/またはその関連付けられているリソース使用量を最小にするために、ならびに/あるいは望ましいおよび/または可能な数の、チップ2上のHMMエンジンインスタンス13をさらに含めようとして、計算される遷移確率の1つまたは複数を計算するために処理インスタンス13の論理ブロック15a'~c'に関して簡素化が行われ得る。
特に、ギャップオープンペナルティ(GOP)およびギャップコンティニュエーションペナルティ(GCP)が、上で説明されているように、挿入および欠失などに対して、同じであり、チップ構成の前に知られていると仮定され得る。この簡素化は、I-MおよびD-M遷移確率が同一であることを意味する。そのような事例において、たとえば、図9で述べられている、乗算器の1つまたは複数が、共通のインデル-M遷移確率を乗算する前にIおよびD状態を事前加算することなどによって排除され得る。たとえば、様々な事例において、IおよびD状態計算が同じであると仮定される場合、セル毎の状態計算は、図10に提示されているように簡素化され得る。特に、IおよびD状態値が同じである場合、I状態およびD状態は加算され、次いで、その総和に単一値が乗算され、それによって、乗算を節約し得る。これが行われ得るのは、図10を見るとわかるように、IおよびD状態に対するギャップコンティニュエーションおよび/またはクローズペナルティが同じであるからである。しかしながら、上に示されているように、システムは、IおよびDの両方の遷移状態確率に対する異なる値を計算するように構成されてよく、そのような事例では、この簡素化は使用されない。
それに加えて、さらなる簡素化において、HMM行列の最下行における最終総和オペレーションの実行するように特に構成されている専用チップまたは他のコンピューティングリソースではなく、現在のアクセラレータ8は、計算を実行するのに要する計算時間、たとえば、オーバーヘッドに関して、HMM行列30に1つまたは複数の追加行を効果的に付加するように構成されてよく、また、実際の最終総和計算を実行するため、必要に応じて既存の加算器に最終総和値を多重化することなどによって、M状態15aおよびD状態15cの計算論理回路から1つまたは複数の加算器を「借りる」ように構成されてもよい。そのような事例において、一緒になってHMM MIDインスタンス17の一部をなす、M論理15a、I論理15b、およびD論理15cブロックを含む、最終論理は、関わっている様々な多重化とともに7個の乗算器および4個の加算器を備え得る。
したがって、図10では、遷移確率に関係する仮定を簡素化する効果、さらには最終総和オペレーションに対する様々なM、I、および/またはDリソース、たとえば、加算器リソースを共有する効果を含む、M、I、およびD状態更新回路15a'、15b'、および15c'を述べている。図10に示されているように、M状態計算ブロック内のM状態経路に遅延ブロックも追加され得る。この遅延は、乗算および加算オペレーションの実際のハードウェア実装形態における遅延を補償し、および/または制御論理、たとえば15、を簡素化するために追加され得る。
図9および図10に示されているように、これらのそれぞれの乗算器および/または加算器は、浮動小数点乗算器および加算器であってよい。しかしながら、様々な事例において、図11を見るとわかるように、対数領域構成が実装されてよく、そのような構成では、乗算のすべてが加算に変わる。図11は、対数領域計算構成を使用したときに生じるように、すべての乗算器が加算器、たとえば、15a"、15b"、および15c"に変わった場合に対数領域計算がどのように見えるかを示している。特に、乗算器論理のすべてが加算器に変わるが、加算器それ自体は、f(a,b)=max(a,b)-log2(1+2^(-[a-b])などの関数である関数に変わるか、または他の何らかの形で含み、たとえば、式の対数部分は、深さおよび物理的サイズが必要な精度によって決定されるLUT内に維持され得る。
典型的なリードおよびハプロタイプ配列長さ、さらにはリードクオリティ(Phred)スコアに対して、および関係する遷移確率に対して典型的に見られる値が与えられた場合に、内部HMM状態値に対する動的範囲要件はきわめて厳しいことがある。たとえば、HMMモジュールをソフトウェアで実装するときに、様々なHMMジョブ20が結果として、単精度(32ビット)浮動小数点状態値で実装されたときなどに、アンダーランになり得る。これは、10の80乗を超える動的範囲を意味し、それによって、バリアントコールソフトウェアが倍精度(64ビット)浮動小数点状態値に上げられることを必要とする。しかしながら、完全な64ビット倍精度浮動小数点表現は、様々な事例において、コンパクトな高速ハードウェアが実装されるべきである場合などに、いくつかのマイナス要素を有することがあり、必要な記憶域と計算パイプラインリソースの両方が増やされる必要があり、それによって、占有するチップ空間が増え、および/または低速になる。そのような事例では、固定小数点のみの線形領域数表現が実装されてよい。それにもかかわらず、状態値に対する動的範囲要求条件は、この実施形態では、いくつかの状況に伴うビット幅を望ましい幅よりも小さくする。したがって、そのような事例では、本明細書で説明されているように、固定小数点のみの対数領域数表現が実装されてよい。
そのような方式では、図11を見るとわかるように、メモリおよび計算における実際の状態値を表す代わりに、数の-log-base-2が表現され得る。これは、対数空間内の加算オペレーションに変換される線形空間内の乗算オペレーションを使用するステップを含む、いくつかの利点を有するものとしてよく、および/または数のこの対数領域表現は本質的に整数ビットの数を少ししか増やさずにより広い動的範囲をサポートする。これらの対数領域M、I、およびD状態更新計算は、図11および図12において述べられている。
図11の論理17構成を図9の論理17構成と比較したときにわかるように、乗算オペレーションは対数領域内で消える。むしろ、これらは、加算オペレーションで置き換えられ、加算オペレーションは、たとえば、LUTを介して、補正係数加算が後に続くmaxオペレーションとして表すことができる関数に変形され、補正係数は、対数領域内で総和される2つの値の間の差の関数である。そのような補正係数は、計算されるか、またはルックアップテーブルから生成され得る。使用される補正係数計算またはルックアップテーブル実装がより効率的かどうかは、総和値の間の差に対する必要な精度(ビット幅)に依存する。特定の事例において、したがって、状態表現に対する対数領域ビットの数は、所与の実装形態に対して望まれているクオリティのレベルに応じて、8から12整数ビット+6から24小数ビットの近傍にあり得る。これは、対数領域状態値表現に対して合計14ビットと36ビットとの間のどこかを意味する。さらに、許容可能なクオリティおよび許容可能なハードウェアサイズおよび速度をもたらし得る対数領域固定小数点表現があると決定されている。
様々な事例において、1つのリード配列が典型的には各HMMジョブ20に対して処理され、これは示されているように、2つのハプロタイプ配列に対する比較を含み得る。そして、ハプロタイプメモリについて上記のように、リード配列メモリ18内でピンポン構造も使用されてよく、これにより、様々なソフトウェア実装関数に新しいHMMジョブ情報20bを、現在のジョブ20aがまだHMMエンジンインスタンス13によって処理されている間に書き込む能力を与えることを可能にする。したがって、リード配列記憶要件は、単一の1024×32の2ポートメモリに対するものであってよい(書込みに1ポート、読出しに1ポート、および/または書込みおよび読出しポートに対して別のクロック)。
特に、上で説明されているように、様々な事例において、システム1によって使用されるアーキテクチャは、配列決定されたサンプルゲノム内の所与の塩基が1つまたは複数の参照ゲノム内の対応する塩基とマッチするかどうかを決定する際に、仮想行列30が形成されるように構成され、参照ゲノムは、理論的に水平軸の左右方向に設定され、サンプルゲノムを表す配列決定されたリードは、理論的に垂直軸を下る下降方式で設定される。その結果、HMM計算を実行する際に、HMM処理エンジン13は、本明細書において説明されているように、この仮想HMM行列30をトラバースするように構成される。そのような処理は、図7のように、スワス35が仮想アレイの対角線下方に、および横切って移動し、図8に示されているように、仮想アレイの各セルに対する様々なHMM計算を実行するものとして示され得る。
より具体的には、この理論的トラバースは、行35bの次のグルーピング(たとえば、リード塩基の次のグループ)まで下に進む前に、グルーピング内のすべてのハプロタイプおよびリード塩基などについて、行列30からのセル35aの行の第1のグルーピングを丸ごと処理するステップを伴う。そのような事例において、第1のグルーピングに対するM、I、およびD状態値は、これらのM、I、およびD状態値が次いで行列30内で次のグルーピング(スワス)の上行を下に送るために使用され得るように行のその初期グルーピングの下エッジのところに記憶される。様々な事例において、システム1は、HMMアクセラレータ8内で最大1008までの長さのハプロタイプおよび/またはリードを許容するように構成されてよく、数値表現は各状態に対してWビットを使用するので、これは、M、I、およびD状態記憶域に対して1008ワード×Wビットメモリを意味する。
したがって、示されているように、そのようなメモリは、単一ポートまたは二重ポートメモリのいずれかとすることが可能である。それに加えて、たとえば、スワス境界の結果を記憶するための、クラスタレベルのスクラッチパッドメモリも実現され得る。たとえば、上記の開示によれば、すでに説明されているメモリは、エンジンインスタンス13毎に構成される。特定のHMM実装形態において、複数のエンジンインスタンス13a~(n+1)は、単一の接続、たとえば、PCIeバス5によってCentCom9を介してPCIeインターフェース4およびDMA3にサービスされるクラスタ11にグループ化され得る。多数のクラスタ11a~(n+1)は、既存のCentCom9機能を使用してPCIe帯域幅をより効率的に利用するようにインスタンス化され得る。
したがって、典型的な構成において、16および64エンジン13mの間のどこかがクラスタ11n内でインスタンス化され、1から4のクラスタは、HMM8の典型的なFPGA/ASIC実装形態においてインスタンス化され得るであろう(たとえば、それが専用HMM FPGA画像であるかどうか、またはHMMが、本明細書で開示されているように、シークエンサ/マッパ/アライナおよび/または他のモジュールとFPGAリアルエステートを共有しなければならないかどうかに応じて)。特定の事例において、HMMハードウェア内のクラスタレベル11で使用されるメモリは少量あり得る。このメモリは、弾力性のある先入れ先出し(「FIFO」)として使用されてよく、クラスタ内のHMMエンジンインスタンス13から出力データを取り込み、それをCentCom9に受け渡し、DMA3およびPCIe4を介してCPU1000のソフトウェアにさらに送り返す。理論上、このFIFOは、非常に小さくてもよく(32ビットワード2個分程度)、データは典型的にはFIFOに到達した後ほとんどすぐにCentCom9に受け渡される。しかしながら、出力データ経路内の潜在的中断を吸収するために、このFIFOのサイズは、パラメータ化可能にされてよい。特定の事例において、FIFOは、512ワードの深さのものが使用されてよい。したがって、必要なクラスタレベルの記憶域は、単一の512×32の2ポートメモリ(分離している読出しおよび書込みポート、同じクロック領域)であってよい。
図12では、ギャップオープンペナルティ(GOP)、ギャップクローズペナルティ(GCP)、および所与のリード配列が特定のハプロタイプ配列とマッチするかどうか、どれだけよくマッチするかを決定することに伴う遷移確率の間の関係を示す様々なHMM状態遷移17bを述べている。そのような解析を実行する際に、HMMエンジン13は、マッチ状態15aを決定するための論理ブロック、挿入状態15bを決定するための論理ブロック、および欠失状態15cを決定するための論理ブロックなどの、少なくとも3つの論理ブロック17bを備える。これらのM、I、およびD状態計算論理回路17は、適切に構成されていれば、HMM計算フローなどの、高帯域ボトルネックを回避するように効率的に機能する。しかしながら、M、I、およびDコア計算アーキテクチャが決定された後、他のシステムの強化も、システム内の他のボトルネックの発生を回避するように構成され実装され得る。
特に、システム1は、コンピューティングコア1000からバリアントコールモジュール2に情報を効率よく送り、および再びバリアントコールモジュール2からコンピューティングコア1000に情報を効率よくフィードバックするプロセスを最大化し、スループット全体を制限することになる他のボトルネックを作成しないように構成されてよい。HMMコアのM、I、およびD状態計算論理17を送る1つのそのようなブロックは、遷移確率およびpriors計算ブロックである。たとえば、図9を見るとわかるように、各クロックサイクルは、7つの遷移確率と1つのPriorの表現をM、I、D状態計算ブロック15aへの入力で使用する。しかしながら、結果として図10のアーキテクチャをもたらす簡素化の後、4つの固有の遷移確率および1つのPriorのみが、M、I、D状態計算ブロックの入力で各クロックサイクルについて使用される。したがって、様々な事例において、これらの計算は簡素化され、結果として得られる値が生成され得る。したがって、スループット、効率を高め、プロセスのこの段階においてボトルネックが形成する確率を低減する。
それに加えて、上で説明されているように、Priorsは、調査されている特定の塩基のリードクオリティ、たとえば、Phredスコアを介して、またその塩基が仮想HMM行列30において評価されている現在のセルに対する仮説ハプロタイプ塩基とマッチするかどうかに基づき、生成された値である。この関係は、式を介して次のように記述され得る。最初に、注目しているリードPhredは確率=10^(-(リードPhred/10))として表され得る。次いで、Priorは、リード塩基が仮説ハプロタイプ塩基とマッチするかどうかに基づき計算され得る。リード塩基および仮説ハプロタイプ塩基がマッチする場合に、Prior=1-リードPhredが確率として表される。そうでなければ、Prior=(確率として表されるリードPhred)/3である。この最後の式における3で除算するオペレーションは、4つの可能な塩基(A、C、G、T)しかないという事実を反映している。したがって、リードおよびハプロタイプ塩基がマッチしなかった場合、これはマッチする3つの残っている可能な塩基のうちの1つでなければならず、3つの可能性のうちの各々は、等しく起こり得るものとしてモデル化される。
リード毎塩基Phredスコアは、HMMハードウェアアクセラレータ8に6ビット値として送られる。次いで、Priorsを導出する式は、「マッチする」場合に対する64個の可能な結果および「マッチしない」場合に対する追加の64個の可能な結果を有する。これは、128ワードのルックアップテーブルとしてハードウェアで効率的に実装されるものとしてよく、ルックアップテーブルへのアドレスは、リード塩基が仮説ハプロタイプ塩基とマッチするかどうかを示す単一ビットとPhred値とを連結することによって形成される7ビット量である。
さらに、マッチ-挿入および/またはマッチ-欠失の確率を決定することに関して、HMMハードウェアアクセラレータ8に対するアーキテクチャの様々な実装形態において、別個のギャップオープンペナルティ(GOP)が、上で示されているように、マッチ-挿入状態遷移、およびマッチ-欠失状態遷移について指定され得る。これは、異なっている図12の状態遷移図におけるM2IおよびM2D値に等しい。GOP値がHMMハードウェアアクセラレータ8に6ビットのPhred類似の値として送られると、ギャップオープン遷移確率は、次の式に従って計算され得る。M2I遷移確率=10^(-(リードGOP(I)/10))およびM2D遷移確率=10^(-(リードGOP(D)/10))である。ハードウェアでPriorsを導出するのと同様に、単純な64ワードルックアップテーブルが、M2IおよびM2D値を導出するために使用され得る。GOP(I)およびGOP(D)がHMMハードウェア8に潜在的に異なる値として入力される場合、2つのそのようなルックアップテーブル(または回路の残り部分の周波数の2倍のクロックで潜在的に動作する、1つのリソース共有ルックアップテーブル)が利用されてよい。
さらに、マッチ-マッチ遷移確率を決定することに関して、様々な事例において、マッチ-マッチ遷移確率は、次のように計算され得る。M2M遷移確率=1-(M2I遷移確率+M2D遷移確率)。M2IおよびM2D遷移確率が、1/2の値以下となるように構成され得る場合、様々な実施形態において、上記の式は、式をM2M遷移確率=(0.5-M2I遷移確率)+(0.5-M2D遷移確率)となるように書き換えることなどによって、全体的な効率およびスループットを高める仕方でハードウェアにより実装され得る。この式の書き換えで、2つの64要素ルックアップテーブルを使用し、その後加算器を使用することでM2Mを導出することができ、ルックアップテーブルはそれらの結果を記憶する。
さらになおも、挿入-挿入および/または欠失-欠失遷移確率を決定することに関して、I2IおよびD2D遷移確率は、HMMハードウェアアクセラレータ8に入力されたギャップコンティニュエーション確率(GCP)値の関数である。様々な事例において、これらのGCP値は、リード毎塩基に基づき与えられる6ビットのPhred類似の値であるものとしてよい。次いで、I2IおよびD2D値は、次に示されているように導出され得る。I2I遷移確率=10^(-(リードGCP(I)/10))およびD2D遷移確率=10^(-(リードGCP(D)/10))。上で説明されている他の遷移確率のうちのいくつかと同様に、I2IおよびD2D値は、ハードウェアで効率的に実装されるものとしてよく、前に説明したマッチ-インデルルックアップテーブルと同じ形式および内容を有するような、2つのルックアップテーブル(または1つのリソース共有ルックアップテーブル)を含み得る。すなわち、各ルックアップテーブルは、64ワードを有するものとしてよい。
それに加えて、挿入および/または欠失-マッチ確率を決定することに関して、I2MおよびD2M遷移確率は、ギャップコンティニュエーション確率(GCP)値の関数であり、I2M遷移確率=1-I2I遷移確率、およびD2M遷移確率=1-D2D遷移確率として計算されてよく、I2IおよびD2D遷移確率は、上で説明されているように導出され得る。上記の式を実装する単純な減算オペレーションは、単純に別の64ワードルックアップテーブルを実装し、それの2つのコピーを使用してI2MおよびD2M導出を実装することに比べてハードウェアリソースでは費用がかかり得る。そのような事例において、各ルックアップテーブルは、64ワードを有するものとしてよい。もちろん、すべての関連する実施形態において、単純なまたは複雑な減算オペレーションが適切に構成されたハードウェアにより形成され得る。
図13は、図12の一般状態遷移図をサポートする、上で説明されているような、HMM遷移確率およびPriorsに対する簡素化された計算のための回路17aを提示している。図13を見るとわかるように、様々な事例において、単純なHMMハードウェアアクセラレータアーキテクチャ17aが提示されており、このアクセラレータは、挿入および欠失遷移に対する別々のGOP値を含むように構成されてよく、および/または挿入および欠失遷移に対する別々のGCP値があり得る。そのような事例において、7つの固有の遷移確率および1つのPriorをクロックサイクル毎に生成するコストは、以下に述べるように、8個の64ワードルックアップテーブル、1個の128ワードルックアップテーブル、および1個の加算器として構成されてよい。
さらに、様々な事例において、ハードウェア2は、本明細書で提示されているように、所与のチップターゲット(FPGA、sASIC、またはASICなどの上の)上に可能な限り多くのHMMエンジンインスタンス13と適合するように構成され得る。そのような事例において、遷移確率およびpriors生成論理17aを実装するコストは、以下の構成によって実現される通りコストに関して実質的に低減され得る。最初に、図13に述べられているように、たとえば、GOP(I)およびGOP(D)に対する別々の値があり得る場合に、状態遷移のより一般的なバージョンをサポートする代わりに、むしろ、様々な事例において、挿入および欠失遷移に対するGOP値が所与の塩基について同じであると仮定され得る。この結果、上で示されているように、ハードウェアに対するいくつかの簡素化が行われる。
そのような事例において、1つの64ワードルックアップテーブルのみが、単一のM2Indel値を生成するために使用されてよく、M2IおよびM2Dの両方の遷移確率値を置き換えるが、2つのテーブルは、典型的には、より一般的な場合において使用される。同様に、1つの64ワードルックアップテーブルのみが、M2M遷移確率値を生成するために使用されてよいが、2つのテーブルおよび加算は、典型的には、一般的な場合において使用されるものとしてよく、M2Mはそこで1-2xM2Indelとして計算され得る。
第2に、挿入および欠失の両方に対するシークエンサ依存GCP値がこの値がHMMジョブ20の進行過程にわたって変化しない同じANDであるという仮定が行われ得る。これは、2つのテーブルの代わりに1つの64ワードルックアップテーブルを使用して、単一のIndel2Indel遷移確率が別個のI2IおよびD2D値の代わりに計算されてよく、2つのテーブルの代わりに1つの64ワードルックアップテーブルを使用して、単一のIndel2Match遷移確率が別個のI2MおよびD2M値の代わりに計算されてよいということを意味する。
それに加えて、Insert2InsertおよびDelete2Delete(I2IおよびD2D)ならびにInsert2MatchおよびDelete2Match(I2MおよびD2M)値が、挿入遷移と欠失遷移との間で同一であるのみならず、特定のHMMジョブ20に対しても静的であり得ることを仮定するさらなる簡素化する仮定が行われ得る。したがって、I2I、D2D、I2M、およびD2M遷移確率とより一般的なアーキテクチャにおいて関連付けられている4つのルックアップテーブルが完全に排除され得る。これらの様々な事例において、静的なIndel2IndelおよびIndel2Match確率は、ソフトウェアを介して、またはRTLパラメータを介して入力されるように形成される可能性がある(したがってFPGAにおいてプログラム可能なビットストリームとなる)。いくつかの事例において、これらの値は、ビットストリームプログラム可能にされ、いくつかの事例において、訓練配列を使用して訓練モードが実装されてよく、それにより、所与のシークエンサ実行またはゲノム解析に対する遷移確率精度をさらに精緻化するものとしてよい。
図14では、これらの様々な簡素化の仮定を実装するときに新しい状態遷移17b図がどのように見え得るかを述べている。特に、図14では、上で述べた簡素を伴うGOP、GCP、および遷移確率の間の関係を示す簡素化されたHMM状態遷移図を述べている。
同様に、図15では、図14の簡素化された状態遷移図をサポートする、HMM遷移確率およびpriors生成に対する回路17a、bを述べている。図15を見るとわかるように、その状態遷移図の回路実現が提示されている。したがって、様々な事例において、HMMハードウェアアクセラレータ8について、クロックサイクル毎に遷移確率および1つのPriorを生成するコストは、2つの64ワードルックアップテーブルおよび1つの128ワードルックアップテーブルにまで下がる。
上で述べたように、エンジン制御論理15は、たとえば、高水準エンジン状態機械を介して、仮想行列を生成し、および/または行列をトラバースして、スワスのエッジに到達するように構成され、結果データは、最終的に、たとえば、最終総和制御論理19を介して総和され、たとえば、put/get論理を介して記憶され得る。
したがって、図16を見るとわかるように、様々な実施形態において、HMMセル行列30を作成し、および/またはトラバースするための方法が実現される。特に、図16では、HMMアクセラレータ制御論理15がHMM行列内の仮想セルをどのようにトラバースするかの例を述べている。たとえば、例示的な目的のために、各乗算および各加算オペレーションに対して5クロックサイクルの待ち時間を仮定すると、M、I、D状態更新計算における最悪の場合の待ち時間は、20クロックサイクルであり、M更新計算を通して伝搬するのにそれだけのクロックサイクルを要する。IおよびD状態更新計算ではオペレーションは半分になる、すなわち、それらのオペレーションに対して10クロックサイクルの待ち時間を意味する。
M、I、およびD計算オペレーションのこれらの待ち時間の意味は、セル間データ依存関係の様々な例を述べている、図16に関して理解できる。そのような事例において、所与のセルのMおよびD状態情報はすぐ右隣のHMM行列内のセルのD状態計算を送る(たとえば、所与のセルと同じリード塩基を有するが、次のハプロタイプ塩基を有する)。同様に、所与のセルに対するMおよびI状態情報はすぐ下のHMM行列内のセルのI状態計算を送る(たとえば、所与のセルと同じハプロタイプ塩基を有するが、次のリード塩基を有する)。したがって、特定の事例において、所与のセルのM、I、およびD状態は、HMMセル行列の次の対角線におけるセルのDおよびI状態計算を送る。
同様に、所与のセルのM、I、およびD状態は、右に1つ、下に1つであるセルのM状態計算を送る(たとえば、次のハプロタイプ塩基と次のリード塩基の両方を有する)。このセルは、実際にはそれを送るセルから対角線2つ分だけ離れている(ただし、IおよびD状態計算は対角線1つ分だけ離れているセルからの状態に依存する)。M状態計算が対角線2つ分だけ離れているセルに依存するが、対角線1つ分離れているセルに依存するIおよびD状態計算のこのクオリティは、ハードウェア設計に有利な結果を有する。
特に、これらの構成が与えられた場合、IおよびD状態計算は、M状態計算(たとえば、20サイクル)の長さの半分(たとえば、10サイクル)を取るように適合され得る。したがって、M状態計算が同じセルに対するIおよびD状態計算よりも10サイクル前に開始した場合に、HMM行列30内のセルに対するM、I、およびD状態計算はすべて、同時に完了する。それに加えて、行列30が、各々その中に約10個のセルのスワス35を有するなどの、対角線方式でトラバースされる場合(たとえば、10個のリード塩基にまたがる)、(hap,rd)座標(i,j)で所与のセルによって作成されるMおよびD状態は、それらが(i,j)においてセルの計算パイプライン内を端から端まで通ると直ちにセル(i+1,j)D状態計算によって使用され得る。
(hap,rd)座標(i,j)で所与のセルによって作成されるMおよびI状態は、それらが(i,j)においてセルの計算パイプライン内を端から端まで通ってから1クロックサイクル後にセル(i,j+1)I状態計算によって使用され得る。同様に、(hap,rd)座標(i,j)で所与のセルによって作成されるM、I、およびD状態は、それらが(i,j)においてセルの計算パイプライン内を端から端まで通ってから1クロックサイクル後にセル(i+1,j+1)M状態計算によって使用され得る。これらを合わせると、上記の論点から、たとえば、10個のリードの、スワス長にまたがるスワス経路の対角線に沿ってM、I、およびD状態に必要な専用記憶域はほんのわずかであることが確定する。そのような事例において、1クロックサイクルでセル(i+1,j+1)M計算およびセル(i,j+1)I計算で使用するためにセル(i,j)M、I、およびD状態値を1クロックサイクル遅延させるのにレジスタだけが必要である。さらに、その同じセルに対するIおよびD状態計算の10クロックサイクル前に所与のセルに対するM状態計算が開始されるときにここでは好循環がある程度あり、自然に、所与のセルに対する新しいM、I、およびD状態を同時に出力する。
上記に照らして、図16を見るとわかるように、HMMアクセラレータ制御論理15は、行列をトラバースする仕方で仮想行列30のセルの各々の中でデータを処理するように構成され得る。特に、様々な実施形態において、オペレーションはセル(0,0)から開始し、M状態計算はIおよびD状態計算が開始する10クロックサイクル前に開始する。トラバースする次のセルは、セル(1,0)であるべきである。しかしながら、IおよびD計算が開始してからセル(0,0)からの結果が利用可能になるまでの間に10サイクルの待ち時間がある。したがって、ハードウェアは、9個の「デッド」サイクルを計算パイプライン内に挿入する。これらは、図16においてゼロより小さいハプロタイプインデックスを有するセルとして示されている。
(-9,-9)の行列内の有効セル位置を有するデッドサイクルを完了した後に、セル(0,0)に対するM、I、およびD状態値が利用可能である。そこで、これら(たとえば、セル(0,0)のMおよびD状態出力)は、セル(0,1)のD状態計算を開始するためにすぐに使用され得る。1クロックサイクル後に、セル(0,0)からのM、I、およびD状態値は、セル(0,1)のI状態計算およびセル(1,1)のM状態計算を開始するために使用され得る。
トラバースされるべき次のセルは、セル(2,0)であってよい。しかしながら、IおよびD計算が開始してからセル(1,0)からの結果が利用可能になるまでの間に10サイクルの待ち時間がある。したがって、ハードウェアは、8個のデッドサイクルを計算パイプライン内に挿入する。これらは、セル(1,0)および(0,1)と同じ対角線に沿って、図16のように、ゼロより小さいハプロタイプインデックスを有するセルとして示されている。(-8,-9)の行列内の有効セル位置を有するデッドサイクルを完了した後に、セル(1,0)に対するM、I、およびD状態値が利用可能である。そこで、これら(たとえば、セル(1,0)のMおよびD状態出力)は、セル(2,0)のD状態計算を開始するためにすぐに使用される。
1クロックサイクル後に、セル(1,0)からのM、I、およびD状態値は、セル(1,1)のI状態計算およびセル(2,1)のM状態計算を開始するために使用され得る。次いで、セル(0,1)からのMおよびD状態値は、セル(1,1)のD状態計算を開始するために同時に使用され得る。1クロックサイクル後に、セル(0,1)からのM、I、およびD状態値は、セル(0,2)のI状態計算およびセル(1,2)のM状態計算を開始するために使用される。
そこで、トラバースする次のセルは、セル(3,0)であってよい。しかしながら、IおよびD計算が開始してからセル(2,0)からの結果が利用可能になるまでの間に10サイクルの待ち時間がある。したがって、ハードウェアは、7個のデッドサイクルを計算パイプライン内に挿入する。これらは、セル(2,0)、(1,1)、および(0,2)と同じ対角線に沿って、図16のように、ゼロより小さいハプロタイプインデックスを有するセルとして再び示される。(-7,-9)の行列内の有効セル位置を有するデッドサイクルを完了した後に、セル(2,0)に対するM、I、およびD状態値が利用可能である。そこで、これら(たとえば、セル(2,0)のMおよびD状態出力)は、セル(3,0)のD状態計算を開始するためにすぐに使用される。そして、したがって、対角線内の別の10個のセルに対する計算が開始する。
そのような処理は、この例(35のリード長および14のハプロタイプ長を有する)では、(13,0)の(hap,rd)座標におけるセルで始まる対角線が完了した後に生じる、スワス35aにおける最後の完全な対角線の終わりまで続くものとしてよい。図16におけるセル(4,9)がトラバースされた後に、トラバースする次のセルはセル(13,1)であるべきである。しかしながら、IおよびD計算が開始してからセル(12,1)からの結果が利用可能になるまでの間に10サイクルの待ち時間がある。
したがって、ハードウェアは、座標(0,10)などにおける、次のスワス35b内の第1のセルに関連付けられているオペレーションを開始するように構成され得る。セル(0,10)の処理に続いて、セル(13,1)がトラバースされ得る。次いで、セル(13,1)から始まるセルの対角線全体が、セル(5,9)に到達するまでトラバースされる。同様に、セル(5,9)がトラバースされた後に、トラバースする次のセルはセル(13,2)であるべきである。しかしながら、前のように、IおよびD計算が開始してからセル(12,2)からの結果が利用可能になるまでの間に10サイクルの待ち時間があり得る。したがって、ハードウェアは、セル(0,11)が後に続く、座標(1,10)などにおける、次のスワス35bの第2の対角線内の第1のセルに関連付けられているオペレーションを開始するように構成され得る。
セル(0,11)の処理に続いて、上で開示されている方法に従って、セル(13,2)がトラバースされ得る。次いで、セル(13,2)から始まるセルの対角線35全体が、セル(6,9)に到達するまでトラバースされる。それに加えて、セル(6,9)がトラバースされた後に、トラバースされる次のセルはセル(13,3)であるべきである。しかしながら、ここでもまた、IおよびD計算が開始してからセル(12,3)からの結果が利用可能になるまでの間に10サイクルの待ち期間があり得る。したがって、ハードウェアは、座標(2,10)などにおける、次のスワス35cの第3の対角線内の第1のセルに関連付けられているオペレーションを開始するように構成されるものとしてよく、この後、セル(1,11)および(0,12)が続き、同様にその後も続く。
これは、示されているように、第1のスワス35a内の最後のセル((hap,rd)座標(13,9)にあるセル)が、トラバースされるまで上記に従って継続し、トラバースされたときに、論理は(9,10)におけるセルから開始する、第2のスワス35b内の対角線をトラバースすること専用に完全に割り当てられ得る。上で概要を述べたパターンは、10個のリードからなるスワスの必要な数だけ、一番下のスワス35c(インデックス30またはそれ以上を有するリード塩基に関連付けられているこの例におけるセル)に到達するまで繰り返す。
一番下のスワス35では、図16に示されているように、35より大きいリードインデックスおよび13より大きいハプロタイプインデックスを有するセルとしてより多くのデッドセルが挿入され得る。それに加えて、最終スワス35cにおいて、セルの追加の行は、効果的に追加され得る。これらのセルは、図16に直線35のところに示され、最終総和オペレーションが行われている最終スワスの各対角線における専用クロックサイクルに関係する。これらのサイクルにおいて、真上のセルのMおよびI状態は足し合わされ、その結果はそれ自体実行している最終総和(HMM行列30の左エッジのところで0に初期化される)と総和される。
上記の説明をコンテキストとしてみなし、図16を考慮すると、35のリード長および14のハプロタイプ長のこの例について、102個のデッドサイクル、最終総和オペレーションに関連付けられている14個のサイクル、およびパイプライン待ち時間の20サイクルが、オーバーヘッドの合計102+14+20=146サイクルに対してあることを確認することが可能である。また、リード長が10より大きいHMMジョブ20について、図16の左上隅のデッドサイクルは、リード長と無関係であることもわかるであろう。また、図16の下および右下部分におけるデッドサイクルは、リード長に依存し、最少デッドサイクルはmod(リード長,10)=9を有するリードに対するものであり、大半のデッドサイクルはmod(リード長,10)=0に対するものであることもわかるであろう。さらに、ハプロタイプ長が増大するか(より大きい行列、部分的に固定された数のオーバーヘッドサイクル)またはリード長が増大すると(注記:これは、リード長-行カウント-が増大すると減少する行列内の最終総和行に関連付けられているオーバーヘッドのパーセンテージを指す)オーバーヘッドサイクルはHMM行列30評価サイクルの全パーセンテージとしてより小さくなることがわかる。代表的なヒト全ゲノムのランからのそのようなヒストグラムデータを使用することで、上で説明されている方式でHMM行列をトラバースした結果、全ゲノム処理に対するオーバーヘッドは10%未満になると決定されている。
加算器をMおよびD状態計算論理と共有する代わりに最終総和オペレーションに対する専用論理を用意することを含む、さらなる方法が、オーバーヘッドサイクルの量を減らすために使用され得る。これは、HMM行列30の1つの行を排除する。デッドサイクルを使用してキューに入っている次のHMMジョブに対するHMM行列オペレーションを開始する。
HMM行列30の10個の行の各グルーピングは、HMMアクセラレータ機能における「スワス」35を構成する。スワスの長さは、システムの効率および/またはスループットの要求条件を満たすように加減されてよいことに留意されたい。したがって、スワス長は、長さとしてセルの、約10行から約45行まで、たとえば、約25行から約30行を含む、約15または約20行から約40行または約35行までなどの、約5行以下から約50行以上であってよい。
図16の行列の右エッジのところで他の方法ではデッドサイクルとなる獲得サイクルに関係する例外が上の節に記載されているが、HMM行列は一度に1つのスワスで処理され得る。図16を見るとわかるように、各スワス35aの下行内のセルの状態は、次のスワス35bの上行において状態計算論理を送る。その結果、各スワスの下行、またはエッジにあるセルに対する状態情報を記憶(put)し、取り出す(get)必要があり得る。
これを行うための論理は、次のうちの1つまたは複数を含み得る。HMM行列30におけるセルに対するM、I、およびD状態計算がmod(リードインデックス,10)=9を有するセルについて完了したときに、結果をM、I、D状態記憶メモリに保存する。HMM行列30におけるセルに対するMおよびI状態計算(たとえば、D状態計算が行列内でそれらの上のセルからの情報を必要としない場合)がmod(リードインデックス,10)=0を有するセルについて開始したときに、すでに保存されているM、I、およびD状態情報をM、I、D状態記憶メモリ内の適切な場所から取り出す。これらの事例において、HMM行列30における行0(最上行)MおよびI状態計算を送るM、I、およびD状態値は、単なる予め決定されている定数値であり、列0(左列)D状態計算を送るMおよびD状態値について真であるので、メモリから取り戻す必要はないことに留意されたい。
上で述べたように、HMMアクセラレータは、それが単に最終総和オペレーションの目的のために存在しているようなHMMハードウェアアクセラレータにおける専用の総和リソースを含む場合も含まない場合もある。しかしながら、特定の事例において、本明細書において説明されているように、追加の行は、HMM行列30の最下段に追加されるものとしてよく、この余分な行に関連付けられているクロックサイクルは、最終総和オペレーションに使用され得る。たとえば、総和それ自体は、M状態計算論理から加算器を(たとえば、図13により)借りて、M+Iオペレーションを行い、さらに、D状態計算論理から加算器を借りて、新規に形成されたM+I総和を移動最終総和累積値に加算することによって達成され得る。そのような事例において、最終総和オペレーションをアクティブ化するための制御論理は、HMMトラバースオペレーションをガイドするリードインデックスがジョブに対する入力されたリード配列の長さに等しいときに必ずキックインし得る。これらのオペレーションは、図16のサンプルHMM行列30の下の方へ向かう直線34のところに示されている。
したがって、上記のことからわかるように、一実装形態において、バリアントコーラーは、マッパおよび/またはアライナエンジンを使用して、所与の配置、たとえば、染色体配置などに関して、様々なリードがどこに由来したのかに関する尤度を決定するものとしてよい。そのような事例において、バリアントコーラーは、たとえばそれに直に隣接しない他の領域と無関係に、その配置のところで基礎となる配列を検出するように構成され得る。これは、注目する領域が単一のリード(またはペアエンドシークエンシングに対するリードのペア)のスパンにまたがるゲノムの他の領域に似ていないときに特に有用であり、よく働く。しかしながら、ヒトゲノムの有意な部分は、この基準を満たさず、これはバリアントコーリング、たとえば、NGSが作成するリードから対象のゲノムを再構成するプロセスを困難なものにし得る。
特に、DNAシークエンシングは劇的に改善しているが、バリアントコーリングは依然として難しい問題であるが、それはもっぱらゲノムの冗長構造によるものである。しかしながら、本明細書において開示されているように、ゲノムの冗長性によってもたらされる複雑さは、少なくとも一部には、短リードデータによってもたらされる観点から克服され得る。より具体的には、本明細書で開示されているのと同じものを使用するデバイス、システム、および方法は、そうでなければ低バリアントコーリング精度によって特徴付けられていた可能性のある相同もしくは類似領域に注目するような仕方で構成され得る。いくつかの事例において、そのような低いバリアントコーリング精度は、典型的には非常に低いリードMAPQを結果として引き起こし得る相同領域に関するリードマッピングおよびアライメントにおいて観察される困難に由来し得る。したがって、本明細書に提示されているのは、これらの相同領域に存在する情報を一緒に考慮することなどによって、相同領域におけるバリアント(SNP、インデル、および同様のもの)を正確にコールする戦略的実装形態である。
たとえば、ゲノムの多くの領域は、相同性を有し、たとえば、それらはゲノム内の他の場所、たとえば、多数の配置に配置されているほぼ同一のコピーを有し、結果として、リードの真のソース配置はかなりの不確定性に左右され得る。特に、リードのグループが、たとえば、見かけ上相同であることにより低い信頼度でマッピングされる場合、典型的なバリアントコーラーはリードを、それらが有用な情報を含み得るとしても無視し、処理し得ない。他の事例において、リードがミスマッピングされた場合(たとえば、主アライメントがリードの真のソースでない)、検出誤りが結果として生じ得る。より具体的には、以前に実装された短リードシークエンシング技術は、これらの問題の影響を受けやすく、従来の検出方法は、多くの場合に、ゲノムの大きな領域を不明なまま残す。
いくつかの事例において、長リードシークエンシングは、これらの問題を軽減するために使用されてよいが、典型的には、かなり高いコストおよび/またはより高い誤り率を有し、長い時間を要し、および/または他の欠点を有する。したがって、様々な事例において、本明細書で説明されているような多領域結合検出オペレーションを実行することが有利であり得る。たとえば、各領域を別々に考慮する代わりに、および/または長リードシークエンシングを実行し解析する代わりに、多領域結合検出(MRJD)方法が使用されるものとしてよく、たとえば、MRJDプロトコルでは、リードのグループの発生元であるとしてよい、多数の、たとえば、すべての、配置を考慮し、低い、または異常な信頼度および/または確実性スコアにもかかわらず、すべての利用可能な情報を使用して、基礎となる配列を一緒に、たとえば結合して、検出することを試みる。
たとえば、統計的に均一なカバレッジを有する二倍体生物に対して、上で説明されているように、総当たりのベイズ計算がバリアントコール解析において実行され得る。しかしながら、総当たりのMLRD計算では、計算の複雑度は、領域の数N、および考慮されるべき候補ハプロタイプの数Kとともに急激に増大する。特に、候補ハプロタイプのすべての組合せを考慮するために、確率を計算する候補解の数は、しばしば、指数関数的に増大し得る。たとえば、以下でより詳しく説明されているように、総当たりの実装では、候補ハプロタイプの数は、能動的位置の数を含み、本明細書で開示されているようなDe Bruijnグラフの構築などでバリアントコールオペレーションにおける候補ハプロタイプのリストを生成するためにグラフアセンブリ技術が使用される場合に、能動的位置の数は、グラフ内の独立した「バブル」の数である。したがって、総当たりの計算は、実装するのにコストがひどく高くつく可能性があり、したがって総当たりのベイズ計算はひどく複雑な計算となり得る。
したがって、一態様において、図17Aで述べられているように、そのような総当たりの計算の複雑度を下げる方法が本明細書において実現される。たとえば、上で開示されているように、DNA/RNAシークエンシングの速度および精度は、特に本明細書で開示されている方法に関して、劇的に改善しているが、バリアントコーリング、たとえば、シークエンサが作成するリードから対象のゲノムを再構成するプロセスは、もっぱらゲノムの冗長構造により困難な問題のままである。したがって、本明細書で開示されているデバイス、システム、および方法は、長リードシークエンシングと対照的に短リードデータによってもたらされる観点からゲノムの冗長性によって引き起こされる複雑度を低減するように構成される。特に、本明細書では、通常は必ずしも長リードシークエンシングを実行しなくても低いバリアントコーリング精度によって特徴付けられるゲノムの相同および/または類似の領域を考慮する非常に長いリードの検出を実行するための方法が実現される。
たとえば、一実施形態において、多領域結合検出を実行するためのシステムおよび方法が実現される。特に、第1の事例において、一般バリアントコーリングオペレーションは、本明細書で開示されている方法を使用することなどで実行されてよい。特に、一般バリアントコーラーは、参照ゲノム配列を使用するものとしてよく、その参照ゲノムはモデルゲノム内のすべての塩基を提示する。この参照は、対象のゲノムが参照ゲノムとそれによって比較される解析のバックボーンを形成する。たとえば、上で説明されているように、Next Genシークエンサを使用することで、対象のゲノムは、部分配列、たとえば、リードに、典型的には各々約100~1000塩基に分けられるものとしてよく、それらのリードは、ジグソーパズルを1つに組み立てるのと全く同様にして参照にマッピングされ、アライメントされ得る。
対象のゲノムがマッピングされ、および/またはアライメントされた後、対象の実際のゲノムと比較してこの参照ゲノムを使用し、対象のゲノムが、たとえば、塩基毎に、参照ゲノムとどの程度、およびどのように異なるかが決定され得る。特に、対象のゲノムを、塩基毎などで、1つまたは複数の参照ゲノムと比較する際に、解析は、配列に沿って繰り返し移動し、一方と他方とを比較してそれらが一致しているか、不一致であるかを決定する。したがって、配列内の各塩基は、図18Aにおける位置Aによって表されるような、コールされるべき位置を表す。
特に、対象のゲノムに関してコールされるべき参照のすべての位置Aについて、配列、たとえばリード、のパイルアップは、リードの大きなサンプルセットがすべて所与の位置Aにおいて互いに重なり合うような仕方でマッピングされ、アライメントされる。特に、このオーバーサンプリングは、たとえば、1から100またはそれ以上の数のリードを含むものとしてよく、パイルアップ内のリードの各々は、コールされている領域と重なり合うヌクレオチドを有する。したがって、塩基から塩基へのこれらのリードのコールは、コールを行う配列に沿ってスライドする処理ウィンドウの形成を伴い、ウィンドウの長さ、たとえば、所与の時刻における調査対象の塩基の数は、決定の能動領域を形成する。したがって、ウィンドウは、コールされているサンプル内の塩基の能動領域を表し、コールするステップは、能動領域内のパイルアップのリードのすべての所与の位置、たとえば、Aにおける各塩基を比較するステップを伴い、リードのその数のパイルアップにおけるその位置の塩基の同一性は、コールされているその位置における塩基の真の同一性に対する証拠をもたらす。
この目的のために、各リードセグメントに対して導出された関連するMAPQ信頼度スコアに基づき、特定の信頼度スコアの範囲内で、マッピングおよびアライメントが正確に実行されたことが一般的に決定され得る。しかしながら、リードの1つまたは複数が実際にどこか別の場所に属している場合の、リードのマッピングおよびアライメントが正確であるかどうかに関する問題はどんなにわずかであろうとまだ残っている。したがって、一態様において、本明細書で実現されるのは、バリアントコーリングを実行する際の信頼度を改善するためのデバイスおよび方法である。
特に、様々な事例において、バリアントコーラーは、達成可能な結果においてより高い信頼度を与えるために使用され得る、本明細書で説明されているような、1つまたは複数の多領域結合検出オペレーションを実行するように構成され得る。たとえば、そのような事例において、バリアントコーラーは、類似しているように見える特定の領域を決定するためにゲノム内の様々な領域を解析するように構成され得る。たとえば、図18Aを見るとわかるように、参照領域Aおよび参照領域Bがあるものとしてよく、参照されている配列は互いに非常によく似ているが、たとえば、異なる塩基対マッチングの少数の領域があり、たとえば、例示的なRef Aは「A」を有し、例示的なRef Bは「T」を有するが、これらの少数の異なる点の外では、注目している領域内の他のすべての場所がマッチするように見え得る。類似度の程度により、これら2つの領域、たとえば、Ref AおよびRef Bは、典型的には、相同、またはパラロガス、領域と考えられる。
図示されているように、2つの参照領域AおよびBは、99%類似している。比較的類似している、たとえば、約93%類似している他の領域、たとえば、Ref CおよびDがあり得るが、参照領域Aと参照領域Bとの間の99%類似度と比較すると、参照領域CおよびDは、相同とは考えられないか、または少なくとも、実際に相同である確率は低いであろう。そのような事例において、バリアントコーリング手順は、参照領域Cと参照領域Dとの間の差異を適切にコールアウトすることができるものとしてよいが、いくつかの事例において、たとえば、高い相同性があるので、参照領域AおよびBの相同性が高い領域の間の差異をコールアウトすることは困難である場合がある。特に、参照配列AおよびBと参照配列CおよびDとの間の非類似度の程度により、Ref Seq AまたはBのいずれかにマッピングし、アライメントするリードがRef Seq CまたはDに誤ってマッピングされると予想されることはない。しかしながら、Ref Seq Aにマッピングし、アライメントするリードはRef Seq Bにミスマッピングされ得ると予想されることもあり得る。
相同性の程度が与えられた場合、領域AとBとの間のミスマッピングはきわめて起こる可能性が高い。したがって、精度を高めるために、システムが、たとえば、マッピング、アライメント、および/またはバリアントコーリング手順を実行するときに、相同領域の間の差異を区別し、および/または考慮することができることが望ましいものとしてよい。特に、Ref A内の領域にマッピングし、アライメントするリードのパイルアップを生成し、Ref B内の領域にマッピングし、アライメントするリードのパイルアップを生成するときに、リードはどれも、実際に、間違った場所にミスマッピングされることがあり、したがって、よりよい精度をもたらすために、本明細書で開示されているバリアントコーリングオペレーションを実行するときに、これらの相同領域、およびそれにマッピングされアライメントされるリードは、本明細書において説明されているように、結合検出プロトコル、たとえば、多領域結合検出プロトコルなどにおいて、一緒に考慮されるべきである。
したがって、本明細書に提示されるのは、多領域結合検出(MRJD)を対象とする、デバイス、システム、さらにはその使用方法であり、たとえば、様々な識別された相同領域の様々なパイルアップからのリードの、複数の、たとえば、すべては、一緒に考慮され、たとえば、各配置に対して単一のコールを行う代わりに、相同であるように見えるすべての配置に対して結合コールが行われる。そのような結合コールを行うこと有利であり、各参照に対してコールを個別に行おうとする前に、最初に、注目している様々なリードが実際に、どの参照の、どの領域に、マッピングし、アライメントするかが決定されなければならず、それは本質的に不確定であり、提案されている結合検出によって解決されるまさしくその問題である。したがって、2つの参照の領域がそのように類似しているので、どのリードがどの領域にマッピングするかを決定することは非常に困難である。しかしながら、これらの領域が結合コールされる場合、どの相同リードがどの参照領域にマッピングするかに関して予め決定することは必要ない。したがって、結合コールを行うときに、第2の参照、たとえば、B上の別の領域に相同である一方の参照、たとえば、A上の領域のパイルアップ内のリードがRef AまたはRef Bのいずれかに属す可能性があるという仮定がなされ得る。
その結果、望まれる場合に、MRJDプロトコルは、本明細書におけるデバイス、システム、および方法で実装されるバリアントコールアルゴリズムへの追加で実装されてよい。たとえば、1回の反復で、バリアントコールアルゴリズムは、サンプルおよび参照ゲノム内の所与の領域に対するマッピングされ、および/またはアライメントされたリードにおいて提示される証拠を調べ、サンプルのゲノム内にあるように見えるものが実際に存在している確率を、参照ゲノムとの比較に基づき解析し、サンプルが実際に参照からどれだけ異なるかに関する証拠を与えられた場合、たとえば、リードと参照との間で何が異なるかに対する最もありそうな答えをバリアントコーラーアルゴリズムが決定するこの証拠を与えられた場合に決定を行う。しかしながら、MRJDはVCアルゴリズムとともに実装され得るさらなるアルゴリズムであり、MRJDは、バリアントコーラーが、たとえば、対象のリード内の観察された差異が実際に参照からの真の逸脱であるかどうかをより正確に決定するのを助けるように構成される。
したがって、MRJD解析における第1のステップは、1つまたは複数の参照、たとえば、Ref. AおよびRef. Bの複数の領域における配列と、対象のリードの1つまたは複数の領域におけるパイルアップ配列との間の対応関係のパーセンテージに基づき、相同領域を識別するステップを伴う。特に、Ref. AおよびRef. Bは、実際に、同じ遺伝物質の二倍体形態であってよく、たとえば、染色体の所与の領域の2つのコピーがある。したがって、二倍体参照が解析されている場合、様々な位置で、Ref Aは、1つの特定のヌクレオチドを有するものとしてよく、Ref. Bにおけるその同じ位置に、別のヌクレオチドが存在し得る。この例では、Ref. AおよびRef. Bは、「A」に対する位置Aにおいて同型接合型である。しかしながら、図18Aを見るとわかるように、対象のDNAはこの位置Aで異型接合型であり、たとえば、Ref. Aのパイルアップのリードに関して、対象の染色体の一方のアレルは「A」を有するが、他方のアレルは「C」を有するが、Ref. Bに関して、対象の染色体の別のコピーは、位置Aにおける両方のアレルに対して「A」を有する。これは、また、より複雑になり、解析されるサンプルは、たとえば、位置A(図示せず)における異型接合型SNPなどの、自然発生の可変位置のうちの1つに、突然変異を含む。
図18BのRef. Aを見るとわかるように、位置Aにおいて、対象のサンプルは、位置Aに異型接合性を示すリードを含むものとしてよく、たとえば、リードのうちのいくつかは、この位置に「C」を含み、リードのいくつかは、この位置で「A」を示し(たとえば、Haplotypea1="A", Ha2="C")、Ref. Bに関して、位置Aにおけるリードは、同型接合性を示し、たとえば、パイルアップ内のすべてのリードは、その位置で「A」を有する(たとえば、Hb1="A", Hb2="A")。しかしながら、MRJDは、これらの困難を、リードのどれか1つが間違った配置にあり得る可能性を考慮しつつ、結合コールを同時に行い、参照の両方の領域にマッピングされるリードのすべてを解析することによって克服する。様々な相同領域が識別された後、次のステップは、相同参照領域の間の対応関係を決定することであり、次いで、MRJDに関して、様々な適用可能なリードが2つの相同領域の間で「マッピングすると想定される」場所に関するマッパおよび/またはアライナ決定が破棄されてよく、むしろ、これらのリードはどれも比較される相同領域のどれかに属し得ることを知って、これらの相同領域内のパイルアップのどれかの中のリードのすべてがまとめて一緒に考慮され得る。したがって、これらの結合コールを決定するための計算は、以下で詳しく述べられているように、これらのリードのうちのどれかが相同参照領域のどれかから、および該当する場合には、参照領域のいずれかの領域のいずれかのハプロタイプから来た可能性を考慮する。
前記は、参照内の相同性の多数の領域を参照していたが、同じ解析が単一の領域検出にも適用され得ることに留意されたい。たとえば、図18Bを見るとわかるように、単一の領域であっても、所与の領域について、2つの別々のハプロタイプ、たとえば、対象の遺伝子サンプルが特定の領域に対して、有し得るH1およびH2が存在するものとしてよく、それらはハプロタイプであるので、それらは互いに非常によく似ている可能性が高い。その結果、これらの位置が他のものとは孤立して解析された位置である場合、真のバリエーションが考慮されているかどうかを決定することは難しいことがある。したがって、相同領域に関して実行される計算は、非相同領域に対しても有用であるが、これは、特定の領域が二倍体である、たとえば、第1のハプロタイプ(H1)および第2のハプロタイプ(H2)の両方を有する可能性が高く、それらの領域をそのように連携して解析していることで、システムの精度が高められるからである。同様に、2参照領域、たとえば、相同領域については、上で説明されているように、コールされるのは、第1の領域に対するHA1およびHA2、ならびに第2の領域に対するHA1およびHA2である(これは一般的に各染色体に対する2つの鎖および各鎖=4 diploidtypesに対する2つの領域と同等である)。
したがって、MRJDは、1つまたは複数の、たとえば、すべての、相同領域に関して、最初の答えを決定するために使用されてよく、単一の領域検出は、たとえば、同じ基礎解析を使用して、1つまたは複数の、たとえば、すべての、単一もしくは非相同領域に再び適用されてよく、したがって、より良好な精度が達成され得る。したがって、単一領域非結合検出も実行されてよい。たとえば、単一領域検出に関して、候補ハプロタイプHA1について、現在の反復で、参照領域は約300~500塩基対長であってよく、参照の上に、図18Cで述べられているような、グラフ、たとえば、De Bruijnグラフが、リードからのK-mersなどから構築され、その参照と異なる配置は、グラフ内に分岐経路または「バブル」を形成し、そこからハプロタイプが抽出され、各抽出されたハプロタイプ、たとえば、分岐経路は、調査対象の能動領域の特定の配置における染色体の2つの鎖のうちの一方の上にあると思われるものに対する潜在的仮説を形成する。
しかしながら、図18Cを見るとわかるように、多数の分岐経路がある、たとえば、グラフを通る多数のバブルが形成され、多数のハプロタイプが抽出される場合、計算を管理可能に維持するために最大カットオフが導入され得る。カットオフは、35、50、100、125~128、150、175、200、またはそれ以上、などの統計的に有意な数のところにあるものとしてよい。それにもかかわらず、いくつかの事例において、実質的にさらに多くの、たとえば、すべてのハプロタイプが考慮され得る。
そのような事例において、始めから終わりまで、たとえば、配列の先頭から末尾まで、完全なソースからシンクまでのハプロタイプを抽出する代わりに、個別のバブルに関連付けられている配列のみが抽出されればよく、たとえば、バブルのみが参照にアライメントされるだけでよい。したがって、バブルは、DBGから抽出され、配列は参照にアライメントされ、これらのアライメントから、特定のSNP、挿入、欠失、および同様のものが、様々なバブルの配列が参照と異なる理由に関して、決定されてよい。したがって、この点に関して、解析のための異なる仮説的ハプロタイプのすべてが、異なる組合せの様々なバブルのすべてに関連する配列を混合し、マッチングすることから導出され得る。このような方式で、抽出されるべきハプロタイプはすべて、列挙される必要はない。多領域結合検出を実行するためのこれらの方法は、以下でより詳しく説明される。
さらに、抽象的には、これらの候補ハプロタイプのすべてが検定され得るとしても、ツリーを成長させるアルゴリズムが実行されてよく、そこで作成されるグラフは成長する木に見え始める。たとえば、結合ハプロタイプ/ディプロタイプの枝分かれツリーグラフは、ツリーが成長するにつれ、基礎となるアルゴリズムが、計算がさらに行われるにつれ同時にツリーを成長させかつ刈り取るように機能するような仕方で構築されてよく、様々な異なる候補仮説が単にあまりにも起こりそうにないことが明らかになる。したがって、ツリーが成長し、刈り込まれると、仮説化されたハプロタイプのすべてが計算されなくてもよくなる。
特に、ツリーの成長機能に関して、2つの参照の間、または参照とリードとの間に不一致があるときに、どのような塩基が解決される所与の位置に存在しているかに関して、どの塩基が実際にどの位置に属しているかが決定されなければならず、そのような不一致に照らして、どの差異がSNP、インデル、または同様のものによって引き起こされ得るのかに対して、どの差異が機械誤りであるかが決定されなければならない。したがって、ツリーを成長させる、たとえば、SWまたはNWアライメントなどを介してDe Bruijnグラフからバブルを抽出し、それらを出現するツリーグラフ内に位置決めするときに、抽出されるべき各バブルは、ツリーグラフ内で事象となり、これは可能なSNP、インデル、および/または参照からの他の差異を表す。図18Cを参照のこと。
特に、DBGにおいて、バブルは、参照からのミスマッチを表す、たとえば、インデル(その塩基は追加または削除されている)、SNP(その塩基は異なる)、および同様のものを表す。その結果、バブルが参照にアライメントされると、2つの間の様々な差異が事象としてカテゴライズされ、様々な事象、たとえば、バブルのリストが生成される。したがって、この決定は、次いで、たとえば、可能なSNPおよびインデルの可能な事象のどのような組合せが対象の遺伝子配列に実際のバリエーションを引き起こしたか、たとえば、実際の様々なハプロタイプの各々において真実か、たとえば、確率に基づき、4である、という決定になる。より具体的には、ルートG0(所与のセグメントに対する事象を表す)を形成するどれか1つの候補、たとえば、結合ディプロタイプ候補は、4つのハプロタイプを有し、4つのハプロタイプのうちの各々は、事象の識別されたサブセットを形成する。
しかしながら、図18Dを見るとわかるように、ツリー機能の成長および/または刈り込みを実行するときに、事象のすべての組合せのサブセット全体の完全なリストが、そうすることが必要というわけではないが、すべて一度に決定され得る。その代わりに、決定は、単一の位置G0、たとえば、1つの事象から始まり、ツリーは一度に1事象ずつそこから成長し、刈り込み機能を通じて、様々な低確率事象を未解決のまま残し得る。したがって、ツリーを成長させる機能に関して、図18Dを見るとわかるように、計算はハプロタイプ、たとえば、HA1、HA2、HB1、HB2(二倍体生物に対する)を決定することから始まり、初期ハプロタイプは、それぞれの参照、たとえば、Ref. AおよびRef. Bに関して、すべて未解決であると考えられ、基本的に事象はどれも存在しない。
したがって、初期開始点では、ツリーのルートがG0であり、結合ディプロタイプは未解決であるすべての事象を有する。次いで、特定の事象、たとえば、初期バブルは、決定に対する基点として選択され、それによって、初期事象は、ハプロタイプのすべてに対して解決されるべきであり、事象は、位置1におけるSNPまたはインデルの潜在的存在などに関して参照からの第1の分岐点であってよい。図18Eに例示されているように、位置1には、SNPなどの、事象またはバブルがあり、「C」は、「A」と置き換えられており、それにより、参照は位置1において「A」を有するが、注目するリードは「C」を有する。そのような事例において、パイルアップ内のこの位置に対して、4つのハプロタイプがあり、各々参照の場合のような「A」、または事象「C」のいずれかを有し得るので、この位置を解決するために潜在的に24=16の可能性がある。したがって、計算は、ルートから16個の枝に即座に移動し、これは位置1における事象に対する潜在的解決を表す。
したがって、図18Dを見るとわかるように、4つのハプロタイプのすべてに対する潜在的な配列のすべてが、たとえば、HA1、HA2、HB1、HB2が述べられるものとしてよく、位置1では、参照による、「A」、または事象「C」のいずれかがあり、その1つの事象に対する、SNPの存在を示し、事象「C」は、グラフを通る様々なバブル経路を調査することによって決定される。したがって、各枝または子ノードについて、各枝は、事象の残りが未解決のままである間に、参照に従って、または参照から分岐する、位置1にある塩基の尤度に基づき異なり得る。次いで、このプロセスは、各枝ノードについて、およびバリエーションバブル内の各塩基について繰り返され、すべてのハプロタイプに対するすべての事象を解決する。したがって、確率は、様々な潜在的なハプロタイプが与えられた場合に特定のリードを観察するために再計算され得る。
特に、各ノードについて、4つのハプロタイプがあるものとしてよく、各ハプロタイプは、パイルアップ内の各リードに対して比較され得る。たとえば、一実施形態において、SW、NW、および/またはHMMエンジンは各ノードを解析し、各ノードに対する4つのハプロタイプの各々を考慮する。その結果、各ノードを生成することで、SWおよび/またはHMMエンジンがアクティブ化され、そのノードを、リードの各々についての比較においてそのノードに対するハプロタイプのすべて、たとえば4つを考慮することによって解析し、SWおよび/またはHMMエンジンは、ハプロタイプの各々に対する1つのリードについて1つのハプロタイプおよび存続可能なノードのすべてに対するリードの各々を考慮する。
したがって、この例の例示的な目的のために、1つのハプロタイプの1つの領域に対して異型接合型SNP「C」がある、たとえば、1つの染色体の一本鎖が「C」を有するが、他の鎖に対するこの位置における他の塩基のすべてがそうでない、たとえば、それらすべてが参照「A」とマッチする場合、パイルアップ内のリードのすべてが、真のノードについて、位置1で「A」の大半を、位置1で「C」を有するリードの少数、たとえば約1/4を有することなどによって、この発見をサポートすることが期待されるだろう。したがって、異なるノードで後で観察可能になるリードが、位置1で多数の「C」を示している場合、そのノードは、真のノードであることはありそうもなく、たとえば、低い確率を有するが、それは、その出現をありそうなことにするにはパイルアップ内のこの位置を有する十分なリードがないからである。特に、注目するリードにおけるこの位置での「C」の存在が、真のハプロタイプ候補であることよりはむしろ、シークエンシングまたは他の科学的誤りの証拠であることの確率が高い。その結果、いくつかのノードが結局、真のノードに比べて小さい確率を有することになった場合、それはたとえばパイルアップ内のリードの大半によってサポートされないからであり、したがって、これらのノードは刈り取られ、それによって低い確率のノードを破棄するが、ただし真のノードを保存する仕方で行い得る。
したがって、事象1の位置が決定された後、次の事象の位置が決定されるものとしてよく、本明細書で説明されているプロセスは、次いで、これまで刈り込まれていない存続しているノードのどれかに関してその新しい位置について繰り返され得る。特に、事象2は、既存の利用可能なノードから選択されてよく、その事象は、新しいハプロタイプ、たとえば4個、さらにはその様々な枝、たとえば16個をもう一度定義し、位置2に関する可能なバリエーションを説明することなどによって、位置2における塩基のありそうな同一性を決定するためにG1ルートとして役立つ。したがって、この同じプロセスを繰り返すことで、事象2が次に解決され得る。したがって、図18Dを見るとわかるように、位置1が決定された後、位置2に対する新しいノードが選択されてよく、その16個の潜在的なハプロタイプ候補が考慮され得る。そのような事例において、HA1、HA2、HB1、HB2の各々に対する候補は、決定され得るが、この事例では、位置1は、位置1でハプロタイプの各々に対するヌクレオチド同一性を決定することに関してすでに解決されているので、それは位置2であり、図18Dにおいて述べられているような、位置2におけるハプロタイプの各々について、次に解決され、これは位置2の解決を示す。
このプロセスが終了した後、たとえばまだ刈り込まれていないすべての子ノードおよび子ノードの子を含む、事象のすべてが処理され解決された後、刈り込まれていないツリーのノードが調査されてよく、確率スコア、どのツリーが結合ディプロタイプを表すか、たとえば、どの配列が真である最高の確率を有するかに基づき決定され得る。したがって、この方式で、刈り込み機能があるため、ツリー全体が構築される必要はなく、たとえば、ツリーの大半が結局、解析が進むにつれ刈り込まれ、したがって、全体的な計算量は、非結合ディプロタイプコーリング、たとえば、単一領域コーリングを実行することよりも実質的に多いのにもかかわらず、非刈り込み機能上で大幅に低減される。したがって、現在の解析モジュールは、高い精度で高い相同性のある2つまたはそれ以上の領域を決定し解決することが、たとえば、結合ディプロタイプ解析を使用して行うことができ、従来の方法だと、たとえば、偽陽性および解決不能があるので、そのような領域を解決することは、単純に、全くできない。
特に、様々なバリアントコーラー実装形態は、高い相同性のある領域上で解析を単純に実行しないように構成され得る。現在の反復は、この技術分野におけるこれらのおよび他のそのような問題を克服する。より具体的には、現在のデバイス、システム、およびその使用方法は、高い相同性がある領域の出現にもかかわらず、ハプロタイプのより大きい割合、たとえば、すべてを考慮するように構成され得る。もちろん、これらの計算速度は、そのような計算の結果が本明細書で説明されているように刈り込み機能を実装することなどによって真である低い確率を有すると決定され得る場合にいくつかの計算を実行しないことによって、さらに高められ得る。
これらの構成、たとえば、結合ディプロタイプ解決および刈り込みの利点は、現在、たとえば、解析される塩基の能動領域ウィンドウのサイズが処理されている約数百個の塩基から数千個に増やされ得る、さらには数万もしくは数十万個の塩基が一緒に、1つの連続する能動領域などにおいて、処理され得ることである。解析の能動ウィンドウのサイズのこのような増大は、所与の位置における特定のヌクレオチドの同一性を決定するときにより多くの証拠が考慮されることを可能にし、それによって、ヌクレオチドの同一性のより正確な決定が行われ得るより大きいコンテキストを可能にする。同様に、より大きいコンテキストは、参照からの1つまたは複数の逸脱を有する1つまたは複数の領域をカバーする1つまたは複数のリードを比較するときに鎖のようによりよくつながる証拠をサポートすることを可能にする。したがって、そのような方式で、一方の事象は他方の事象に接続されてよく、それ自体は別の事象などに接続されてよく、これらの接続から、現在考慮されている所与の特定の事象に関するより正確なコールが行われてよく、それによって、さらに遠く離れた、たとえば、数百から数千塩基以上離れた位置からの証拠が現在のバリアントコールを行う際に情報を与えるものとなることを可能にし(所与のリードが典型的には数百塩基長しかないという事実があるにもかかわらず)、それによって、本明細書におけるプロセスをかなり正確なものにする。
特に、このような方式では、能動領域は、数千、数万、さらには数十万塩基以上を含むようにさらに形成されてよく、その結果、ハプロタイプのすべてを抽出することによってDe Bruijnグラフを形成する方法は回避されるものとしてよく、限られた数のハプロタイプ、存続可能であり得るバブルを有するもののみが探索される必要があり、存続可能なものであっても、もはや存続可能でないことが明らかになった後、それらは刈り込まれてよく、存続可能のままであるものに対して、最終的なバリアントコールが行われる精度を改善するために連鎖が使用され得る。これは、すべて量子および/またはハードウェアコンピューティングによって可能にされる。また、CPUまたはGPUによってソフトウェアで実行されてもよいが、速度は遅くなる。
上記の例に関して、De Bruijnグラフによって作成されるこれらのハプロタイプ理論が与えられた場合に、それは決定されている入力データ、たとえば、リードの確率であることに留意されたい。しかしながら、結合ディプロタイプが与えられた場合にリードの確率から、リードおよび評価される証拠が与えられた場合に結合ディプロタイプの理論から最良適合を決定する反対の確率までを決定するなどのためにベイズ理論を使用することも有用であり得る。したがって、図18Cを見るとわかるように、生成されたDe Bruijnグラフから、多領域結合検出および/または刈り込みが行われた後、潜在的なハプロタイプのセットが結果として生じ、次いで、これらのハプロタイプは、対象の実際のリードに対して検定される。特に、各水平断面は、リードに対して検定される別のHMMプロトコルに次いで従うものとしてよいハプロタイプ、たとえば、B1を表し、ハプロタイプB1が与えられた場合に特定のリードの確率を決定し得る。
しかしながら、いくつかの事例において、ハプロタイプ、たとえば、B1は、まだ完全には決定され得ないが、HMMは、それでも、実行されるのが有用であり得、そのような事例において、修正されたHMM計算、たとえば、以下で説明されている部分的決定(PD)HMMオペレーションが実行されてよく、ハプロタイプは、まだ決定されていない未決定バリアント、たとえば、SNPおよび/またはインデルをその中に有することを許され、したがって、計算は、未解決位置におけるバリアントの組合せが与えられた場合に達成可能な答えに対する可能な最良の確率を計算するステップに類似している。したがって、これは、ツリー機能の反復成長をさらに促進し、ツリーの実際の成長、たとえば、PD-HMMオペレーションの実行は、可能なすべてのバリアントが知られている計算のみに制限される必要はない。したがって、この方式で、特定の候補ハプロタイプにおいて未知の可能な事象のまだ未決定の領域があるという事実にもかかわらず、多数のPD-HMM計算が、反復方式で実行され、ノードのツリーを成長させるものとしてよく、ツリーを切り揃えるのが可能になった場合に、PD-HMMリソースは、刈り込まれたノードを計算して真の遺伝型を特徴付けるのに成功する最大の確率を有する可能性のみを処理することから流体的にシフトされ得る。
したがって、特定の塩基がどれか1つの位置に実際に存在している確率を決定するときに、その位置における塩基の同一性は、存続可能な候補を表す各染色体、たとえば、各ハプロタイプの各領域上のその位置における同一性に基づき決定されてよい。したがって、任意の候補について、決定されるものは、同時に4つのハプロタイプの各々における注目している位置における所与の塩基の同一性である。特に、決定されるものは、決定された尤度が与えられた場合にパイルアップの各々のリードを観察する確率である。特に、各候補は、結合ディプロタイプを表し、そうであれば各候補は約4個のハプロタイプを含み、これは次の式でG=遺伝型として述べられてよく、G=ゲノムの染色体の単一の二倍体領域の4つのハプロタイプ、たとえば、結合ディプロタイプである。そのような事例において、計算されるべきものは、それらが実際に真実であることを仮定してパイルアップ内の配列の識別された候補リード塩基の各々を実際に観察する確率である。この初期決定は、本明細書で上で述べたように、HMMハプロタイプ計算によって実行され得る。
たとえば、候補について、HMM(Error Model)=ΠP(r/G)=
によって決定されるように"Joint Diploidtype"=4 Haplotypes:(Region A:HA1HA2、およびRegion B:HB1HB2)=G->P(R/G)である。
したがって、特定のハプロタイプHa1がこの領域内の真の配列であり、リードがそこから来たと仮定される場合、このリード配列Ha1が実際に観察されたのはすごい確率である。したがって、HMM計算機は、Ha1ハプロタイプが真実であると仮定して、注目している所与のリード配列を実際に観察する尤度がどれくらいであるかを決定するように機能する。
特に、リードが実際にハプロタイプとマッチした場合、これは、もちろん、非常に高い確率である。しかしながら、注目している特定のリードがハプロタイプとマッチしない場合、そこからの逸脱は、シークエンシングまたはシークエンシング機械誤りなどの科学的誤りによって説明可能であるべきであり、実際のバリエーションによって説明可能でない。したがって、HMM計算は、誤りモデルによって変わる。特に、これは、解析される特定のリードを観察するために生じなければならなかったであろう必要な誤りの組合せの確率が何であるかを問う。その結果、このモデルでは、1つの領域が考慮されるだけでなく、多数の鎖における多数の領域における多数の位置が同時に考慮されている(たとえば、1つの領域でせいぜい場合によっては2つのハプロタイプを考慮する代わりに、現在同時に考慮されているものは、注目している領域のすべてからのリードデータのすべてを使用する、同時に所与の領域における所与の位置に対する4つのハプロタイプの可能性である)。これらのプロセス、たとえば、ツリーを刈り込むステップ、多領域結合検出、およびPD-HMMは、そこで、より詳しく説明される。
特に、図17および図18を見るとわかるように、高水準処理連鎖が用意され、たとえば、処理連鎖は、次のステップの1つまたは複数を含み得る。相同領域を識別し入力するステップ、入力相同領域の前処理を実行するステップ、刈り込まれた非常に長いリード(VLRD)を実行するステップ、または多領域結合検出(MJRD)、S、およびバリアントコールファイルを出力するステップである。特に、相同領域を識別するステップに関して、マッピング、アライメント、および/またはソーティングされたSAMおよび/またはBAMファイル、たとえば、CRAMは、本明細書で説明されているように、MRJDアルゴリズムを実装する多領域結合検出処理エンジンへの一次入力として使用され得る。MJRD処理エンジンは、ソフトウェア、たとえば、量子アルゴリズムを実行するCPUおよび/またはGPUおよび/または量子コンピューティングプラットフォーム、などの集積回路の一部であるか、あるいはFPGA、ASIC、もしくは同様のものの中に実装され得る。たとえば、上で開示されているマッパおよび/またはアライナは、たとえば、一次アライメントとともに各リードに対するN個の二次アライメントを出力する設定を含む、CRAMファイルを生成するために使用され得る。次いで、これらの一次および二次リードは、相同領域のリストを識別するために使用されてよく、その相同領域は、参照ゲノムのN個の領域の間のユーザ定義類似度閾値に基づき計算され得る。次いで、識別された相同領域のこのリストは、適切に構成されたMRJDモジュールの前処理段階に送られ得る。
したがって、前処理段階では、相同領域のすべてのセットについて、結合パイルアップが最初に、セット内の1つまたは複数の、たとえば、すべての、領域からの一次アライメントを使用することなどによって生成され得る。たとえば、図19を参照されたい。次いで、この結合パイルアップを使用することで、能動/候補バリアント位置(SNPS/INDEL)のリストが生成されてよく、それによって、これらの候補バリアントの各々は、MRJD前処理エンジンによって処理され、評価され得る。計算複雑度を下げるために、候補バリアントの処理の順序を定義するために使用され得る接続行列が計算され得る。
そのような実装形態において、多領域結合検出アルゴリズムは、生成された接続行列で定義されている処理順序に基づき各識別された候補バリアントを評価する。最初に、1つまたは複数の候補結合ディプロタイプ(Gi)が生成され、候補バリアントを与えられ得る。次に、結合ディプロタイプの各々の経験的確率(P(Gi|R))が計算され得る。これらの経験的確率から、遺伝型行列が計算され得る。次に、経験的確率が最低であるN個のディプロタイプが、計算の計算複雑度を低減するように刈り込まれ得る。次いで、評価される現在の候補バリアントに対する証拠を提供する次の候補バリアントが含まれ、上記のプロセスが繰り返され得る。現在のバリアントに対する相同領域セット内の1つまたは複数の、たとえば、すべての、領域からの1つまたは複数の、たとえば、すべての、候補バリアントからなどの情報が含まれ、バリアントコールは、最終的な遺伝型判定行列から行われ得る。したがって、能動位置の各々は、上記の方式ですべて評価され、それにより結果として最終VCFファイルが得られるものとしてよい。
特に、図17Bを見るとわかるように、MJRD前処理ステップが実装されてよく、たとえば、次のステップまたはブロックのうちの1つまたは複数を含み得る。識別され、アセンブルされた結合パイルアップがロードされ、次いで、候補バリアントリストがアセンブルされた結合パイルアップから創出され、接続行列が計算される。特に、様々な事例において、前処理方法が、多重リード結合検出オペレーションなどの、1つまたは複数のバリアントコールオペレーションを実行する前などに実行されてよい。そのようなオペレーションは、1つまたは複数の前処理ブロックを含むものとしてよく、これらは結合パイルアップのロードに関連するステップ、結合パイルアップからバリアント候補のリストを生成するステップ、および接続行列を計算するステップを含む。次に、これらのブロックおよびそれらに関連付けられている潜在的ステップの各々は、より詳しく説明される。
特に、第1の結合パイルアップ前処理ブロックは、解析手順に含まれ得る。たとえば、識別されたスパンに対する様々な参照領域は、マッピングされおよび/またはアライメントされたリードなどから抽出され得る。特に、相同領域のリストを使用することで、相同領域の各セットに対する結合パイルアップが生成され得る。次に、ユーザ定義スパンが、セット内のN個の相同領域に対応するN個の参照領域を抽出するために使用され得る。その後、参照領域の1つまたは複数、たとえばすべてが、Smith-Watermanアライメントを使用することなどによってアライメントされてよく、これはN個の参照領域内のすべての塩基のユニバーサル座標系を生成するために使用され得る。さらに、各領域に対応するすべての一次リードは、次いで、入力されたSAMまたはBAMファイルから抽出され、ユニバーサル座標にマッピングされ得る。このマッピングは、本明細書で説明されているように、各リードに対するCRAMファイル内に存在するアライメント情報(CIGAR)を使用することなどによって行われ得る。いくつかのリードペアが以前にマッピングされていなかったシナリオにおいて、リードは、そのそれぞれの参照領域にマッピングされ、および/またはアライメントされ、たとえば、Smith-Watermanアライメントされ得る。
より具体的には、結合パイルアップが生成されロードされた後、たとえば、図19を参照するとよいが、候補バリアントリストが、結合パイルアップなどから創出され得る。たとえば、De Bruijnグラフ(DBG)または他のアセンブリグラフは、結合パイルアップから識別され得る様々な候補バリアント(SNP/インデル)を抽出するために作成され得る。DBGが作成された後、グラフ内の様々なバブルがマイニングされ、バリアント候補のリストを導出することができる。
特に、すべてのリードが与えられた場合、各参照領域をバックボーンとして使用することでグラフが生成され得る。次いで、識別された候補バリアント位置のすべてが、ユニバーサル座標にアライメントされ得る。次いで、接続行列が計算されるものとしてよく、この行列は能動位置の処理の順序を定義するものであり、リード長および/または挿入サイズに応じて変わり得る。本明細書において参照されているように、図19は、染色体1における2つの相同領域の結合パイルアップの一例を示している。このパイルアップは、染色体1の2つの相同領域を参照するものであるが、これは例示的な目的のみのためのものであり、パイルアッププロセスの作成は、染色体に関係なくあらゆる相同領域に使用され得る。
図20を見るとわかるように、候補バリアントリストは次のように創出され得る。最初に、結合パイルアップが形成され、De Bruijnグラフ(DBG)または他のアセンブリグラフが、本明細書で開示されている方法に従って、構築され得る。次いで、DBGは、結合パイルアップから候補バリアントを抽出するために使用され得る。DBGの構築は、バリエーションを示すバブルを生成するように実行され、これはグラフを通る代替的経路を表し、各代替的経路は候補ハプロタイプである。たとえば、図20および図21を参照されたい。
したがって、グラフ内の様々なバブルは、候補バリアントハプロタイプ位置のリストを表す。したがって、リードのすべてが与えられた場合、各参照領域をバックボーンとして使用することでDBGが生成され得る。次いで、候補バリアント位置のすべてが、ユニバーサル座標にアライメントされ得る。特に、図20は、DBGを生成し、それを使用して候補ハプロタイプを作成するプロセスを記述するフローチャートを例示している。より具体的には、De Bruijnグラフは、SNPおよびINDELの候補バリアントリストを創出するために使用されてよい。MRJDによって一緒に処理されるN個の領域がある場合、N個のDe Bruijnグラフが構築され得る。そのような事例において、すべてのグラフは、1つの参照領域を、バックボーンおよびN個の領域に対応するリードのすべてとして使用し得る。
たとえば、一方法実装形態において、DBGが構築された後、候補ハプロタイプは、候補事象に基づきDe Bruijnグラフから抽出され得る。しかしながら、本明細書で説明されているように、MRJD前処理プロトコルを使用するときに、N個の領域が一緒に処理されてよく、たとえば、領域の長さは、数千塩基以上であってよく、抽出されるべきハプロタイプの数は、非常に速く指数関数的に増大し得る。したがって、計算複雑度を低減するために、ハプロタイプ全体を抽出する代わりに、候補バリアントを表すバブルのみをグラフから抽出するだけでよい。
De Bruijnグラフにおいて形成されたバブル構造の一例は、図21に示されている。一緒に処理されるべき多数の領域が識別される。これは、辿れる2つの処理経路のうちの1つを決定する。結合領域が識別された場合、すべてのリードがDBGを形成するために使用され得る。可能なバリアントを示すバブルが、様々な候補ハプロタイプを識別するために抽出され得る。特に、各バブルについて、SWアライメントが参照バックボーンへの代替的経路上で実行され得る。これから、候補バリアントが抽出され、各グラフからの事象が記憶され得る。
しかしながら、他の事例において、1つまたは複数のDBGを生成するために第1のプロセスが実行され、および/またはiが0に等しくなった後、DBGのすべてからのすべての候補事象の合併が生成されるものとしてよく、重複は取り除かれ得る。そのような事例において、すべての候補バリアントは、ユニバーサル座標系などにマッピングされるものとしてよく、それにより、候補リストを作成し、候補バリアントリストは、MJRDモジュールなどの、刈り込みモジュールに入力として送信され得る。ハプロタイプ全体を抽出する代わりに、バブル抽出のみを実行する例が図22に示されている。この事例では、本明細書で説明されているように、それは抽出され処理される可能なバリアントを示すバブル領域のみである。
特に、代表的なバブルが抽出された後、バブル経路および対応する参照バックボーンの大域的アライメント、たとえば、Smith-Watermanアライメントが実行され、候補バリアントおよび参照内のその位置を取得するものとしてよい。これは、De Bruijnグラフのすべてにおける抽出されたすべてのバブルについて行われ得る。次に、抽出されたすべての候補バリアントの合併は、N個のグラフから取り出され、重複候補は、もしあれば、取り除かれ、固有の候補バリアント位置が、結合パイルアップから取得されたユニバーサル座標系にマッピングされ得る。この結果、「Pruned」MRJDアルゴリズムへの入力として働き得るN個の領域に対する候補バリアント位置の最終リストが得られる。
特定の処理ブロックにおいて、本明細書において上で説明されているように、接続行列が計算され得る。たとえば、リード長および挿入サイズなどに応じて、能動、たとえば、候補、位置の処理の順序を定義するために接続行列が使用され得る。たとえば、計算複雑度をさらに下げるために、De Bruijnグラフから得られる識別された候補バリアントの処理の順序を定義するために接続行列が計算され得る。この行列は、どの候補バリアントを最初に処理すべきかを決定するためにソーティング機能と併せて、またはソーティング機能として、構築され、使用され得る。したがって、この接続行列は、平均リード長およびペアエンドリードの挿入サイズに応じて変わり得る。したがって、所与の候補バリアントについて、挿入サイズの整数倍のところにある、またはリード長の範囲内にある他の候補バリアント位置は、他の位置における候補バリアントと比較してより高い重みを有する。これは、これらの候補バリアントが評価される現在のバリアントに対する証拠を与える可能性がより高いからである。本明細書において実装されているような、例示的なソーティング機能は、101の平均リード長および300の挿入サイズについて図23に示されている。
MJRD刈り込み機能に関して、上で参照されているような、刈り込まれたMRJDアルゴリズムの例示的なステップが図24において述べられている。たとえば、MRJDプラットフォームおよびアルゴリズムへの入力は、N個の領域の結合パイルアップ、たとえば、すべての候補バリアント(SNP/INDEL)、突然変異モデルに基づく先験的確率、および接続行列である。したがって、刈り込まれたMRJD処理プラットフォームへの入力は、結合パイルアップ、識別された能動位置、生成された接続行列、および経験的確率モデル、および/またはそれらの結果であってよい。
次に、リスト内の各候補バリアントは処理されることが可能であり、他のバリアントは接続行列を使用して処理される現在の候補に対する証拠として逐次的に追加され得る。したがって、現在の候補バリアントおよびサポートする候補が与えられた場合、候補結合ディプロタイプが生成され得る。たとえば、結合ディプロタイプは、2N個のハプロタイプからなるセットであり、Nは一緒に処理される領域の数である。候補結合ディプロタイプの数Mは、一緒に処理される領域の数、考慮されている能動/候補バリアントの数、およびフェーズの数に応じて変わる。結合ディプロタイプを生成するための一例が以下に示される。
P=1、考慮されている能動/候補バリアント位置の数、
N=2、一緒に処理されている領域の数、
M=22.N.P=24=16候補結合ディプロタイプ
したがって、単一の候補能動位置について、すべてのリードおよび両方の参照領域が与えられた場合、2つのハプロタイプを'A'および'G'とする。
固有のハプロタイプ='A'および'G'
候補ディプロタイプ='AA'、'AG'、'GA'、および'GG'、(1領域に対して4候補)。
候補結合ディプロタイプ=
'AAAA', 'AAAG', 'AAGA', 'AAGG'
'AGAA', 'AGAG', 'AGGA', 'AGGG'
'GAAA', 'GAAG', 'GAGA', 'GAGG'
'GGAA', 'GGAG', 'GGGA', 'GGGG'
したがって、候補結合ディプロタイプを使用することで、リード尤度は、すべての候補結合ディプロタイプセットにおける各ハプロタイプに対して1つのハプロタイプが与えられた場合に計算され得る。これは、本明細書で説明されているように、HMMアルゴリズムを使用して行われ得る。しかしながら、そうする際に、HMMアルゴリズムは、まだ処理されていない、ハプロタイプ内の候補バリアント(SNP/INDEL)が考慮されることを可能にするようにその標準的な使用事例から修正され得る。その後、リード尤度は、修正されたHMMからの結果を使用して結合ディプロタイプ(P(ri|Gm))が与えられた場合に計算され得る。これは、以下の公式を使用して行われ得る。
2領域結合検出の場合:
Gm=[θ11,m,θ12,m,θ21,m,θ22,m]、ここで、θij,m、iは領域であり、jはフェーズ
である。
P(R|Gm)=ΠiP(ri|Gm)。P(ri|Gm)が与えられた場合、すべてのリードについてP(R|Gm)を計算するのはたやすい。次に、ベイズの公式を使用することで、経験的確率(P(Gi|R))はP(R|Gi)および先験的確率(P(Gi))から計算され得る。
P(Gi|R)=P(R|Gi)P(Gi)/ΣkP(R|Gk)P(Gk)。
さらに、中間遺伝型行列は、すべての候補結合ディプロタイプに対する経験的確率が与えられた場合に各領域について計算され得る。遺伝型行列内の各事象組合せについて、その事象をサポートするすべての結合ディプロタイプの経験的確率は足し合わされ得る。この時点において、遺伝型行列は、現在の候補をサポートするすべての候補バリアントが含まれているわけではないので、「中間」とみなされ得る。しかしながら、前の方で見たように、結合ディプロタイプ候補の数は、候補バリアント位置の数および領域の数とともに指数関数的に増大する。これは、延いては、経験的確率を計算するために必要な計算を指数関数的に増大させることになる。したがって、計算複雑度を低減するために、この段階で、経験的確率に基づく結合ディプロタイプの数は、保持する結合ディプロタイプの数がユーザ定義され、プログラム可能であるように刈り込まれ得る。最後に、最終遺伝型行列は、中間遺伝型行列を使用して計算されるバリアントのユーザ定義信頼度測定基準に基づき更新され得る。これらのプロセスの様々なステップは、図24のプロセスフロー図で述べられている。
上記のプロセスは、すべての候補バリアントが接続行列を使用して処理されている現在の候補に対する証拠として含まれるまで繰り返され得る。候補のすべてが含まれた後、現在の候補の処理が行われる。候補バリアントを処理するための他の停止基準も可能である。たとえば、プロセスは、より多くの候補バリアントが追加されるとともに信頼度の増大が停止したときに停止され得る。この解析は、図24で例示されているように、リスト内の他のすべての候補バリアントに対して同様に再開され、繰り返されるものとしてよく、それによって、結果として、MRJDの出力に最終バリアントコールファイルが出される。したがって、孤立している各領域を考慮する代わりに、本明細書において説明されているような、多領域結合検出プロトコルが、すべての利用可能な情報を使用して基礎となる配列を一緒に検出しよう試みてリードのグループの出所であるすべての配置を考慮するために使用され得る。
したがって、多領域結合検出では、例示的なMRJDプロトコルは、本明細書で開示されている方法に従って次の式のうちの1つまたは複数を使用し得る。特に、孤立して評価される各領域を考慮する代わりに、MRJDでは、リードのグループの出所である複数の配置を考慮し、有用である量の、たとえばすべての、利用可能な情報を使用することなどによって、基礎となる配列を一緒に検出することを試みる。たとえば、例示的な一実施形態において以下のようである。
Nを一緒に処理されるべき領域の数とする。そして、Hkを候補ハプロタイプとし、k=1...Kとし、各々は参照配列に関して様々なSNP、挿入および/または欠失を含み得る。各ハプロタイプHkは、一本鎖に沿った単一領域(または「フェーズ」、たとえば、母方もしくは父方)を表し、それらは、連続している必要はない(たとえば、ギャップまたは「無関係」配列を含み得る)。
Gmを両方のフェーズΦ=1,2(二倍体生物)に対する候補解、およびすべての領域n=1...Nを
とし、ただし、各要素Gm,Φ,nは、候補のセット{H1...Hk}から選ばれたハプロタイプである。
最初に、各リードの確率は、たとえば、隠れマルコフモデル(HMM)を使用して、各候補ハプロタイプP(ri|Hk)について計算され得る。ペアリードを有するデータセットの場合、riはペア{ri,1,ri,2}、およびP(ri|Hk)=P(ri,1|Hk)P(ri,2|Hk)を示す。リンクリード(たとえば、バーコードリード)を有するデータセットの場合、riは、同じ長さの分子から来たリードのグループ{ri,1...ri,NL}を示し、
である。
次に、各候補解Gm、m=1 ...Mについて、各リードの条件付き確率
およびパイルアップ全体の条件付き確率
を計算する。
次に、観察されたパイルアップが与えられた場合に各候補解から経験的確率
が計算され、ただし、P(Gm)は、以下で詳しく述べられる、候補解の先験的確率を示す。
最後に、すべての候補バリアントVjの相対的確率は、
のように計算され、たとえば、Gm->Vjは、GmがバリアントVjをサポートすることを示し、Gm->refは、Gmが参照をサポートすることを示す。VCFファイルにおいて、これは、phredスケール上のクオリティスコア
として報告され得る。
様々なバリアントコーリングオペレーションを実行するための例示的なプロセスは、従来のおよびMRJD検出プロセスが比較されている図25に関して本明細書において述べられている。特に、図25は、注目している範囲にわたって参照配列が3塩基だけ異なる2つの領域に対するペアリードの結合パイルアップを例示している。すべてのリードは、領域#1または領域#2から来ると知られているが、個別のリードがどの領域に由来したかは確実には知られない。上で説明されているように、塩基は2つの参照が異なる位置、たとえばバブル領域、またはリードが参照と異なる位置についてのみ示されていることに留意されたい。これらの領域は、能動位置と称される。他のすべての位置は無視されてよく、計算に影響を及ぼさない。
したがって、図25を見るとわかるように、従来の検出器では、リードペア1~16は、領域#2にマッピングされ、これらは単独で領域#2内のバリアントコーリングに使用される。これらのリードはすべて、領域#2に対する参照とマッチし、したがってバリアントはコールされない。同様に、リードペア17~23は、領域#1にマッピングされ、これらは単独で領域#1内のバリアントコーリングに使用される。これからわかるように、これらのリードはすべて、領域#1に対する参照とマッチし、したがってバリアントはコールされない。しかしながら、リードペア24~32は十分に等しく領域#1および領域#2にマッピングされ(各々ref#1およびref#2に対して1塩基の差異を有する)、したがってマッピングは不定であり、典型的なバリアントコーラーは、単にこれらのリードを無視するだけである。したがって、従来のバリアントコーラーは、図25に示されているように、いずれかの領域に対してバリアントコールを行わない。
しかしながら、MRJDでは、図25は、従来の方法使用して受け取られたのと比べて結果は完全に異なることを例示している。関連する計算は以下に述べられている。この事例では、N=2領域である。それに加えて、3つの位置があり、各々2つの候補塩基を有する(1つはカウントが十分に低い塩基を安全に無視することができ、この例では、各位置で2塩基を除くすべてでカウントはゼロである)。すべての組合せが考慮される場合、これからK=23=8個の候補ハプロタイプ、H1=CAT、H2=CAA、H3=CCT、H4=CCA、H5=GAT、H6=GAA、H7=GCT、H8=GCAが得られる。
総当たりの計算では、すべての候補ハプロタイプのすべての組合せが考慮され、候補解の数はM=K2N=82.2=4096であり、P(Gm/R)は各候補解Gmについて計算され得る。次は、2つの候補解に対するこの計算を例示している。
ただし、Gm1はバリアントを有さず(これは従来の検出器によって見つかる解である)、Gm2は領域#1の位置#2において単一の異型接合型SNP A->Cを有する。
確率P(ri|Hk)は、HMMの塩基クオリティおよび他のパラメータを含む様々な因子に依存する。塩基コール誤りのみが存在し、すべての塩基コール誤りは等しく起こり得るものであり、したがってΡ(ri|Hk)=(1-pe)Np(i)-Ne(i)(pe/3)Ne(i)であり、peは塩基コール誤りの確率であり、Np(i)はリードiによって重ね合わされている能動塩基位置の数であり、Ne(i)はリードiに対する誤りの数であると仮定され得るが、ただしハプロタイプHkを仮定する。したがって、pe=0.01であると仮定してよく、これはphred 20の塩基クオリティに対応する。図26に述べられているテーブルセットは、すべてのリードペアおよびすべての候補ハプロタイプに対するP(ri|Hk)を示している。2つの遠い右の列は、P(ri|Gm1)およびP(ri|Gm2)を示し、下に積が示されている。図26は、P(R|Gm1)=3.5-30およびP(R|Gm2)=2.2-15、Gm2に有利な15桁の大きさの差異を示している。
経験的確率P(Gm|R)は、先験的確率P(Gm)に依存する。この例を完全にするために、単純な互いに独立で同一の分布に従う(IID)モデルが仮定されるものとしてよく、Nvバリアントのある候補解の先験的確率は(1-pv)N.Np-Nv(pv/9)Nvであり、Npは能動位置の数(この場合は3)であり、Pvはバリアントの確率であり、この例では0.01であると仮定される。これから、P(Gm)=7.22e-13、およびP(Gm2)=0.500が得られる。Gm2は領域#1上で異型接合型であり、ハプロタイプのすべての異型接合型ペアは同じ確率を有する鏡像表現(単純にフェーズをスワップするだけで得られる)を有することに留意されたい。この場合、Gm2に対する確率とその鏡像との和は1.000となる。個別のバリアントの確率を計算すると、phred 50.4のクオリティスコアを有する、領域#1の位置#2における異型接合型A->C SNPが見られる。
したがって、これからわかるように、総当たりのバリアントコーリングオペレーションを実行する上でものすごい計算複雑度があり、この複雑度は本明細書で説明されているように多領域結合検出を実行することによって低減され得る。たとえば、上記の計算の複雑度は、領域の数N、および候補ハプロタイプの数Kとともに急激に増大する。候補ハプロタイプのすべての組合せを考慮するために、確率を計算する候補解の数は、M=K2Nである。総当たりの実装形態では、候補ハプロタイプの数は、K=2Npであり、Npは能動位置の数である(たとえば、上で例示されているように、候補ハプロタイプのリストを生成するためにグラフアセンブリ技術が使用される場合、Npはグラフ内の独立したバブルの数である)。したがって、単なる総当たりの計算は、実装するには法外なコストがかかる可能性がある。たとえば、N=3およびNp=10である場合、候補解の数はM=23.2.10=260=1018である。しかしながら、実際には、Npの値がこの値よりかなり高くなることは珍しいことではない。
その結果、総当たりのベイズ計算はひどく複雑なものとなり得るので、次の説明では、そのような計算の複雑度を下げるためのさらなる方法について述べる。たとえば、別の実施形態の第1のステップでは、少数の位置
(またはさらには単一の位置
)から始めて、それらの位置についてベイズ計算が実行され得る。計算の終わりに、確率が事前定義された閾値より低くなる候補は、上で説明されているように、ツリー機能の刈り込みなどで排除され得る。そのような事例において、閾値は適応的であり得る。
次に、第2のステップにおいて、位置の数
は、小さな数ΔNPだけ増やされ(
など)、存続する候補は、ツリーを成長させる機能などで、新しい位置の1つまたは複数、たとえば、すべての、可能な候補と組み合わされ得る。次いで、(1)ベイズ計算を実行するステップ、(2)ツリーを刈り込むステップ、および(3)ツリーを成長させるステップは、停止基準が満たされるまで、たとえば逐次、繰り返され得る。次いで、閾値履歴は、結果の信頼度(たとえば、真の解が見つかったかまたは見つからなかった確率)を決定するために使用され得る。このプロセスは、図27で述べられているフローチャートにおいて例示されている。
このアプローチに対して可能な様々なバリエーションがあることは理解されるべきである。たとえば、示されているように、刈り込み閾値は、存続する候補の数などに基づき、適応的であり得る。たとえば、単純な実装形態では、候補の数を固定された数より低く維持するように閾値を設定し得るが、より高度な実装形態では、追加の候補を含める費用便益解析に基づき閾値を設定し得る。さらに、単純な停止基準は、結果が十分な信頼水準で見つけられた、または初期位置での信頼度がより多くの位置が加えられるにつれ増大するのを停止したという条件であり得る。さらにそれでも、より高度な実装形態が、より多くの位置を加えることを続ける何らかのタイプの費用便益解析を実行し得る。それに加えて、図27を見るとわかるように、新しい位置が加えられる順序は、初期位置までの距離、またはこれらの位置がすでに含まれている位置に対してどれだけ高く接続されているか(たとえば、ペアリードとの重なりの量)などのいくつかの基準に依存し得る。
このアルゴリズムの有用な特徴は、真の解が見つからなかった確率が定量化され得ることである。たとえば、有用な推定値は、各ステップですべての刈り込まれた枝の確率を単純に総和することによって得られる。
そのような推定値は、結果として得られるバリアントコールの信頼度を計算するのに有用である。
良好な信頼度推定値は、良好な受信者動作特性(ROC)曲線を作成するのに不可欠である。これは、他のアドホックな複雑度低減に勝るこの刈り込み方法の重要な利点である。
図25の例示的なパイルアップに戻り、一番左の位置(位置#1)から始めて、一度に1塩基位置ずつ右の方へ作業を進めて行き、各反復にphred 60の刈り込み閾値を使用する。j番目の反復に対して
で候補解を表す。図28は、減少する確率の順序でリストされている、塩基CおよびGのすべての組合せを表す、第1の反復での候補解を示している。同等の鏡像表現(フェーズをスワップすることによって得られる)による解では、単一の表現のみがここに示されている。すべての候補解に対する確率は計算され、刈り込み閾値(図28において実線で示されている)を超える確率は捨てられ得る。図28を見るとわかるように、本明細書で開示されている刈り込み方法の結果として、6個の候補が存続する。
次に、図29を見るとわかるように、ツリーは、反復#1からの存続する候補と位置#2にある候補塩基(CおよびA)のすべての組合せを見つけることによって成長させられ得る。新しい候補の部分的リストは図29に示されており、ここでもまた、減少する確率の順序で示されている。再び、確率は、計算されて刈り込み閾値と比較されるものとしてよく、この事例では5個の候補が存続する。
最後に、反復#2からの存続する候補および位置#3における候補塩基(AおよびT)のすべての組合せが決定され得る。最終候補およびその関連付けられている確率は、図30に示されている。したがって、個別のバリアントの確率を計算するときに、総当たり計算で見つかった同じ結果である、phred 50.4のクオリティスコアを有する、領域#1の位置#2における異型接合型A->C SNPが決定される。この例では、刈り込みは、最終結果に有意な効果をもたらさなかったが、一般的に計算には影響を及ぼすことがあり、多くの場合に結果として、より大きい信頼度スコアをもたらし得る。
このアプローチの実装形態に対して多くの変更形態が可能であり、これはシステムの性能および複雑度に影響を及ぼすことがあり、異なる変更形態が異なるシナリオに適していることもあり得る。たとえば、どの領域を含めるべきかを決定する変更形態があり得る。たとえば、多領域結合検出を実行する前に、バリアントコーラーは、所与の能動領域が個別に処理されるべきか他の領域と一緒に処理されるべきかを決定するように構成されてよく、一緒の場合には、その後、どの領域を含めるべきかを決定するものとしてよい。他の事例において、いくつかの実装形態は、この決定を知らせるか、または他の何らかの形で行うためにマッパによって提供される二次アライメントのリストに頼るものとしてよい。他の実装形態では、参照ゲノムの探索などに基づき、オフラインで計算された、相同領域のデータベースを使用し得る。
したがって、そのようなオペレーションにおける有用なステップは、どの位置を含めるべきかを決定するステップである。たとえば、注目する様々な領域が自己完結していないおよび/または隣接する領域から孤立していない場合があることに留意されたい。したがって、パイルアップ内の情報は、全リード長よりずっと大きな長さだけ隔てられている塩基の確率に影響を及ぼし得る(たとえば、ペアリード長または長い分子長)。したがって、MRJD計算にどの位置を含めるべきかが決定されなければならず、位置の数は、無制約ではない(刈り込みがあるとしても)。たとえば、いくつかの実装形態では位置の重なり合うブロックを処理し、それらの位置における信頼水準、またはそれらの位置における証拠の完全性に基づき位置のサブセットに対する結果を更新するものとしてよい(たとえば、ブロックの真ん中近くの位置は、典型的には、エッジの近くより完全な証拠を有する)。
別の決定因子は、新しい位置が追加され得る順序であってよい。たとえば、刈り込まれたMRJDについて、新しい位置を追加する順序は性能に影響を及ぼし得る。たとえば、いくつかの実装形態では、すでに含まれている位置までの距離、またはこれらの位置との接続度(たとえば、両方の位置と重なり合うリードの数)に基づき新しい位置を追加し得る。それに加えて、刈り込みがどのように実行され得るかに関する多くのバリエーションもある。上で述べた例では、刈り込みは、固定された確率閾値に基づいていたが、一般に、刈り込み閾値は、適応的であるか、または存続する候補の数に基づき得る。たとえば、単純な実装形態では、候補の数を固定された数より低く維持するように閾値を設定し得るが、より高度な実装形態では、追加の候補を含める費用便益解析に基づき閾値を設定し得る。
様々な実装形態は、先験的確率P(Gm|R)の代わりに確率P(R|Gm)に基づき刈り込みを実行し得る。これは、同等の鏡像表現の排除をいくつかの領域にわたって(フェーズに加えて)実行することを可能にする利点を有する。この利点は、少なくとも部分的に、様々な事例では有利な場合がある、非常に低い先験的確率を有する候補を刈り込んで取り除くことをしない不利点で相殺される。したがって、有用な解は、シナリオに依存し得る。P(R|Gm)などに基づき、刈り込みが行われた場合、ベイズ計算は、最終反復の後に1回だけ実行される。
さらに、上記の例では、プロセスは、示されているパイルアップ内のすべての塩基位置を処理した後に停止されたが、他の停止基準も可能である。たとえば、塩基位置のサブセットのみが(たとえば、重なり合うブロックを処理するときに)解決される場合、プロセスは、そのサブセットに対する結果が十分な信頼水準で見つかったときに、または信頼度がより多くの位置が加えられるとともに増大を停止したときに停止するものとしてよい。しかしながら、より高度な実装形態が、より多くの位置を加えることの潜在的な価値に対して計算コストに重みを付けて、何らかのタイプの費用便益解析を実行し得る。
先験的確率も有用であり得る。たとえば、上記の例では、単純なIIDモデルが使用されているが、他のモデルも使用されてよい。たとえば、バリアントのクラスタは、IIDモデルによって予測される以上にありふれていることに留意されたい。また、バリアントは参照が異なる位置で生じる可能性がより高いことにも留意されたい。したがって、そのような知識を先験的確率P(Gm)に組み込むことで、検出性能を改善し、よりよいROC曲線を得ることができる。特に、相同領域に対する先験的確率は、ゲノミクスコミュニティではあまりよく理解されておらず、この知識はまだ発展途上であることに留意されたい。したがって、いくつかの実装形態では、よりよい情報が利用可能になるにつれ先験的モデルを更新するものとしてよい。これは、より多くの結果が作成されるとともに自動的に行われ得る。そのような更新は、同じサンプルに対するゲノムの他の生物学的サンプルまたは他の領域に基づくものとしてよく、その学習はより高速で正確な解析をさらに促進するために本明細書における方法に適用され得る。
したがって、いくつかの事例において、反復的MJRDプロセスが実装され得る。特に、本明細書において説明されている方法は、システムの複雑度をさらに低減し、および/またはシステムの検出性能を高めるために関係する領域の間のメッセージパッシングを可能にするように拡張され得る。たとえば、1つの配置での計算の出力は、付近の配置での計算に対する入力された先験的確率として使用され得る。それに加えて、いくつかの実装形態では、所望の性能/複雑度トレードオフを達成するために刈り込みおよび反復の組合せを使用し得る。
さらに、サンプル調製は、MRJDプロセスを最適化するように実装されてよい。たとえば、ペアエンドシークエンシングでは、従来の検出を使用したときに挿入サイズに対する厳密な分布を有していることが有用であり得る。しかしながら、様々な事例において、挿入サイズにバリエーションを導入することで、MRJDに対する性能を著しく改善することも可能である。たとえば、サンプルは、二峰性分布、多峰性分布、または従来の検出に対して典型的には実装される以上に高いバリアントを有する釣鐘状分布を意図的に導入するように調製され得る。
図31は、参照配列類似度を変化させて、N=2となるように、単一相同コピーを有するゲノムの選択された領域上でヒトサンプルNA12878に対するMRJDおよび従来の検出器のROC曲線を例示している。このデータセットでは、101のリード長および約400の平均挿入サイズを有するペアエンドシークエンシングを使用した。図31を見るとわかるように、MRJDでは、従来の検出方法に比べてこれらの領域上で劇的に改善された感度および特異性をもたらす。図32は、1000塩基のウィンドウ上で測定された、参照の配列類似度の変化に応じて表示される同じ結果を例示している(たとえば、参照が1000塩基中10塩基だけ異なる場合、類似度は99.0パーセントである)。このデータセットについては、従来の検出は配列類似度約0.98で良好でない実行を開始するが、MRJDは0.995までさらにはそれを超えてきわめて良好に実行することがわかる。
それに加えて、様々な事例において、この方法は、複雑度をさらに低減し、および/または検出性能を高めるために関係する領域の間のメッセージパッシングを可能にするように拡張され得る。たとえば、1つの配置での計算の出力は、付近の配置での計算に対する入力された先験的確率として使用されてよく、いくつかの実装形態では、所望の性能/複雑度トレードオフを達成するために刈り込みおよび反復の組合せを使用し得る。特定の事例において、上で示されているように、多領域結合検出を実行する前に、バリアントコーラーは、所与の能動領域が個別に、または他の領域と一緒に処理されるべきかどうかを決定し得る。それに加えて、上で示されているように、いくつかの実装形態は、そのような決定を行うためにマッパによって提供される二次アライメントのリストに頼るものとしてよい。他の実装形態では、参照ゲノムの探索に基づきオフラインで計算された、相同領域のデータベースを使用し得る。
上記に照らして、ペア決定隠れマルコフモデル(PD-HMM)が、MRJDの利点を利用するような仕方で実装されてよい。たとえば、MRJDは、各可能な結合ディプロタイプが与えられた場合にリードの一部または全部を観察する確率を別々に推定することができ、これは相同参照領域毎に倍数性毎に1つのハプロタイプを含み、たとえば、二倍体染色体における2つの相同領域について、各結合ディプロタイプは4つのハプロタイプを含む。そのような事例において、可能なハプロタイプの全部または一部が、構築されることなどによって、たとえば、非自明な証拠があるすべてのバリアントの可能なすべてのサブセットで各参照領域を修正することによって考慮され得る。しかしながら、長い相同参照領域では、可能なバリアントの数は大きく、したがって、ハプロタイプの数(バリアントの組合せ)は指数関数的に大きくなり、結合ディプロタイプの数(ハプロタイプの組合せ)は天文学的数字になり得る。
その結果、MRJD計算を扱いやすくするために、すべての可能な結合ディプロタイプを検定することは有用でない場合がある。むしろ、いくつかの事例において、システムは、「最もありそうな」結合ディプロタイプの小さなサブセットのみが検定されるような仕方で構成され得る。これらの「最もありそうな」結合ディプロタイプは、部分的に決定された結合ディプロタイプのツリーをインクリメンタルに構築することによって決定され得る。そのような事例において、ツリーの各ノードは、相同参照領域毎に倍数性毎に部分的に決定されたハプロタイプを含む部分的に決定された結合ディプロタイプであってよい。この事例では、部分的に決定されたハプロタイプは、可能なバリアントの部分的に決定されたサブセットによって修正された参照領域を含み得る。したがって、可能なバリアントの部分的に決定されたサブセットは、バリアントが決定され存在しているか、またはバリアントが決定され存在していないか、またはバリアントがまだ決定されていない、たとえば、存在しているかまたは存在していない場合がある、という3つの状態のうちの1つの、各可能なバリアントに対する指示を含み得る。ツリーのルートでは、すべてのバリアントがすべてのハプロタイプにおいて未決定であり、ルートからさらに連続的に枝分かれするツリーノードでは、より多くのバリアントが各ノードの結合ディプロタイプの各ハプロタイプ内に存在するかまたは存在しないとして連続的に決定される。
さらに、この結合ディプロタイプツリーのコンテキストにおいて、上で説明されているように、MRJD計算量は、すべての結合ディプロタイプノードが他のよりありそうな枝またはノードに関して、ありそうもない、たとえば、中程度から極度まで、ありそうもない、ツリーの枝を切り揃えることによって限定され、扱いやすく保たれる。したがって、そのような切り揃えは、それでもまだ部分的にしか決定されないノードにおける枝において実行されるものとしてよく、たとえば、いくつかのまたは多くのバリアントが、それでも、切り揃えられたノードの結合ディプロタイプのハプロタイプから存在しているか、または存在していないとして決定されない。したがって、そのような事例において、部分的に決定されたハプロタイプの真実を仮定して各リードを観察する尤度を推定するか、または制限することができることが有用である。修正されたペア隠れマルコフモデル(pHMM)計算は、「partially determined pair hidden Markov model」の代わりに「PD-HMM」と表され、真のハプロタイプH*が部分的に決定されたハプロタイプHと一致すると仮定してリードRを観察する確率P(R|H)を推定するのに有用である。このコンテキストにおいて一致するというのは、何らかの特定の真のハプロタイプH*が存在または非存在がHにおいて決定されるすべてのバリアントに関して部分的に決定されたハプロタイプHと一致することを意味するが、Hにおいて未決定であるバリアントについては、H*は各未決定のバリアントによって修正されるかまたは未修正のいずれかの参照配列と一致し得る。
通常のpHMM計算を、決定されたバリアント位置のみを包含するように選択されたHの何らかのより短いサブハプロタイプについて実行することは一般的には適切でないことに留意されたい。その幾何学的順序と一般的にきわめて異なる効率的な順序で解決される未決定のバリアントとともに結合ディプロタイプツリーを構築し、それにより、部分的に決定されたハプロタイプHが決定された位置とインターリーブされた多く未決定のバリアント位置を典型的には有することが一般的に重要である。PCRインデル誤りを適切に考慮するために、未決定のバリアント位置を回避する試みと両立し得ないすべての決定されたバリアントにわたるpHMM類似計算およびそれらの周りの有意な半径を使用することが有用である。
したがって、PD-HMMへの入力は、リードRのコールされたヌクレオチド配列、Rのコールされたヌクレオチドの塩基クオリティスコア(たとえば、phredスケール)、ベースラインハプロタイプH0、およびH0からの未決定のバリアント(編集)のリストを含み得る。未決定のバリアントは、一塩基置換(SNP)、多塩基置換(MNP)、挿入、および欠失を含み得る。有利には、未決定のSNPおよび欠失をサポートすることは適切であり得る。未決定のMNPは、不完全に、ただし、適切に、多数の独立したSNPとして表され得る。未決定の挿入は、ベースラインハプロタイプへの挿入を最初に編集し、次いで、その挿入を元に戻す対応する未決定の欠失を示すことによって表され得る。
未決定の欠失に制限が課されるものとしてよく、それにより、限定された状態メモリおよび論理によるハードウェアエンジン実装を円滑にし、たとえば、2つのどの未決定の欠失も重なり合わない(同じベースラインハプロタイプ塩基を削除する)。部分的に決定されたハプロタイプが、そのような制限に違反する未決定のバリアントで検定されなければならない場合、これは、存在している、または存在していないバリアントの場合をカバーする、より多くのPD-HMMオペレーションにおいて、1つまたは複数の未決定のバリアントを決定されたバリアントに変換することによって解決され得る。たとえば、2つの未決定の欠失AおよびBがベースラインハプロタイプH0において互いに重なり合うことによって違反する場合、欠失Bは、H0内へ編集されて、H0Bを生み出すものとしてよく、2つのPD-HMMオペレーションは、未決定の欠失Aのみを使用して実行されてよく、一方はベースラインハプロタイプH0に対して、もう一方はベースラインハプロタイプH0Bに対して実行されてよく、2つのPD-HMMオペレーションの最大確率出力が保持され得る。
PD-HMMオペレーションの結果は、未決定のバリアントのサブセットでH0を編集することによって形成され得るすべてのハプロタイプH*のうちの最大P(R|H*)の推定値であり得る。最大化は、局所的に行われるものとしてよく、隣接する未決定のバリアントがハプロタイプから存在しているか、または存在していないかの、どちらかがよいスコアを出す、たとえば、より大きい部分的確率をもたらす場合のように、所与のセル内でpHMM類似の動的プログラミングに寄与する。動的プログラミングにおけるそのような局所的最大化は結果として、個別の純粋なH*ハプロタイプ上で真の最大化に比べて最大P(R|H*)の推定値を大きくし得るが、その差異は一般的に重要でない。
未決定のSNPは、1つまたは複数のマッチするヌクレオチド値が各ハプロタイプ位置について指定されることを可能にすることによってPD-HMMに組み込まれ得る。たとえば、H0の塩基30が'C'であり、未決定のSNPがこの'C'を'T'で置き換える場合、PD-HMMオペレーションのハプロタイプは、両方の塩基'C'および'T'とマッチするものとして位置30を示し得る。通常のpHMM動的プログラミングでは、'M'状態に遷移すると結果として、経路確率に正しい塩基コールの確率(ハプロタイプ位置がリード位置にマッチする場合)または特定の塩基コール誤りの確率(ハプロタイプ位置がリード位置とミスマッチである場合)を乗算することになり、PD-HMMについて、これはリード位置がいずれかの可能なハプロタイプ塩基(たとえば、'C'または'T')とマッチする場合に正しいコールの確率、およびそうでない場合に塩基コール誤りの確率を使用することによって修正される。
未決定のハプロタイプ欠失は、任意選択で削除されたハプロタイプ位置にフラグを立て、pHMMの動的プログラミングを修正して、アライメント経路が確率喪失せず未決定の欠失ハプロタイプセグメントにわたって水平にスキップすることを可能にすることによってPD-HMM内に組み込まれ得る。これは、様々な方式で行われ得るが、共通の特性により、M、I、および/またはD状態におけるその確率値は、通常のギャップオープンまたはギャップエクステンド確率によって低減されることなく未決定の欠失のスパンにわたって水平に伝わり得る(ハプロタイプ軸に沿って)。
特定の一実施形態において、未決定の欠失が始まるハプロタイプ位置は「F1」のフラグを立てられ、未決定の欠失が終了する位置は、「F2」のフラグを立てられる、HMM行列の各セル(ハプロタイプ水平/リード垂直)に対するM、I、およびD「状態」(部分的確率表現)に加えて、各PD-HMMセルは、BM、BI、およびBD「バイパス」状態をさらに含み得る。F1のフラグが立てられたハプロタイプ列では、BM、BI、およびBD状態は、セルのM、I、およびD状態から左にそれぞれコピーされた値を受け取る。F2のフラグが立てられていないハプロタイプ列、特にF1のフラグが立てられた列端から始まり未決定の欠失の内側に延在する列において、BM、BI、およびBD状態はその値をセルの右のBM、BI、およびBD状態にそれぞれ伝送する。F2のフラグが立てられているハプロタイプ列では、隣接するセルの状態を計算するために使用されるM、I、およびD状態の代わりに、それぞれ、MおよびBMのうちの最大が使用され、IおよびBIのうちの最大が使用され、DおよびBDのうちの最大が使用される。これは、MおよびBM、IおよびBI、ならびにDおよびBDのレジスタからの信号の多重化選択としてF2列内に例示されている。
BM、BI、およびBD状態レジスタはF1からF2列で表され、M/BM、I/BI、およびD/BDマルチプレクサを最大化することはF2列内に示され得るが、これらのコンポーネントは、すべてのセル計算について存在するものとしてよく、これにより、未決定の欠失が任意の位置で取り扱われることを可能にし、ハプロタイプ全体を通して対応するF1およびF2フラグとともに複数の未決定の欠失を可能にすることに留意されたい。また、F1およびF2フラグは、一塩基の未決定の欠失の場合に、同じ列内にあってよいことに留意されたい。さらに、セルのPD-HMM行列は、論理M、I、D、BM、BI、およびBD状態計算の略図として、ただしハードウェア実装形態で示されてよく、より少ない数のセル計算論理素子が存在し、高いクロック周波数でM、D、I、BM、BI、およびBD状態値を計算するために適切にパイプライン化されてよく、行列セルは、ハードウェアの様々な並列度により、PD-HMM計算の内在する論理的依存関係と整合する様々な順序で計算され得ることにも留意されたい。
したがって、この実施形態では、1つの列におけるpHMM状態値は、未決定の欠失のすぐ左にあり、これはキャプチャされ右方向に、変更されず、この未決定の欠失の一番右の列へ伝送されるものとしてよく、そこで、これらは通常経路スコアを上げる限りpHMM計算に代わる。これらの最大が選択された場合、「バイパス」状態値BM、BI、およびBDは、未決定の欠失が存在しているとみなされる局所的動的プログラミング結果を表し、「通常」状態値M、I、およびDは、未決定の欠失が存在していないとみなされる局所的動的プログラミング結果を表す。
別の実施形態において、単一のバイパス状態が使用されてよく、たとえば、BM状態はF1フラグを立てられた列においてM状態から受け取るか、またはM、D、および/またはI状態の総和を受け取る。別の実施形態では、「バイパス」状態を使用する代わりに、ギャップオープンおよび/またはギャップエクステンドペナルティが未決定の欠失の列内で排除される。別の実施形態では、バイパス状態は、局所的最大化ではなく、未決定の欠失の右方向で動的プログラミングに付加的に寄与する。さらなる実施形態では、未決定の欠失に含まれるかどうかを示す単一のフラグなどの、より多いまたはより少ないまたは異なる定義のまたは異なる配置のハプロタイプ位置フラグが、バイパスまたは類似の挙動をトリガーするために使用される。追加の実施形態において、2つまたはそれ以上の重なり合う未決定の欠失は、追加のフラグおよび/またはバイパス状態の使用などに加わり得る。それに加えて、ハプロタイプにおける未決定の挿入は、未決定の欠失よりはむしろ、またはそれに加えて、サポートされている。同様に、リード軸上の未決定の挿入および/または欠失は、ハプロタイプ軸上の未決定の欠失および/または挿入よりはむしろ、またはそれに加えて、サポートされる。別の実施形態において、未決定の多ヌクレオチド置換は、アトミックバリアント(すべて存在するか、またはすべて存在しない)としてサポートされる。さらなる実施形態において、未決定の可変長置換は、アトミックバリアントとしてサポートされる。別の実施形態では、未決定のバリアントは、固定された、または構成可能な確率またはスコア調整をペナルティとして課される。
このPD-HMM計算は、「通常の」pHMM計算に対するハードウェアエンジンアーキテクチャの拡張によって、FPGAまたはASIC技術などでハードウェアエンジンとして実装され得るか、または量子コンピューティングプラットフォームにおいて1つまたは複数の量子回路によって実装され得る。様々なまたは連続するセルに対するM、I、およびD状態値を計算し、伝送し、記憶するためのエンジンパイプライン論理に加えて、本明細書において上で説明されているように、BM、BI、およびBD状態値を計算し、伝送し、および記憶するために並列パイプライン論理が構築され得る。M、I、およびD状態値の記憶および取り出しのためのメモリリソースおよびポートには、BM、BI、およびBD状態値の記憶および取り出しのための類似のまたはより広いまたはより深いメモリリソースおよびポートが随伴し得る。F1およびF2などのフラグは、関連付けられているハプロタイプ塩基とともにメモリに記憶され得る。
たとえば、未決定のSNPハプロタイプ位置に対する多数のマッチングヌクレオチドは、可能なヌクレオチド値毎に1ビットのベクトルを使用するなどして、任意の方式で符号化され得る。pHMM行列におけるセル計算依存関係は、P-HMMにおいて無変更であり、したがって多数のセル計算の順序およびパイプライン化は、PD-HMMに対しても同じままであり得る。しかしながら、完全なセル計算に対する時間および/またはクロックサイクルの待ち時間は、「通常」および「バイパス」状態値を比較し、より大きい値を選択する必要があるため、PD-HMMに対して幾分長くなる。したがって、PD-HMMセル計算に対する1つまたは複数の余分なパイプラインステージを含めることが有利である場合があるが、その結果、待ち時間のクロックサイクルが増える。それに加えて、1つまたは複数の行で計算されるセルの各「スワス」を広くして、依存問題を生じることなく長いパイプラインを満たされたままにすることはさらに有利であり得る。
このPD-HMM計算は、通常のpHMM計算の2倍の数の状態値(M、I、およびDに加えて、BM、BI、およびBD)を追跡し、同等のスループットのエンジン実施形態に対するハードウェアリソースの約2倍を必要とし得る。しかしながら、PD-HMMエンジンは、存在しているか、または存在していない未決定のバリアントの異なる組合せを表す各ハプロタイプに対する1回の通常のpHMMエンジンの実行に対して、未決定のバリアントの数を増やために指数関数的な速度および効率の利点を有する。たとえば、部分的に決定されたハプロタイプが、30個の未決定のバリアントを有し、その各々が独立して存在するかまたは存在していない場合、pHMMが他の場合には処理する必要がある2^30、または10億より多い、異なる特定のハプロタイプがある。
したがって、本明細書で開示されているこれらのおよび他のそのようなオペレーションは、リードが参照に関して変化するように対象のゲノムに対して生じたものをよりよく理解し、正確に予測するために実行され得る。たとえば、突然変異の発生がランダムであるとしても、その発生の尤度がある程度潜在的に予測可能であるように見える事例がある。特に、いくつかの事例において、突然変異が生じたときに、それらはいくつかの定義された配置およびいくつかの形態で生じ得る。より具体的には、突然変異は、それが発生した場合、一方のまたは別のアレルまたは両方のアレル上で生じ、染色体の末端など、他の配置よりも特定の配置で生じる傾向を有する。その結果、このおよび他の関連付けられている情報は、突然変異モデルを開発するために使用されてよく、これを生成および使用し、ゲノムの1つまたは複数の領域における突然変異のありそうな存在をよりよく評価し得る。たとえば、様々な先験的知識、たとえば、1つまたは複数の突然変異モデルを考慮することによって、ゲノムバリエーション解析を実行するときに、よりよいおよびより正確なゲノム解析結果が、遺伝的突然変異のより正確な区別などとともに得られるものとしてよい。
そのような突然変異モデルは、様々な知られている突然変異および/または互いに連携してまたは他の何らかの形でランダムでなく起きるように見える突然変異の頻度および/または配置について説明し得る。たとえば、所与の染色体の末端の方へバリエーションがより優勢に生じると決定されている。したがって、突然変異の知られているモデルが生成され、本明細書のデータベースに記憶され、システムによって使用され、解析されているゲノムデータ内の1つまたは複数のバリエーションの存在をより正確に予測することができる。それに加えて、本明細書において以下でより詳しく説明されているような、機械学習プロセスも、本明細書において実行される解析によって導出される様々な結果データが解析され、本明細書で開示されている機械学習原理などに従って、特定のバリアントコールをいつ行うべきかなどについてシステムにより適切に知らせるように使用され得るように実装され得る。特に、機械学習は、集合的データセット上で、特に決定されたバリエーションに関して実装されるものとしてよく、この学習は、その後より正確なバリアント決定を行うために使用され得るより包括的な突然変異モデルをよりよく生成するために使用され得る。
したがって、システムは、様々なバリエーションデータをすべて観察し、様々な相関に対するそのデータをマイニングするように構成されてよく、相関が見つかった場合に、そのような情報は、進行中などにおいて、他のゲノムサンプル内の他のバリエーションの存在によりよく重み付けし、したがってより正確に決定するために使用され得る。したがって、このような方式で、システム、特にバリアントコーリングメカニズムは、バリアントコールをよりよく前進させ、よりよい、より正確な結果データを取得するために学習されたバリアント相関データに関して常時更新され得る。
特に、テレメトリーは、成長する突然変異モデルを更新しシステムにおけるよりよい解析を達成するために使用され得る。これは、同じ地理的集団内にあることなどから、何らかの方法で互いに接続されているサンプルを解析するときに特に有用であり得、および/または多数の参照ゲノムのうちのどの参照ゲノムが特定のサンプルを解析するために使用するよりよい参照ゲノムであり得るかを決定するために使用されてよい。さらに、様々な事例において、突然変異モデルおよび/またはテレメトリーは、システムプロセスにおいて使用されるべき参照ゲノムをよりよく選択し、それによってシステムの結果の精度および効率を高めるために使用されてよい。特に、複数の参照ゲノムが本明細書の解析のうちの1つまたは複数で使用される場合、特定の参照ゲノムが、突然変異モデルを適用して適用する最も適している参照ゲノムを選択することなどによって他のものよりも使用について選択され得る。
二次解析を実行するときに、マッピングされ、アライメントされるゲノムの各領域に対する基本構造は1つまたは複数の基礎となる遺伝子を含み得ることに留意されたい。したがって、様々な事例において、基礎となる遺伝子および/またはそれらがコードするタンパク質の機能をこのように理解することは、二次解析を実行するときに有益な情報をもたらし得る。特に、三次指示および/または結果は、生物学的なコンテキスト的に敏感な突然変異モデルのプロセスなどにおいて、本発明のシステムによって実行される二次解析プロトコルにおいて有用であり得る。より具体的には、DNAは遺伝子をコードし、その遺伝子はタンパク質をコードするので、突然変異および/または嫌悪すべき機能を結果として引き起こすそのようなタンパク質に関する情報は、対象のゲノムに対する二次および/または三次解析の実行に使用される突然変異モデルに情報を与えるために使用され得る。
たとえば、突然変異タンパク質に対する遺伝子コーディングのサンプルセットなどに対する三次解析は、そのような突然変異についてコードすることが知られているゲノム領域の二次解析を実行するときに有益な情報をもたらし得る。したがって、上で述べたように、様々な三次処理結果が、本明細書で開示されている様々な二次解析オペレーションを実行するときによりよい精度および効率を達成するために本明細書で使用されている突然変異モデルに情報を提供し、または突然変異モデルを更新するために使用され得る。特に、突然変異タンパク質、たとえば、コンテキスト三次解析に関する情報は、タンパク質をコードし、および/または潜在的にそのような突然変異を含むことが知られている領域の二次解析を実行するときに突然変異モデルを更新するために使用され得る。
したがって、上記に照らして、FPGA加速マッピング、アライメント、ソーティング、および/またはバリアントコーリングアプリケーションを伴う実施形態について、これらの機能のうちの1つまたは複数は、従来のCPU、GPU、QPU上で実行されるソフトウェアおよび/またはFPGA、ASIC、sASIC、および同様のもので具現化され得るようなファームウェアなどの、ソフトウェアおよびハードウェア(HW)処理コンポーネントのうちの一方または両方で実装されてよい。そのような事例において、CPUおよびFPGAは、他方のデバイス上の次のステップで処理されるように、一方のデバイス、たとえば、CPUまたはFPGA上の一方のステップから結果を渡すために通信することができる必要がある。たとえば、マッピング機能が実行される場合、参照のインデックスなどの、大きいデータ構造体の構築は、CPUによって実装されてよく、それに関するハッシュ関数の実行は、FPGAによって実装されてよい。そのような事例において、CPUは、データ構造体を構築し、それをDRAMなどの、関連付けられているメモリに記憶するものとしてよく、メモリは、次いで、FPGA上で実行される処理エンジンによってアクセスされ得る。
たとえば、いくつかの実施形態において、CPUとFPGAとの間の通信は、PCIeバスなどの周辺機器用バス、USB、またはEthernetなどのネットワーキングインターフェースなどの、好適なインターコネクトによって実装され得る。しかしながら、PCIeバスは、CPUとFPGAとの間の比較的緩い一体化であってよく、それによって、これら2つの間の伝送待ち時間は、比較的高いものとなり得る。したがって、一方のデバイス(たとえば、CPUまたはFPGA)は、(たとえば、DMA転送によって)他方のデバイスに取り付けられているメモリにアクセスし得るが、アクセスされるメモリ領域は、2つのデバイスの間のキャッシュコヒーレンシを維持する機能がないので、キャッシュ不能である。その結果、CPUとFPGAとの間の伝送は、大きい高水準処理ステップの間で行われるように制約され、大量の入力および出力は、高遅延オペレーションを待ち互いにスローダウンさせないようにデバイスの間でキューに入れられなければならない。これは、本明細書で開示されている様々な処理オペレーションをスローダウンさせる。さらに、FPGAはキャッシュ不能なCPUメモリにアクセスするときに、そのようなアクセスの全負荷がCPUの外部メモリインターフェースにかけられ、これらは内部キャッシュインターフェースと比較して帯域幅に制限がある。
したがって、そのような緩いCPU/FPGA一体化のせいで、FPGAインターフェースをソフトウェアで「集中方式」により制御することが一般的に必要である。そのような事例において、様々なソフトウェアスレッドが様々なデータユニットを処理している可能性があるが、これらのスレッドがFPGAエンジンが実行すべき作業を生成するときに、その作業は、単一のアグリゲータソフトウェアスレッド、またはセマフォを介してアグリゲーションアクセスをロックする複数のスレッドのいずれかなどによって、「中央」バッファにアグリゲートされなければならず、DMAパケットを介したアグリゲートされた作業の伝送はカーネル空間ドライバなどの、中央ソフトウェアモジュールによって管理される。したがって、結果がHWエンジンによって作成されると、逆プロセスが生じ、ソフトウェアドライバがHWからDMAパケットを受信し、デアグリゲータスレッドが結果を様々な待機ソフトウェアワーカースレッドに分配する。しかしながら、HW FPGA論理の通信のこの中央集中ソフトウェア制御は、扱いにくく、リソース使用量の点でも高くつき、ソフトウェアスレッディングおよびHW/ソフトウェア通信の効率を低下させ、実用的なHW/ソフトウェア通信帯域幅を制限し、その待ち時間を劇的に増大させる。
それに加えて、図33Aを見るとわかるように、CPU1000とFPGA7との間の緩い一体化は、各デバイスがDRAM1014、14などのそれ専用の外部メモリを有していることが必要になり得る。図33Aに示されているように、CPU1000は、システムマザーボード上に、DDR3またはDDR4 DIMMなどのそれ専用のDRAM1014を有し、FPGA7は、高遅延PCIeバスなどの、1つまたは複数のDDR3バス6を介してFPGA7に直接接続され得る、4個の8GB SODIMMなどの、それ専用のDRAM14を有する。同様に、CPU1000は、適切に構成されたバス1006などによって、それ専用のDRAM1014に通信可能に結合され得る。上に示されているように、FPGA7は、1つまたは複数の処理エンジン13を備えるように構成されてよく、処理エンジンは、本明細書で説明されているようなバイオインフォマティクスパイプラインにおいて1つまたは複数の機能を実行するように構成されてよく、たとえば、FPGA7は、マッピングエンジン13a、アライメントエンジン13b、およびバリアントコールエンジン13cを備える。本明細書において説明されているような他のエンジンも、含まれ得る。様々な実施形態において、CPUの一方または両方は、1つまたは複数のメモリおよび/または処理エンジンなどの、システムの様々なコンポーネントのうちの1つまたは複数によって転送される結果データなどの、データを記憶することができる、キャッシュ1014a、14aをそれぞれ備えるように構成されてよい。
ゲノム処理のためFPGA7によって実行されるべき、本明細書で開示されているオペレーションの多くは、基礎となるオペレーションの実行のために大量のメモリアクセスを必要とする。特に、大きなデータユニット、たとえば、30億+のヌクレオチド参照ゲノム、シークエンサリードデータの1000億+のヌクレオチドなどが伴うので、FPGA7は、30GBのハッシュテーブルまたは他の参照ゲノムインデックスなどの、インデックスにアクセスするため、配列決定DNA/RNAクエリからシードを3Gbp参照ゲノムにマッピングすることを目的として、および/またはたとえば、参照ゲノムから候補セグメントをフェッチしてアライメントするなどのために、ホストメモリ1014に大量の回数アクセスする必要があり得る。
したがって、本明細書において開示されているシステムの様々な実装形態において、多数の高速ランダムメモリアクセスが、マッピング、アライメント、および/またはバリアントコーリングオペレーションの実行などする際に、ハード配線された処理エンジン13のうちの1つまたは複数により行われる必要があり得る。しかしながら、FPGA7が周辺機器用バス3または他のネットワーキングリンクを介してホストCPU1000に取り付けられているメモリ1014にそれだけ多くの小さなランダムアクセスを行うことはきわめて非現実的であり得る。たとえば、そのような事例において、リターンデータの待ち時間は非常に高く、たとえばそのような小さなランダムアクセスには、バス効率は非常に低く、CPU外部メモリインターフェース1006にかかる負担は、きわめて大きいものとなり得る。
それに加えて、各デバイスがそれ専用の外部メモリを必要とする結果、完全なCPU1000+FPGA7プラットフォームの典型的なフォームファクタは、たとえばいくつかのアプリケーションに望ましい大きさ以上に大きくせざるを得ない。そのような事例において、1つまたは複数のCPU1000ならびにサポートチップ7およびメモリ1014および/または14用の標準的なシステムマザーボードに加えて、大きいFPGAパッケージ(いくつかの外部メモリバスのために十分なピンを有するためにより大きくする必要すらあり得る)およびいくつかのメモリモジュール1014、14のためにボード上に余地が必要である。しかしながら、標準的なマザーボードは、これらのコンポーネントを含まず、またそれらのための余地も容易に確保できず、したがって、実用的な実施形態は、FPGA7、それのメモリ14、およびたとえば、CPUマザーボード上のPCIe拡張スロットに接続されている、電源などの他のサポートコンポーネントを搭載した、拡張カード2を利用するように構成され得る。拡張カード2用の余地を有するために、システムは、1Uまたは2Uまたはより大きいラックマウントサーバなどの、十分に大きいシャーシ内に入るように製作され得る。
上記に照らして、様々な事例において、図33Bを見るとわかるように、これらの問題点を克服するために、CPU1000をFPGA7と密結合配置構成をとるように構成することが望ましいと思われる。特に、様々な事例において、FPGA7は、クイックパスインターコネクト(QPI)などの、低遅延インターコネクト3などによって、CPU1000に密結合され得る。特に、より緊密なCPU+FPGA一体化を確立するために、これら2つのデバイスは、INTELS(登録商標)クイックパスインターコネクト(QPI)またはHyperTransport(HT)などの、「プロセッサインターコネクト」または類似のものなどの、好適な低遅延インターフェースによって接続され得る。
したがって、図33Bを見るとわかるように、システム1が実現され、システムは、CPU1000およびFPGA7などのプロセッサの両方を含み、両方のデバイスは、1つまたは複数のメモリモジュールに関連付けられる。たとえば、図示されているように、CPU1000は、適切に構成されているバス1006などを介して、DRAM1014に結合されてよく、同様に、FPGA7は、DDR3バス6を介して関連付けられているメモリ14に通信可能に結合される。しかしながら、この事例では、典型的な高遅延インターコネクト、たとえば、PCIeインターフェースなどによって互いに結合される代わりに、CPU1000は、QPIなどの、低遅延ハイパー転置インターコネクト3によってFPGA7に結合される。そのような事例において、そのようなインターコネクトの固有の低遅延性により、CPU1000およびFPGA7の関連付けられているメモリ1014、14は、互いに容易にアクセス可能である。それに加えて、様々な事例において、この密結合構成により、デバイスに関連付けられている1つまたは複数のキャッシュ1114a/14aは、互いに関してコヒーレントになるように構成され得る。
そのような密結合CPU/FPGAインターコネクトのいくつかの重要特性は、高帯域幅、たとえば、12.8GB/s、低遅延、たとえば、100~300ns、リモートメモリアクセスを効率よく行えるように設計されている適応プロトコル、および効率的な小メモリ転送、たとえば、64バイト以下のオーダー、ならびにキャッシュアクセスおよびキャッシュコヒーレンスのためのサポートされているプロトコルおよびCPU一体化を含む。そのような事例において、所与のCPU1000とのそのような緊密な一体化に使用する自然なインターコネクトは、ネイティブCPU間インターコネクト1003であってよく、これは本明細書では、多数のコアおよび多数のCPUが共有メモリ1014空間内で並列動作することを可能にし、それによって、互いのキャッシュスタックおよび外部メモリにキャッシュコヒーレントにアクセスすることを可能にするために使用され得る。
したがって、図34Aおよび図34Bを見るとわかるように、ボード2が実現されるものとしてよく、たとえば、ボードは、ネイティブCPU間インターコネクト1003aおよび1003bなどの、複数のインターコネクト1003などを介して、1つまたは複数のCPU1000を受け入れるように構成され得る。しかしながら、この事例では、図34Aに示されているように、CPU1000は、インターコネクト1003aに結合されるように構成されるが、別のCPUがインターコネクト1003bを介してそれに結合されるのではなくむしろ、本開示のFPGA7は、それに結合されるように構成される。それに加えて、システム1は、CPU1000が、低遅延密結合インターコネクト3などによって、関連付けられているFPGA7に結合されるように構成される。そのような事例において、それぞれのデバイス1000、7に関連付けられている各メモリ1014、14は、高帯域幅キャッシュコヒーレントなどの方式で、互いにアクセス可能なように形成され得る。
同様に、図34Bを見るとわかるように、システムは、また、パッケージ1002aおよび/または1002bを受け入れるように構成されてよく、たとえば、パッケージの各々は、たとえば、低遅延インターコネクト3aおよび3bを介して、1つまたは複数のFPGA7a、7bに、密結合されている1つまたは複数のCPU1000a、1000bを備え、たとえば、システムアーキテクチャが与えられた場合に、各パッケージ2aおよび2bは、密結合インターコネクト3などを介して、互いに結合され得る。さらに、図35を見るとわかるように、様々な事例において、パッケージ1002aが実現されるものとしてよく、パッケージ1002aは、FPGA7などの集積回路と密結合されるような方式で製作されているCPU1000を備える。そのような事例において、CPU1000およびFPGA7が密結合されているため、システムは、それらが、記憶されているデータなどに関して、整合性があり、コヒーレントであり、いずれかのデバイスによって容易にアクセス可能であるような仕方で、キャッシュ1014aを直接共有することができるように構築され得る。
したがって、そのような事例において、FPGA7および/またはパッケージ2a/2bは、事実上、別のCPUのふりをすることができ、それによって、ちょうど多数のCPUがマルチソケットマザーボード1002上にある、または多数のCPUコアがマルチコアCPUデバイス内にあるかのように、1つまたは複数のCPUとのキャッシュコヒーレントな共有メモリ環境で動作することができる。そのようなFPGA/CPUインターコネクトにより、FPGA7は、含まれるか、含まれないか、またはアクセスされることがあってもなくてもよい、それ専用の外部メモリ14を有するのではなくむしろ、CPUメモリ1014を効率的に共有することができる。したがって、そのような構成では、高速な短いランダムアクセスが、低遅延などの特性を有する、インターコネクト3によって効率的にサポートされる。これは、FPGA7における様々な処理エンジン13がCPUメモリ1000内の大きなデータ構造体にアクセスすることを実用的で効率的な操作にする。
たとえば、図37を見るとわかるように、本明細書で開示されている方法のうちの1つまたは複数を実行するためのシステムが実現され、たとえば、この方法は、共有方式で、本明細書において説明されているように、1つまたは複数のマッピングおよび/またはアライメントおよび/またはバリアントコーリング機能などの、本開示の機能を実行するための1つまたは複数のステップを含む。特に、1つのステップ(1)において、NGSおよび/またはCPU1000などによって、データ構造体が生成されるか、または他の何らかの形で提供されてよく、そのデータ構造体は、次いで、DRAM1014などの、関連付けられているメモリ(2)に記憶され得る。データ構造体は、本明細書において説明されているものに関するものなど、任意のデータ構造体であってよいが、この事例では、マッピングおよび/またはアライメントおよび/またはバリアントコーリング機能の実行などのための、配列決定データの複数のリードおよび/または参照ゲノムおよび/または参照ゲノムのインデックスであってよい。
第2のステップ(2)において、マッピングおよび/またはアライメント、などの、機能などに関して、密結合インターフェース3などによって、CPU1000に関連付けられているFPGA7は、CPU関連メモリ1014にアクセスし、記憶されている配列決定リード、参照ゲノム、および/またはそのインデックスに関して1つまたは複数のアクションを実行し得る。特に、ステップ(3)において、たとえば、例示的なマッピングオペレーションにおいて、FPGA7は、データ構造体、たとえば、配列決定リードおよび/または参照配列にアクセスし、そこから1つまたは複数のシードを作成するものとしてよく、たとえば、データ構造体は1つもしくは複数のリードおよび/またはゲノム参照配列を含む。そのような事例において、シード、たとえば、または参照および/またはリード配列は、それに関するハッシュ関数を実行することを目的として使用され、それにより、参照ゲノムに関して1つまたは複数の位置にマッピングされている1つまたは複数のリードを作成し得る。
さらなるステップ(3)において、マッピングされた結果データは、たとえば、ホストメモリ1014または関連付けられているDRAM14のいずれかに記憶され得る。それに加えて、データがマッピングされた後、FPGA7、またはその処理エンジン13は、アライメントエンジンとして再構成され、たとえば、部分的に再構成されてよく、次いでこのエンジンは記憶されているマッピングされたデータ構造体にアクセスし、そのデータ構造体に対してアライメント機能を実行し、参照ゲノムにアライメントされている1つまたは複数のリードを作成し得る。追加のステップ(4)において、ホストCPUは、次いで、マッピングされおよび/またはアライメントされたデータにアクセスし、De Bruijnグラフ(「DBG」)の作成などのために、1つまたは複数の機能をそれに実行するものとしてよく、次いで、DBGはその関連付けられているメモリ内に記憶され得る。同様に、1つまたは複数の追加のステップにおいて、FPGA7は、もう一度、ホストCPUメモリ1014にアクセスしてDBGにアクセスし、それに対してHMM解析を実行し、1つまたは複数のバリアントコールファイルを作成し得る。
特定の事例において、CPU1000および/またはFPGA7は、本明細書における1つまたは複数の機能を実行した結果などの、記憶されている、一時的データ、たとえば、結果データなどに関して、2つのデバイスの間のインターフェースの密結合により、別々のキャッシュがコヒーレントであるようにできる1つまたは複数のメモリキャッシュを有し得る。このような方式で、データは密結合デバイスの間で実質的にシームレスに共有されるものとしてよく、それによって、バイオインフォマティクスパイプラインなどにおける機能のパイプラインが組み上げられるようにできる。したがって、そのような事例において、FPGA7がそれ専用の外部メモリ14を取り付けている必要がもはやなくなり、したがって、そのような密結合構成により、本明細書において説明されているような、記憶されているリード、参照ゲノム、および/または参照ゲノムインデックスは、リードマッピングおよびアライメント、ならびに他のゲノムデータ処理オペレーションなどのために、たとえば、キャッシュコヒーレントな方式で、集約的に共有され得る。
それに加えて、図38を見るとわかるように、低遅延およびキャッシュコヒーレンス構成、さらには本明細書において説明されている他のコンポーネント構成は、さらなる処理などのために、データ構造体または処理スレッド20を他方のデバイスに戻す前に、より小さい、より低水準のオペレーションが一方のデバイス(たとえば、CPUまたはFPGA内の)で実行されることを可能にする。たとえば、1つの事例において、CPUスレッド20aは、FPGAハードウェア論理13が処理する大量の作業をキューに入れるように構成されてよく、同じまたは別のスレッド20bは、実質的に後の時間などに、処理によって生成された結果データの大きいキューを次いで処理するように構成されてよい。しかしながら、様々な事例において、本明細書に提示されているように、単一のCPUスレッド20が結合されているFPGAハードウェアエンジン13へのブロッキング「ファンクションコール」を実行するのがより効率的であり得、CPUはFPGAのハードウェア機能が完了すると直ちにソフトウェア実行を再開するように設定され得る。したがって、データ構造体をパケットにパッケージしてDMA14によってFPGA7にストリーミングし、それらが戻ったときに結果を展開するのではなくむしろ、ソフトウェアスレッド20が、FPGAエンジン13にメモリポインタを単純に提供し、これによりキャッシュコヒーレントな方式で、適所にある共有メモリ1014/14にアクセスし、修正することが可能になる。
特に、本明細書において実現される構造体の間の関係が与えられた場合、ソフトウェア/ハードウェアオペレーションの粒度は、かなり細かくなり得、かなり小さく、より低水準のオペレーションが様々な割り振られているソフトウェアスレッド20からのファンクションコールなどの、様々なハードウェアエンジン13によって実行されるように割り振られる。たとえば、緩いCPU/FPGAインターコネクトプラットフォームでは、DNA/RNAリードマッピング、アライメント、および/またはバリアントコーリングの効率的な加速化のために、完全なマッピング/アライメント/バリアントコーリングパイプラインが、1つまたは複数のソフトウェアおよび/またはFPGAエンジンとして構築されてよく、アンマッピングされ、アンアライメントされたリードはソフトウェアからハードウェアにストリーミングされ、完全にマッピングされアライメントされたリードはハードウェアからソフトウェアにストリーミングされて戻され、このプロセスはバリアントコーリングなどについて繰り返され得る。本明細書で説明されている構成について、これは非常に高速であり得る。しかしながら、様々な事例において、そのようなシステムは、FPGAで再構成可能ではあるが、一般的に、ソフトウェアに比べて柔軟性およびプログラム可能性がかなり低く、したがって、あまりアルゴリズム的でない複雑さに限定され得る、ハードウェア回路でマッピング/アライメントおよび/またはバリアントコールパイプライン全体が実装されるので、柔軟性、複雑度、および/またはプログラム可能性の制限を抱え得る。
対照的に、本明細書で開示されている構成のQPIまたは他のインターコネクトなどの、密CPU/FGPAインターコネクトを使用することで、シード生成および/またはマッピング、レスキュースキャン(rescue scanning)、無ギャップアライメント、ギャップ、たとえば、Smith-Waterman、アライメントなどのいくつかのリソース大量消費ディスクリートオペレーションは、異なる別々にアクセス可能なハードウェアエンジン13として実装されるものとしてよく、これについてはたとえば図38が参照され、全体的なマッピング/アライメントおよび/またはバリアントコールアルゴリズムはソフトウェアで実装されるものとしてよく、特定の費用が高い処理ステップに対してFPGAへの低水準加速コールを行う。このフレームワークは、特定の加速コールの外で、完全なソフトウェアプログラム可能性を可能にし、標準のハードウェア実装オペレーションに比べてアルゴリズム複雑度および柔軟性を高めることを可能にする。
さらに、ディスクリート低水準FPGAハードウェア加速化コールによって加速されるソフトウェア実行のそのようなフレームワークにおいて、ハードウェア加速化機能は、複数の目的についてより容易に共有され得る。たとえば、ハードウェアエンジン13が大きいモノリシックパイプラインを形成したときに、個別のパイプラインサブコンポーネントは、一般的に、それらの環境に合わせて専用化され、1つのパイプライン内でのみ相互接続され得るが、これは密結合されていない限り、一般的には、任意の目的についてアクセス可能とはなり得ない。しかし、Smith-Watermanアライメント、無ギャップアライメント、De Bruijnまたはアセンブリグラフ構築、および他のオペレーションなどの、多くのゲノムデータ処理オペレーションは、様々なより高い水準の親アルゴリズムにおいて使用され得る。たとえば、本明細書で説明されているように、Smith-Watermanアライメントは、DNA/RNAリードマッピングおよびアライメントにおいて、参照ゲノムなどに関して使用され得るが、HMM解析および/またはバリアントコール機能などにおいて、候補ハプロタイプを参照ゲノムに、または互いに、または配列決定リードにアライメントするために、ハプロタイプペースのバリアントコーラーによって使用されるようにも構成され得る。したがって、一般的なソフトウェアファンクションコールを介して様々なディスクリート低水準ハードウェア加速機能を公開することで、同じ加速論理、たとえば13が、両方のアライメントおよびバリアントコーリング、たとえば、HMM、オペレーションの実行などで、ゲノムデータ処理アプリケーション全体を通して利用されることを可能にし得る。
また、密CPU/FPGA相互接続により、本明細書で説明されている様々なFPGAハードウェアエンジン13との通信に対して中央集中型ではなくむしろ分散型CPU1000によりソフトウェア制御を行うことが実用的である。広く実践されているマルチスレッド、マルチコア、マルチCPUソフトウェア設計では、多くのソフトウェアスレッドおよびプロセスが、相互通信を管理するための中心的なソフトウェアモジュール、ドライバ、またはスレッドなしで、シームレスに通信し、連携する。そのような形式では、これが実用的なのはキャッシュコヒーレントな共有メモリがあるからであり、これはCPUのすべての中のすべてのコア内のすべてのスレッドから見えているが、物理的には、コアとCPUとの間のコヒーレントメモリ共有は、プロセッサインターコネクト、たとえば、QPIまたはHT上の相互通信によって行われる。
同様の方式で、図36~図38を見るとわかるように、本明細書で実現されるシステムは、多数のスレッド、たとえば、20a、b、c、および1つまたは多数のコアおよび/またはCPU、たとえば、1000a、100b、および1000c上で実行される多数のプロセスを組み込んだ密CPU/FPGAインターコネクト構成をとり得る多数のCPUおよび/またはFPGAを有し得る。したがって、システムコンポーネントは、様々なCPUおよびFPGAの間のキャッシュコヒーレントなメモリ共有を使用することなどによって、互いに、たとえば、様々な異なるCPUおよび/またはFPGAハードウェア加速化エンジンの間で、分散方式により通信し、連携するように構成される。たとえば、図36を見るとわかるように、多数のCPUコア1000a、1000b、および1000cは、1つまたは複数のメモリ、たとえば、DRAM1014、および/または1つまたは複数のレイヤ、たとえば、L1、L2、L3など、またはそれに関連付けられているレベルを有する1つまたは複数のキャッシュを共有するような仕方で一緒に結合され得る。同様に、図38を見るとわかるように、別の実施形態では、単一のCPU1000が、1つまたは複数のメモリ、たとえば、DRAM1014、および/または1つまたは複数のレイヤまたはそれに関連付けられているレベルを有する1つまたは複数のキャッシュ1014aを共有するような仕方で一緒に結合され得る多数のコア1000a、1000b、および1000cを備えるように構成され得る。
したがって、いずれかの実施形態において、1つまたは複数のCPUコア1000からの1つまたは複数のソフトウェアスレッド20からたとえばFPGAのハードウェアエンジン13に、またはその逆に受け渡されるべきデータは共有メモリ1014、またはキャッシュおよび/またはそのレイヤにおいて連続的におよび/またはシームレスに更新されるものとしてよく、これは各デバイスから見える。それに加えて、共有メモリ1014内のデータを処理する要求、またはその中で更新される結果の通知は、共有メモリそれ自体の中に実装され得るキューなどに入れられ、適切に構成されたバス、たとえば、DDR4バスを介して、ソフトウェアおよび/またはハードウェアの間で信号としてやり取りされ得る。セマフォ、ミューテックス、およびアトミック整数などの、制御、転送、およびデータ保護のための標準的なソフトウェアメカニズムも、ソフトウェア/ハードウェア調整のために同様に実装され得る。
その結果、いくつかの実装形態において、図36に例示されているように、FPGA7がそれ専用のメモリ14、または他の外部リソースを有する必要なく、密CPU/FPGAインターコネクト上でキャッシュコヒーレントなメモリ共有があるため、拡張カードを使用することなく、FPGA7をよりコンパクトに、ネイティブに従来のCPU1000マザーボード内にパッケージすることがいっそう実用的になる。たとえば、図34Aおよび図34Bおよび図35を参照されたい。いくつかのパッケージングの代替が利用可能である。特に、FPGA7は、図34Aおよび図34Bに示されているように、小型PCボード2などの適切なインターポーザ、またはCPUチップパッケージ2a内のFPGAダイの代替的ワイヤボンドパッケージングを使用することなどによって、マルチCPUマザーボード上のCPUソケット内に搭載されてよく、CPUソケットピンは、FPGAピンに適切に配線され、電源およびグラウンド接続部、プロセッサインターコネクト3(QPI、HT、など)、および他のシステム接続部を含む。したがって、FPGAダイおよびCPUダイは、必要な接続部とともに同じマルチチップパッケージ(MCP)内に含まれ、これはパッケージ2a内に形成される、電源、グラウンド、およびCPU/FPGAインターコネクトを含み得る。ダイ間接続は、ダイ間ワイヤボンディングによって、または共通基板もしくはインターポーザへの接続によって、または積層ダイス間のボンドパッドもしくはシリコン貫通ビアによって形成され得る。
それに加えて、様々な実装形態において、FPGAおよびCPUコアは、システムオンチップ(SOC)方法を使用して単一のダイ(図35参照)上に作製され得る。これらの場合のどれも、カスタム論理、たとえば、17は、たとえば、適切に専用化されたプロトコルによって、CPU/FPGAインターコネクト3を介して通信するとともに、メモリアクセス要求を内部FPGAエンジン13から、CPU/FPGAインターコネクト3に、適切なプロトコルを介して、共有メモリ1014aにサービスを提供し、変換し、ルーティングするためにFPGA7の内側にインスタンス化され得る。それに加えて、この論理の一部または全部は、この目的のためにFPGA論理リアルエステートを使い切るのを回避するために、カスタムシリコンにハード化されるものとしてよく、たとえば、ハード化された論理は、CPUダイ、および/またはFPGAダイ、または別個のダイ上に配置されてよい。また、これらの場合のどれにおいても、電源および放熱要求条件は、単一パッケージ(MCPまたはSOC)内などで適切に達成され得る。さらに、FPGAサイズおよびCPUコア数は、安全なパワーエンベロープ内に収まるように選択されるものとしてよく、および/または動的方法(クロック周波数管理、クロックゲーティング、コア無効化、パワーアイランドなど)は、CPUおよび/またはFPGA計算要求条件を変えることに従って電力消費量を調節するために使用され得る。
これらのパッケージングオプションのすべては、いくつかの利点を共有する。密一体化CPU/FPGAプラットフォームは、様々なサイズの、標準マザーボードおよび/またはシステムシャーシと両立する。FPGAが、CPUソケット内にインターポーザを介して取り付けられる場合、図34Aおよび図34Bを参照すると、少なくともデュアルソケットマザーボード1002が使用されてよい。他の事例において、クワッドソケットマザーボードは、3個のCPU+1個のFPGA、2個のCPU+2個のFPGA、または1個のCPU+3個のFPGAなど、の構成が実装されることを可能にするため使用され得る。各FPGAがCPU(MCPまたはSOCのいずれか)と同じチップパッケージ内に配置される場合、シングルソケットマザーボードが、潜在的に非常に小さいシャーシ内で使用されてよく(デュアルソケットマザーボードが図示されているが)、これは、また、非常に拡張性もよく、たとえば、4個のFPGAと4個のマルチコアCPUを4ソケットサーバマザーボード上に搭載するが、それにもかかわらず、1Uラックマウントサーバなどの、コンパクトなシャーシで動作することも可能である。
したがって、様々な事例において、したがって、FPGA7はCPUソケット1003内に一体化され得るので、CPUおよびFPGA加速化を一体化するために拡張カードを搭載する必要はなくなり得る。この実装形態では、拡張カードの余分な空間および要求電力を回避し、拡張カードが時々信頼性が比較的低いコンポーネントに関して有する様々な追加の故障ポイントを回避する。さらに、標準的なCPU冷却ソリューション(ヘッドシンク、ヒートパイプ、および/またはファン)は、大量製造されるので効率的でありながら安価であり、CPUソケット内のFPGAまたはCPU/FPGAパッケージに適応できるが、拡張カードの冷却は高価で、不効率であり得る。
同様に、FPGA/インターポーザおよび/またはCPU/FPGAパッケージは、CPUソケットの完全電源、たとえば、150Wを備え得るが、標準的な拡張カードは、電力を制限され、たとえば、PCIeバスから25Wまたは75Wであり得る。様々な事例において、ゲノムデータ処理アプリケーションについては、これらすべてのパッケージングオプションは、DNAシークエンサ内などに、密一体化CPU+FPGA計算プラットフォームの簡便な搭載を円滑にし得る。たとえば、典型的な現代的「次世代」DNAシークエンサは、シークエンシング制御およびデータ取得のためのシークエンシング装置に配線されている、標準またはカスタムサーバマザーボードも収容するシャーシ内にシークエンシング装置(サンプルおよび試薬保管容器、流体配管および制御、センサアレイ、一次画像および/または信号処理)を収容する。本明細書において説明されているような、密一体化CPU+FPGAプラットフォームは、その既存のマザーボードのCPUソケット内に1つまたは複数のFPGA/インターポーザおよび/またはFPGA/CPUパッケージを単純に搭載するか、または代替的に、本明細書で開示されているように、たとえば、密結合されている、両方のCPUおよびFPGAとともに新しいマザーボードを搭載することなどによって、そのようなシークエンサにおいて達成され得る。さらに、これらのパッケージングオプションのすべては、非常に高い信頼性および可用性を有するコンパクト/高密度サーバを備える、クラウドアクセス可能および/またはデータセンタサーバラックなどの中への密一体化CPU+FPGAプラットフォームの容易なデプロイを円滑にするように構成され得る。
したがって、本明細書の教示によれば、データに対する処理段階は、DNA(またはRNA)シークエンシングからマッピングおよびアライメント、ソーティングおよび/または重複除去、バリアントコーリングまで多数あり、これらは使用される一次および/または二次および/または三次処理技術、ならびにそのアプリケーションに応じて変わり得る。そのような処理ステップは、シークエンサからの電気的測定結果に対する信号処理のステップ、シークエンサからの光学的測定結果に対する画像処理のステップ、処理済みの信号または画像データを使用して最もありそうなヌクレオチド配列および信頼度スコアを決定する塩基コーリングのステップ、低クオリティまたは多クローン性クラスタを有する配列決定されたリードをフィルタ処理するステップ、アダプタ、キー配列、バーコード、および低クオリティリードエンド、さらにはDe novo配列アセンブリを検出し、トリミングするステップ、De Bruijnグラフおよび/または配列グラフ、たとえば、De Bruijnおよび配列グラフ構築を生成し、および/または利用するステップ、編集、トリミング、クリーンアップ、修復、着色、注釈、比較、変換、分割、スプライシング、解析、サブグラフ選択、トラバース、反復、再帰、探索、フィルタリング、インポート、エクスポートのステップのうちの1つまたは複数を含むものとしてよく、これはリードを参照ゲノムにマッピングするステップ、リードを参照ゲノム内の候補マッピング配置にアライメントするステップ、参照領域にマッピングされたリードの局所的アセンブリのステップ、アライメントされた位置でリードをソーティングするステップ、PCRまたは光学的重複を含む重複リードをマーキングし、および/または取り除くステップ、インデル一致に対する多数の重なり合うリードの再アライメントを行うステップ、塩基クオリティスコアリキャリブレーションのステップ、バリアントコーリング(単一のサンプルまたは結合)のステップ、構造バリアント解析のステップ、コピー数バリアント解析のステップ、体細胞バリアントコーリング(たとえば、腫瘍サンプルのみ、マッチした腫瘍/正常、または腫瘍/非マッチ正常、など)のステップ、RNAスプライスジャンクション検出のステップ、RNAオルタナティブスプライシング解析のステップ、RNA転写アセンブリのステップ、RNA転写発現解析のステップ、RNA差次的発現解析のステップ、RNAバリアントコーリングのステップ、DNA/RNA差異解析のステップ、DNAメチル化解析およびコーリングのステップ、バリアントクオリティスコアリキャリブレーション、バリアントフィルタリング、知られているバリアントデータベースからのバリアント注釈のステップ、サンプル汚染検出および推定のステップ、表現型予測のステップ、疾患検査のステップ、治療反応予測のステップ、カスタム治療設計のステップ、家系および突然変異履歴解析のステップ、集団DNA解析のステップ、遺伝子マーカー識別のステップ、ゲノムデータを標準形式および/または圧縮ファイルに符号化するステップ(たとえば、FASTA、FASTQ、SAM、BAM、VCF、BCF)、標準形式からゲノムデータを復号するステップ、ゲノムデータサブセットのクエリ、選択、またはフィルタ処理を行うステップ、ゲノムファイルに対する一般的な圧縮および復元のステップ(gzip、BAM圧縮)、ゲノムデータ専用の圧縮および復元のステップ(CRAM)、ゲノムデータ暗号化および暗号解読のステップ、ゲノムデータからの統計計算、比較、およびプレゼンテーションのステップ、ゲノム結果データ比較のステップ、精度解析および報告のステップ、ゲノムファイルの記憶、アーカイブ、取り出し、バックアップ、リカバリ、および伝送のステップ、さらにはゲノムデータベース構築、クエリ、アクセス管理、データ抽出、および同様のものを含む。
これらのオペレーションはすべて、従来の計算プラットフォームで実装されるときわめて低速で高価なものとなり得る。そのようなソフトウェアだけで実装されたオペレーションの遅さは、一部はアルゴリズムの複雑度のせいであるが、典型的には、非常に大きい入力および出力データセットのせいであり、その結果、データを移動することに関して高遅延が引き起こされる。本明細書で開示されているデバイスおよびシステムは、一部は様々なハードウェア処理エンジンの構成、様々なハードウェア実装による加速、および/または一部はCPU/FPGA密結合構成により、これらの問題を克服する。したがって、図39を見るとわかるように、これらのオペレーションの1つまたは複数、たとえば、すべては、本明細書で説明されているように、分散処理モデルなどにおいて、CPU1000およびFPGA7の連携によって加速され得る。たとえば、いくつかの場合(暗号化、一般的な圧縮、リードマッピング、および/またはアライメント)に、オペレーション機能全体が、カスタムFPGA論理において(ハードウェア設計方法、たとえば、RTLなどによって)実質的に、または全体として実装されてよく、たとえば、CPUソフトウェアは、ほとんど、データを1つまたは複数のハードウェア実装処理エンジンによって処理されるべき様々なジョブにアグリゲートし、様々なデータ入力を、先入れ先出し形式などで、FPGAエンジン13のうちの1つまたは複数に送るなど、ワーカースレッド20を介した前処理のために大きなデータパケットをコンパイルする機能を果たし、および/またはそれから結果を受け取る。
たとえば、図39を見るとわかるように、様々な実施形態において、ワーカースレッドは、高帯域幅、低遅延、2地点間インターコネクトプロトコル、たとえば、QPI3などで、たとえば、DDR3を介してFPGA7に転送する準備のためにキューに入れられ、および/またはさらにアグリゲートされ得るより大きいジョブパケットにコンパイルされ、および/またはストリーミングされ得るジョブデータの様々なパケットを生成する。特定の事例において、データは、FPGAに転送される特定のデータセットに従ってバッファリングされ得る。パッケージされたデータがFPGA7によって受信された後、キャッシュコヒーレントな方式で、これは処理され、1つまたは複数の専用クラスタ11に送信されるものとしてよく、それによって、処理エンジンの1つまたは複数のセットにさらに向けられ、それによって本明細書で説明されているパイプラインオペレーションのうちの1つまたは複数に従って処理し得る。
処理された後、結果データは、次いで、クラスタに送り返され、キューに入れられ、密結合2地点間インターコネクトを介して後処理のためにCPUに送り返されるものとしてよい。いくつかの実施形態において、データは、後処理の前にデアグリゲータスレッドに送信され得る。後処理が行われた後、データは、そのデータに関して待機している可能性のある初期ワーカースレッド20に送り返され得る。そのような分散処理は、本明細書において上で開示されている機能にとって特に有益である。特に、これらの機能は、そのアルゴリズム複雑度(非常に高い正味計算負荷を有するが)がかなり制限されているという事実によって区別可能であり、それらは各々、様々なサブオペレーションにわたってかなり均一な計算コストを有するように構成され得る。
しかしながら、様々な場合において、大きなパケット内のデータを処理するのではなくむしろ、より小さいサブルーチンまたはディスクリート機能プロトコルもしくは要素が、そのデータに対してそのパイプラインの処理機能全体を実行するのではなくむしろ、パイプラインの1つまたは複数の機能などに関連して実行されてよい。したがって、有用な戦略は、所与のオペレーションにおいて1つまたは複数のクリティカルな計算集約的副機能を識別し、次いで、図39などに関して、本明細書で説明されているように、CPU/GPU/QPU上に実行するソフトウェアで、オペレーション、および理想的にはアルゴリズム複雑度の多くもしくは大半のバランスをとりながら、その副機能を集約的副機能などのためのカスタムFPGA論理(ハードウェア加速)により実装することであるものとしてよい。
一般的に、わずかなパーセンテージのアルゴリズム複雑度が、全体的な計算負荷の大きなパーセンテージを占めるということは、多くのゲノムデータ処理オペレーションに典型的である。たとえば、典型的な例として、所与の機能の実行に対するアルゴリズム複雑度の20%は、計算負荷の90%を占めることがあり、アルゴリズム複雑度の残り80%は、計算負荷の10%を占めるのみであり得る。したがって、様々な事例において、本明細書で説明されているシステムコンポーネントは、高い、たとえば、20%以上の、複雑度部分を実装し、ハードウェア設計で扱うことができ、また維持可能であり得る、カスタムFPGA論理で非常に効率的に実行するように構成されてよい、したがって、FPGAでこれを実行するように構成されてよい、次いで、CPU計算負荷を90%低減し、それによって10×の全体的加速を可能にし得る。他の典型的な例は、なおいっそう極端であり得、たとえば、アルゴリズム複雑度の10%は、計算負荷の98%を占めるものとしてよく、その場合、FPGA加速を本明細書で説明されているように10%の複雑度部分に適用することはなおいっそう容易であり得るが、また50×までの正味加速を可能にし得る。様々な事例において、極端な加速された処理が望ましい場合、これらの機能の1つまたは複数が、量子処理ユニットによって実行されてよい。
しかしながら、そのような「断片的」または分散処理加速アプローチは、緩く一体化されたCPU/GPU+FPGAプラットフォームよりもむしろ、密一体化CPU/GPU+FPGAプラットフォームで実装したときの方が実用的であり得る。特に、緩く一体化されたプラットフォームでは、FPGA論理で実装されるべき部分、たとえば、機能は、FPGAエンジンへの入力データのサイズを最小にし、処理される各データユニットなどについて、FPGAエンジンからの出力データを最小にするように選択されてよく、それに加えて、高遅延のソフトウェア/ハードウェア境界耐性を保持するように構成されてよい。そのような事例において、ハードウェア部分とソフトウェア部分との間の境界は、たとえば、緩く一体化されたプラットフォームで、特定の低帯域幅/高遅延カットポイントに引き通されることを強制され、その分割は、他の場合には、アルゴリズム複雑度と計算負荷の分割を最適化するときに望ましいものとなり得ない。多くの場合にこの結果、ハードウェア部分の境界を拡大し、ハード配線された形式でアルゴリズム複雑度の大きすぎる部分を包含して望ましくないことになり得るか、またはハードウェア部分の境界を縮小して、高密度計算負荷のある部分を除外して望ましくないことになり得る。
対照的に、密一体化CPU/GPU+FPGAプラットフォームでは、キャッシュコヒーレント共有メモリおよび高帯域幅/低遅延のCPU/GPU/FPGAインターコネクトのおかげで、ゲノムデータ処理オペレーションの低複雑度/高計算負荷部分は、最適化されたソフトウェア/ハードウェア境界により、カスタムFPGA論理で(たとえば、本明細書において説明されているハードウェアエンジンを介して)実装するために非常に正確に選択され得る。そのような事例において、データユニットが、望ましいソフトウェア/ハードウェア境界のところで大きい場合でも、それは、特定のデータユニットへのポインタを受け渡すだけで、処理のためにFPGAハードウェアエンジンに効率的に渡され得る。特に、そのような事例において、図33Bに関して、FPGA7のハードウェアエンジン13は、DRAM1014内に記憶されているデータユニットのすべての要素にアクセスしなくてもよく、むしろ、CPU/GPUキャッシュによってサービスを受ける低遅延インターコネクト3'上で効率的な小さなアクセスを行い、たとえば、キャッシュ1014a内の、必要な要素にアクセスすることができ、それによって、データユニット全体が図33Aに従って緩いインターコネクト3上でDRAM1014のDMAなどによってFPGA7にアクセスされおよび/または転送されなければならなかった場合に比べてより少ないアグリゲート帯域幅を消費する。
そのような事例において、ハードウェアエンジン13は、DMAによってCPU/GPUメモリにデータユニットのコピー全体をストリーミングすることなく、処理結果をCPU/GPUメモリ1014内の適所のデータユニット内に注釈付きで入れることができる。所望のソフトウェア/ハードウェア境界が、ハードウェアエンジン13への高遅延ノンブロッキングキューハンドオフを行うソフトウェアスレッド20に適さない場合でも、潜在的に、ハードウェアエンジン13に対してブロッキングファンクションコールを行うことができ、これはハードウェアエンジンが完了するまで短い待ち時間の間にスリープするものであり、図33Bのように、待ち時間はキャッシュコヒーレント共有メモリ、低遅延/高帯域幅インターコネクト、および分散ソフトウェア/ハードウェア協調モデルによって劇的に短縮される。
特定の事例において、信号/画像処理および塩基コーリングの特定のアルゴリズムおよび要求条件は、シークエンサ技術毎に異なるので、またシークエンサのセンサからの生データの量が典型的には巨大であるので(これは信号/画像処理の後に膨大にまで下げられ、塩基コーリングの後で単に大きいにすぎないだけとなる)、そのような信号/画像処理および塩基コーリングは、シークエンサそれ自体の中で、またはシークエンサへの高帯域幅伝送チャネルによって接続された付近の計算サーバ上で効率的に実行され得る。しかしながら、DNAシークエンサは、ムーアの法則を超える増加率で、ますます高いスループットを達成してきており、そのため、既存の中央演算処理装置(「CPU」)および/またはグラフィックス処理ユニット「GPU」ベースの信号/画像処理および塩基コーリングは、個別に、単独で実装されるときに、このタスクには次第に不適切なものとなってきている。しかしながら、密一体化CPU+FPGAおよび/またはGPU+FPGAおよび/またはGPU/CPU+FPGAプラットフォームは、コンパクトであり、たとえば、シークエンサのマザーボード上に位置決めされたCPUおよび/またはGPUおよび/またはFPGAチップとして、そのようなシークエンサ内に容易にインスタンス化されるように、またはシークエンサに隣接するサーバ、またはシークエンサから離れた場所でアクセス可能なクラウドベースのサーバシステムに容易に搭載されるように構成され得るので、そのようなシークエンサは、本明細書で説明されているカスタムFPGA/ASICハードウェアエンジンによって提供される大量計算加速を提供する理想的なプラットフォームであり得る。
たとえば、本明細書で実現されるシステムは、一次、二次、および/または三次処理、またはその一部を実行するように構成されてよく、これは加速されたCPU、GPU、および/またはFPGA、CPU+FPGA、GPU+FPGA、GPU/CPU+FPGA、QPU、CPU/QPU、GPU/QPU、CPUおよび/またはGPUおよび/またはQPU+FPGAプラットフォームによって実装される。さらに、たとえば、1つまたは複数のFPGAおよび/またはQPUハードウェアエンジンを含む、そのような加速されたプラットフォームは、本明細書で説明されているように、クラウドベースのシステムでの実装に有用である。たとえば、信号/画像処理、塩基コーリング、マッピング、アライメント、ソーティング、重複除去、および/またはバリアントコーリングアルゴリズム、またはその一部は、一般的に、大量の浮動小数点および/または固定小数点数学演算、特に加算および乗算を必要とする。これらの機能は、また、量子処理プラットフォームで実装されるなどの、1つまたは複数の量子処理回路によって実行されるように構成され得る。
特に、大きな現代のFPGA/量子回路は、数千個の高速乗算および加算リソースを含む。より具体的には、これらの回路は、それらに、またはそれらによって実装され得るカスタムエンジンを備えるものとしてよく、カスタムエンジンは単純な一般的なCPUの能力をはるかに超える速度で並列算術オペレーションを実行するように構成され得る。同様に、単純なGPUは、より比較可能な並列算術リソースを有する。しかしながら、GPUは、完全に利用されることを妨げ得るアーキテクチャ上の扱いにくい制限およびプログラミングの制約を有することが多い。したがって、これらのFPGAおよび/または量子処理および/またはGPU算術リソースは、設計によって、本明細書における機能を実行するために必要な計算を実行するなどのために、100%近い効率で正確に設計通りに動作するような設計によって配線されるか、または他の何らかの形で構成され得る。したがって、GPUカードは、密一体化CPUおよび/またはFPGAを搭載するマザーボード上の拡張スロットに追加され、それによって、3種類のプロセッサすべてが連携することを可能にし得るが、GPUはそれでもそれ自体の制限および緩い一体化の制限のすべてとともに連携し得る。
より具体的には、様々な事例において、グラフィックス処理ユニット(GPU)に関して、GPUは、本明細書で説明されているように機能の1つまたは複数を実装するように構成され、それにより、その機能を実行するのに必要な基礎となる計算の処理速度を全体としてまたは一部だけ加速することができる。より具体的には、GPUは、計算、たとえば、それに伴う加算および乗算などの、大量の浮動小数点および/または固定小数点数学演算のうちの1つまたは複数を加速し、サーバのCPUおよび/またはFPGAと連携して動作し、アプリケーションおよび処理パフォーマンスを加速し、そのような機能を実行するのに必要な計算サイクルを短縮するために、マッピング、アライメント、ソーティング、重複除去、および/またはバリアントコーリングプロトコルにおける1つまたは複数のタスクを実行するように構成され得る。GPU/CPU/FPGAカードを備える、本明細書で説明されているようなクラウドサーバは、計算集約的なタスクを容易に取り扱い、仮想化のために利用されるときにより滑らかなユーザエクスペリエンスをもたらすように構成され得る。そのような計算集約的タスクはクラウドにオフロードされるものとしてよく、たとえば量子処理ユニットによって実行される。
したがって、共有メモリプラットフォームを有する密一体化CPU+FPGAまたはGPU+FPGAおよび/またはCPU/GPU/FPGAは、信号/画像処理、塩基コーリング、マッピング、アライメント、ソーティング、重複除去、および/またはバリアントコーリング機能などのためにシークエンサ内で使用されるか、または取り付けられるか、またはクラウドベースサーバである場合、インクリメンタルな開発プロセスなどで達成される利点があり得る。たとえば、最初に、塩基コーリング、マッピング、アライメント、ソーティング、重複除去、および/またはバリアントコーリングのための動的プログラミング機能などの、計算負荷の限られた部分が、1つまたは複数のFPGAエンジンで実装されてよく、これは他の作業として、CPUおよび/またはGPU拡張カード内で実行され得る。しかしながら、本明細書で提示されている、密なCPU/GPU/FPGA一体化および共有メモリモデルは、後で、GPU、FPGA、および/または量子加速対する追加の計算集約的機能をインクリメンタルに選択することを容易にするようにさらに構成されてよく、次いで、これは処理エンジンとして実装されてよく、次いで、これは、処理エンジンとして実装されてよく、それらの機能の様々なものがFPGA内に実行のためにオフロードされてよく、および/またはいくつかの事例において、クラウド上に、たとえばQPUによる実行のために、クラウド上にオフロードされてよく、それによって、信号/画像/塩基コーリング/マッピング/アライメント/バリアント処理を加速するものとしてよい。そのようなインクリメンタルな進行は、様々な一次および/または二次および/または三次処理技術の増大するスループットに追随するように必要に応じて実装され得る。
したがって、たとえば参照ゲノムへの1つまたは複数のリードのリードマッピングおよびアライメント、さらにはソーティング、重複除去、および/またはバリアントコーリングは、そのようなGPUおよび/またはFPGAおよび/またはQPU加速から恩恵を受け得る。特に、マッピングおよびアライメントおよび/またはバリアントコーリング、またはその一部は、CPU/GPUメモリからFPGAマッピング/アライメント/バリアントコーリングエンジン内にストリーミングする「マッピングされ、および/またはアライメントされ、および/またはバリアントコールされるべき」リードなどとともに、カスタムFPGA論理として部分的にまたは全体として実装されてよく、マッピングされおよび/またはアライメントされおよび/またはバリアントコールされたリードは、ストリーミングバックアウトを記録し、これはソーティングおよび/またはバリアントコーリングの実行の際に、オンボードで、さらにストリーミングバックされ得る。この種類のFPGA加速は、緩く一体化されたCPU/GPU+FPGAプラットフォーム上で働き、本明細書で説明されている構成では、極端に高速になり得る。それにもかかわらず、密一体化CPU/GPU/QPU+FPGAプラットフォームに移動することによって獲得され得るいくつかの追加の利点がある。
したがって、マッピングおよびアライメントおよびバリアントコーリングに関して、いくつかの実施形態において、密一体化CPU/GPU+FPGAおよび/または量子処理プラットフォームの共有の利点は、本明細書において説明されているように、マッピング/アライメント/バリアントコーリング加速、たとえば、ハードウェア加速は、シード生成および/またはマッピング、シードチェーン情報、ペアエンドレスキュースキャン、無ギャップアライメント、およびギャップアライメント(Smith-WatermanまたはNeedleman-Wunsch)、De Bruijnグラフ情報、HMM計算を実行するステップ、および同様のものなどの、いくつかのディスクリート計算集約的オペレーションに効率的に分割されてよく、たとえば、CPUおよび/またはGPUおよび/または量子コンピューティングソフトウェアは、より軽い(ただし必ずしも複雑度が低いわけではない)タスクを実行し、ディスクリートハードウェアおよび/または他の量子コンピューティングエンジンへの加速コールを必要に応じて行い得る。そのようなモデルは、たとえば、ステップと高遅延との間で往復転送する大量のデータがあることで、典型的な緩く一体化されたCPU/GPU+FPGAプラットフォームでは効率が低い場合があるが、密一体化CPU+FPGA、GPU+FPGA、および/または量子コンピューティングプラットフォームをキャッシュコヒーレント共有メモリ、高帯域幅/低遅延インターコネクト、および分散型ソフトウェア/ハードウェア連携モデルと用いたときにより効率的であり得る。それに加えて、バリアントコーリングなどに関して、ビタビおよび前向きアルゴリズムを含む、隠れマルコフモデル(HMM)および/または動的プログラミング(DP)アルゴリズムは両方とも、本明細書で説明されているFPGAおよび量子回路の並列セルラーレイアウトに好適であるような構成において、観察されたセンサ測定結果を説明する最もありそうな元の配列を計算するなどのために、塩基コーリング/マッピング/アライメント/ソーティング/重複除去オペレーションとの関連で実装され得る。
特に、分散型処理構成におけるハードウェアおよび/またはソフトウェアリソースの効率的な利用は、ハードウェアおよび/または量子コンピューティング加速をディスクリート計算集約的機能に縮小する結果行われ得る。そのような事例において、本明細書で開示されている機能のいくつかは、あまり計算集約的でないようにモノリシックな純ハードウェアエンジンで実行され得るが、それにもかかわらず、なおも、アルゴリズム的に複雑であり得、したがって、大量の物理的FPGAリソース(ルックアップテーブル、フリップフロップ、ブロックRAMなど)を消費し得る。そのような事例において、様々なディスクリート機能の一部または全部をソフトウェアに移行することで、実質的な量のFPGA領域を放棄することと引き換えに、利用可能なCPUサイクルを占有することがあり得る。これらの事例のいくつかにおいて、解放されたFPGA領域は、そうすることで加速を高める計算集約的なマッピング/アライメント/バリアントコール副機能に対してより大きな並列性を確立するために、または他のゲノム加速機能のために使用できる。そのような利点は、また、量子コンピューティングプラットフォームによる実装のために1つまたは複数の専用量子回路内に計算集約的機能を実装することによって達成され得る。
したがって、様々な実施形態において、本明細書で開示されている1つまたは複数の機能のアルゴリズム複雑度は、純ハードウェアまたは純量子コンピューティング実装形態で構成されることによって幾分軽減され得る。しかしながら、ペアエンドリードについて候補アライメントのペアを比較するステップ、および/または微妙なマッピングクオリティ(MAPQ)推定を実行するステップなどの、いくつかのオペレーションは、非常に低い計算負荷を表し、したがって、CPU/GPUおよび/または量子コンピューティングソフトウェアにおけるより複雑で正確な処理の恩恵を受けることが可能である。したがって、一般に、ハードウェア処理を特定の計算集約的オペレーションに縮小することで、より複雑で正確なアルゴリズムがCPU/GPU部分で使用されることを可能にする。
さらに、様々な実施形態において、本明細書において開示されている、マッピング/アライメント/ソーティング/重複除去/バリアントコーリングオペレーションの全部または一部は、よりアルゴリズム的に複雑な計算がハードウェアにおいて高いレベルで、および/または1つまたは複数の量子回路を介して使用されるように構成されることも可能であり、たとえば、コールされた計算集約的ハードウェアおよび/または量子機能は、動的または反復的順序で実行されるように構成される。特に、モノリシックな純ハードウェア/量子処理設計は、線形パイプラインとしてより効率的に機能するように実装され得る。たとえば、処理中にSmith-Watermanアライメントがスコアリングバンドを逃れる真のアライメント経路の証拠、たとえば上で説明されているようなスワスを表示した場合、これを補正するために別のSmith-Watermanアライメントがコールされることが可能である。したがって、これらの構成は、本質的に、FPGAハードウェア/量子加速を手続き抽象化の形態などのディスクリート機能にまで下げることが可能であり、これはより高い水準の複雑度をその上に容易に構築することを可能にする。
それに加えて、様々な事例において、マッピング/アライメント/バリアントコーリングアルゴリズム内の柔軟性およびその特徴は、ハードウェアおよび/または量子加速をディスクリート計算集約的機能まで下げ、CPUおよび/またはGPUのソフトウェアで、他の、たとえば、あまり集約的でない部分を実行するようにシステムを構成することによって改善され得る。たとえば、ハードウェアアルゴリズムは、FPGAにおいて修正され再構成され得るが、一般的に、たとえば、ファームウェアを介した、ハードウェア設計へのそのような変更は、ソフトウェアコードへの類似の変更の数倍の設計労力を必要とし得る。そのような事例において、比較的適切に定義されている、シードマッピング、シードチェーン形成、ペアエンドレスキュースキャン、無ギャップアライメント、およびHMMなどの、マッピングおよびアライメントおよびソーティングおよび重複除去、および/またはバリアントコーリングの計算集約的部分は、こうして、安定した機能であり、頻繁なアルゴリズム変更を必要としない。したがって、これらの機能は、ハードウェアにおいて適切に最適化され得るが、CPU/GPUソフトウェアによって実行されることが可能である、他の機能は、ソフトウェアにおいて著しく容易である、アルゴリズムのインクリメンタルな改善に、より適切である。しかしながら、いったん完全に開発されれば、ハードウェアで実装することが可能である。これらの機能の1つまたは複数は、量子処理マシンの1つまたは複数の量子回路で実装されるようにも構成され得る。
したがって、様々な事例において、バリアントコーリング(DNAまたはRNA、単一のサンプルまたは結合、生殖細胞または体細胞などに関する)も、様々な計算集約的機能などに関して、FPGAおよび/または量子加速の恩恵を受け得る。たとえば、上で説明されているような、潜在的バリアントの周りのウィンドウ内に提供されるコンテキストから導出される証拠に関して塩基をコールする、ハプロタイプベースのコーラーは、多くの場合に、最も計算集約的なオペレーションである。これらのオペレーションは、候補ハプロタイプ(たとえば、注目しているゲノム座位のところのサンプリングされた鎖のうちの少なくとも1つの真の配列の理論を表す一本鎖ヌクレオチド配列)を各シークエンサリードと比較して、たとえば、ハプロタイプの真実が与えられた場合にリードを観察する条件付き確率を推定するステップを含む。
そのようなオペレーションは、動的プログラミングアルゴリズムによってシークエンシングまたはサンプル調製(PCRなど)における誤りの可能な組合せの確率を総和するMRJD、ペア隠れマルコフモデル(ペアHMM)、および/またはペア決定隠れマルコフモデル(PD-HMM)計算のうちの1つまたは複数を介して実行され得る。したがって、それらに関して、システムは、ペアHMMまたはPD-HMM計算が1つまたは複数の、たとえば、並列の、FPGAハードウェアまたは量子処理エンジンによって加速され得るように構成されるが、CPU/GPU/QPUソフトウェアは、緩く一体化されたまたは密一体化CPU+FPGA、またはGPU+FPGAまたはCPUおよび/またはGPU+FPGAおよび/またはQPUプラットフォームのいずれかにおいて、親ハプロタイプベースのバリアントコーリングアルゴリズムの残り部分を実行するように構成され得る。たとえば、緩い一体化では、ソフトウェアスレッドは、選択された能動領域(参照ゲノムのウィンドウまたは連続するサブセット)と重なり合うリードからDe Bruijnおよび/またはアセンブリグラフを構築し、用意し、グラフから候補ハプロタイプを抽出し、ペアHMMまたはPD-HMM比較など、FPGAハードウェアエンジンへのDMA転送のためにハプロタイプリードペアをキューに入れるものとしてよい。次いで、同じまたは他のソフトウェアスレッドは、キューに入れられ、FPGAからCPU/GPUメモリにDMA転送され戻されたペアHMM結果を受け取り、遺伝型判定およびベイズ確率計算を実行して最終バリアントコールを行うことができる。もちろん、これらの機能のうちの1つまたは複数は、1つまたは複数の量子コンピューティングプラットフォーム上で実行されるように構成され得る。
たとえば、図38を見るとわかるように、CPU/GPU1000は、関連付けられているDRAM1014に各々アクセスし得る、1つまたは複数の、たとえば、複数の、スレッド20a、20b、および20cを備えるものとしてよく、そのDRAMはワークスペース1014a、1014b、および1014cを有し、その中で各スレッド20a、20b、および20cはアクセスするものとしてよく、それにより、各スレッド20a、20b、および20cは大きいデータ構造体などの1つまたは複数のデータ構造体に対して1つまたは複数のオペレーションを実行する。これらのメモリ部分およびそのデータ構造体は、FPGA7の1つまたは複数の処理エンジン13a、13b、13cなどによってそれぞれのキャッシュ部分1014a'などを介して、アクセスされるものとしてよく、処理エンジンは、マッピング、アライメント、ソーティング、および/またはバリアントコーリングなどのために、本明細書で説明されているオペレーションのうちの1つまたは複数を実行する際などに参照データ構造体にアクセスし得る。高帯域幅密結合インターコネクト3があるため、データ構造体に関連する、および/または処理結果に関係するデータは、処理効率を最適化するために、キャッシュコヒーレント方式などで、CPUおよび/またはGPUおよび/またはQPUおよび/または関連付けられているFPGAの間で実質的にシームレスに共有され得る。
したがって、一態様において、本明細書で開示されているようにシステムが実現され、このシステムは、たとえばCPUおよび/またはGPUおよび/またはQPUによって実行される、ソフトウェアを介して、たとえばいくつかの計算タスクまたは副機能を実行することに関連して、そのコンポーネント部分の間でメモリリソースを共有し、およびファームウェアを介して、たとえば、FPGAおよび/またはASICまたは構造化ASICなどの関連付けられているチップのハードウェアを介して、他の計算タスクまたは副機能を実行するように構成される。これは、多数の異なる方法で、たとえばCPU/GPU/QPUとチップ、たとえば、FPGAとの間の直接的疎もしくは密結合などによって、達成され得る。そのような構成は、CPUおよび/またはGPUおよび/またはQPUおよび集積回路の両方によって使用され、アクセスされるべき、大きい機能または副機能を有する、本明細書において説明されているような、大きいデータ構造体の処理に関係するオペレーションを分散させるときに特に有用であり得る。特に、様々な実施形態において、全体的な処理機能、タイミング、および効率を加速するなどのために、本明細書において説明されているような、ゲノミクスパイプラインを通じてデータを処理するときに、データに対して多数の異なるオペレーションが実行されるものとしてよく、これらのオペレーションはソフトウェアとハードウェアの両方の処理コンポーネントを伴い得る。
その結果、CPUおよび/またはGPUおよび/またはQPUおよびチップ、たとえば、FPGAもしくはASICで具現化されるハードウェアコンポーネント上で実行しているソフトウェアコンポーネントの間で、データが共有され、および/または他の何らかの形で伝達される必要があり得る。したがって、処理パイプラインにおける様々なステップのうちの1つもしくは複数、またはその一部は、1つのデバイス、たとえば、CPU/GPU/QPUによって実行されるものとしてよく、様々なステップのうちの1つまたは複数は、他のデバイス、たとえば、FPGAもしくはASICによって実行されてよい。そのような事例において、CPUおよびFPGAは、そのようなデータの効率的伝送を可能にするような仕方で、2地点間インターコネクトなどによって、通信可能に結合されてよく、その結合はメモリリソースの共有使用を伴い得る。タスクのそのような分散およびそのようなタスクの実行のための情報の共有を達成するために、CPUおよび/またはGPUおよび/またはQPUは、互いにおよび/またはFPGA、または他のチップセットに疎または密に結合されてよく、作業負荷を分散させるためにワークフロー管理システムが備えられ得る。
したがって、特定の実施形態において、ゲノミクス解析プラットフォームが実現される。たとえば、プラットフォームは、マザーボードと、メモリと、たとえばCPU/GPU/QPU、マッピングモジュール、アライメントモジュール、ソーティングモジュール、および/またはバリアントコールモジュールのうちの1つまたは複数を形成するような複数の集積回路とを備えてよい。特に、特定の実施形態において、プラットフォームは、本明細書で説明されているように、ゲノミクス解析機能の1つまたは複数のセットを実行することをCPU/GPUに命令するように構成されている1つまたは複数のソフトウェアアルゴリズムに応答する、中央演算処理装置(CPU)および/またはグラフィックス処理ユニット(GPU)を形成する集積回路などの、第1の集積回路を備えてよく、たとえば、CPU/GPUはマザーボードと接続するための物理的電子的インターコネクトの第1のセットを含む。他の実施形態では、量子処理ユニットが実現され、QPUは、本明細書で開示されている機能のうちの1つまたは複数を実行するように構成されている1つまたは複数の量子回路を備える。様々な事例において、メモリが提供され、メモリはマザーボードに取り付けられてもよく、物理的電子的インターコネクトの第1のセットの少なくとも一部などを介して、CPUおよび/またはGPUおよび/またはQPUとさらに電子的に接続され得る。そのような事例において、メモリは、ゲノムデータの複数のリード、および/または少なくとも1つもしくは複数の遺伝子参照配列、および/または1つもしくは複数の遺伝子参照配列のインデックス、たとえば、ハッシュテーブルなどを記憶するように構成され得る。
それに加えて、プラットフォームは、第2の集積回路のうちの1つまたは複数を備えてよく、たとえば、各第2の集積回路は、2地点間インターコネクトプロトコルなどを介して、CPUおよびメモリと接続するための物理的電子的インターコネクトの第2のセットを有するフィールドプログラマブルゲートアレイ(FPGA)またはASIC、または構造化ASICを形成する。そのような事例において、FPGA(または構造化ASIC)は、ゲノミクス解析機能の第2のセット、たとえば、マッピング、アライメント、ソーティング、重複除去、バリアントコーリング、たとえば、HMM機能などを実行するように複数の物理的インターコネクトによって相互接続されているハード配線されたデジタル論理回路のセットを構成するためにファームウェアによってプログラム可能であるものとしてよい。特に、FPGAのハード配線されたデジタル論理回路は、ゲノミクス解析プラットフォームの配列解析パイプラインにおける1つまたは複数の事前構成されたステップを実行するように処理エンジンのセットとして配置構成されてよく、たとえば、処理エンジンのセットは、マッピングおよび/またはアライメントおよび/またはソーティングおよび/または重複除去および/またはバリアントコーリングモジュールの1つまたは複数を備え、それらのモジュールは、処理エンジンの別個のサブセットまたは同じサブセットから形成されてよい。
たとえば、バリアントコーリングに関して、ペアHMMまたはPD-HMM計算は、ハプロタイプベースのバリアントコーリングプロトコルの最も計算集約的なステップの1つである。したがって、バリアントコーリングの速度は、本明細書で説明されているように、1つまたは複数のFPGAまたは量子処理エンジンでこのステップを加速することによって大幅に改善され得る。しかしながら、追加のFPGAおよび/またはQPエンジンにおいて他の計算集約的なステップを加速し、図38を見るとわかるように、バリアントコーリングまたはその一部のより大幅なスピードアップを達成するか、またはCPU/GPU負荷および必要なCPU/GPUコアの数、またはその両方を低減することには追加の利点があり得る。
FPGAおよび/または量子処理エンジンで実装され得る、バリアントコーリングに関する、追加の計算集約的機能は、コール可能領域検出であって、アライメントされたリードの適切な深さおよび/またはクオリティでカバーされている参照ゲノム領域が処理のために選択される、コール可能領域検出、能動領域検出であって、可能なバリアントの非自明な証拠がある参照ゲノム座位が識別され、これらの座位の周りの十分なコンテキストのウィンドウがさらなる処理のために能動領域として選択される、能動領域検出、De Bruijnまたは他のアセンブリグラフ構築であって、能動領域と重なり合うリードおよび/またはそれらのリードからのK-mersがグラフ内にアセンブルされる、De Bruijnまたは他のアセンブリグラフ構築、低カバレッジまたは低クオリティの経路の刈り込み、グラフ内の参照バックボーン上に結合することによるぶら下がっているヘッドおよびテール経路の修復、K-merからグラフの配列表現への変換、類似の枝のマージ、およびグラフを他の何らかの形で簡素化することなどの、アセンブリグラフ準備、アセンブリグラフからの候補ハプロタイプを抽出するステップ、さらには、たとえば各ハプロタイプによって表される参照からバリアント(SNPおよび/またはインデル)を決定し、そのヌクレオチド位置を参照と同期させるためにSmith-Watermanアライメントなどによって候補ハプロタイプを参照ゲノムにアライメントするステップを含む。
これらの機能はすべて、FPGA内の高性能ハードウェアエンジンとして、および/または量子コンピューティングプラットフォームの1つまたは複数の量子回路によって実装され得る。しかしながら、バリアントコーリングソフトウェアにおける多くのインテグレーションポイントからそのような様々なハードウェア加速機能をコールするステップは、疎結合されたCPU/GPU/QPU+FPGAプラットフォーム上では不効率になり得、したがって、密一体化CPU/GPU/QPU+FPGAプラットフォームが望ましい場合がある。たとえば、De Bruijnグラフまたは他のアセンブリグラフからハプロタイプを構築し、調製し、抽出するなどの様々なステップ毎の処理方法は、密一体化CPU/GPU/QPU+FPGAプラットフォームから大きな恩恵を受け得る。それに加えて、アセンブリグラフは、大きく複雑なデータ構造体であり、それらをCPUおよび/またはGPUおよびFPGAの間で繰り返し受け渡すことは、リソースを大量に使うことになり、著しい加速を阻害する可能性がある。
したがって、密一体化CPU/GPU/QPUおよび/またはFPGAプラットフォームを使用する、そのようなグラフ処理のための理想的なモデルは、CPUおよび/またはGPUおよび/またはQPUソフトウェアならびにFPGAハードウェア機能による交互処理のためにキャッシュコヒーレント共有メモリにそのようなグラフを保持することである。そのような事例において、所与のグラフを処理するソフトウェアスレッドは、ハードウェアエンジンによる様々な計算集約的なグラフ処理ステップを反復的に指令するものとしてよく、次いで、ソフトウェアは、結果を検査して、図39のプロセスにおいて例示されているような、ハードウェアコールの間の次のステップを決定することも可能である。この処理モデルは、適切に構成されたワークフロー管理システムによって制御されてよく、ならびに/あるいはデータ構造APIまたはオブジェクト指向メソッドインターフェースなどのソフトウェアパラダイムに対応するように構成されてよいが、計算集約的な機能はカスタムハードウェアおよび/または量子処理エンジンによって加速され、これは密一体化CPUおよび/またはGPUおよび/またはQPU+FPGAプラットフォーム上に、キャッシュコヒーレントな共有メモリおよび高帯域幅/低遅延CPU/GPU/QPU/FPGAインターコネクトを用いて、実装されることによって実用的なものとなる。
したがって、配列決定リードを参照ゲノムにマッピングし、アライメントすることに加えて、リードは、たとえば、参照ゲノムなしで、たとえば、それらが完全にまたは大部分が一致するパイルアップ内のリードの間の明白な重なり合いを検出し、それらを結合してより長い配列、コンティグ、スカフォールド、またはグラフにすることなどによって「新たに」アセンブルされるものとしてよい、このアセンブリは、また、所与の染色体またはその一部にマッピングすると決定されたすべてのリードを使用するなどして、局所的に行われ得る。この方式のアセンブリは、また、参照ゲノム、または1つのセグメントを、アセンブルされた構造に組み込み得る。
そのような事例において、完全には一致しないリード配列を一緒に結合することは複雑であるため、グラフ構造が使用されてよく、たとえば、重なり合うリードは、上で説明されているように、1つのセグメント内の単一の配列上で一致するが、隣接するセグメント内では多数の配列に枝分かれすることもあり得る。そのようなアセンブリグラフは、したがって、配列グラフであってよく、各エッジまたはノードは、1つのヌクレオチド、または接続されたエッジもしくはノード内の配列に連続的に隣接すると考えられるヌクレオチドの配列を表す。特定の事例において、そのようなアセンブリグラフはk-merグラフであってよく、各ノードはk-mer、すなわち、(典型的には)固定長kのヌクレオチド配列を表し、接続されたノードは、より長い観察された配列内で互いに重なり合うと考えられ、典型的にはk-1個のヌクレオチドで重なり合う。様々な方法において、1つまたは複数の配列グラフとk-merグラフとの間で実行される1つまたは複数の変換があり得る。
アセンブリグラフは、ハプロタイプベースのバリアントコーリングで使用され、使用されるグラフ処理方法の一部は類似しているけれど、重要な差異がある。De novoアセンブリグラフは、一般的にかなり大きくなり、より長いk-merを使用する。バリアントコーリングアセンブリグラフは、サイクルを有さず、参照配列バックボーンに沿ってソースからシンクへと流れるなどの、かなり構造化され、比較的単純であるように制約され、de novoアセンブリグラフは、非構造化され複雑であることがより進む傾向を有し、サイクル、ぶら下がっている経路、および他の異常は許されるのみならず、特別な解析に通される。de novoアセンブリグラフ彩色は、時には使用され、「色」をノードおよびエッジに割り当て、たとえば、それらがどの生物学的サンプルに由来しているかを示すか、または参照配列をマッチングする。したがって、de novoアセンブリグラフに対してより広い様々なグラフ解析および処理機能が多くの場合に反復的または再帰的に使用される必要があり、特にde novoアセンブリグラフのサイズおよび複雑度から、処理機能は極端に計算集約的になる傾向を有する。
したがって、上で述べたように、密一体化CPU/GPU/QPU+FPGAプラットフォーム上の、そのようなグラフ処理のための理想的なモデルは、CPU/GPU/QPUソフトウェアおよびFPGAハードウェア機能による交互処理のためにキャッシュコヒーレント共有メモリにそのようなグラフを保持することである。そのような事例において、所与のグラフを処理するソフトウェアスレッドは、ハードウェアエンジンによって実行されるべき様々な計算集約的なグラフ処理ステップを反復的に指令するものとしてよく、次いで、結果を検査して、適切なハードウェアコールを行うことなどによって、ハードウェアによって実行されるべき次のステップをそれによって決定し得る。上記のように、この処理モデルは、密一体化CPU+FPGAプラットフォーム上で、キャッシュコヒーレント共有メモリおよび高帯域幅/低遅延CPU/FPGAインターコネクトを用いて実装することによって大幅に有益なものとなる。
それに加えて、本明細書において以下で説明されているように、三次解析は、グラフアセンブリおよび/またはバリアントコーリングに従い得るゲノム処理を含み、臨床用途では、本明細書において説明されているように、バリアント注釈、表現型予測、疾患検査、および/または治療反応予測を含み得る。そのような密一体化CPU/GPU/QPU+FPGAプラットフォーム上で三次解析を実行することが有益である理由は、そのようなプラットフォーム構成が非常に計算集約的である一次および/または二次処理の効率的な加速を可能にすることであり、利便性およびターンアラウンド時間短縮のため、同じプラットフォーム上で三次解析を続行すること、および大きなゲノムデータファイルの伝送およびコピーを最小限度に抑えることが理想的である。したがって、緩くまたは密一体化CPU/GPU/QPU+FPGAプラットフォームのいずれかはよい選択であるが、密結合プラットフォームは、三次解析ステップおよび方法がアプリケーション毎に大きく異なるので追加の利点を含むものとしてよく、いかなる場合も、計算集約的なステップが三次解析をスローダウンさせる場合に、それらのステップのカスタムFPGA加速は、最適な形で実装され得る。
たとえば、密一体化CPU/GPU/QPUおよび/またはFPGAプラットフォーム上の三次解析への特定の利点は、部分的または中間三次結果に応答して、二次処理のCPU/GPU/QPUおよび/またはFPGA加速を利用してゲノムデータを反復的に再解析することができることであり、これは緊密な一体化の構成からの利点を加え得る。たとえば、三次解析が可能な表現型または疾患を検出した後に、その検出が真であるか偽であるかに関する信頼度が限定される場合、集中二次再解析は、検出に影響を及ぼす特定のリードおよび参照領域に対して極端に大きな努力で実行されることとなり、したがって、関連するバリアントコールの精度および信頼度を改善し、次いで、検出コールにおける信頼度を改善する。それに加えて、三次解析が解析された個体の家系または構造バリアント遺伝型に関する情報を決定する場合、特定の個体に対してより適している、異なるまたは修正された参照ゲノムを使用して二次解析が繰り返されてよく、それにより、バリアントコールの精度を高め、さらなる三次解析ステップの精度を改善する。
しかしながら、一次および二次処理(場合によっては別のプラットフォーム上で加速される)の後に三次解析がCPUのみのプラットフォームで実行される場合、二次処理ツールによる再解析は、遅すぎて、三次解析プラットフォームそれ自体において役立たない可能性があり、代替的手段は、より高速なプラットフォームへの伝送であるが、これもまたきわめて遅い。したがって、三次解析プラットフォーム上に何らかの形態のハードウェアまたは量子加速が存在しない場合、一次および二次処理は、一般的に三次解析が開始する前に完了していなければならず、容易な再解析または反復的二次解析および/または解析機能のパイプライン化の可能性はない。しかし、FPGAおよび/または量子加速プラットフォーム上では、また特に二次処理が最大限効率的である密一体化CPUおよび/またはGPUおよび/またはQPUおよび/またはFPGAプラットフォーム上では、反復解析が実用的であり有用である。
したがって、上で示されているように、本明細書で開示されているモジュールは、その中でハード配線されることなどによって、チップのハードウェア内に実装されてよく、そのような事例において、その実装形態は、その機能は、ソフトウェアで実装されたときと比べて高速に、高精度で実行されるものとしてよく、たとえば、フェッチ、リード、および/または実行されるべき命令は最小限度である。それに加えて、様々な事例において、これらのモジュールのうちの1つまたは複数によって実行されるべき機能は、それらの機能のうちの様々な機能がホストCPUおよび/またはGPUおよび/またはQPUソフトウェアによって実装されるように構成され得る分散型としてよいが、他の事例では、様々な他の機能は、関連付けられているFPGAのハードウェアによって実行されてよく、たとえば、2つまたはそれ以上のデバイスがシームレスな方式などでそれぞれの機能を互いに実行する。そのような目的のために、CPU、GPU、QPU、および/またはFPGAまたはASICまたは構造化ASICは、QPI、CCVI、CAPI、および同様のものなどの、低遅延高帯域幅インターコネクトなどを介して、密結合され得る。したがって、いくつかの事例において、これらのモジュールのうちの1つまたは複数によって実行されるべき高計算集約的な機能は、1つまたは複数の量子回路によって実装された量子プロセッサによって実行され得る。
したがって、固有のハードウェアおよび/または量子処理実装形態が与えられた場合、本開示のモジュールは、CPUソフトウェアだけで実装されたときなどに、たとえば命令をフェッチ、リード、および/または実行することを必要とせずに、オペレーションパラメータに従って直接機能し得る。それに加えて、メモリ要求条件および処理時間は、さらに短縮されるものとしてよく、たとえば、チップ内の通信は、外部メモリを広範にアクセスすることよりはむしろ、ファイルを介する、たとえば、キャッシュコヒーレントな方式などで、たとえばローカルのFPGA/CPU/GPU/QPUキャッシュ内に記憶される。もちろん、いくつかの事例において、チップおよび/またはカードは、並列処理能力を高めるために、より多くのメモリを備える、たとえば、ボードメモリ上により多くを備えるようにサイズを決定され、それによって、結果として、処理速度がなおいっそう高速化され得る。たとえば、いくつかの実施形態において、本開示のチップは、内蔵DRAMを備えてよく、したがって、チップは外部メモリに頼る必要がなく、したがって、結果として、処理速度をさらに高めることになり、たとえば、Burrows-WheelerアルゴリズムまたはDe Bruijnグラフが、ハッシュテーブルおよびハッシュ関数の代わりに使用されてよく、これは様々な事例において、外部、たとえば、ホストメモリに依存し得る。そのような事例において、一部またはパイプライン全体の実行は、開始から終了までなどにおいて、6または10または12または15または20分以内に遂行され得る。
上で示されているように、所与のモジュールがハードウェア上に位置決めされ得るか、またはクラウド上でアクセス可能なサーバなどに、それから離れて位置決めされ得る様々な異なる地点がある。所与のモジュールがチップ上に位置決めされる、たとえば、チップ内にハード配線される場合、その機能はハードウェアによって実行されてよいが、望ましい場合には、モジュールはチップから離れた場所に位置決めされてよく、その地点において、プラットフォームは、関連するデータを、クラウドを介してアクセス可能なサーバ、たとえば、量子サーバなどの離れた配置に送信するための必要な機器を含むものとしてよく、それにより、ユーザが選択した所望のプロトコルに従って、データのさらなる処理に特定のモジュールの機能が携わるものとしてよい。したがって、プラットフォームの一部は、本明細書で開示されているモジュールのうちの1つまたは複数の機能に従って1つまたは複数のタスクを実行するためのウェブベースのインターフェースを備え得る。たとえば、マッピング、アライメント、および/またはソーティングが、チップ上で行われ得るすべてのモジュールである場合、様々な事例において、局所的再アライメント、重複マーキング、塩基クオリティコアリキャリブレーション、および/またはバリアントコーリングの1つまたは複数はクラウド上で行われ得る。
特に、遺伝子データが、1つまたは複数のバリアントコールファイルを作成する、たとえば、対象からの遺伝子配列データが1つまたは複数の参照配列とどれだけ異なるかを決定するために、たとえば1つまたは複数の一次および/または二次処理プロトコルで、マッピング、アライメント、および/またはソーティングされることなどによって、生成されおよび/または処理された後、図40において示されているように、さらなる、たとえば三次処理などのために生成されおよび/または処理された遺伝子データに対して1つまたは複数の他の解析機能を実行することに本開示のさらなる態様が向けられ得る。たとえば、システムは、生成されたおよび/または二次処理されたデータのさらなる処理を、1つまたは複数の三次処理パイプライン700、たとえば、マイクロアレイ解析パイプライン、ゲノム、たとえば、全ゲノム解析パイプライン、遺伝型判定解析パイプライン、エクソーム解析パイプライン、エピゲノム解析パイプライン、メタゲノム解析パイプライン、マイクロバイオーム解析パイプライン、ジョイント遺伝型判定を含む遺伝型判定解析パイプライン、構造バリアントパイプライン、体細胞バリアントパイプライン、およびGATKおよび/またはMuTect2パイプラインを含むバリアント解析パイプライン、さらにはRNAシークエンシングパイプラインおよび他の遺伝子解析パイプラインのうちの1つまたは複数を通じてそれを実行することなどによって行うように構成され得る。
それに加えて、様々な事例において、処理800の追加のレイヤが、NIPT、NICU、癌、LDT、AgBio、および他のそのような疾患診断、予防、および/または現在の一次および/または二次および/または三次パイプラインのうちの1つまたは複数によって生成されるデータを使用する治療などを含む、疾患診断、治療上の処置、および/または予防的予防などのために用意されるものとしてよい。たとえば、特定の生物分析的パイプラインは、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、遺伝型判定パイプライン、バリアント、たとえば、GATK/MuTect2パイプライン、および他のそのようなパイプラインを含む。したがって、本明細書で開示されているデバイスおよび方法は、遺伝子配列データを生成するために使用されてよく、次いで、データは、特定のおよび/または一般的な疾患診断、さらには予防的および/または治療的処置および/または発生モダリティなどのために、本明細書で開示されているデバイスおよび方法に従って他の三次処理パイプラインの実行をさらに受け得る1つまたは複数のバリアントコールファイルおよび/または他の関連付けられているデータを生成するために使用され得る。たとえば、図41B、図41C、および図43を参照されたい。
上で説明されているように、本明細書において提示されている方法および/またはシステムは、遺伝子配列データの生成および/または他の何らかの方法による取得を含み得る。そのようなデータは、NGSまたは「シークエンサオンアチップ技術」などによって、好適なソースから生成される、または他の何らかの形で取得され得る。生成されおよび/または取得された後、本明細書の方法およびシステムは、1つまたは複数の二次処理プロトコル600などによってデータに対してさらなる処理を加えるステップを含み得る。二次処理プロトコルは、1つまたは複数のバリアントコールファイルを作成する、たとえば、対象からの遺伝子配列データが1つまたは複数の参照配列またはゲノムとどれだけ異なるかを決定するなどのために、生成された遺伝子配列データのマッピング、アライメント、およびソーティングのうちの1つまたは複数を含み得る。本開示のさらなる態様は、追加の処理、たとえば、三次処理700/800などのために、生成されおよび/または処理された遺伝子データ、たとえば二次結果データに対して1つまたは複数の他の解析機能を実行することに向けられるものとしてよく、処理は、前述のシークエンサ技術をホストするものなどの同じチップもしくはチップセット上でまたはそれに関連して実行されてよい。
したがって、第1の事例では、図37~図41において述べられているように、遺伝子配列データの生成、取得、および/または伝送などに関して、そのようなデータは、ローカルまたはリモートで作成されてよく、および/またはその結果は、ローカルコンピューティングリソース100などによって、直接処理され得るか、あるいはさらなる処理のため、たとえば、二次および/または三次処理のために、リモートコンピューティングリソース300などのリモート配置に伝送されてよく、図42を参照されたい。たとえば、生成された遺伝子配列データは、局所的に、および直接的に処理されてよく、たとえば、シークエンシングおよび二次処理機能は、オンサイト10において同じチップセット上に、および/または同じデバイス内に収納される。同様に、生成された遺伝子配列データは、局所的に、および間接的に処理されてよく、たとえば、シークエンシングおよび二次処理機能は、同じ施設または配置を共有する異なる装置によって別々に行われるが、ローカルネットワーク10などを介して通信可能に接続されていても空間によって分離され得る。さらなる事例において、遺伝子配列データは、リモートNGSなどによってリモートで導出されてよく、結果データは、シークエンサから地理的に分離されているような、オフサイトのリモート配置300にクラウドベースのネットワーク30/50で伝送されてよい。
特に、図40Aに例示されているように、様々な実施形態において、データ生成装置、たとえば、ヌクレオチドシークエンサ110は、オンサイトに用意されてよく、たとえば、シークエンサは「シークエンサオンアチップ」またはNGSであり、シークエンサは、ローカルネットワーク接続10/30などによって直接的または間接的のいずれかでローカルコンピューティングリソース100に関連付けられる。ローカルコンピューティングリソース100は、データ生成110および/またはデータ取得120のメカニズムのうちの1つまたは複数を含むか、または他の何らかの形で関連付けられ得る。そのようなメカニズムは、対象または対象のグループの1つまたは複数の遺伝子配列に関係するアナログ、デジタル、および/または電磁データなどの、データを生成し、および/または他の何らかの形で取得するように構成されたメカニズムであってよく、たとえば、遺伝子配列データはBCLまたはFASTQファイル形式である。
たとえば、そのようなデータ生成メカニズム110は、NGS、シークエンサオンアチップ、または遺伝子配列情報を生成するための同様の類似のメカニズムなどの、シークエンサなどの一次プロセッサであり得る。さらに、そのようなデータ取得メカニズム120は、生成された遺伝子配列情報などの、データを受信するように構成されているメカニズムであってよく、ならびに/あるいはデータ生成器110および/またはコンピューティングリソース100とともに、本明細書で説明されているような生成されおよび/または取得された配列データに対してマッパ、アライナ、ソータ、および/またはバリアントコーラープロトコルを実行するように構成されている二次処理パイプライン装置などの、1つまたは複数の二次処理プロトコルをそのデータに作用させることができる。様々な事例において、データ生成110および/またはデータ取得120装置は、ローカル記憶200などのために、ローカルネットワーク10などで、一緒にネットワーク接続され得るか、あるいは、遺伝子配列情報の一次および/または二次処理に関係するデジタルデータなどの、データの伝送および/または受信を、リモート処理300および/または記憶400などのために、リモート配置との間で行うためなどで、ローカルおよび/またはクラウドベースのネットワーク30で一緒にネットワーク接続され得る。様々な実施形態において、これらのコンポーネントのうちの1つまたは複数は、本明細書で説明されているようなハイブリッドネットワークによって通信可能に一緒に結合され得る。
ローカルコンピューティングリソース100は、一次、二次、および/または三次処理などを実行するために、本明細書で説明されているように、生成されおよび/または取得されたデータおよび/またはそれに関連付けられているデータをコンパイルするように構成されているコンパイラ130ならびに生成されおよび/または取得されおよび/またはコンパイルされたデータを処理し、ならびに/あるいはシステム1およびそのコンポーネントを制御するように構成されているプロセッサ140などの、コンパイル130および/またはプロセッサ140も含むか、または他の何らかの形でそれらに関連付けられ得る。たとえば、好適なコンパイラが使用され得るが、しかしながら、いくつか事例では、さらなる効率は、システムコンポーネントの間のデータの効率的でコヒーレントな転送を行う、上で説明されているような密結合構成を実装することによって達成され得るだけでなく、ジャストインタイム(JIT)コンピュータ言語コンパイラ構成を実装することによってさらに達成され得る。さらに、いくつかの事例において、プロセッサ140は、プラットフォームパイプラインの様々な段階を通して生成され、受信され、および/または処理されるべきデータに関して様々なシステムコンポーネントの機能を制御するためのワークフロー管理システムを備え得る。
特に、本明細書で使用されているように、ジャストインタイム(JIT)は、取得されおよび/または生成されたファイル形式を一方の形式から他方の形式に変換するためのデバイス、システム、および/または方法を指す。広い使用構造において、本明細書で開示されているJITシステムは、様々なコードを一方の形式から他方の形式に変換する仕方で実装され得る、コンパイラ130、または他のコンピューティングアーキテクチャ、たとえば、処理プログラムを含み得る。たとえば、一実装形態において、JITコンパイラは、バイトコード、または解釈されなければならない命令を含む他のプログラムコードを、たとえば特定の機械語による命令の解釈を必要とせずに、ほぼ即座に実行できるように関連付けられているプロセッサ140に直接送信され得る命令に変換するように機能し得る。特に、コーディングプログラム、たとえば、Java(登録商標)プログラムが書かれた後、ソース言語ステートメントは、コンパイラ、たとえば、Java(登録商標)コンパイラによってバイトコードにコンパイルされるものとしてよく、所与の特定のハードウェアプラットフォームの処理言語とマッチする命令を含むコードにコンパイルされるのではない。このバイトコードコンパイルアクションは、したがって、その基礎となるプロセッサに関係なく任意のプラットフォームに送信され、そのプラットフォーム上で実行され得るプラットフォーム独立コードである。したがって、好適なコンパイラは、バイトコードをその後すぐに実行され得るプラットフォーム特有の実行可能コードにコンパイルするように構成されているコンパイラであってよい。この事例において、JITコンパイラは、「オンザフライ」などで、一方のファイル形式を他方のファイル形式に即座に変換するように機能し得る。
したがって、本明細書で説明されているような、適切に構成されているコンパイラは、当技術分野における様々な欠点を克服することができる。特に、特定の言語で書かれた過去のコンパイルプログラムは、それが実装されるべきである各特定のコンピュータプラットフォームに応じて再コンパイルされ、および/または書き換えられなければならなかった。本発明のコンパイリングシステムでは、コンパイラは、1回プログラムを書いてコンパイルするだけでよいように構成されるものとしてよく、特定の形式で書かれた後、1つまたは複数の他の形式にほぼ即座に変換され得る。より具体的には、コンパイラ130は、JITであるか、あるいはそれが実装される特定のコンピュータプラットフォームに応じて再コンパイルされおよび/または書き換えられなくてよいプラットフォームにとらわれない言語で命令を書くことができる、別の類似の動的翻訳コンパイラ形式であってよい。たとえば、特定の使用モデルにおいて、コンパイラは、コンパイルされたバイトコード、および/または他のコード化された命令を、コンピューティングプラットフォームに関係なく、一方のファイル形式を他方のファイル形式に変換するために所与の特定のプロセッサによって理解可能である命令に解釈するように構成され得る。原理的に、本明細書におけるJITシステムは、遺伝子コードを表すような、一方の遺伝子ファイル、たとえば、遺伝子シークエンサから生成された、たとえば、BCLまたはFASTQファイルを受け取り、それを、本明細書で開示されている方法を使用することなどによって、SAM、BAM、および/またはCRAMファイルなどの、別の形式に素早く変換することができる。
特に、様々な事例において、本明細書で開示されているシステムは、一度に1つまたは複数のバイトコード命令変換を取り扱う、仮想コンパイルマシンなどの、第1および/または第2のコンパイラ130aおよび130bを備え得る。たとえば、本発明のシステムプラットフォーム内で、Java(登録商標)タイプのジャストインタイムコンパイラ、または他の適切に構成されている第2のコンパイラを使用することで、たとえば、プログラムがそのプラットフォーム上で最初にコンパイルされたかのように、命令をバイトコードにコンパイルし、その後それを特定のシステムコードに変換することを可能にする。したがって、コードがJITコンパイラ130などによってコンパイルされおよび/または(再)コンパイルされた後、これはコンピュータプロセッサ140においてより高速に実行される。したがって、様々な実施形態において、ジャストインタイム(JIT)コンパイル、または他の動的翻訳コンパイルは、実行する前にではなく、所与のプログラムの実行中に、たとえば、実行時に実行されるように構成され得る。そのような事例において、これは、その後直接実行され得る、機械コードへの翻訳または別の形式への翻訳のステップを含むものとしてよく、それによって、事前コンパイル(AOT)および/または解釈のうちの1つまたは複数を可能にする。
より具体的には、本明細書のシステム内で実装されているように、典型的なゲノムシークエンシングデータフローは、一般的に、データを、BCL、FASTQ、SAM、BAM、CRAM、および/またはVCFファイル形式、またはその同等の形式などの、1つまたは複数のコンピューティングプラットフォームから導出される1つまたは複数のファイル形式で作成する。たとえば、典型的なDNAシークエンサ110、たとえば、NGSは、任意選択により、さらに処理される、たとえば、画像処理を増強される、および/または圧縮され得る(150)、BCLおよび/またはFASTQファイルなどの中で、リードとして本明細書において指定されているコールされた塩基を表す生信号を作成する。同様に、生成されたBCL/FASTQファイルのリードは、次いで、本明細書で説明されているように、システム内でさらに処理され、それにより、マッピングおよび/またはアライメントデータを作成するものとしてよく、たとえばマッピングされアライメントされたリードの、作成されたデータは、SAMまたはBAMファイル形式であるか、または代替的に、CRAMファイル形式であってよい。さらに、SAMまたはBAMファイルは、次いで、バリアントコーリングプロシージャなどを通じて、処理されるものとしてよく、それにより、VCFファイルまたはgVCFファイルなどの、バリアントコールファイルを作成する。したがって、これらの作成されたBCL、FASTQ、SAM、BAM、CRAM、および/またはVCFファイルのすべては、いったん作成された後、ローカル200またはリモート400のシステムメモリアーキテクチャなどに、すべて記憶される必要がある(極端に)大きいファイルである。これらのファイルのうちのどれか1つの記憶は高くつく。これらのファイル形式のすべての記憶は極端に高くつく。
示されているように、ジャストインタイム(JIT)または他のデュアルコンパイリングまたは動的翻訳コンパイル解析は、本明細書において、そのような高い記憶コストを低減するように構成され、デプロイされ得る。たとえば、JIT解析方式は、本明細書において、1つまたは複数のファイル形式(たとえば、BCL、FASTQ、SAM、BAM、CRAM、および/またはVCFなど)へのアクセスを実現しながら、データをただ1つの形式(たとえば、圧縮FASTQまたはBAMなどのファイル形式)で記憶するように実装され得る。この高速ファイル変換プロセスは、FPGAなどの集積回路上のハードウェアエンジンで、または量子プロセッサによって、たとえば、マッピング、アライメント、ソーティング、および/またはバリアントコーリング(または重複除去、HMMおよびSmith-Waterman、圧縮および復元、および同様のものなどのコンポーネント機能)などを行うために、本明細書において開示されているそれぞれのハードウェアおよび/または量子加速プラットフォームを利用してゲノムデータを高速処理することによって実行され得る。したがって、そのような加速とともにJITまたは類似の解析を実装することによって、ゲノムデータは、通常のファイルアクセスに匹敵する速度で、所望のファイル形式をオンザフライで生成するような仕方で処理され得る。したがって、かなりの記憶域の節約が、アクセス速度をほとんどまたは全く失うことなくJIT類似の処理によって実現され得る。
特に、2つの一般的なオプションは、JIT類似の処理のためにアクセス可能であるように本明細書において作成されるゲノムデータの基礎となる記憶に有用であり、これらは、非アライメントリード(たとえば、圧縮FASTQ、または非アライメント圧縮SAM、BAM、またはCRAMファイルを含み得る)の記憶域、およびアライメントリード(たとえば、圧縮BAM、またはCRAMファイルを含み得る)の記憶域を含む。しかしながら、本明細書において開示されている加速された処理は、参照されているファイル形式のどれも、高速に、たとえば、オンザフライで導出されることを可能にするので、記憶するための基礎となるファイル形式は、最小の圧縮ファイルサイズとなるように選択され、それによって記憶の費用を低減し得る。したがって、未処理の、たとえば、生の非アライメントのリードデータに対するファイルサイズが比較的小さいので、データフィールドは最小化されるように非アライメントリードを記憶する利点がある。同様に、CRAMファイル形式などで、処理済みの圧縮されたデータを記憶することに利点がある。
より具体的には、本明細書で開示されているデバイス、システム、およびその使用方法によって達成可能な高速処理速度に照らして、多くの事例において、あらゆるリードに対してマッピングされおよび/またはアライメントされた情報を記憶する必要がない場合があるが、それは、この情報はオンザフライなどで必要になったときに高速に導出され得るからである。さらに、圧縮FASTQ(たとえば、FASTQ.gz)ファイル形式は、遺伝子配列データの記憶によく使われているが、そのような非アライメントリードデータは、コンパクトバイナリ表現および/またはより多くのターゲット圧縮方法の使用などによって、ファイルサイズをさらに縮小し得る、SAM、BAM、またはCRAMファイルにおけるポストマッピングおよび/またはアライメントなどの、より高度な圧縮形式でも記憶され得る。したがって、これらのファイル形式は、記憶する前に圧縮され、記憶された後に復元され、オンザフライなどで高速処理され、一方のファイル形式を他方のファイル形式に変換し得る。
アライメントリードを記憶する利点は、各リードの配列内容の多くまたはすべてが省かれ得ることにある。特に、システム効率は、リードの示されたバリアントアライメント位置などで、リード配列と選択された参照ゲノムとの間の差異を記憶することのみによって高められ、記憶域を節約できる。より具体的には、参照との差異は、通常わずかなので、アライメント位置および差異のリストは、多くの場合に、元のリード配列に比べてよりコンパクトに記憶され得る。したがって、様々な事例において、たとえば、アライメントリードの差異に関係するデータを記憶するときに、アライメントリード形式の記憶は、非アライメントリードデータの記憶よりも好ましい場合がある。そのような事例において、アライメントリードおよび/またはバリアントコール形式が、JITプロシージャなどにおいて基礎となる記憶形式として使用される場合、SAM、BAM、および/またはCRAM、圧縮ファイル形式などの、他の形式も使用されてよい。
記憶されるべきアライメントおよび/または非アライメントリードファイルデータとともに、本明細書において決定された様々な計算から導出されるメタデータなど、様々な他のデータも記憶されてよい。そのような計算されたデータは、アライメントスコア、マッピング信頼度、参照からの編集距離などの、リードマッピング、アライメント、および/またはその後の処理データを含み得る。いくつかの事例において、そのようなメタデータおよび/または他の余分な情報は、それが本明細書で説明されている加速されたデータ処理などによって、オンザフライで再現され得る事例などにおいて、JIT解析のための基礎となる記憶域内に保持される必要はない。
メタデータに関して、このデータは、システムに別のファイル形式への変換に入るように一方のファイル形式から戻り、または進む仕方について命令する小さいファイルであるものとしてよい。したがって、メタデータファイルは、システムが他のファイルタイプのビット互換性のあるバージョンを創出することを可能にする。たとえば、元のデータファイルから進むときに、システムは、メタデータの命令にアクセスし、実装するだけでよい。高速ファイル形式変換とともに、JITは、また、ゲノミクスドロップボックスメモリキャッシュなどにおいて、高速圧縮および/または復元および/または記憶を可能にする。
以下でより詳しく説明されているように、配列データが生成された後(110)、これはローカルに記憶されるものとしてよく(200)、および/またはクラウドアクセス可能なドロップボックス類似のメモリキャッシュ400など、リモートに記憶するためにアクセス可能にされ得る。たとえば、ゲノムドロップボックスに入った後、データは、クラウド50上でアクセス可能であるものとして出現し、次いで、たとえば、実質的に即座に、さらに処理され得る。これは、たとえば、本明細書において説明されているようなJIT技術を使用するなどしてさらに処理され得る、データの自動アップロードおよび処理を円滑にするクラウド50のインターフェースのいずれかの側にあるものにより、複数のマッピング/アライメント/ソーティング/バリアントコーリングシステム100/300があるときに、特に有用である。
たとえば、JITコンパイリングおよび/または処理のための基礎となる記憶形式は、リード名、塩基クオリティスコア、アライメント位置、および/または参照内の向き、参照との差異のリストなどの、最小のデータフィールドのみを含むものとしてよく、たとえば、各フィールドは、そのデータ型に対して最適な仕方で圧縮され得る。様々な他のメタデータが、含まれ、および/または他の何らかの形で記憶ファイルに関連付けられ得る。そのような事例において、JIT解析のための基礎となる記憶域は、ハードディスクドライブおよびソリッドステートドライブなどの、ローカルファイルシステム200、またはNASもしくはオブジェクトもしくはDropbox類似のストレージシステム400などのネットワークストレージリソース内にあるものとしてよい。特に、BCL、FASTQ、SAM、BAM、CRAM、VCFなどの様々なファイル形式が、JIT処理および/または記憶のためにサブミットされ得る、ゲノムデータセットに対して作成されたときに、JITまたは他の類似のコンパイリングおよび/または解析システムは、データを記憶用に単一の基礎となる記憶形式に変換するように構成され得る。加速されたゲノムデータ処理による他のすべての所望の形式を再現するのに必要なメタデータおよび/または他の情報(小さくてもよい)などの、追加のデータも、ファイルに関連付けられ、記憶され得る。このような追加の情報は、再現されるべきファイル形式のリスト、各形式を再現するためのデータ処理コマンド、参照ゲノムの一意的ID(たとえば、URLまたはMD5/SHAハッシュ)、本明細書で説明されているようなマッピング、アライメント、ソーティング、バリアントコーリング、および/または他の処理などのための様々なパラメータ設定、処理するステップのため、たとえば、準ランダム化を利用して、同じ結果、ユーザインターフェース、および同様のものを確定的に再現するためのランダム化シードのうちの1つまたは複数を含み得る。
様々な事例において、JITまたは類似の動的翻訳処理および/または解析システムで記憶されおよび/または取り出されるべきデータは、様々な方式で、ユーザ、または他のアプリケーションに提示され得る。たとえば、一オプションは、SAM、BAM、CRAM、または他のカスタムファイル形式として記憶し、および/または取り出すなどのために、標準もしくはカスタム「JITオブジェクト」ファイル形式でJIT解析を記憶させ、本明細書で開示されている加速処理を使用してJITオブジェクトを所望の形式(たとえば、ローカルの一時記憶域200内)に素早く変換するためのユーザツールを提供することである。別のオプションは、BCL、FASTQ、SAM、BAM、CRAM、VCFなどの多数のファイル形式の表示を、ユーザ、およびユーザアプリケーションに対して、様々なファイル形式へのファイルシステムアクセスがJITプロシージャを利用し、それにより、1つのファイルタイプのみが保存される必要があり、これらのファイルタイプから、他のすべてのファイルがオンザフライで生成され得るような仕方で、提示することである。さらなるオプションは、JITオブジェクトとして代わりに提示されるようにできる特定のファイル形式(BCL、FASTQ、SAM、BAM、CRAM、VCFなど)を他の何らかの形で受け入れるユーザツールを作成することであり、JIT解析を自動的にコールして、コールされたときに所望のデータ形式、たとえば、BCL、FASTQ、SAM、BAM、CRAM、VCFなどのデータを自動的に取得するものとしてよい。
したがって、JITプロシージャは、基礎となる記憶されている圧縮ファイル形式を高速に処理することによって単一のファイル形式から多数のファイル形式、たとえば、BCL、FASTQ、SAM、BAM、CRAM、VCF、および同様のものへのアクセスを提供するのに有用である。それに加えて、JITは、単一ファイル形式のみがアクセスされるべきである場合であっても依然として有用であるが、それは、圧縮がアクセスされた形式を直接記憶することに関してそのまま達成されるからである。そのような事例において、基礎となるファイル記憶形式は、アクセスされたファイル形式と異なっていてもよく、および/またはより少ないメタデータを含んでいてもよく、および/またはアクセスされた形式に比べて効率的に圧縮され得る。さらに、そのような事例において、上で説明されているように、ファイルは、たとえば、自動的に、記憶する前に圧縮され、取り出した後に復元される。
様々な事例において、本明細書において実現されるような、JIT解析の方法も、インターネットまたは別のネットワークで、ゲノムデータの伝送に使用され、それにより伝送時間を最小にし、消費されるネットワーク帯域幅を縮小し得る。特に、一記憶アプリケーションにおいて、単一の圧縮された基礎となるファイル形式が記憶され、ならびに/あるいは1つもしくは複数の形式が復元および/または加速ゲノムデータ処理を介してアクセスされ得る。同様に、伝送アプリケーションにおいて、単一の圧縮された基礎となるファイル形式のみが、たとえば、ソースネットワークノードからデスティネーションネットワークノードに伝送される必要があり、たとえば、基礎となる形式は最小の圧縮されたファイルサイズについてもっぱら選択されるものとしてよく、および/またはすべての所望のファイル形式がオンザフライなどで、ゲノムデータ処理によってまたはゲノムデータ処理のためにデスティネーションノードにおいて生成され得る。この方式で、ただ1つの圧縮されたデータファイル形式のみが、記憶および/または転送のために使用される必要があり、そのファイル形式から他の様々なファイル形式が導出され得る。
したがって、図40Aを見ると、本明細書で説明されているような、ハードウェアおよび/または量子加速ゲノムデータ処理は、伝送のために基礎となる形式を生成し、および/または圧縮するための、ソースネットワークノード、および加速ゲノムデータ処理による他の所望のファイル形式を復元し、および/または生成するための、デスティネーションネットワークノードの両方において(またはそれらによって)利用され得る。それにもかかわらず、JITまたは他の動的翻訳解析は、ソースノードまたはデスティネーションノードのうちの1つのみがハードウェアおよび/または量子加速ゲノムデータ処理を利用する場合であっても伝送アプリケーションにおいて引き続き有用である。たとえば、大量のゲノムデータを送信するデータサーバは、ハードウェアおよび/または量子加速ゲノムデータ処理を利用して、様々なデスティネーションに伝送するために圧縮された基礎となる形式を生成し得る。そのような事例において、各デスティネーションは、より遅いソフトウェアゲノムデータ処理を使用して、他の所望のデータ形式を生成し得る。したがって、JIT解析の速度上の利点は、デスティネーションノードにおいて弱められるが、伝送時間、およびネットワーク利用は、それでも有用に低減され、ソースノードは、その対応するハードウェアおよび/または量子加速ゲノムデータ処理装置があるため多くのそのような伝送を効率よくサービスすることができる。
さらに、別の例では、大量のゲノムデータのアップロードを、たとえば、様々なソースから受け取るデータサーバは、ハードウェアおよび/または量子加速ゲノムデータ処理および/または記憶を利用し得るが、様々なソースノードは、CPU/GPU上で実行されるより遅いソフトウェアを使用して伝送のために圧縮された基礎となるファイル形式を生成するものとしてよい。代替的に、ハードウェアおよび/または量子加速ゲノムデータ処理は、JITまたは他の動的翻訳解析方法に従って、ゲノムデータを圧縮された基礎となるファイル形式で伝送し、および/または受信するために、ソースノードとデスティネーションノードとの間で、ゲートウェイサーバなどの、1つまたは複数の中間ネットワークノードによって利用されてよく、それにより、過剰なソフトウェア処理で前記中間ネットワークノードに過剰な負荷をかけることなく伝送時間の短縮およびネットワーク利用の低減という利点が得られる。
したがって、図40Aを見るとわかるように、いくつかの事例において、ローカルコンピューティングリソース100は、JITコンパイラなどの、コンパイラ130を含むものとしてよく、JIT解析プロシージャなどにおいて、ローカル10および/またはクラウド30および/またはハイブリッドクラウドベース50ネットワークで転送する前などに圧縮されてよく、転送の後および/または使用の前に復元され得る、生成されおよび/または取得された一次および/または二次処理済みデータ(または三次データ)などの、データを圧縮するように構成されている圧縮器ユニット150をさらに備え得る。
上で説明されているように、様々な事例において、システムは、マッピング、アライメント、ソーティング、および/またはバリアントコーリングオペレーションを実行するなどのための第1の集積および/または量子回路100を備えるものとしてよく、それにより、マッピングされ、アライメントされ、ソーティングされ、重複除去され、および/またはバリアントコールされた結果データのうちの1つまたは複数を生成する。それに加えて、システムは、三次処理などのために、1つまたは複数のゲノミクスおよび/またはバイオインフォマティクスパイプライン解析の実行の際に結果データを使用するなどのためのさらなる集積および/または量子回路300を備え得る。たとえば、第1の集積および/または量子回路100によって生成される結果データは、さらなるゲノミクスおよび/またはバイオインフォマティクスパイプライン処理プロシージャの実行の際に、たとえば、第1または第2の集積および/または量子回路300によって使用され得る。特に、ゲノミクスデータの二次処理は、結果データを作成するために第1のハードウェアおよび/または量子加速プロセッサ100によって実行されてよく、三次処理は、その結果データに対して実行されてよく、たとえば、さらなる処理は、第1の集積回路に動作可能に結合されているCPUおよび/またはGPUおよび/またはQPU300によって実行される。そのような事例において、第2の回路300は、第1の回路100によって作成されるゲノミクスバリエーションデータの三次処理を実行するように構成され得る。したがって、第1の一体化されたサーバから導出される結果データは、第2の集積および/または量子処理回路300などによって、三次処理に関して本明細書で説明されているさらなる処理ステップを駆動する解析エンジンとして働く。
しかしながら、これらの一次および/または二次および/または三次プロセスステップの各々で生成されるデータは膨大なものとなり得、ローカル200またはリモート400のいずれかに記憶するなどのために非常に高いリソースおよび/またはメモリコストが必要になる。たとえば、第1の一次処理ステップにおいて、BCLおよび/またはFASTQファイル形式などの、生成された核酸配列データ110は、NGS110などから受信され得る(120)。この配列データのファイル形式に関係なく、データは、本明細書で説明されているような二次処理プロトコルで使用され得る。BCLおよび/またはFASTQファイル形式などでNGSから直接、一次配列データを受信し、処理することができることは非常に有用である。特に、配列データファイルをNGS、たとえば、BCLからFASTQファイルに変換する代わりに、ファイルは、NGSから、たとえば、BCLファイルとして直接受信されてよく、JITシステムによって、たとえば、オンザフライで、受信され、本明細書において説明されているように、その後処理され得るFASTQファイルに変換され、それにより、たとえば、その後、SAM、BAM、および/またはCRAMファイルなどに圧縮され得る、マッピングされ、アライメントされ、ソーティングされ、重複除去され、および/またはバリアントコールされた結果データを作成することなどによって処理されるものとしてよく、ならびに/あるいは開示されているゲノミクス三次処理パイプラインのうちの1つまたは複数などによる、さらなる処理に通されてよい。
したがって、そのようなデータはいったん作成されると、何らかの方式で記憶される必要がある。しかしながら、そのような記憶は、リソース集約的であるだけでなく、コストも高くつく。特に、典型的なゲノミクスプロトコルでは、配列決定データはいったん作成されると、大きなFASTQファイルとして記憶される。次いで、マッピングおよび/またはアライメントプロトコルに通されることなどによって処理された後、BAMファイルが創出され、このファイルは、また、典型的には記憶され、FASTQおよびBAMの両ファイルを記憶しなければならないことなどにより、ゲノムデータ記憶の費用を増大させる。さらに、バリアントコーリングプロトコルに通されることなどによってBAMファイルが処理された後、VCFファイルが作成され、このVCFファイルは、また、典型的には記憶される必要がある。そのような事例において、生成された遺伝子データを適切に提供し、使用するために、FASTQ、BAM、およびVCFファイルの3つすべてが、ローカル200またはリモート400のいずれかに記憶される必要があり得る。それに加えて、元のBCLファイルも記憶され得る。そのような記憶は、不効率であり、さらにはメモリリソース集約的であり、コストが高くつく。
しかしながら、JITコンパイル、圧縮、および記憶とともに、本明細書において実装されるハードウェアおよび/または量子処理アーキテクチャの計算パワーは、これらの不効率、リソースコスト、および費用を大幅に改善する。たとえば、BCLファイルをFASTQファイルに変換し、次いでFASTQファイルをSAMまたはBAMファイルに変換し、次いでBAMファイルをCRAMおよび/またはVCFファイルに変換し、またその逆の変換をするなどのために、本発明の加速集積回路によって実装される方法および達成される処理速度に照らすと、本発明のシステムは、そのようなデータの効率的な処理および/または記憶のために必要なコンピューティングリソースの数および/またはファイルサイズを大幅に減らす。これらのシステムおよび方法の利点は、1つのファイル形式のみ、たとえば、BCL、FASTQ、SAM、BAM、CRAM、および/またはVCFが記憶される必要があり、それから他のすべてのファイル形式が導出され処理され得るという事実によっていっそう高められる。特に、1つのファイル形式のみが保存される必要があり、そのようなファイルから、他のファイル形式のどれかが高速に、たとえば、オンザフライで、ジャストインタイム、すなわちJIT、コンパイル形式などで、本明細書において開示されている方法に従って生成され得る。
たとえば、典型的な従来の方法により、NGSシークエンサによって生成されるFASTQファイルの処理および記憶のために大量のコンピューティングリソース、たとえば、サーバファームおよび大きいメモリバンクが必要である。特に、典型的な事例において、NGSが大きなFASTQファイルを作成した後、サーバファームは、次いで、FASTQファイルを受信し、BAMおよび/またはCRAMファイルに変換するために使用され、その処理には1日以上を要することもある。しかしながら、作成された後、BAMファイルそれ自体は、次いで、記憶されなければならず、さらなる時間とリソースを必要とする。同様に、BAMまたはCRAMファイルも、VCFを生成するためにそのような方式で処理されてよく、これもまたさらに1日以上を要することがあり、このファイルも記憶される必要があり、そのため、さらなるリソースコストと費用とを負担することになる。より具体的には、典型的な事例において、ヒトゲノムに対するFASTQファイルは、ファイル毎に、約90GBの記憶域を消費する。同様に、典型的なヒトゲノムBAMファイルは、約160GBを消費し得る。VCFファイルも、FASTQおよび/またはBAMファイルに比べればきわめて小さいとはいえ、記憶される必要がある。SAMおよびCRAMファイルも、二次処理プロシージャ全体を通して生成され、これらもまた記憶される必要があり得る。
本明細書で実現される技術の前には、一方のステップから他方のステップに、たとえば、一方のファイル形式から他方のファイル形式に進むことは計算集約的であったが、それゆえ、これらのファイル形式に対するデータのすべては典型的には記憶されなければならない。これは、一部は、ユーザが前に戻って、ファイルの1つまたは複数を生成し直したかった場合に、様々なファイルを再生成するのに伴うプロセスをやり直すのに大量のコンピューティングリソースおよび時間を必要とすることになり、そのため負担する出費が大きくなる事実のためである。さらに、これらのファイルが、記憶の前に圧縮される場合、そのような圧縮は、約2時間から約5時間、約10時間以上かかり、再利用する前に、復元に必要な時間がほぼ同じだけかかる。これらの大きな費用があるため、典型的なユーザは、記憶の前にそのようなファイルを圧縮せず、また典型的には2つ、3つ、またはそれ以上のファイル形式、たとえば、BCL、FASTQ、BAM、VCFをすべて記憶し、時間が長引くと負担するコストも大きくなる。
したがって、本明細書で使用されているJITプロトコルは、本発明のハードウェアおよび/または量子アクセラレータによって達成される加速処理速度を使用し、それにより、処理と記憶の両方のためにかかる時間を短縮しコストを低減して効率増大を実現する。異なるファイル形式の同じ一般的なデータの2つ、3つ、またはそれ以上のコピーを記憶する代わりに、1つのファイル形式のみが記憶される必要があり、オンザフライで、他のファイルタイプが、本明細書で説明されている加速処理プラットフォームを使用するなどして、再生成され得る。特に、FASTQファイルを記憶することから、本発明のデバイスおよびシステムは、20分以内、または約15もしくは10分以内、またはそれより短い時間など、30分未満などの時間で、BCLファイルに戻り、またはBAMファイルに進み、次いで、さらにVCFに進むことを容易にする。
したがって、本明細書で開示されているハード配線された/量子処理エンジンによって提供されるパイプラインおよび処理速度を使用することで、単一のファイル形式のみが記憶される必要があり、他のファイル形式は容易に、また高速にそれらから生成され得る。したがって、3つのすべてのファイル形式を記憶する必要がある代わりに、単一のファイル形式が記憶される必要があり、それから、他のファイル形式は、ユーザが望むさらなる処理ステップに対してオンザフライ、ジャストインタイムなどで再生成され得る。その結果、システムは、容易に使用できるように、ユーザがデバイスの関連付けられているディスプレイに提示されるような、グラフィカルユーザインターフェースを単純にインタラクティブに操作する、たとえば、ユーザがGUIに提示されているFASTQ、BAM、VCFなどのボタンをクリックした場合に、所望のファイル形式が提示されるように構成されるものとしてよく、バックグラウンドでは、システムの処理エンジンの1つまたは複数が、記憶されているファイルから要求されたファイル形式の要求されたファイルを再生成するのに必要な加速処理ステップを実行しているものとしてよい。
典型的には、BCL、FASTQ、SAM、BAM、CRAM、および/またはVCFファイルの圧縮バージョンの1つまたは複数は、圧縮されたおよび/または記憶されたファイルを創出するためにシステムがどのように実行されたかを示す構成のすべてを含む小さなメタファイルとともに、保存される。そのようなメタファイルデータでは、特定のファイル形式、たとえば、FASTQおよび/またはBAMファイルがどのように生成され、ならびに/あるいは他のファイル形式のどれかを生成するためにどのようなステップが後退するまたは前進する必要があるかを詳しく述べている。このプロセスは、本明細書において以下でより詳しく説明される。このような方式で、プロセスは、メタファイルに記憶されている構成を使用して前進するか、または反転して戻ることができる。これは、コンピューティング機能に記憶機能がバンドルされている場合に記憶および経済的コストの約80%以上の削減となり得る。
したがって、上記に照らし、図40Aを見るとわかるように、データアナリティクスおよび記憶のためのクラウドベースのサーバシステムが実現される。たとえば、本明細書で開示されていような、クラウドアクセス可能サーバシステムを使用することで、ユーザは、入力データを記憶するなどのためのストレージデバイスと接続し得る。たとえば、リモートユーザは、記憶および/またはその処理などのために、システムにアクセスし、ゲノミクスおよび/またはバイオインフォマティクスデータをシステムに入力するものとしてよい。特に、システムのリモートユーザは、たとえば、ローカルコンピューティングリソース100を使用して、システム1にアクセスし、ゲノムデータ、たとえば、1人または複数の個体の1つまたは複数の配列決定ゲノムなどをアップロードし得る。以下で詳細に説明されているように、システムは、たとえば適切に構成されたAPIにアクセスする、ユーザインターフェースを備えるものとしてよく、これは、ユーザがBioITプラットフォームにアクセスし、処理されるべきデータをアップロードし、処理のパラメータを制御し、および/またはプラットフォームから出力、たとえば結果データをダウンロードすることを可能にする。
特に、システムは、記憶し(400)、および/または記憶されているファイルを受け取るために、システムの1つまたは複数のメモリにアクセスすることを可能にするAPI、たとえば、S3または「S3類似」のオブジェクトを備え得る。たとえば、クラウドアクセス可能APIオブジェクトが存在してよく、たとえば、APIは、クラウド50内のデータファイルを、1つまたは複数のストレージバケット500、たとえば、S3バケットなどに記憶するように構成可能である。したがって、システムは、パーソナルコンピューティングデバイス上のクラウドベースインターフェースを介してAPIにアクセスすることなどによって、たとえばS3もしくはS3類似のAPIを介して、ユーザがリモートに記憶されているファイルにアクセスすることを可能にするように構成され得る。
したがって、そのようなAPIは、クラウド50にアクセスし、それによってユーザを本明細書で開示されているクラウドベースサーバ300のうちの1つまたは複数に接続し、たとえば、所与の記憶されているファイルをアップロードおよび/またはダウンロードし、たとえば、クラウドサーバ300とローカルハードドライブ100との間でファイルをアクセス可能にするように構成され得る。これは、たとえば、リモートユーザがサーバ300上で、またはそこから、データを提供し、アクセスし、および/またはダウンロードし、さらに、ローカル100またはサーバ300のいずれかで、そのデータに対して1つまたは複数のアプリケーションおよび/または計算を実行し、次いで、APIを呼び出して、変換されたデータをクラウド50に送り返すか、またはそこから送信し、たとえば、記憶し(200)、および/またはさらなる処理を行うことを可能にするために有用であり得る。これは、ゲノミクスデータの取り出し、解析、および記憶に特に有用である。
しかしながら、データの典型的なクラウドベースストレージ、たとえば「S3」ストレージは高価である。この費用は、ゲノミクスおよびバイオインフォマティクスの分野に関連する大量のデータを記憶するときに増大し、そのようなコストは多くの場合に法外なものとなる。それに加えて、たとえばローカル100またはリモート300のいずれかで使用するため、および/または記憶(400)するためにデータを記録し、アップロードし、および/またはダウンロードするのに必要な時間も、そのような高価なクラウドベースのストレージソリューションの魅力を下げている。本明細書において開示されている本発明のソリューションは、これらおよび他の必要性を解消する。
特に、典型的な「S3」または他の典型的なクラウドベースオブジェクトAPIを経由する代わりに、本明細書において提示されているのが、代替的S3互換APIであり、これはデータの伝送速度および/またはデータの記憶コストを下げるように実装され得る。そのような事例において、ユーザが、典型的なクラウドベースの、たとえばS3のAPIを利用する代わりに、ファイルを記憶したいときに、代替的なサービスAPIシステム、たとえば、本明細書で開示されている専用S3互換APIが、ファイルを圧縮するように機能する、計算インスタンス、たとえば、システムのCPUおよび/またはFPGAインスタンスを起動し、データが何であるか、および/またはファイルがどのように生成されたかなどを示すことに関するメタデータインデックスを生成し、次いで、S3互換ストレージ類似のバケット400を介して圧縮ファイルを記憶する。したがって、本明細書に提示されているのは、代替的APIによって起動され得る、計算インスタンス300を使用するクラウドベース50のサービスであり、これは記憶する(400)前にデータを圧縮し、および/または取り出し後にデータを復元する。したがって、そのような事例では、記憶されるものは、実際のファイルではないが、むしろ、記憶されるものは、元のファイルの圧縮バージョンである。
特に、そのような事例において、初期ファイルは、ファイル、たとえばF1ファイルを受け取る、専用S3互換APIを介してシステム内にロードされ得る、第1の形式であってよく、次いで、ファイルに対して計算機能を実行し、および/または次いで、ファイルを、適切に構成されたCPU/GPU/QPU/FPGA処理エンジン300などを介して圧縮するものとしてよく、これは、次いで、圧縮ファイルを記憶する準備を、圧縮された、たとえば、圧縮されたF1ファイルとして行うよう準備する。しかしながら、圧縮され記憶されたファイルが取り出される必要が生じたときに、これは、次いで、復元され、復元されたファイルは、次いで、ユーザに返され得る。この加速された圧縮および復元システムの利点は、圧縮ファイルの記憶域400は、ストレージコストの信じがたいほどの節約を意味し、その利点は本明細書で開示されているシステムによって達成されるコンピューティングおよび/または圧縮機能によって可能になる。
したがって、本発明のシステムによって達成される高速で効率的なコンピューティングおよび/または圧縮機能があるため、ユーザは、記憶する前にファイルが圧縮され、続いて記憶後に復元され、ユーザのインターフェースに提示されることを知ることすら必要ない。特に、システムは、ユーザが、要求されたデータを記憶しおよび/または取り出すときに行われる多数の圧縮、計算、および/または復元ステップを意識する必要がないくらい高速に、また効率的に機能し、ユーザには、これはシームレスでタイムリーであるように見える。しかしながら、本発明のストレージシステムは、以前のストレージシステムに比べてコストが低く、効率的であるという事実は明白である。
したがって、上記に照らして、オブジェクトベースのストレージサービスが本明細書において実現され、ストレージサービスは、記憶機能とともに計算および/または圧縮インスタンスを組み合わせることによって、より低コストで提供され得る。そのような事例において、典型的なストレージコストは、かなり低いレベルで提供される、コンピューティングコストの代わりになり得るが、それは、本明細書で述べているように、このコンピューティングコストは、本明細書で説明されているようなFPGAおよび/または量子コンピューティングプラットフォーム300などによって加速方式で実装され得るからである。したがって、本明細書で開示されている加速プラットフォームは、かなり低いコストで、効率および速度をより高めて、圧縮され記憶されることが両方行われ、さらには高速に復元され取り出され得るデータを高速に圧縮して記憶することを可能にする高速および効率的な記憶および取り出しシステムとして構成され得る。これは、ゲノミクスデータを記憶する(400)ことに関して特に有用であり、上で本明細書において開示されているジャストインタイム処理機能と互換性がある。したがって、本明細書において開示されているデバイス、システム、および方法により、オブジェクトストレージサービスが提供されるものとしてよく、ストレージサービスは、ゲノミクス処理結果データを記憶するためにゲノミクス特有の圧縮など、高速圧縮機能を実装する。
より具体的には、図40Aを見るとわかるように、例示的な一実装形態において、本明細書に実現されるBioITシステムは、パイプラインサーバシステム300、たとえばその一部が、たとえば、結合されているメタデータに基づき、初期(F1)ファイルを(CF1)ファイルの圧縮バージョンに関連付けるように適合されているデータベース400に動作可能に接続されるAPI、たとえば、S3互換APIで要求を受け取るように構成され得る。同様に、元のCF1ファイルが復元され処理された後、その結果得られる結果データ(F2)ファイルは、次いで、圧縮され、CF2ファイルとして記憶され得る。したがって、データベース400からのファイルの取り出しが望まれているときに、サーバ300は適切に構成されたメタデータを介して元のファイルを圧縮ファイルにすでに関連付けているAPIを有し、したがって、取り出しが要求されたときに、システムのワークフロー管理コントローラ(WMS)は計算インスタンス300を起動し、必要な計算を実行し、および/またはファイルを復元してさらに処理し、伝送し、および/または要求側ユーザ100に提示するために適切な計算インスタンスを起動する。
したがって、様々な実施形態において、例示的な方法は、任意の論理的順序で、1)要求がAPI、たとえば、S3互換APIを通じて入ってくるステップ、2)APIがWMSと通信するステップ、3)WMSがデータベースに初期値を入れ、計算インスタンスを開始するステップ、4)計算インスタンスがF1ファイルに対して必要な圧縮を実行し、特性メタデータおよび/または他の関連するファイル関連付け(X)を生成して、たとえば、CF1 X1ファイルを作成するステップ、5)それによってデータを記憶(400)する準備をするステップのうちの1つまたは複数のステップを含み得る。次いで、このプロセスは、F2、F3、Fnファイル、たとえば他の処理済み情報について繰り返されてよく、それにより、WMSは、圧縮ファイルがどのように生成され、さらにはどこでどのように記憶されたかを知る。このシステムの固有の特徴は、何人かの異なるユーザ100が記憶されているデータ400に実質的に同時にアクセスすることを許され得ることであることに留意されたい。たとえば、本明細書において開示されている圧縮システムおよび方法は、本明細書で開示されているBioITプラットフォームと連携するのに有用であり、それによって、処理プロセスにおいていつでも、結果データが、本明細書の方法に従って圧縮され記憶されるものとしてよく、正しい許可を得た他者からアクセス可能であるものとしてよい。
ゲノム解析を実行することに関して、ユーザ100は、本明細書におけるシステム300に、たとえば、S3もしくはS3互換APIなどのゲノム解析APIを介して、アクセスし、BCLおよび/またはFASTQファイルまたは他のファイル形式などでゲノムデータをアップロードし、それによって、マッピング、アライメント、ソーティング、重複除去、バリアントコーリング、および/または他のオペレーションなどの、1つまたは複数のゲノミクスオペレーションを実行することを要求し得る。システム300は、ワークフローマネージャAPIで要求を受け取り、ワークフローマネージャシステムは、次いで、着信要求にアクセスし、ジョブにインデックスを付け、キューを形成し、リソース、たとえば、インスタンスアロケーションを割り振り、パイプラインフローを生成する。したがって、要求が入ってきて、前処理されキューに入れられると、インスタンスアロケータ、たとえば、APIが、次いで、ワークプロジェクトに従って、本明細書において以下でより詳しく説明されている、様々なジョブ特有のインスタンスをスピンアップする。したがって、ジョブがインデックスを付けられ、キューに入れられ、および/または適切なデータベース400に記憶された後、ワークフローマネージャは、次いで、データをストレージ400、たとえばS3またはS3互換ストレージから引き出し、適切なインスタンスをサイクルアップし、これはファイルを取り出し、データに対して適切なプロセスを実行し、要求されたジョブのうちの1つまたは複数を実行する。
それに加えて、複数のジョブが、データに対して実行されるように要求され、複数のインスタンスを実行することを必要としている場合、第1のインスタンスがそのオペレーションを実行した後、結果データは、本明細書において上で開示されているシステムおよび方法になどに従って、圧縮され、適切なメモリインスタンス、たとえば、第1のデータベースなど、たとえば弾力性または柔軟性のあるストレージデバイスなどに記憶されてよく、それにより、さらなるパイプラインインスタンスがスピンアップされ、結果データを取り出して、さらに処理している間待機するものとしてよい。さらに、新しい要求が入り、および/または現在のジョブが実行されているときに、ワークフロー管理システムは、常時、キューを更新し、インスタンスアロケータAPIを介して、ジョブを適切なインスタンスに割り振り、システムおよびシステムのプロセス内を流れるデータを効率よく実行させ続ける。
同様に、システム300は、常時、さらなる処理および/または伝送の前、たとえば、最初の要求側100または指定された当事者に送り返す前に、結果データを取り出してデータ200/400を、たとえば、第1または第2のデータベースに記憶している。いくつかの事例において、結果データは、記憶400および/または伝送の前に、本明細書で開示されているように、圧縮され得る。さらに、上で示されているように、生成された結果データファイルは、圧縮されたときに、適切なメタデータおよび/または他の関連付けられているデータを含むものとしてよく、結果データは、システム内を流れる、たとえば、F1ファイルからF1Cファイルへ、F2ファイルへ、F2Cファイルへなどと進むときに異なる仕方で指定されてよく、データは処理され、たとえば、ファイル関連付けAPIによって指令されるように、プラットフォームパイプラインを通過する。
したがって、本明細書で開示されているように、専用APIがあるので、システムは、他のサービスが結合され得る共通バックボーンを有するものとしてよく、および/または追加のリソース、たとえば、インスタンスは、オンラインにされ、パイプラインオペレーションのすべてが円滑に効率よく実行されることを確実にし得る。同様に、望ましい場合に、圧縮され記憶された結果データファイルはコールされるものとしてよく、それによって、ワークフローマネージャは、適切な計算をスピンアップし、および/または要求側に提示するためデータベースインスタンスを復元して結果データを復元する。様々な事例において、指定された計算および圧縮インスタンス、さらには指定された計算および復元インスタンスは、単一のまたは多数のインスタンスであってよく、CPU、FPGA、または密結合CPU/FPGA、密結合CPU/CPU、または密結合FPGA/FPGAとして実装され得ることに留意されたい。いくつかの事例において、本明細書で開示されているこれらのおよび他のインスタンスのうちの1つまたは複数は、量子処理ユニットとして実装され得る。
したがって、本明細書の開示に照らして、一態様において、ゲノミクス配列解析オペレーションを実行する際に多数の機能のうちの1つまたは複数を実行するためのデバイスが実現される。たとえば、データが、たとえば、リモートユーザ100によって受信され、および/またはクラウドベースシステム内に記憶された(400)後、入力データは、WMSによってアクセスされてよく、さらなる処理、たとえば、二次解析の準備が行われるものとしてよく、その結果は、次いで、ローカルユーザ100に、たとえば圧縮され、記憶され(400)、および/または追加の処理、たとえば、システムサーバ300による三次処理に通された後、送り返され得る。
いくつかの事例において、本明細書において開示されている二次処理ステップは、特定の実装形態において、ローカルコンピューティングリソース100によって実行されてよく、ボックストップコンピューティングリソース200によって実行されることなどによって、ソフトウェアおよび/またはハードウェアによって実装されてよく、コンピューティングリソース200は、約4から約14、約24、またはそれ以上の個数のCPUコアなどの、CPUコアを含み、1つまたは複数のFPGAをさらに含み得る。ローカルボックストップコンピューティングリソース100は、120GBのRAMメモリなどの大容量ストレージブロック200にアクセスするように構成されてよく、アクセスは、たとえば、それと直接結合されることによって直接的、またはたとえば、ローカルクラウドベースネットワーク30で通信可能に結合されることによって間接的であってよい。
特に、ローカルシステム内で、データは、処理するジョブデータ、たとえば、処理されるべきゲノミクスジョブをメモリ200に書き込み、処理済み結果データをメモリ200から読み出すように適合されている適切に構成されSSDドライブを介してメモリ200に、またはメモリ200から伝送され得る。様々な実施形態において、ローカルコンピューティングリソース100は、シークエンサ110に通信可能に結合され、それからBCLおよび/またはFASTQファイルが、たとえば、シークエンサから取得され、SSDドライブに、適切に構成されたインターコネクトなどを通して直接的に書き込まれ得る。ローカルコンピューティングリソース100は、次いで、データに対して1つまたは複数の二次処理オペレーションを実行し得る。たとえば、一実施形態において、ローカルコンピューティングリソースは、24個のCPUを有するLINUX(登録商標)サーバであり、CPUは本明細書において開示されている二次処理オペレーションのうちの1つまたは複数を実行するように適合されている適切に構成可能なFPGAに結合されてよい。
したがって、特定の事例において、ローカルコンピューティングデバイス100は、遺伝子データに対して二次および/または三次処理のうちの1つまたは複数を実行するように構成されているBioITチップセットを有する「ワークベンチ」コンピューティングソリューションであってよい。たとえば、本明細書において開示されているように、コンピューティングリソース100は、コンピューティングデバイス内に挿入されるPCIeカードに関連付けられ、それによって1つまたは複数の内部CPU、GPU、QPUコア、および/または関連付けられているメモリに関連付けられ得る。特に、中に1つまたは複数のFPGA/ASICチップセットを有する、処理ユニット、関連付けられたメモリ、および/または関連付けられたPCIeカードを含むコンピューティングデバイス100のコンポーネントは、互いに通信するものとしてよく、それらはすべて当技術分野において典型的であるボックスセット方式などでハウジング内に設けられ得る。より具体的には、ボックスセットは、ワークベンチで使用するように構成されるか、または様々な事例において、リモートアクセス可能なサーバラック内に構成され、備えられ、および/または使用可能であり得る。他の実施形態では、CPU/FPGA/メモリチップセットおよび/または関連付けられているインターコネクトエクスプレスカードが、Next Genシークエンシングデバイス内に関連付けられ、それと一緒に1つのユニットを形成することができる。
したがって、特定の一事例において、デスクトップボックスセットは、単一のハウジング内などに、1、または2、または3つ、またはそれ以上のFPGAに結合され得る、4個のCPU/GPU、または8、または12、16、20、22、または24個のCPU、またはそれ以上などの、1つまたは複数のFPGAに結合された複数のCPU/GPU/QPUを備え得る。特に、特定の一事例において、ボックスセットコンピューティングリソースが実現され、コンピューティングリソースは、24個のCPU、再構成可能なFPGA、データベース、たとえば、128×8のRAM、1つまたは複数のSSDを備え、たとえば、FPGAは、マッピングを実行することとアライメントを実行することとの間などの、オペレーションの間で少なくとも部分的に再構成可能であるように適合される。したがって、そのような事例において、シークエンシング装置110によって生成されるBCLおよび/またはFASTQファイルは、処理のため、CPUに読み込まれ、および/またはFPGAに転送されるものとしてよく、その結果データは、SSDドライブを介して関連付けられているCPUに読み戻され得る。その結果、この実施形態において、ローカルコンピューティングシステム100は、様々な高計算機能を関連付けられているFPGAにオフロードするように構成されてよく、それによって、バイオインフォマティクス処理の速度、精度、および効率を向上させ得る。しかしながら、デスクトップボックスセットソリューション100は、たとえば、ローカル設備では有用であるが、ボックスセットから離れた場所に配置され得る複数のユーザによってアクセスされるのには適当でない場合がある。
特に、様々な事例において、クラウドベースサーバソリューション50が実現され、たとえば、サーバ300はリモートアクセス可能であってよい。したがって、特定の事例において、本明細書において開示されている集積回路(CPU、FPGA、QPU)の1つまたは複数が実現され、クラウド50ベースインターフェースを介してアクセスされるように構成され得る。したがって、特定の事例において、ワークベンチボックスセットコンピューティングリソースが、上で説明されているように、実現されるものとしてよく、ボックスセット構成は、クラウドに移植できる、リモートアクセス可能であるように適合される。しかしながら、そのような構成は、リモートユーザからの大量のトラフィックを取り扱うには十分ではあり得ない。したがって、他の場合に、本明細書で開示されている集積回路のうちの1つまたは複数が、サーバラックの一部として構成可能なサーバベースソリューション300として構成されてよく、たとえば、サーバアクセス可能システムは、クラウド50などを介して、リモートアクセスされるように特に構成される。
たとえば、一実施形態において、1つまたは複数の、たとえば、多数の、CPUおよび/またはGPUおよび/またはQPUコア、および関連付けられているメモリを有する、コンピューティングリソース、またはローカルサーバ100は、本明細書で開示されているFPGA/ASICのうちの1つまたは複数と併せて実現され得る。特に、上で示されているように、一実装形態において、デスクトップボックスセットが実現されるものとしてよく、ボックスセットは、SSD、128×8のRAMを有する18から20、24個、またはそれ以上のCPU/GPUコアボックスセットと、1つまたは複数のBioIT FPGA/ASIC回路を備え、ボックスセットがリモートアクセス可能であることを可能にするような仕方で適合されているトランスミッタ、レシーバ、アンテナ、さらにはWIFI、Bluetooth(登録商標)、および/またはセルラー通信能力を有する適当に構成された通信モジュールをさらに備える。この実装形態において、たとえば、単一のFPGAが備えられている場合、FPGAは、ゲノミクス解析パイプラインの様々なステップの1つまたは複数の間で、再構成される、たとえば部分的に再構成されるように適合され得る。
しかしながら、他の事例において、サーバシステムが実現され、これは最大約20から24、30、34、36個またはそれ以上のCPU/GPUコアと、約972GBまたはそれ以上のRAMとを備えてよく、これは1つまたは複数の、たとえば、約2または4または約6または約8個またはそれ以上のFPGAに関連付けられるものとしてよく、FPGAは、本明細書で説明されているように構成可能であるものとしてよい。たとえば、一実装形態において、1つまたは複数のFPGAは、ゲノミクス解析パイプラインの様々なステップの1つまたは複数の間で、再構成される、たとえば部分的に再構成されるように適合され得る。しかしながら、様々な他の実装形態において、専用FPGAのセットが提供されてよく、たとえば、各FPGAは、マッピング、アライメント、バリアントコーリングなどの特定のBioITオペレーションを実行するステップ専用であり、それによって、再構成ステップを取り除く。
したがって、様々な事例において、1つまたは複数のFPGAが実現されてよく、たとえば、これらのFPGAは、様々なパイプラインオペレーションの間で再構成可能であるように適合される。しかしながら、他の事例では、FPGAのうちの1つまたは複数は、部分的にまたは完全に構成される必要なく、1つまたは複数の機能を実行するステップ専用となるように構成され得る。たとえば、本明細書において提供されるFPGAは、BioITパイプラインにおいて1つまたは複数の計算集約的なオペレーションを実行するステップ専用となるように構成されてよく、たとえば、一方のFPGAは提供され、マッピングオペレーションを実行するステップ専用であり、他方のFPGAは提供され、アライメントオペレーションを実行するように構成されるが、いくつかの事例において、単一のFPGAが提供され、マッピングオペレーションの実行とアライメントオペレーションの実行の両方の間で少なくとも部分的に再構成されるように構成され得る。
それに加えて、再構成可能なまたは専用のFPGAによっても実行され得るパイプラインにおける他のオペレーションは、BCL変換/転置オペレーション、Smith-Watermanオペレーション、HMMオペレーション、ローカル再アライメントオペレーション、および/または様々な他のバリアントコーリングオペレーションを実行するステップを含み得る。同様に、様々なパイプラインオペレーションは、システムの関連付けられているCPU/GPU/QPUの1つまたは複数によって実行されるように構成され得る。オペレーションは、ソーティング、重複除去、および他のバリアントコーリングオペレーションを実行するなどのための、パイプラインの1つまたは複数の計算集約性の低いオペレーションであり得る。したがって、包括的なシステムは、一部はCPU/GPU/QPUによって、また一部はハードウェアによって、たとえばシステムのFPGA/ASICによってオペレーションの組合せを実行するように構成され得る。
したがって、図40Bを見るとわかるように、クラウドベースシステム50の様々な実装形態において、システムは、複数のインスタンス、および/またはインスタンスのレベルを含む、複数のコンピューティングリソースを含むものとしてよく、たとえば、インスタンスおよび/またはインスタンスのレイヤは、本明細書で開示されているオペレーションのBioITパイプラインのうちの1つまたは複数を実行するように構成される。たとえば、様々なCPU/GPU/QPUおよび/またはハード配線された集積回路インスタンスは、本明細書において提供されるゲノムパイプライン解析の専用機能を実行するように提供され得る。たとえば、専用ゲノム解析オペレーションを実行するための様々なFPGAインスタンスが提供され、たとえば、マッピングを実行するためのFPGAインスタンス、アライメントを実行するための別のFPGAインスタンス、ローカル再アライメントおよび/または他のSmith-Watermanオペレーションを実行するための別のFPGAインスタンス、HMMオペレーションを実行するための別のFPGAインスタンス、および同様のものが提供され得る。
同様に、専用ゲノム解析オペレーションを実行するための様々なCPU/GPU/QPUインスタンスが提供され、たとえば、信号処理、ソーティング、重複除去、圧縮、様々なバリアントコーリングオペレーション、および同様のものを実行するためのCPU/GPU/QPUインスタンス、および同様のものが提供され得る。そのような事例において、様々なCPUおよび/またはFPGAインスタンスおよび/またはそのレイヤの間などで、システム全体を通して計算され、コンパイルされ、処理されるときに結果データを受信するために、パイプラインの様々な計算ステップの間などでの関連付けられている1つまたは複数のメモリが備えられ得る。さらに、様々なCPUおよび/またはFPGAインスタンスのサイズは、クラウドベースシステムの必要計算量に応じて変化することがあり、小さいサイズから中サイズ、大きいサイズ、非常に大きいサイズまでいろいろあり得、CPU/GPU/QPUおよびFPGA/ASICインスタンスの個数も同様に変化し得ることに留意されたい。
それに加えて、図40Bを見るとわかるように、システムは、システム全体にわたる、および一方のインスタンスから別のインスタンス、および/または一方のメモリから別のメモリへのデータの移動をスケジュールし、示すように構成されているワークフローマネージャをさらに備え得る。いくつかの場合には、メモリは、インスタンス特有である専用メモリである複数のメモリであってよく、他の場合には、メモリは、弾力的であり、したがって一方のインスタンスから別のインスタンスに切り替えられ得るように構成されている、切り替え可能エラスティックブロックストレージメモリなどの、1つまたは複数のメモリであってよい。さらに他の事例において、メモリはインスタンス非特有であってよく、したがって、エラスティックファイルストレージなどに対する、複数のインスタンスに通信可能に結合されることが可能なものとしてよい。
さらに、ワークフローマネージャは、どのようなジョブが実行される必要があるか、およびそれらのジョブの実行時にどのようなリソースがいつ利用されるかについて決定し、さらにはそれらのジョブをキューに入れ、それらをリソースからリソースへ、たとえば、インスタンスからインスタンスへ誘導するステップ専用である、および/またはそのように構成されているCPU/GPU/QPUコアなどの専用インスタンスそれ自体であってよい。ワークフローマネージャは、ロードエスティメータを含むか、または他の何らかの形でそのように構成されてよく、および/またはプロセッサ、たとえば、CPU/GPU/QPUコアによって実行され得る専用インスタンスであるエラスティック制御ノードを形成し得る。様々な事例において、ワークフローマネージャは、処理される必要がある、処理されている、またはすでに処理されているすべてのジョブを管理するように構成され得る、それに接続されているデータベースを有し得る。したがって、WMSマネージャは、データがシステム全体にどのように流れるかを検出し、管理し、システムリソースをどのように割り振るか、およびより多くのリソースをオンラインにいつすべきかを決定するように構成され得る。
上で示されているように、いくつかの事例において、ワークベンチおよび/またはサーバベースソリューションは両方とも実現されてよく、コンピューティングデバイスは、Zのサイズを有する1つまたは複数のFPGAに送るように構成され得るサイズYを有する複数のX CPUコアサーバを備え、X、Y、およびZは、システムのシステム処理要求条件に応じて変わり得る数であり、たとえば、10、14、18、20、24、30などに最適化されるように選択され、および/または他の何らかの形で構成されるべきである。たとえば、典型的なシステム構成は、本明細書で説明されているシステムのBioITオペレーションを実行するように最適化される。特に、いくつかのシステム構成は、様々なCPU/GPU/QPUインスタンスからシステムのFPGAなどの様々な集積回路へのデータのフローを最大化するように最適化されており、CPUおよび/またはFPGAのサイズは、システムの処理要求条件に基づき互いに関して変わり得る。たとえば、CPUおよび/またはFPGAの1つまたは複数は、比較的小、中、大、特大、または特特大であるサイズを有し得る。より具体的には、システムアーキテクチャは、CPU/FPGAハードウェアが、すべて実行時に両方のインスタンスプラットフォームをビジー状態に保つ最適な効率の方式で実行するようにサイズを決定され構成されるような仕方で構成されてよく、たとえば、CPUは、4対1、8対1、16対1、32対1、64対2などと、数でFPGAに勝る。
したがって、大きいFPGA能力を有することは一般的によいことであるが、システムに送られることで処理される必要のあるデータが十分にない場合に、高キャパシティのFPGAにデータを処理させることは効率的でないことがある。そのような事例において、単一のまたは部分的FPGAのみが実装され得る。特に、理想的な配置構成において、ワークフロー管理システムは、データのフローをシステムおよびそのコンポーネントをフルタイムで計算させ続けるような仕方で構成される識別されたCPUおよび/またはFPGAに向ける。たとえば、例示的な一構成において、1つまたは複数の、たとえば、2、3、4個もしくはそれ以上のCPU/GPU/QPUコアが、小、中、大、特大のFPGA、またはその一部にデータを送るように構成され得る。特に、一実施形態において、本明細書で開示されているBioIT処理オペレーションのうちの1つまたは複数を実行するなどのためのCPU特有のインスタンスが提供されてよく、たとえば、CPUインスタンスは、クラウドアクセス可能であり、最大4、8、16、24、30、36個のCPUコアを備え、これらのコアは、1つまたは複数のFPGAの一部に動作可能に結合されるように構成されることも構成されないこともある。
たとえば、クラウドアクセス可能サーバラック300が実現されてよく、このサーバは、FPGAインスタンスに動作可能に接続可能である約4個のCPUコアから約16、約24個のCPUコアを有するCPUコアインスタンスを備える。たとえば、FPGAインスタンスが提供されてよく、たとえば、FPGAの平均サイズがXであれば、含まれるFPGAは、約1/8X、X、2.5X、最大8Xまで、さらには約16X、またはそれ以上のサイズであってよい。様々な事例において、追加のCPU/GPU/QPUコアおよび/またはFPGAが含まれ、および/または組み合わされたインスタンスとして提供されてよく、たとえば、大量のデータを処理する場合に、CPUコアの数は、FPGAをフルタイムでビジーに保つように選択される。したがって、CPU対FPGAの比は、データフローを最適化するような仕方で組み合わされることによって釣り合わされるものとしてよく、したがって、システムは、必要に応じて、たとえば、ワークフローに基づき利用を最適化しながら費用を最小限に抑えるために、弾力的にスケールアップまたはスケールダウンされるように構成され得る。
しかしながら、CPUがFPGAをビジーにおよび/または完全利用状態に保つ十分な作業を生成させない場合、この構成は、決して理想的ではない。したがって、本明細書において実現されるのは、CPU/FPGAソフトウェア/ハードウェアが効率的に実行され本発明のCPU/GPU/QPUが最適な形で利用可能なFPGA、および/またはその一部を、両方のインスタンスプラットフォームをすべて実行時にビジーに保つような仕方で送ることを確実にするように適合された方式で、一緒に直接結合され得るか、または一緒に結合されること可能な、1つまたは複数のインスタンスの柔軟なアーキテクチャである。したがって、そのようなシステムがクラウドからアクセス可能であるようにすることで、複数のデータがワークフローマネージャによってキューに入れられ、最適効率の方式でデータを受信し処理するように構成され、受信し処理することができる特定のCPU/FPGAリソースに向けられるようにシステムに供給されることを確実にする。
たとえば、いくつかの構成において、クラウドアクセス可能なインスタンスは、複数の個数およびサイズのCPU/GPU/QPUを含み、それに加えて、複数の個数およびサイズのFPGA(またはASIC)および/またはQPUを含むクラウドアクセス可能なインスタンスがあり得る。これらのインスタンスの組合せを有するインスタンスすらあり得る。しかしながら、様々な反復で、提供されるCPU/GPU/QPUおよび/またはFPGA/QPUおよび/または混合インスタンスでは、本明細書で開示されている本発明のBioITパイプライン処理プラットフォームを効率よく実行するには一方のインスタンスが多すぎ、および/または他方のインスタンスが少なすぎることがあり得る。したがって、本明細書において提示されるのは、クラウド50を介してアクセス可能にされるような、パイプラインのバイオインフォマティクスおよび/またはゲノミクス処理プラットフォームの効率的形成および使用のための、システムおよびアーキテクチャ、その柔軟な組合せ、および/またはそれらを実装するための方法である。
そのようなシステムにおいて、選択されたCPU/GPU/QPUの個数および構成は、計算集約性の低いオペレーションを処理するように選択され、構成されてよく、FPGAおよび/またはQPUの個数および構成は、計算集約的なタスクを取り扱うように適合されてよく、たとえば、データは、CPU/GPU/QPUインスタンスとFPGA/QPUインスタンスとの間でシームレスに行き来する。それに加えて、プロシージャの様々なステップの間および/または様々な異なるインスタンスタイプの間で、データ、たとえば、結果データを記憶するための1つまたは複数のメモリが備えられてよく、それによってインスタンス待ち時間の実質的な期間を回避する。特に、マッピングおよびアライメントのときに、CPU/GPUはほとんど利用されず、計算の性質が集約的であるため、これらのタスクはハードウェア実装形態によって実行されるように構成される。同様に、バリアントコーリングの時に、タスクは、そのタスクにおけるCPU/FPGAインスタンスの間におおよそ公平に分散されるように分割されてよく、たとえば、Smith-WatermanおよびHMMオペレーションは、ハードウェアによって実行されてよく、様々の他のオペレーションは、1つまたは複数のCPU/GPU/QPUインスタンス上で実行されるソフトウェアによって実行され得る。
したがって、本明細書で述べているアーキテクチャパラメータは、必ずしも1セットアーキテクチャに限定されず、むしろ、システムは、その実装形態を編成し、ワークフローマネージャを利用してどのようなインスタンスがいつ、どのように、どれだけの間アクティブであるかを決定し、どの計算がどのインスタンス上で実行されるかを指令することに対してより柔軟性を有するように構成される。たとえば、オンラインにされ、動作可能に一緒に結合されるCPUおよび/またはFPGAの個数は、アクティブ化されたCPUおよびFPGA、さらにはその付随するソフトウェア/ハードウェアが最適な形でビジー状態に保たれるような仕方で選択され、構成されるべきである。特に、CPUの個数、およびその機能は、その数のFPGA、またはその一部を常時ビジーに保つように構成されるべきであり、それにより、CPUは最適におよび効率的にFPGAを送り、両方のインスタンスおよびそのコンポーネント部分をうまく実行させ続ける。
したがって、この方式で、システムのワークフロー管理コントローラは、ワークフローにアクセスし、それをCPU/GPU/QPUによってより最適に実行され得るタスクが必要な数のCPUに向けられ、それらのオペレーションを最適に実行し、およびFPGA/ASIC/QPUによってより最適に実行され得るタスクが必要な数のFPGAに向けられ、それらのオペレーションを最適に実行するような仕方で編成し、分割するように構成され得る。弾力的なおよび/または効率的なメモリは、一方のインスタンスから他方のインスタンスにこれらのオペレーションの結果データを効率的に伝送するためにさらに備えられ得る。この方式で、マシンおよびメモリの組合せは、実行されるべき作業の範囲、および効率的におよび高い費用効果が得られるようにその作業を最もよく実行するインスタンスの最適な構成および使用に基づき最適にスケーリングされるように構成され、組み合わされ得る。
特に、本明細書で述べているクラウドベースアーキテクチャは、以前のアーキテクチャ提供物における様々な知られている欠点が、より多くのCPU/GPU/QPUコアインスタンスがその形式で実装されることによって最適化されるように適切な機能を実行することに正しいインスタンスを専用に割り当てることができるようなより意図的な仕方で編成されている、たとえば、FPGAの様々な異なるハードウェアインスタンス、またはその一部にアクセスすることを柔軟に可能にすることによって克服され得る不効率を引き起こす可能性があることを示している。たとえば、システムは、常時ビジーであるようにリモートアクセス可能であり得るより大きい割合の利用可能なCPU/GPUインスタンスがあり、選択されたFPGAインスタンスを常時ビジーに保つように利用可能なFPGA/QPUインスタンスに最適に送られ得る結果データを作成するように構成され得る。したがって、可能な限り効率的であり、常時ビジーである構造化アーキテクチャを実現することが望ましい。FPGAの1つまたは複数が十分に利用されないような少なすぎるCPUが多すぎるFPGAに送られる構成は、効率的でなく、回避されるべきであることに留意されたい。
一実装形態において、図40Bを見るとわかるように、アーキテクチャは、第1の数X個のCPUコア、たとえば、4から約30個のCPUコアを有する第1のレベル、および1から12個またはそれ以上のFPGAインスタンスを有する第2のレベルなどの、いくつかの異なるレイヤもしくはレベルを事実上含むように構成されてよく、FPGAのサイズは小から中、大などまでであるものとしてよい。CPUコアの第3のレベルおよび/またはさらなるFPGAの第4のレベル、なども、含まれ得る。したがって、クラウドベースサーバ300内には、本明細書で説明されている1つまたは複数のレベルなどの、FPGAおよび/またはそれらの組合せを含むCPUまたはGPUおよび/またはインスタンスを単純に含むインスタンスなどの、多数の利用可能なインスタンスがある。したがって、このような仕方で、アーキテクチャは、最も集約的な、特定のコンピューティング機能が、ハードウェアインスタンスまたはQPUによって実行されるように柔軟にまたは弾力的に編成されてよく、CPUを通して実行され得る機能は、一般的な処理目的のために適切なレベルで適切なCPU/GPUに向けられ、必要ならば、CPU/FPGAインスタンスの個数は、必要に応じてシステム内で増やすか、または減らされ得る。
たとえば、アーキテクチャは、同時に最適な利用を最大化しながら、両方ともシステムの費用を最小にするように弾力的にサイズを決定され得る。特に、アーキテクチャは、様々な異なる仮想レベルで様々なインスタンスを組み合わせることによって効率を最大にし、待ち時間を短縮するように構成され得る。特に、複数の、たとえば、有意なおよび/またはすべてのレベル1 CPU/GPUインスタンスは、マッピングFPGAおよびアライメントFPGAなどの、特定の機能を実行するように特に構成されている様々なレベル2 FPGAインスタンスに送るように構成され得る。さらなるレベルでは、1つまたは複数の追加の(またはレベル1と同じ)CPUが提供され、たとえば、ソーティングおよび/または重複除去オペレーションおよび/または様々なバリアントコーリングオペレーションを実行し得る。さらになおも、FPGAの1つまたは複数の追加のレイヤは、Needleman-Wunsch、Smith-Waterman、HMM、バリアントコーリングオペレーション、および同様のものを実行するように構成され得る。したがって、第1のレベルのCPUは、さらなるパイプライン解析のためにデータをキューに入れ、データの準備をするステップを含む、一般処理ステップを実行するなどのために、ゲノミクス解析の初期レベルを形成するように関わるものとしてよく、そのデータは、1つまたは多数のCPUによって処理された後、専用FPGAインスタンスの1つまたは複数のさらなるレベルに送られてよく、たとえば、FPGAインスタンスは、計算集約的な機能を実行するように構成される。
この方式で、特定の実装形態において、パイプライン内のCPU/GPUインスタンスは、それらのデータを、準備された後、1つまたは2つのマッピングおよびアライメントレベル2 FPGAインスタンスに送る。マッピングが実行された後、結果データは、メモリに記憶され、および/または次いで、アライメントインスタンスに送られるものとしてよく、アライメントは、たとえば、少なくとも1つの専用レベル2 FPGAインスタンスによって実行され得る。同様に、処理済みのマッピングされたアライメントされたデータは、次いで、さらなる処理のためメモリに記憶され、および/または、同じレベル1または異なるインスタンスであってよい、レベル3 CPUインスタンスに向けられ、たとえば、ソーティング機能を実行するなどのために処理集約性の低いゲノミクス解析機能を実行し得る。それに加えて、レベル3 CPUがその処理を実行した後、結果データは、次いで、さらなるゲノミクス処理集約性機能などのために、FPGAの他のレベル2インスタンス、またはレベル4 FPGAインスタンスのいずれかに転送されバックアップされ、たとえば、Needleman-Wunsch(NW)、Smith-Waterman(SW)処理機能を、たとえばNWもしくはSW専用FPGAインスタンスにおいて実行し得る。同様に、SW専用FPGAなどによって、SW解析が実行された後、処理済みデータは、1つまたは複数の関連付けられているメモリに送信され、および/または処理パイプラインをさらに下り、たとえば、別の、たとえばレベル4もしくは5に進むか、またはレベル1もしくは3、CPUおよび/またはFPGAインスタンスまで戻り、たとえば、専用FPGAおよび/またはCPU処理コアのさらなるレイヤなどで、HMMおよび/またはバリアントコーリング解析を実行するものとしてよい。
このような仕方で、様々な異なるインスタンスを、1つまたは複数の異なるレベルで組み合わせて、ゲノミクス処理用のパイプラインプラットフォームを提供することによって待ち時間および効率の問題を解決することができる。そのような構成は、複数のスケーリングおよび/または組合せインスタンスを伴うものとしてよく、これらのインスタンスは、専用機能を実行することを専門に行うように構成され得る。そのようなインスタンスにおいて、単一のインスタンスがパイプラインのエンドツーエンド処理を実行するのではなく、マッピングFPGAインスタンスがマッピングのみを実行し、同様に、アライメントFPGAインスタンスがアライメントのみを実行し、というように続けて行く。それにもかかわらず、他の構成では、FPGAの1つまたは複数は、パイプラインタスクを実行するステップの間などで、少なくとも部分的に再構成され得る。たとえば、いくつかの実施形態において、本明細書において実行されるゲノミクス解析はマルチステッププロセスなので、FPGAのコードは、処理プロセスの中ほどで変更されるように構成され、FPGAがマッピングオペレーションを完了したときなどに、アライメント、バリアントコーリング、Smith-Waterman、HMM、および同様のもののうちの1つまたは複数を実行するように再構成され得る。
したがって、パイプラインマネージャ、たとえば、ワークフロー管理システムは、ディスクリートジョブに分けられ、アグリゲートされ、たとえばレベル2における、マッピングおよび/またはアライメントなどの、さらなる処理のために適切なジョブ特有のCPUに、次いでジョブ特有のFPGAインスタンスに送られるようにレベル1 CPUインスタンスによって創出されるゲノム処理要求のキューを管理するように機能するものとしてよく、マッピングされアライメントされたデータは、処理された後、バリアントコーリングモジュールにおける様々なステップの実行などのために、結果データのCPU/FPGA処理の次のレベルに逆方向でまたは順方向で送信され得る。
たとえば、バリアントコーリング機能は、ソフトウェアで実行され、次いで1つまたは複数はFPGAハードウェアインスタンスにおけるSmith-Watermanおよび/またはHMM処理に転送され得る、複数のオペレーションに分割されてよく、次いで、継続するバリアントコーリングオペレーションのためにCPUに送信されてよく、たとえば、プラットフォーム全体は、利用を最大にし、待ち時間を最小にし、したがってオペレーションを最適化しながら、高価なFPGAインスタンスのコストを最小限に抑えるように弾力的におよび/または効率的にサイズ決定され、実装される。したがって、この方式では、純粋な処理能力およびハード配線された特異性があるためハードウェアインスタンスは少なくて済み、したがって、CPUの個数に対するFPGAの個数は、最小限度に抑えられ、たとえば、FPGAの使用は、最大にされ、したがって、システムはすべてのインスタンスを常時ビジーに保つように最適化され得る。そのような構成は、ゲノミクス処理解析、特にマッピング、アライメント、およびバリアントコーリングのために最適に設計される。
本明細書で開示されている、パイプラインアーキテクチャに、たとえば、付属品として、含まれ得る追加の構造要素は、1つまたは複数の弾力的なおよび/または効率的なメモリモジュールであり、これは、パイプライン全体にわたって移るときに、データ、たとえば結果データのブロックストレージを形成するように機能するように構成され得る。したがって、1つもしくは複数のエラスティックブロックデータストレージ(EBDS)および/または1つもしくは複数の効率的(フレキシブル)ブロックデータストレージモジュールが、処理レベルのうちの1つまたは複数の間、たとえば、異なるインスタンスおよび/またはインスタンスレベルの間に挿入され得る。そのような事例において、ストレージデバイスは、データが処理され結果が得られると、処理された結果が、専用FPGA処理モジュールなどによって、処理の次のレベルへ送られる前に記憶のためにストレージデバイスに向けられ得るように構成される。同じストレージデバイスは、すべてのインスタンス、またはインスタンスレベルの間で使用され得るか、または多数のストレージデバイスが、結果データを記憶し、および/またはコンパイルし、および/またはキューに入れるなどのために、様々なインスタンスおよび/またはインスタンスレベルの間で使用され得る。したがって、1つまたは複数のメモリが、システムの様々なインスタンスが、同じまたは類似のファイルを見てアクセスできるように同じメモリに結合され、および/またはアクセスを有し得るように実現され得る。したがって、1つまたは複数の弾力的なメモリ(複数のインスタンスに逐次結合されることが可能なメモリ)および/または効率的なメモリ(複数のインスタンスに同時に結合されることが可能なメモリ)が存在していてよく、それによって、システムの様々なインスタンスは、同じまたは類似のメモリの読出しおよび書込みを行うように構成される。
たとえば、例示的な一実施形態において、そのような弾力的なメモリを使用する構成に関して、データを直接、一方のインスタンスおよび/または処理の一方のレベルから他方に送信する前に、データは、記憶のため、EBDS、または他のメモリデバイスもしくは構造、たとえば、効率的なメモリブロックに送られ、その後、適切なハード配線された処理モジュールに送られるものとしてよい。特に、ブロックストレージモジュールは、メモリに記憶するためにノードに取り付けられるものとしてよく、データは、一方のレベルで記憶のためにBSDに書き込まれるものとしてよく、BSDは、別のノードにフリップされて、記憶されているデータを次の処理レベルに送るものとしてよい。この方式では、1つまたは複数の、たとえば、多数の、BSDモジュールは、パイプライン内に含まれ、一方のノードから他方のノードにフリップされて、パイプライン全体を通してデータの遷移に参加するように構成され得る。
さらに、上に示されているように、一方から他方に切り替える必要などなく、1つまたは複数のインスタンスに同時に結合されることが可能なデバイスなどのより柔軟なファイルストレージデバイスが使用され得る。これなどの方式では、システムは、システムの各レベルで弾力的にスケーリングされてよく、たとえば、各レベルにおいて、そのレベルでデータを処理するために異なる数のノードがあってよく、処理された後、結果データは1つまたは複数の関連付けられているEBDSデバイスに書き込まれ、これは、次いで、システムの次のレベルに切り替えられ、記憶されているデータを、そのレベルで特定のタスクの実行のためにプロセッサの次のレベルで利用できるようにするものとしてよい。
したがって、データが処理、たとえば前処理のために準備されるときに、たとえば、付随するノードにおいて、処理パイプライン内に多数のステップがあり、データは、準備された後、一方のレベルで適切な処理インスタンスに向けられ、結果データが生成され、次いで、結果データは、インスタンスの次のノードにフリップされ、FPGAおよび/またはCPU処理インスタンスの次の命令によって処理のため次のインスタンスに送られることによって、たとえば、EDSデバイス内に記憶され、キューに入れられ、処理の次の段階の準備をするものとしてよく、さらなる結果データが生成され、もう一度、生成された結果データは、処理の次の段階に進む前に記憶のために同じところに戻るか、またはEDSの次のレベルに進むかのいずれかに向けられ得る。
特に、特定の一実装形態において、パイプラインを通るフローは、次のように見え得る。CPU(たとえば、4個のCPUコア、またはC4インスタンス):データ準備(キューに入れられ、および/または記憶される)、FPGA(たとえば、2XL FPGA-フルサーバの1/8、またはF1インスタンス):マッピング、一時記憶、FPGA(たとえば、2XL FPGA-フルサーバの1/8、またはF1インスタンス):アライメント、一時記憶、CPU:ソーティング、一時記憶、CPU:重複除去、一時記憶、CPU:バリアントコーリング1、一時記憶、FPGA(たとえば、F1または16XL、またはF2インスタンス):Smith-Waterman、一時記憶、FPGA(たとえば、F1またはF2インスタンス):HMM、一時記憶、CPU:バリアントコーリング2、一時記憶、CPU:VCGF、一時記憶、など。それに加えて、ワークフロー管理システムが備えられ、これはシステムを通るデータのフローを制御し、および/または向けるものとしてよく、たとえば、WMSは、4コアCPUまたはC4インスタンスなどの、CPUコアで実装され得る。これらのステップのうちの1つまたは複数は、論理的順序で実行されてよく、様々な異なる組合せで、ソフトウェアおよび/またはハードウェアで実装されるような適切に構成されたリソースによって実装され得ることに留意されたい。また、これらのオペレーションはどれも、1つまたは複数のCPUインスタンスおよび1つまたは複数のFPGAインスタンス上で、処理の1つまたは複数の理論的レベルにおいて実行され、たとえば、本明細書で説明されているBioIT処理を形成し得ることに留意されたい。
示されているように、ワークフローマネージャが含まれていてよく、たとえば、WMSは1つまたは複数のCPUコアで実装される。したがって、様々な事例において、WMSは、それに動作可能に結合されたデータベースを有し得る。そのような事例において、データベースは、キューに入れられるべき様々なオペレーションもしくはジョブ、保留ジョブ、さらには以前にもしくは現在実行されるべきすべてのジョブの履歴を含む。したがって、WMSはシステムおよびデータベースを監視し、実行されるべき新しいジョブを識別する。結果として、保留ジョブが識別されたときに、WMSは、データに対して新しい解析プロトコルを開始し、それを適切なインスタンスノードにファームアウトする。したがって、ワークフローマネージャは、すべての入力ファイルがどこで記憶されているか、処理されているか、または記憶されるべきかを追跡し、そして知り、したがって、所与の配置にあるそれぞれのファイルにアクセスすること、ファイルの読出しを開始すること、処理命令を実装することを開始すること、および結果データをどこに書き込むべきかについて、様々な処理ノードのインスタンスに示し、命令する。そして、したがって、WMSは、下りの処理ノードに受け渡す結果データに関してシステムに示す。WMSは、また、処理の各ステップまたはレベルの動的スケーリングを可能にするために、新しいインスタンスがいつ活性化されオンラインにされる必要があるかを決定する。したがって、WMSは、各レベルで実行されなければならないディスクリートジョブを識別し、編成し、向け、書き込まれる結果データをメモリにさらに向け、記憶されるようにし、一方のジョブが完了した後、別のノードが活性化し、次のジョブを読み出し、次の反復オペレーションを実行する。
これなどの方式で、入力ジョブは、多数の異なるインスタンスに分散されるものとしてよく、それらのインスタンスは、より少ないまたはさらに多いインスタンスを含めることによって、たとえば、独立して、またはまとめて、スケーリングされ得る。これらのインスタンスは、リソースの使用のバランスをより効率的にとるようにノードを構築するために使用されてよく、そのようなインスタンスは部分的なまたは完全なインスタンスを含み得る。ワークフローマネージャは、また、本明細書で開示されている処理ステップの間などの、1つまたは複数のメモリの使用を示し、および/または制御するものとしてよい。様々なインタンスは、また、サーバを仮想化するために、互いにおよび/または様々なメモリと通信することを可能にするように補完的プログラミングを含み得る。WMSは、また、ノードの使用を弾力的に制御するためにロードエスティメータを備え得る。
さらに、メモリの使用に関して、1つまたは複数のEBDS、または他の適切に構成されているデータおよび/またはファイルストレージデバイスが、様々な異なる処理ステップの間の一時記憶などのために、たとえば、インスタンスの様々なレベルの間の、様々なノードのうちの1つまたは複数に取り付けられてよい。したがって、ストレージデバイスは、様々なインスタンスのすべてに結合されるように構成されている単一のストレージデバイス、たとえば、弾力的なファイルストレージなどの、効率的なメモリブロックであり得るか、またはインスタンスの間で切り替え可能であるインスタンスまたはインスタンスタイプ毎に1つのストレージデバイスなどの多数のストレージデバイス、たとえば、エラスティックブロックストレージデバイスであってよい。したがって、これなどの方式で、処理インスタンスおよび/またはメモリの各レベルは、1つまたは複数のゲノムを処理するなどのために、異なるノードまたはノードのレベルの各々の間などで、必要に応じて弾力的にスケーリングされ得る。
本明細書のアーキテクチャに照らして、1つまたは多数のゲノムが、図1に示されているように、Next Gen Sequencerのフローセルの1つまたは複数のレーンなどから、処理のためシステム内に導入され得る。特に、本明細書で説明されているような、クラウドベースサーバシステム300を実現することで、多数のジョブがパイルアップされ、および/または処理のためにキューに入れられることを可能にし、それらのジョブは、システムの様々な異なるインスタンスによって同時にまたは逐次処理され得る。したがって、パイプラインは、一方のインスタンスから他方のインスタンスへの効率的な処理およびデータを円滑にするために適切に構成されているメモリデバイスに結合されるプロセッサの仮想行列によって処理される多数のジョブをサポートするように構成され得る。さらに、示されているように、単一のメモリデバイスが実現されてよく、メモリデバイスは、たとえば、同時に、複数の異なるインスタンスに結合されるように構成される。他の事例において、メモリデバイスは、たとえば、1回だけ、第1のインスタンスに結合され、次いで、再構成され、および/または他の何らかの形で第1のインスタンスから減結合され、第2のインスタンスに切り替えられるように構成され得る弾力的なタイプのメモリデバイスであってよい。
したがって、一実装形態において、1つまたは複数のエラスティックブロックストレージデバイスが含まれてよく、システムは、切り替え制御メカニズムを備えるように構成され得る。たとえば、スイッチコントローラが含まれ、一方のインスタンスから他方のインスタンスに切り替えるときにそのようなメモリデバイスの機能を制御するように構成され得る。この構成は、専用プロセッサのパイプラインを通してデータを転送することを可能にするように配置構成されるものとしてよく、それにより、システムにデータを流すことなどによって、たとえばインスタンスのすべての間で、システムの効率を高め、各レベルが独立してスケーリングされ、効率的にスケーリングできるように必要に応じてプロセッサをオンラインにすることを可能にする。
それに加えて、ワークフロー管理システムアルゴリズムは、ジョブの個数、それらのジョブを処理するリソースの数、処理する順序を決定するように構成されてよく、1つまたは複数の柔軟なスイッチングデバイスのフリッピングまたはスイッチングによってデータのフローを一方のノードから他方のノードに向け、必要な場合に、追加のリソースをオンラインにしてワークフロー中の増大を取り扱う。この構成は、不効率であり、時間がかかりすぎる、一方のインスタンスから次の、そして次のと続くデータのコピーを回避するように適合され得ることに留意されたい。むしろ、エラスティックストレージをインスタンスの一方のセットから他方のセットにフリップすることによって、たとえば、それを一方のノードから引き、第2のノードに取り付けることでシステムの効率を大幅に高めることができる。さらに、様々な事例において、EBSDを使用する代わりに、1つまたは複数のエラスティックファイルストレージデバイス、たとえば、一方から他方へフリップされる必要なく多数のインスタンスに結合されることが可能な単一のメモリデバイスが使用され、それによりインスタンス間のデータの伝送を向上させ、システムをなおいっそう効率的にし得る。それに加えて、本明細書の前の方で示されているように、別の構成において、アーキテクチャのCPUは、互いに直結できることに留意されたい。同様に、様々なFPGAは、一緒に直接結合され得る。そして、上で示されているように、CPUは、FPGAに直接結合されてよく、たとえば、そのような結合は、上で説明されているような密結合インターフェースを介したものである。
したがって、生成された結果データのユーザによる記憶およびアクセスに関して、システム全体の観点から、生成される結果データのすべてが記憶される必要はない。たとえば、生成された結果データは、典型的には、特定のファイル形式、たとえば、BCL、FASTQ、SAM、BAM、CRAM、VCFファイルである。しかしながら、これらのファイルの各々は大きく、それらのすべてを記憶すると、大量のメモリを消費し、それによって費用の増大を引き起こすになる。それにもかかわらず、本明細書における本発明のデバイス、システム、および方法の利点は、これらファイルのすべてが記憶される必要がないことである。むしろ、高速な処理速度および/または高速な圧縮および復元速度がシステムのコンポーネントおよび方法によって達成可能である場合、単一のファイル形式のみ、たとえば圧縮ファイル形式のみが、クラウドベースデータベース400などに記憶される必要がある。特に、単一のデータファイル形式が記憶されるだけでよく、システムのデバイスおよび方法が実装する、そのファイル形式から、他のすべてのファイル形式が導出され得る。そして、高速な圧縮および復元速度がシステムによって達成されるので、これは典型的には圧縮ファイル、たとえば、CRAMファイルである。
特に、図40Aを見るとわかるように、一実装形態において、ローカルコンピューティングリソース100のユーザは、クラウドベースコンピューティングリソース、たとえば、サーバ300によって受け取るためにクラウド50を介して、ゲノミクスデータなどのデータ、たとえば、BCLおよび/またはFASTQファイルをシステムにアップロードし得る。サーバ300は、次いで、一時的にデータ400を記憶するか、またはユーザ100によるジョブ要求に従ってデータ処理を開始するかのいずれかを行う。入力データを処理するときに、コンピューティングリソース300は、それによって、SAMまたはBAMおよび/またはVCFファイルなどで、結果データを生成する。システムは、次いで、これらのファイルのうちの1つまたは複数を記憶し得るか、またはこれらのファイルのうちの1つまたは複数を圧縮して記憶し得る。しかしながら、コストを下げ、リソースの使用をより効率的にするために、システムは、単一の、たとえば、圧縮された、ファイルを記憶し、そのファイルから他のすべてのファイル形式が、本明細書において開示されているデバイスおよび方法を使用することなどによって生成され得る。したがって、システムは、費用効果の高い方式で、クラウド50を介してアクセス可能なサーバ300関連データベース400上に記憶され得る、データファイル、たとえば、結果データを生成するように構成される。
したがって、ローカルコンピューティングリソース110を使用することで、システムのユーザは、クラウド50ベースサーバ300にログオンしてアクセスし、データをサーバ300またはデータベース400にアップロードし、そのデータに対して実行されるべき1つまたは複数のジョブを要求し得る。システム300は、次いで、要求されたジョブを実行し、結果データをデータベース400内に記憶する。指摘されているように、特定の事例において、システム300は、生成された結果データを、CRAMファイルなどの単一ファイル形式で記憶する。さらに、ボタンをクリックするだけで、ユーザは記憶されているファイルにアクセスすることができ、ボタンをさらにクリックすると、他のファイル形式のすべてが、その後、アクセス可能にされ得る。たとえば、本明細書において開示されている方法によれば、システムに高速処理機能を付与し、次いで、シーンの背後で、たとえば、オンザフライで処理され、生成されることで、処理時間および負荷の両方、さらにはストレージコストが下がり、たとえば、コンピューティングおよび記憶機能が一緒にバンドルされる。
特に、この効率的で高速な記憶プロセスの2つの部分があり、これらは本明細書で開示されている加速オペレーションを実行する速度によって使用可能にされる。より具体的には、マッピング、アライメント、ソーティング、重複除去、および/またはバリアントコーリングの様々な処理オペレーションは、ハード配線されたおよび/または量子処理構成で実装され得るので、1つまたは複数のファイル形式の結果データの作成は、高速に達成され得る。それに加えて、本明細書で開示されている密結合アーキテクチャにより、たとえば、FASTQ、SAM、BAM、CRAM、VCFファイル形式の、結果データのシームレスな圧縮および記憶が、さらに達成される。
さらに、加速処理はシステムのデバイスによって実現されるので、またそれが関連付けられているストレージデバイスとシームレスに一体化されるので、記憶されるべきである、システムの処理オペレーションの結果得られるデータは、記憶する前に効率よく圧縮され、記憶した後に復元され得る。そのような効率は、それによって、ストレージコストおよび/または使用前のファイルの復元に関係するペナルティを下げる。したがって、これらの利点があるため、システムは、必要に応じてまたはユーザから要求があったときに、他のファイルタイプのどれかをオンザフライで再生成して、単一ファイルタイプのみのシームレスな圧縮および記憶を可能にするように構成され得る。たとえば、BAMファイル、またはそれに関連付けられている圧縮SAMまたはCRAMファイルは記憶され、そのファイルから、他のファイルが、たとえば、順方向または逆方向に生成されてよく、たとえば、それぞれVCFまたはFASTQまたはBCLファイルを再現し得る。
たとえば、一実施形態において、FASTQファイルは、最初に、システム内に入力されるか、または他の何らかの形で生成され、記憶され得る。そのような事例において、順方向に進むときに、ファイルのチェックサムが計算され得る。同様に、結果データが作成された後、逆方向に進行したときに、別のチェックサムが生成され得る。これらのチェックサムは、次いで、順方向または逆方向に、システムによって生成されおよび/または再現されるべきさらなるファイル形式が、互いに、および/またはその圧縮ファイル形式と完全にマッチすることを確実にするために使用され得る。これなどの方式において、必要なデータのすべてが、可能な限り効率的な方式で記憶されることを確実にされ、WMSは、データがどこに記憶されているか、どのようなファイル形式で記憶されているか、元のファイル形式は何であったかを正確に知り、このデータから、システムは、ファイル形式の間で順方向または逆方向に進行する同一の方式でファイル形式を再生成することができる(テンプレートが最初に生成された後)。
したがって、「ジャストインタイム」コンパイルの速度上の利点は、一部は、前に生成されたFASTQファイルからBAMファイルを生成する際などに、関連ファイルのハードウェアおよび/または量子実装による生成によって有効なものとなる。特に、SAMおよびCRAMファイルを含む、圧縮BAMファイルは、典型的には、データベース内に記憶されないが、それは、処理する前に圧縮された記憶されたファイルを復元するために要する時間が長くなるからである。しかしながら、JITシステムは、これが実質的なペナルティなしで行われることを可能にする。より具体的には、本明細書で開示されているデバイスおよびプロセスを実装することで、生成された配列データが高速に、たとえば、ほとんど瞬時に、圧縮され、復元され得るだけでなく、効率的に記憶され得る。それに加えて、記憶されているファイルから、どのようなファイル形式で記憶されようと、他のファイル形式がすぐに再生成され得る。
したがって、図40Cを見るとわかるように、加速ハードウェアおよび/または量子処理で、マッピングおよびアライメント、ソーティング、重複除去、およびバリアントコーリングなどの、様々な二次処理プロシージャを実行するときに、圧縮のさらなるステップも、圧縮形式で記憶される前に、オールインワンプロセスなどで実行され得る。次いで、ユーザが圧縮データを解析するか、または他の何らかの形で使用することを望んでいるときに、ファイルは取り出され、復元され、および/または一方のファイル形式から他方の形式に変換され、および/またはハード配線されたプロセッサにロードされるか、または量子プロセッサ内に構成され、圧縮ファイルをJITパイプラインの1つまたは複数のプロシージャに通すJITエンジンなどによって、解析され得る。
したがって、様々な事例において、システムが関連付けられているFPGAを含む場合、FPGAは、完全にまたは部分的に再構成されてよく、および/または量子処理エンジンは、JITプロシージャを実行するように、編成され得る。特に、JITモジュールは、システム内にロードされ、および/または1つもしくは複数のエンジンとして構成されてよく、エンジンはバックグラウンドで動作するように構成されている1つまたは複数の圧縮エンジン150を含み得る。したがって、所与のファイル形式がコールされたときに、JIT類似のシステムは、要求されたデータに対して必要なオペレーションを実行し、要求された形式でファイルを作成し得る。これらのオペレーションは、圧縮および/または復元、さらには識別されたファイル形式で要求されたデータを導出するための変換を含み得る。
たとえば、遺伝子データが生成されるときに、通常は、BCLファイルなどの、生データ形式で作成され、次いで、たとえばデータを生成するNGSによって、FASTQファイルに変換され得る。しかしながら、本発明のシステムでは、BCLまたは他の生ファイル形式などの、生データファイルは、JITモジュール内にストリーミングされるか、または他の何らかの形で伝送されてよく、次いでこれはデータをFASTQファイルに、および/または別のファイル形式に変換することができる。たとえば、FASTQファイルが生成された後、FASTQファイルは、次いで、本明細書において開示されているように処理され、対応するBAMファイルが生成され得る。および同様にして、BAMファイルから、対応するVCFが生成され得る。それに加えて、SAMおよびCRAMファイルも、適切なステップにおいて生成され得る。これらのステップのうちの各々は、非常に高速に、特に、適切なファイル形式がいったん生成された後に実行されてよい。したがって、BCLファイルが、たとえば、シークエンサからストレートに受信された後、BCLは、ハードウェアおよび/または量子実装マッピング/アライメント/ソーティング/バリアントコーリングプロシージャなどによって、FASTQファイルに変換されるか、またはSAM、BAM、CRAM、および/またはVCFファイルに直接変換され得る。
たとえば、一使用モデルにおいて、典型的なシークエンシング機器上で、多数の異なる対象のゲノムが並列に実行される単一のシークエンシング機器の個別のレーン内にロードされ得る。その結果、実行の終了時に、すべての異なるレーンから導出され、異なる対象の各々のゲノム全体を表す、多数の多様なBCLファイルが、多重複合体で生成される。したがって、これらの多重化BCLファイルは、次いで、逆多重化され、各個別の対象に対する遺伝子コードを表すそれぞれのFASTQファイルが生成され得る。たとえば、1回のシークエンシングランで、N個のBCLファイルが生成される場合、これらのファイルは、各対象について逆多重化され、層化され、縫い合わされる必要がある。この縫い合わせは、複雑なプロセスであり、各対象の遺伝物質がBCLファイルに変換され、次いで、FASTQファイルに変換されるか、またはマッピング、アライメント、および/またはソーティング、バリアントコーリング、および同様のものに直接使用され得る。このプロセスは自動化され、プロセスの様々なステップを大幅にスピードアップし得る。
さらに、図40Aを見るとわかるように、このデータが生成され(110)、したがって記憶される必要が生じ、たとえば、いずれかのファイル形式が選択された後、データは、ゲノミクス専用のドロップボックス類似のメモリ400などの中の、パスワード保護され、および/または暗号化されたメモリキャッシュに記憶されてよい。したがって、生成されおよび/または処理された遺伝子データがシークエンサから得られたときに、データは、ドロップボックス類似のキャッシュ400などで、処理され、および/または記憶され、および/または他のシステム上の他のユーザから利用できるようにするものとしてよい。そのような事例において、自動化バイオインフォマティクス解析パイプラインシステムは、次いで、キャッシュ内のデータにアクセスし、その処理を自動的に開始するものとしてよい。たとえば、システムは、たとえばメモリキャッシュからのBCLおよび/またはFASTQファイルの取り出しを管理し、次いで、その情報の処理を向け、それにより、BAM、CRAM、SAM、および/またはVCFを生成し、それによって様々な処理結果を自動的に生成し、出力し、および/またはそれをドロップボックスメモリ400に記憶する、マイクロプロセッサまたは他のインテリジェンス機能、たとえば、人工知能などの、コントローラを有する、管理システム、たとえばワークフロー管理システム151を備え得る。
この使用モデル内で実装されるような、JIT処理の固有の利点は、JITが作成された様々な遺伝子ファイルが、たとえば、データ記憶の前に圧縮され、使用の前に高速に復元されることを可能にすることである。したがって、JIT処理は、データをシークエンサから出て来るときにコンパイルし、および/または圧縮し、および/または記憶することができ、そのような記憶は安全なゲノムドロップボックスメモリキャッシュに行われる。ゲノムドロップボックスキャッシュ400は、1つまたは複数の自動化シークエンサ110から受け取ったゲノミクスデータを記憶するように構成されているクラウド50アクセス可能メモリキャッシュであってよく、たとえば、シークエンサは、メモリキャッシュ400から離れた場所に配置される。
特に、配列データが、たとえば、リモートNGSによって、生成された(110)後、これは、伝送および/または記憶400のために圧縮され(150)、それによりクラウド50にアップロードされ記憶されるデータの量を低減し得る。そのようなアップロード、伝送、および記憶は、伝送の前などに、データ圧縮150がシステム内で行われるので、高速に実行され得る。それに加えて、クラウドベースメモリキャッシュ400にアップロードされ記憶された後、データは、次いで、ローカル100またはリモート300で取り出され、それにより、本明細書で開示されているBioITパイプラインのデバイス、システム、および方法に従って処理され、SAM、BAM、および/またはCRAMファイルなどの、マッピング、アライメント、ソーティング、および/またはバリアントコールファイルを生成するものとしてよく、次いで、これらは、生成されたファイル、たとえば、SAM、BAM、CRAMなどのファイルがどのように作成されるかに関する情報を記述したメタファイルとともに、記憶され得る。
したがって、メタデータと併せたときに、圧縮されたSAM、BAM、および/またはCRAMファイルは、次いで、FASTQおよび/またはVCFファイルなどの他のファイル形式のどれかを作成するように処理され得る。したがって、上で説明されているように、オンザフライで、JITは、圧縮されたBAMファイルからFASTQファイルまたはVCFを、またはその逆に、再生成するために使用され得る。BCLファイルも、同様の方式で再生成され得る。SAMおよびCRAMファイルは、同様に、圧縮されおよび/または記憶され、他のファイル形式のうちの1つまたは複数を作成するために使用され得ることに留意されたい。たとえば、逆CRAM処理され得る、CRAMファイルは、バリアントコールファイルを作成するために、またSAMファイルについても同様に使用され得る。したがって、SAM、BAM、および/またはCRAMファイルのみが保存される必要があり、これらのファイルから、他のファイル形式、たとえば、VCF、FASTQ、BCLファイルが再現され得る。
したがって、図40Aを見るとわかるように、マッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコーリング機器110、たとえば、ワークベンチコンピュータは、オンサイト100にあってよく、および/または別の第2の対応する機器300が、離れた場所に配置され、クラウド50内でアクセス可能にされ得る。この構成は、本明細書で開示されているデバイスおよび方法とともに、本明細書で開示されているように、ユーザが「クラウド内」でBioIT解析を高速に実行することを可能にするように適合され、結果データを作成する。結果データは、次いで、圧縮されるように処理されてよく、圧縮された後、データは、伝送のため、たとえば、ローカルコンピューティングリソース100に戻されるように構成され得るか、またはクラウド400に記憶され、ローカルコンピューティングリソース100によってクラウドベースインターフェースを介してアクセス可能にされ得る。そのような事例において、圧縮データは、SAM、BAM、CRAM、および/またはVCFファイルであってよい。
特に、第2のコンピューティングリソース300は、別のワークベンチソリューションであるか、またはサーバ構成リソースであってよく、たとえば、コンピューティングリソースは、クラウド50を介してアクセス可能であり、マッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコーリング機器を実行するように構成される。そのような事例において、ユーザは、クラウドベースサーバ300に、アップロードされたデータ、たとえば、BCLおよび/またはFASTQデータに対して1つまたは複数のBioITジョブを実行することを要求し得る。この事例では、サーバ300は、次いで、記憶されおよび/または圧縮されたファイルにアクセスし、そのデータを高速に処理し、1つまたは複数の結果データを生成するようにデータを処理するものとしてよく、データは次いで圧縮されおよび/または記憶され得る。それに加えて、結果データファイルから、1つまたは複数のBCL、FASTQ、SAM、BAM、VCF、または他のファイル形式が、JIT処理を使用することで、たとえばオンザフライで、生成され得る。この構成は、それによって、典型的な転送速度のボトルネックを緩和する。
したがって、様々な実施形態において、システム1は、ローカルデータ作成、圧縮150、および/または記憶200などのために、ローカル100に位置決めされ得る、第1のマッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコーリング機器100を備えるものとしてよく、第2の機器300は、リモートに位置決めされ、クラウド50内で関連付けられるものとしてよく、それによって、第2の機器300は、生成され圧縮されたデータを受け取り、それを、たとえば、関連付けられているストレージデバイス400を介して記憶するように構成される。記憶された後、データは、アクセスされ、復元され、記憶されているファイルが他のファイル形式のうちの1つまたは複数に変換され得る。
したがって、システムの一実装形態において、データ生成装置、たとえば、シークエンサ110によって生成されるデータ、たとえば、BCLまたはFASTQファイル形式などの生配列データは、関連付けられているゲノミクスドロップボックス類似メモリキャッシュ400などの、クラウド50内にアップロードされ記憶され得る。このデータは、次いで、本明細書において説明されているように、第1のマッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコーリング機器100によって直接アクセスされ得るか、またはサーバリソース300によって間接的にアクセスされてもよく、これは次いで配列データを処理して、マッピングされた、アライメントされた、ソーティングされた、および/またはバリアントの結果データを作成し得る。
したがって、様々な実施形態において、本明細書で開示されているストレージデバイスのうちの1つまたは複数は、クラウドを介して、適切な許可を得て、アクセス可能であるように構成され得る。たとえば、システムの様々な結果データは、圧縮されおよび/またはメモリ、または他の適切に構成されているデータベース内に記憶されてよく、データベースは、ゲノミクスドロップボックスキャッシュ400として構成され、たとえば、様々な結果データは、SAM、BAM、CRAM、および/またはVCFファイルで記憶され、これらはリモートからアクセス可能であり得る。特に、図40Aに関して、ローカル機器100が提供されるものとしてよく、ローカル機器は、シーケンシング機器110それ自体に関連付けられ得るか、またはそこから離れた場所にあるが、ローカルクラウド30を介してシークエンシング機器110に関連付けられてよく、ローカル機器100は、ローカルストレージファシリティ200またはメモリキャッシュ400にさらに関連付けられてよく、たとえば、リモートメモリキャッシュは、ゲノミクスドロップボックスとして構成されることに留意されたい。さらに、様々な事例において、適切な権限を有する、第2のマッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコーリング機器300、たとえば、クラウドベース機器も、ゲノミクスドロップボックス400に接続されてよく、それにより、記憶されているファイル、たとえば圧縮ファイルにアクセスし、それによって、ローカルコンピューティングリソース100にアクセスし、次いで、それらのファイルを復元して、さらなる、たとえば、二次または三次処理のために結果を利用可能にするものとしてよい。
したがって、様々な事例において、システムは、データが、生データ形式などで、生成されシークエンサ110から出て来るように合理化されてよく、これは、即座にクラウド50にアップロードされ、ゲノミクスドロップボックス400に記憶されるか、またはBioIT処理システム300に伝送され、アップロードされ記憶される(400)前にさらなる処理および/または圧縮を行うかのいずれかであってよい。メモリキャッシュ400内に記憶された後、システムは、次いで、データを別の関連付けられているBioIT処理装置300などによる取り出し、圧縮、復元、および/またはさらなる処理のためにデータを即座にキューに入れるものとしてよく、次いで、結果データに処理されたときに後からさらに使用できるように次いで圧縮され、および/または記憶され得る(400)。この時点で、三次処理パイプラインは開始されてよく、これによって、二次処理からの記憶されている結果データは、本明細書で開示されている方法に従って、復元され、三次解析などのために使用され得る。
したがって、様々な実施形態において、システムは、シークエンサ110から来るデータがすべて、転送および/または記憶200の前に、たとえばローカルコンピューティングリソース100によって圧縮され得るか、またはデータが記憶400のためにゲノミクスドロップボックスフォルダ内に直接転送され得るかのいずれかであるようにパイプライン化され得る。それによって受け取った後、記憶されているデータは、次いで、リモートコンピューティングリソース300などによって、取り出しおよび圧縮および/または復元のために実質的に即座にキューに入れられるものとしてよい。復元された後、データは、マッピング、アライメント、ソーティング、および/またはバリアントコーリングなどの処理をしその後記憶のため再圧縮され得る二次処理済み結果データを作成するために実質的に即座に利用可能になり得る。その後、圧縮された二次結果データは、次いで、たとえばゲノミクスドロップボックス400内でアクセスされ、復元され、および/または1つまたは複数の三次処理プロシージャにおいて使用され得る。データが記憶されるときに圧縮され、取り出されるときに実質的に即座に復元されるので、単純にドロップボックスストレージキャッシュ400にアクセスすることによって、異なる時刻に多くの異なるシステムによる、多くの異なる生物分析的プロトコルにおける使用に利用可能である。
したがって、これらのような方式で、本明細書において提示されているBioITプラットフォームパイプラインは、データ生成および/または解析の信じがたいほどの柔軟性をもたらすように構成されてよく、データを処理し、様々な下流解析に互換性のある出力形式を作成するために多数の形式の遺伝子データの特定の形態の入力を取り扱うように適合される。したがって、図40Cを見るとわかるように、本明細書において提示されるのは、次のステップのうちの1つまたは複数を含み得る、遺伝子シークエンシング解析を実行するためのデバイス、システム、および方法である。第1に、ファイル入力が受信され、入力は、圧縮されたファイル形式などの、FASTQまたはBCLまたは遺伝子配列ファイル形式の他の形式のうちの1つまたは複数であってよく、ファイルは、次いで、復元され、および/または本明細書において開示されている多数をステップを通じて処理されてよく、それによりVCF/gVCFを生成し、ファイルは、次いで、圧縮され、および/または記憶され、および/または伝送され得る。そのような圧縮および/または復元は、プロセス全体を通して適当な段階において実行され得る。
たとえば、BCLファイルが受信された後、本明細書で開示されているような逐次的方式などで、解析のパイプラインに通され得る。たとえば、受信された後、BCLファイルは、FASTQおよび/またはFASTQgzファイル形式などに変換され、および/または逆多重化されてよく、ファイルは、たとえばサーバ300のマッピングおよび/またはアライメントモジュールに送信されてよく、それにより、本明細書で説明されている装置およびその使用方法に従ってマッピングされ、および/またはアライメントされ得る。それに加えて、様々な事例において、SAMまたはBAMファイル形式などの、マッピングされアライメントされたデータは、位置でソーティングされ、および/または重複はマークを付けられ除去され得る。ファイルは、次いで、圧縮され、たとえば、CRAMファイルを作成し、たとえば、伝送および/または記憶し得るか、またはバリアントコーリング、たとえば、HMMモジュールに転送され、バリアントコールファイル、VCFまたはgVCFを作成するように処理され得る。
より具体的には、図40Cおよび図40Dを見るとわかるように、いくつかの事例において、システムによって受信されるべきファイルは、シークエンシング装置、たとえば、NGS110から直接的にシステムにストリーミングされるか、または他の何らかの形で転送されてよく、したがって、転送ファイルは、BCLファイル形式であってよい。受信されたファイルがBCLファイル形式である場合、これは、システムによる処理のためにFASTQファイルに変換され、および/または他の何らかの形で逆多重化され得るか、またはBCLファイルは直接処理されてもよい。たとえば、プラットフォームパイプラインプロセッサは、図1に関して説明されているように、シークエンサから直接ストリーミングされるBCLデータを受信するように構成され得るか、またはFASTQファイル形式でデータを受信し得る。しかしながら、シークエンサからストリーミングで出されるときに配列データを直接受信することは、データが生シークエンシングデータから直接出て、たとえば、出力するSAM、BAM、および/またはVCF/gVCFのうちの1つまたは複数の中へ直接処理されることに向かうことを可能にするので有用である。
したがって、たとえばコンピューティングリソース100および/または300によってBCLおよび/またはFASTQファイルが受信された後、これは、コンピューティングリソースによってマッピングされおよび/またはアライメントされてよく、マッピングおよび/またはアライメントは、シングルエンドまたはペアエンドリードに対して実行され得る。たとえば、受信された後、配列データは、約10または約20、たとえば、26、または50、または100、または150bp以下、最大約1Kまで、約2.5K、または約5K、さらには約10Kbp以上の範囲にあるものとしてよいリード長などで、解析のために、リードにコンパイルされ得る。同様に、マッピングされおよび/またはアライメントされた後、配列は、次いで、参照範囲によるビニングおよび/または参照位置によるビンのソーティングなどを通じて、ソーティングされる、たとえば、位置でソーティングされ得る。さらに、配列データは、高クオリティの重複レポートを生成するために、開始位置およびCIGAR文字列などに基づき、重複マーキングを介して処理されてよく、マークされた重複はこの時点で取り除かれ得る。その結果、マッピングされアライメントされたSAMファイルが生成され、これは記憶し、および/またはさらなる処理を行うためにBAM/CRAMファイルを形成するように圧縮されてよい。さらに、BAM/CRAMファイルが取り出された後、マッピングされおよび/またはアライメントされた配列データは、いくつかの事例において、VCFを生成するために、ソフトウェアおよび/またはハードウェアの組合せで実装され得るSmith-Watermanアライメントおよび/または隠れマルコフモデルのうちの1つまたは複数を使用し得る、再アセンブリを有するハプロタイプバリアントコーラーなどの、システムのバリアントコーリングモジュールに転送され得る。
したがって、図40Dに示されているように、システムおよび/またはそのコンポーネントの1つまたは複数は、BCLデータをFASTQまたはSAM/BAM/CRAMデータ形式に変換することができるように構成されてよく、次いで、これはさらなる処理および/またはデータ再構築のためにシステム全体に送信されるものとしてよい。たとえば、BCLデータが受信されおよび/またはFASTQファイルに変換され、逆多重化されおよび/または重複除去された後、データは、次いで、マッピングおよび/またはアライメントなどのために、本明細書で開示されているパイプラインモジュールのうちの1つまたは複数に転送されるものとしてよく、これは処理されるサンプルの数に応じて1つまたは複数の、たとえばいくつかの、SAM/BAMファイルを結果として作成させる。これらのファイルは、次いで、ソーティングされ、重複除去され、バリアントコーリングモジュールに転送されて、1つまたは複数のVCFファイルを作成し得る。これらのステップは、より大きいコンテキストおよび精度を得るために繰り返され得る。たとえば、配列データが、たとえば、SAMファイルを作成するために、マッピングされアライメントされた後、SAMファイルは、次いで、1つまたは複数のBAMファイルに圧縮され、次いで、VCFエンジンに伝送され、システムの処理全体を通してVCF/gVCFに変換され、次いで、CRAMファイルに圧縮され得る。その結果、システムに従って出力されるべきファイルは、Gzipおよび/またはCRAMファイルであってよい。
特に、図40Cおよび40Dを見るとわかるように、これらのファイルの1つまたは複数は、生成された後、圧縮されおよび/または一方のシステムコンポーネントから他方のシステムコンポーネントに、たとえば、ローカル100からリモートリソース300に転送され、受信された後、次いで、たとえばすでに圧縮されていれば復元されるか、または変換され/逆多重化され得る。より具体的には、ローカル100またはリモート300リソースのいずれかによって、BCLファイルが受信された後、これは、FASTQファイルに変換され、次いで、システムの集積回路によって処理され、それによりマッピングされおよび/またはアライメントされるか、またはそのような処理のためにリモートリソース300に伝送され得る。マッピングされおよび/またはアライメントされた後、たとえば、SAMファイル形式の、結果として得られる配列データは、たとえば、BAM/CRAMファイルに1回または複数回圧縮されることなどによってさらに処理されてよく、データは、次いで、位置ソーティング、重複マーキング、および/またはバリアントコーリングによって処理されてよく、たとえば、VCF形式の、その結果は、次いで、もう一度圧縮され、および/または記憶され、および/またはリモートリソース300からローカル100リソースなどに伝送され得る。
より具体的には、システムは、BCLデータを直接処理し、それによってFASTQファイル変換ステップをなくすように適合され得る。同様に、BCLデータは、パイプラインに直接送られ、サンプル毎に固有の出力VCFファイルを作成し得る。中間SAM/BAM/CRAMファイルも、オンデマンドで生成され得る。したがって、システムは、配列情報を含むBCLまたはFASTQデータファイルなどの、1つまたは複数のデータファイルを受信しおよび/または伝送し、それを処理してSAM/BAM/CRAMデータファイルなどの、すでに圧縮されているデータファイルを作成するように構成され得る。
したがって、図41Aを見るとわかるように、ユーザが圧縮されたファイルにアクセスし、それを生成されたBCL111cおよび/またはFASTQファイル111dの元のバージョンに変換し、たとえば、データにさらなる、たとえば、より高度な、信号処理111bを施す、たとえば、誤り訂正を行いたい場合がある。代替的に、ユーザは、たとえばBCLまたはFASTQファイル形式111の、生配列データにアクセスし、マッピング112および/またはアライメント113および/または他の関係する機能114/115などのために、そのデータにさらなる処理を施し得る。たとえば、これらのプロシージャからの結果データは、次いで、ソーティング114a、重複除去114b、リキャリブレーション114c、ローカル再アライメント114d、および/または圧縮/復元114eなどのために、圧縮されおよび/または記憶されおよび/またはさらなる処理114に通され得る。同じまたは別のユーザが、次いで、マッピングされおよび/またはアライメントされた結果データの圧縮された形態にアクセスし、次いで、データに対して別の解析を実行し、たとえば、1つまたは複数のバリアントコール115を、たとえばHMM、Smith-Waterman、変換などを介して、作成したい場合があり、これは次いで圧縮されおよび/または記憶され得る。システムの追加のユーザは、次いで、圧縮されたVCFファイル116にアクセスし、それを復元し、そのデータに1つまたは複数の三次処理プロトコルに通すものとしてよい。
さらに、ユーザは、パイプライン比較を行いたい場合がある。マッピング/アライメント/ソーティング/バリアントコーリングは、様々なゲノム解析を実行するのに有用である。たとえば、さらなるDNAまたはRNA解析、または何らかの種類の解析がその後望まれている場合、ユーザは、別のパイプラインを通してデータを実行したい場合があり、したがって、再生成された元のデータファイルにアクセスできることは非常に有用である。同様に、このプロセスは、異なるSAM/BAM/CRAMファイルが創出されるか、または再現されることが望ましいような場合に有用であり得、たとえば、新しいまたは異なる参照ゲノムが生成され、したがって、新しい参照ゲノムに対してマッピングおよびアライメントをやり直すことが望まれている場合がある。
圧縮されたSAM/BAM/CRAMファイルを記憶することは、システム1のユーザが参照ゲノムが結果データのバックボーンを形成するという事実を利用することを可能にするのでさらに有用である。そのような事例において、重要なのは参照と一致するデータではなく、むしろデータが参照とどのように一致しないかである。したがって、参照と一致しないそのデータのみが記憶するうえで重要である。その結果、システム1は、システムのユーザにとって重要であり/または有用であるもののみを記憶することによってこの事実を利用することができる。したがって、ゲノムファイル全体(参照との一致および不一致を示す)またはそのサブ部分(参照との一致または不一致のみを示す)は、圧縮され記憶されるように構成され得る。したがって、参照と調査されているゲノムとの間の差異および/またはバリエーションのみが調査するのに最も有用であるので、様々な実施形態において、これらの差異のみが記憶される必要があり、参照と同じものは何であれ、再び検討される必要はないことがわかる。したがって、BAMファイルが創出された後、所与のゲノムが参照とわずかしか異ならない、たとえば、ヒトゲノムの99%が典型的には同一であるので、検討されおよび/または保存される必要のあるのは参照ゲノムの間のバリエーションのみである。
それに加えて、図41Bを見るとわかるように、本明細書で実現される、クラウドアクセス可能システム1の別の有用なコンポーネントは、システムフローを自動化するために使用され得る、ワークフロー管理コントローラ151である。そのようなシステムアニメーションは、それが利用可能であるので、および/またはそれが利用可能になった場合に、様々なシステムコンポーネントを利用して、ローカル100またはリモート300のいずれかにおいてデータにアクセスするステップと、次いで、本明細書において開示されているBioITパイプラインなどに関して、データにさらなる処理ステップを実質的に自動的に施すステップとを含み得る。したがって、ワークフロー管理コントローラ151は、システムの様々なパイプライン、たとえば、111、112、113、114、および/または115を示すためのコア自動化技術であり、様々な事例において、人工知能コンポーネント121aを採用し得る。
たとえば、システム1は、システムの様々なデータを解析し、それに応じて、その解析結果をワークフロー管理システム151に伝達するように構成されている人工知能(A/I)モジュールを備え得る。特に、様々な事例において、A/Iモジュールは、システムに提示される様々なゲノムデータ、さらにはそのデータの処理によって生成される結果データを解析し、そのデータの間の、および/またはシステムに入力され得る他のデータとの様々な関係を識別し、決定するように構成され得る。より具体的には、A/Iモジュールは、決定されたゲノムデータ、たとえば、バリアントデータに対する考察されている要因の、およびその逆の、効果に関して有益な情報をもたらし得る、複数の他の要因と対応関係にある様々なゲノムデータを解析し、様々な要因、たとえばデータ点の間の関係、たとえば、効果ベースの関係を決定するように構成されてよい。
特に、以下でより詳しく説明されているように、A/Iモジュールは、システムによって生成される対象のゲノムデータとその対象または他者に対する、電子医療記録との相関を求め、それらの間の関係および/または他の関連する要因および/またはデータを決定するように構成され得る。したがって、これらの要因が対象および/またはそのゲノムデータおよび/または健康に対して有し得る関連する効果および/または関係を決定する際にシステムによって使用され得るそのような他のデータは、NIPTデータ、NICUデータ、癌関係データ、LDTデータ、環境および/またはAg Bioデータ、および/または他のそのようなデータを含む。たとえば、解析されるべきさらなるデータは、環境データ、クラッドデータ、マイクロバイオームデータ、メチル化データ、構造データ、たとえば、キメラまたはメイトリードデータ、生殖細胞バリアントデータ、アレルデータ、RNAデータ、および対象の遺伝物質に関係する他のそのようなデータなどの他の要因によって導出され得る。したがって、A/Iモジュールは、システム内を流れる様々な関係データを1つまたは複数の他の可能な関係する効果ベースの要因とともに1人または複数の対象のゲノムにおいて決定されたバリアントにリンクするために使用され得る。
特に、A/Iエンジンは、CPU/GPU/QPU上で実行されるように構成されてよく、および/または加速AIエンジンとして実行されるように構成されてよく、これはFPGAおよび/または量子処理ユニットで実装され得る。特に、AIエンジンは、システムの様々なデータベースの1つまたは複数、たとえば、すべてと関連付けられてよく、それにより、AIエンジンがシステム内を流れる様々なデータを探索し、処理することを可能にし得る。それに加えて、ゲノムが処理されている対象がゲノムデータと患者記録データの両方にアクセスする適切な権限を与えている場合、システムは、次いで、様々なデータセットについて一方を他方に相関させるように構成され、さらにデータをマイニングして、様々な有意な対応関係、関連付け、および/または関係を決定し得る。
より具体的には、A/Iモジュールは、入力データに関して機械学習プロトコルを実装するように構成され得る。たとえば、本明細書において実行されている解析から生成される複数の対象のゲノムデータは、データベースに記憶され得る。同様に、適切な権限および認証があれば、ゲノムDNAが処理されている対象に対する電子医療/健康記録(EMR)が取得され、同様に、データベース内に記憶されてよい。以下でより詳しく説明されるように、処理エンジンは、対象のゲノムデータ、さらにはそのEMRデータを解析し、それら2つの間の相関関係を決定するように構成され得る。これらの相関関係は、次いで、探索され、観察された関係で強化され、その結果は、システムの様々な機能をより効果的に、より効率的に実行するために使用され得る。
たとえば、AI処理エンジンは、それらの対象の知られている疾患または病状と相関する、対象のゲノムデータにアクセスし、この解析から、AIモジュールは、そのデータに基づき予測的相関を実行することを学習し得るので、他の個体の疾患および/または他の類似の病状の存在を予測することがますますよくできるようになる。特に、他者のゲノムの間のそのような相関関係をそれらのEMRで、たとえば、疾患マーカーの存在に関して決定することによって、A/Iモジュールは、他者のゲノム内のそのような相関関係、たとえば、システム決定疾患マーカーを識別することを学習するものとしてよく、それによって、疾患または他の識別可能な病状の可能性を予測することができる。より具体的には、対象のゲノムを、知られているまたは決定された遺伝病マーカーと比較して解析することによって、および/または対象のゲノム内のバリアントを決定することによって、および/またはさらに、ゲノムデータと対象の健康状態、たとえば、EMRとの間の潜在的関係を決定することによって、A/Iモジュールは、サンプリングされている対象だけでなく将来サンプリングされ得る他者についても結論を引き出すことができ得る。これは、たとえば、システマティックな方式で、対象毎に行われ得るか、または集団内でおよび/または地理的に異なる場所内で行われ得る。
より具体的には、本発明のシステムに関して、リードのパイルアップが作成される。パイルアップは、有意なバリアントのより高い確率を有することが知られている領域と重なり合ってよい。したがって、システムは、一方で、パイルアップを解析してバリアントの存在を決定するが、同時に前の解析結果に基づき、バリアントがそこにあるべきかそうでないかの尤度をすでに知っている、たとえば、答えが何であるべきかについての初期予測を有する。期待されたバリアントがそこにあるかどうかは、他者のゲノムのその領域を解析するときに有益な情報を与えることになる。たとえば、これは、より良好なバリアントコールを行うためにシステムによって使用され、および/またはそれらのバリアントを1つまたは複数の疾患状態もしくは他の健康状態によりよく関連付けるデータ点の総和における1つのデータ点であってよい。
たとえば、例示的な学習プロトコルにおいて、A/I解析は、1つまたは複数の健康状態に対するコーディングが疑われる領域などについて、ゲノム内の1つまたは複数の領域のパイルアップの電子画像を撮影するステップと、その画像を他のパイルアップからの知られているバリアントコールに関連付けるステップとを含むものとしてよく、たとえば、それらのバリアントは疾患状態に関係すると知られている場合も知られていない場合もあり得る。これは、何度も行われてよく、システムは情報を処理し、適切な関連付けを行い、正しいコールをますます速く、高い精度で行うことを学習する。これが疾患を引き起こすと疑われるゲノムの知られている領域の様々な、たとえばすべてについて実行された後、ゲノムの残り部分について、たとえば、ゲノム全体が検討されてしまうまでそれが繰り返されてよい。同様に、これは、複数のサンプルゲノムについて何度も何度も繰り返され、それにより、システム、たとえばバリアントコーラーを訓練することで、より正確なコールを、より早く、より高い効率で実行するようにし、および/または三次処理モジュールが不健康な状態をよりよく識別することを可能にし得る。
したがって、システムは、答えが知られている多くの入力を受信し、解析を実行し、答えを計算し、それによって、プロセスから学習し、たとえば、一方のゲノムに関して、パイルアップの画像をレンダリングし、次いで、将来のパイルアップが不健康である状態に関係していると知られている以前にキャプチャされた画像に類似していることがより容易に決定されるので、他方のゲノムに基づくコールをますます早く行うことを学習する。したがって、システムは、たとえば、パターン認識に基づき、および/または1つまたは複数の病状を伴うそれらのバリアントの存在の間の関係を予測して、バリアントの存在に関する予測を行うことを学習するように構成され得る。
より具体的には、システムが部分または全ゲノム解析を実行し、たとえば、複数のサンプルにおける、バリエーションと様々な状態との間の関係を決定すればするほど、システムは、たとえば、パイルアップの部分的なまたは全体的なゲノム画像に基づき、予測を行うことをよりうまく行える。これは、パイルアップの画像および/または他のリード解析に基づき疾患状態を予測するときに有用であり、たとえば、予測が行われる、EMR(表現型データを含む)、パイルアップ画像、および/または知られているバリアント(遺伝型データ)および/または疾患状態または病状のうちの1つまたは複数の間の相関関係の構築を含み得る。様々な事例において、システムは、転写機能を備えるものとしてよく、対象の医療記録の一部であってよいカルテ記載を転写することができ、それによりそのデータを関連付けの中に含める。
一使用モデルにおいて、対象は、携帯電話または他のコンピューティングデバイスなどの、モバイルトラッカおよび/またはセンサを有していてよく、これは対象の配置を追跡するように、さらにはその配置にいるユーザの環境および/または生理学的状態を感知するように構成され得る。他の感知されたデータも収集され得る。たとえば、モバイルコンピューティングデバイスは、GPSトラッカを備えてよく、および/またはその配置は、携帯電話電波塔による三角測量によって決定されるものとしてよく、たとえば、セルラー、WIFI、Bluetooth(登録商標)、または他の適切に構成されている通信プロトコルを介して、収集されたデータを伝送するようにさらに構成され得る。したがって、モバイルデバイスは、モバイルコンピュータの所有者が毎日の生活で出会う対象の地理的配置、環境条件、生理学的状態、および他の感知されたデータに関連する環境データを追跡し、カテゴライズするものとしてよい。収集された配置、環境、生理学的、健康データ、および/または他の関連付けられているデータ、たとえば、ZNAデータは、次いで、たとえば、規則正しく定期的に、本明細書のシステムデータベースのうちの1つまたは複数に伝送されるものとしてよく、収集されたZNAデータは、本明細書のシステムによって決定されるように、対象の患者病歴、たとえば、EMR記録、および/または対象のゲノムデータと相関され得る。
同様に、様々な事例において、これらのデータのうちの1つまたは複数はZNA収集および解析プラットフォームから、中央リポジトリ、たとえば、政府施設に転送され、そこで、より大きい、たとえば、全国的な規模で、本明細書で開示されている人工知能などにより、解析され得る。たとえば、データベース、たとえば、政府制御データベースは、対象の環境データと比較され得る環境データを記録しているものとしてよい。たとえば、例示的な一事例において、NICU検定が母親、父親、およびその子に対して実行され、次いで、3人の生活全体を通して、その環境およびゲノムおよび医療記憶データは、継続的に収集され、環境的影響要因などによる、特に突然変異の発現に関して、個体の一生にわたってなど、互いにおよび/または1つまたは複数のモデルと相関され得る。このデータ収集は、個体の生涯にわたって実行されてよく、全体として家族に対して実行されてよく、データ収集データベースをよりよく構築し、遺伝的バリエーションに対するそのような要因の効果、およびその逆をよりよく予測する。
したがって、ワークフロー管理コントローラ151は、システム1が1つまたは多数のシークエンシング機器、たとえば、110a、110b、110cなどの1つまたは複数のソースからの入力、および単一のシークエンシング機器110からの多数の入力を受信することを可能にし、受信するデータは、多数の対象のゲノムを表す。そのような事例において、ワークフロー管理コントローラ151は、着信データのすべてを追跡するだけでなく、受信するデータの二次および/または三次処理を効率よく編成し、円滑にもする。したがって、ワークフロー管理コントローラ151は、システム1が小規模なシークエンシングセンタと大規模なシークエンシングセンタの両方にシームレスに接続することを可能にし、すべての種類の遺伝物質は、同時に1つまたは複数のシークエンシング機器110を通り、そのすべてが、クラウド50などで、システム1に転送され得る。
より具体的には、図41Aを見るとわかるように、様々な事例において、1つまたは多数のサンプルが、システム1内で受信されるものとしてよく、したがって、システム1は、マルチサンプル処理方式などで、逐次的または並列のいずれかで、サンプルを受信し、効率よく処理するように構成され得る。したがって、マルチサンプル処理を合理化し、および/または自動化するために、システムは、包括的なワークフロー管理システム(WMS)またはLIMS(実験室情報管理システム)151によって制御され得る。WMS151は、ユーザがパイプラインに対する多数のワークフローの実行を容易にスケジュールし、さらにはNGS解析アルゴリズム、プラットフォームパイプライン、およびその付随するアプリケーションを調節または加速することを可能にする。
そのような事例において、各ランシーケンスはバーコードを付けて、それの配列の種類、ファイル形式、および/またはどのような処理ステップが実行されたか、およびどのような処理ステップが実行される必要があるかを示すものとしてよい。たとえば、バーコードは、「this is a genome run, of subject X, in file format Y, so this data has to go through pipeline Z」を示すマニフェストを含み得るか、または同様に、「this is A's result data that needs to go in this reporting system」を示し得る。したがって、データが受信され、処理され、システムを通じて伝送されるときに、バーコードおよび結果は、LIMS(実験室情報管理システム)などのワークフロー管理システム151にロードされる。LIMSは、この事例では、実験室の管理に使用される標準ツールであり得るか、またはプロセスフローを管理するために使用される専用ツールであり得る。
どのような事例においても、ワークフロー管理コントローラ151は、バーコード付きサンプルを、たとえば、記憶および/または処理のために、それが所与のサイトに届いたときから結果がユーザに送出されるまで追跡する。特に、ワークフロー管理コントローラ151は、すべてのデータを、エンドツーエンドでそれがシステムを通って流れているときに追跡するように構成される。より具体的には、サンプルが中に入ったときに、サンプルに関連付けられているバーコードが読み取られ、その読取りに基づき、システムは、要求されたワークフローが何であるかを決定し、サンプルの処理の準備をする。そのような処理は、単一のゲノムパイプラインに通されるなど、単純であり得るか、または一緒に縫い合わされる必要のある多数の、たとえば、5つのパイプラインに通されることなどによってより複雑なものであってもよい。特定の一モデルにおいて、生成されるか、または受信されたデータは、システムに通されて、処理済みデータを作成し、処理済みデータは、次いで、GATK等価モジュールに通され、結果は比較され、次いで、サンプルが別のパイプラインに伝送されて、さらなる、たとえば、三次処理700を施され得る。図41Bを参照されたい。
したがって、システムは全体として、いくつかの異なる処理パイプラインに従って実行され得る。実際、システムプロセスの多くは、相互接続されてよく、ワークフローマネージャ151は、新しいジョブが保留であることを通知されるか、または他の何らかの形で決定し、ジョブ行列を定量化し、必要な解析を実行するのに利用可能なリソースを識別し、ジョブをシステムにロードし、たとえばシークエンサ110から、着信データを受信し、それを中にロードし、次いでそれを処理する。特に、ワークフローがセットアップされた後、それは保存されるものとしてよく、次いで、修正されたバーコードがそのワークフローに割り当てられ、自動化プロセスがワークフローのディレクティブに従って行われる。
本発明の自動化ワークフロー管理システム151の前に、システム、およびそのコンポーネント部分を構成し、セットアップするのに何人ものバイオインフォマティクスの専門家が長い時間をかける必要があり、次いで、解析を実際に実行するためにさらなる時間を要する。事態をより複雑にしているのは、システムが解析する次のサンプルを受信する前に再構成されなければならず、新しいサンプルセットを解析するためにシステムを再構成するのになおいっそう時間がかかることである。本明細書において開示されている技術により、システムは全体的に自動化できる。本発明のシステムは、特に、複数のサンプルを自動的に受信し、それらを多数の異なるワークフローおよびパイプラインにマッピングし、それらを同じまたは複数の異なるシステムカード上で実行するように構成される。
したがって、ワークフロー管理システム151は、バーコードのジョブ要求条件を読み取り、ジョブを実行するためのリソースを、たとえば配置に関係なく割り振り、サンプルバーコードを更新し、サンプルを処理のため割り振られたリソース、たとえば、処理ユニットに向ける。したがって、受信したサンプル上で実行される二次600および/または三次700解析プロトコルを決定するのはワークフローマネージャ151である。これらの処理ユニットは、各データセットに割り振られたオペレーションを線引きし実行するために利用可能なリソースである。特に、ワークフローコントローラ151は、サンプルを受信し読み取るステップ、ジョブを決定するステップ、それらのジョブを実行するためにリソース、たとえば、二次処理を割り振るステップ、すべてのシステムコンポーネントを接続するステップ、およびサンプルセットをシステムに通してコンポーネントからコンポーネントへと前進させるステップに関連付けられている様々なオペレーションを制御する。コントローラ151は、したがって、システム全体を開始から終了まで、たとえば、サンプル受け入れからVCF生成まで、および/または三次処理に至るまで管理する働きをする。図41Bを参照。
追加の事例において、図41Cを見るとわかるように、システム1は、診断、疾患および/または療法発見、および/またはその予防などのために、たとえば二次および/または三次処理結果データの、追加の処理をするように構成されているような、処理モジュール800のさらなる層を含み得る。たとえば、様々な事例において、処理800の追加のレイヤが、NIPT123a、NICU123b、癌123c、LDT123d、AgBio123e、および他のそのような疾患診断、予防、および/または本発明の一次または二次および/または三次パイプラインのうちの1つまたは複数によって生成されるデータを使用する治療などを含む、疾患診断、治療上の処置、および/または予防的予防70などのために用意されるものとしてよい。
したがって、本明細書において提示されているのは、ローカル30および/または大域的ハイブリッド50クラウドネットワークを作成し、使用するためのシステム1である。たとえば、現在、ローカルクラウド30は、リモートストレージロケーション400などにおけるプライベートストレージにもっぱら使用される。そのような事例において、データのコンピューティングは、ローカルコンピューティングリソース140によってローカル100で実行され、ストレージニーズは広範囲に及んでおり、ローカルクラウド30は、リモートプライベートストレージリソース400の使用などにより、ローカルコンピューティングリソース140によって生成されるデータを記憶するためにアクセスされ得る。したがって、生成されるデータは、典型的には、ローカル100におけるサイト上で全体的に管理される。他の実施形態では、データは、プライベートクラウドインターフェース30を介して、リモートコンピューティングリソース300に安全に接続することによって完全にオフサイトで生成され、計算され、管理され得る。
特に、バイオインフォマティクス解析プラットフォームの一般的な実装形態において、ローカルコンピューティング140および/または記憶200機能は、ローカルオンサイト100で維持される。しかしながら、ストレージニーズがローカルの記憶容量を超える場合、データはローカルクラウドアクセス30を介してアップロードされ、オフサイト400にプライベートのものとして記憶され得る。さらに、記憶されているデータ400が他のリモートユーザから利用可能にするニーズがある場合、そのようなデータは、転送され、それによってリモートストレージ400用の、ただし大域的アクセス用の、大域的クラウド50インターフェースを介して利用可能にされ得る。そのような事例において、コンピューティング機能の実行に必要なコンピューティングリソース140が最小であるが、記憶要求条件が広範囲に及んでいる場合に、コンピューティング機能140は、ローカル100で維持されるものとしてよく、記憶機能400はリモートで、たとえば、プライベートまたは大域的アクセスのいずれかのために維持されるものとしてよく、完全に処理されたデータは、本明細書において上で開示されているJITプロトコルを使用することなどによって、ローカル処理のみなどのためのローカル処理機能140と処理済みデータのリモート記憶400などのための記憶機能400との間を行ったり来たりして転送される。
たとえば、これは、典型的なNGSなどにより、シークエンシング機能110に関して例示されるものとしてよく、データ生成および/またはコンピューティングリソース100は、遺伝子配列決定データ、たとえば、リードを作成するように遺伝物質のシークエンシングに必要な機能を実行するように構成され、データは、オンサイト100で作成され、および/またはオンサイトのローカル30で転送される。これらのリードは、オンサイトのNGSなどによって生成された後、次いで、さらに処理するなどのために、必要な場合に、クラウド30から再び呼び出されるような仕方でリモートロケーション300において記憶400などのために、クラウドネットワーク30で、たとえば、BCLまたはFASTQファイルとして、転送され得る。たとえば、配列データが生成され、記憶(たとえば、400)された後、データは、次いで、たとえばローカル100で、ストレージファシリティ400から離れた配置にある、二次600および/または三次700処理機能のうちの1つまたは複数を実行するためなど、たとえば、ローカルでの使用のために、再び呼び出され得る。そのような事例において、ローカルストレージリソース200は、リモートストレージファシリティ400との間など、クラウド30/50との間での転送を待っているときにデータが入れられるストレージキャッシュとしてのみ働く。
同様に、データを処理するために1つまたは複数のリモートコンピューティングサーバまたはコンピューティングクラスタコア300を必要とするなど、コンピューティング機能が広範囲に及ぶ場合、また処理済みデータ200を記憶するために必要な記憶容量は、データを処理するのに必要なコンピューティングリソース300に比べて比較的最小である場合に、処理されるべきデータは、クラウド30などで、送信されてよく、それにより、リモートコンピューティングリソース300によって処理され、このリソースは、コンピューティングリソースの1つまたは複数のコアもしくはクラスタ、たとえば、1つまたは複数のスーパーコンピューティングリソースを含み得る。そのような事例において、データがクラウドベースコンピュータコア300によって処理された後、処理済みデータは、次いで、ローカル200で記憶されるようにクラウドネットワーク30で転送され、ローカル解析および/または診断などのために、ローカルコンピューティングリソース140によって使用するために容易に利用可能にされ得る。もちろん、リモートで生成されたデータ300は、リモート400にも記憶され得る。
これは、さらに、典型的な二次処理機能600に関して例示されるものとしてよく、たとえば、前処理された配列決定データ、たとえば、リードデータは、ローカル200に記憶され、ローカルコンピューティングリソース100などによってアクセスされ、クラウドインターネット30でリモートコンピューティングファシリティ300に伝送され、それによってさらに、二次600または三次700処理機能において処理され、次いでそれによって記憶200のためにローカルファシリティ100に送り返され得る処理済み結果データを取得する。これは、ローカルの実施者がローカルデータ生成リソース110、たとえば、自動化シークエンサを使用して配列決定リードデータを生成し、それにより、BCLまたはFASTQファイルを作成し、次いで、そのデータをネットワーク50でリモートコンピューティングファシリティ300に送信し、次いでこれはそのデータに対して1つまたは複数の機能を、たとえば、その配列データに対してBurrows-Wheeler変換またはNeedlemen-Wunschおよび/またはSmith-Watermanアライメント機能を実行し、それにより、結果データを、たとえば、SAMファイル形式で生成し、次いでこれは圧縮され、インターネット30/50で、たとえば、BAMファイルとして、ローカルコンピューティングリソース100に伝送され、それによって1つまたは複数のローカル管理処理プロトコルで調べられ、たとえばVCFを作成し、次いでこれはローカル200に記憶され得る場合であるものとしてよい。様々な事例において、データは、リモート400にも記憶され得る。
しかしながら、必要なのは、本明細書で提示されているハイブリッドクラウド50ベースシステムなどにおける、ローカル100およびリモート300のコンピュータ処理の間さらにはローカル200およびリモート400の記憶域の間の関わりの間のシームレスな一体化である。そのような事例において、システムは、ローカル100およびリモート300のコンピューティングリソースが一緒にシームレスに実行されるように構成され、それによって処理されるべきデータがリアルタイムでローカル200またはリモート300のいずれかのコンピューティングリソースに、転送速度によるおよび/またはオペレーション効率における広範なペナルティを受けることなく割り振られるように構成され得る。これは、たとえば、コンピューティングリソース100および300によってデプロイされ、または他の何らかの形で実行されるべきソフトウェアおよび/またはハードウェアおよび/または量子処理が、互いに対応するように構成され、ならびに/あるいは同じもしくは機能的に類似し、たとえば、ハードウェアおよび/またはソフトウェアは、生成されおよび/または受信されたデータ上で同じ方式で同じアルゴリズムを実行するように同じ方式で構成される場合であるものとしてよい。
たとえば、図41Aを見るとわかるように、ローカルコンピューティングリソース100は、データを生成し、生成されたデータを受信するように構成されてよく、したがって、たとえば、BCLおよび/またはFASTQ配列ファイルを作成するために、一次データ生成および/または解析500などのためのデータ生成メカニズム110を備え得る。このデータ生成メカニズム110は、1つまたは複数のソフトウェアアプリケーションを実行するように構成されてよく、および/または生成されおよび/または取得されたデータに対して配線構成などにおける1つまたは複数のアルゴリズムを実行するようにハード配線されてよいプロセッサ140を有する、本明細書全体を通して説明されているような、ローカルコンピュータ100であるか、またはローカルコンピュータ100に関連付けられ得る。たとえば、データ生成メカニズム110は、シークエンシングデータ111などの、データを生成するステップのうちの1つまたは複数を実行するように構成され得る。様々な実施形態において、生成されたデータは、電圧、イオン濃度、電磁放射線、および同様のものの変化として検出可能であるデータなどの、感知データ111aであってよく、および/あるいはデータ生成メカニズム110は、信号、たとえば、関連付けられているヌクレオチドの配列または鎖における1つまたは複数のヌクレオチド同一性を表すデータなどの、アナログもしくはデジタル信号データ、を生成し、および/または処理するように構成され得る。そのような事例において、データ生成メカニズム110、たとえば、シークエンサ111は、信号処理111bなどのために生成されたデータに対して予備的処理を実行するか、または配列同一性データ、たとえば、BCLおよび/またはFASTQファイル111dを作成するためのデータなどに対して、1つまたは複数の塩基コールオペレーション111cを実行するようにさらに構成され得る。
この事例において、作成されるデータ111は、ローカルデータ生成110および/またはコンピューティングリソース140、たとえば、チップ上のNGSまたはシークエンサなどによって、ローカルでおよび直接的に生成され得る。代替的に、データは、たとえば、リモートNGSなどの、リモートコンピューティングおよび/または生成リソースによって、ローカルで間接的に作成され得る。たとえば、BCLおよび/またはFASTQファイル形式のデータ111は、作成された後、さらなるローカル処理140を待っている間などに、ローカルストレージリソース200において二次処理140および/またはそれによる記憶などのために、次いでローカルクラウド30でローカルコンピューティングリソース100に間接的に転送され得る。そのような事例において、データ生成リソースがローカル処理100および/または記憶200リソースからリモートにある場合に、対応するリソースは、各リソースによって使用されるリモートおよび/またはローカル記憶、リモートおよびローカル処理、および/または通信プロトコルが、たとえば、同じ、類似の、および/または同等のソフトウェアを実行することによって、および/または同じ、類似の、および/または同等のハードウェア構成を有し、ならびに/あるいはいくつかの事例において、製造時に、またはその後に実装され得る、同じ通信および/または転送プロトコルを使用することによって、互いに滑らかにおよび/またはシームレスに一体化するように適合されるように構成され得る。
特に、一実装形態において、これらの機能は、ハード配線された構成で実装されてよく、たとえば、シークエンシング機能および二次処理機能は、たとえば、同じまたは関連付けられているチップもしくはチップセット上で維持され、たとえば、シークエンサおよび二次プロセッサは、本明細書において説明されているように、チップ上で直接相互接続される。他の実装形態では、これらの機能は、ソフトウェアを介して2つまたはそれ以上の別々のデバイス上に、たとえば、2つのリモートデバイスが互いにシームレスに通信することを可能にするように最適化されている量子プロセッサ、CPU、またはGPU上で、実装され得る。他の実装形態では、参照されている機能を実行するために最適化されたハードウェアおよびソフトウェア実装形態の組合せも使用されてよい。
より具体的には、同じ構成が、ローカル100および/またはリモート300コンピューティングリソースによってデプロイされ得るマッピング、アライメント、ソーティング、バリアントコーリング、および/または他の機能の実行に関して実装され得る。たとえば、ローカルコンピューティング100および/またはリモート300リソースは、処理およびその結果が互いにシームレスに共有され、および/またはそれによって記憶され得る仕方で、遺伝子配列データなどの、ローカルおよび/またはリモートで生成されたデータに対して、処理機能112~115の1つまたは複数の二次600層および/または処理機能の三次層700/800を実行するように構成されているソフトウェアおよび/またはハードウェアを備え得る。特に、ローカルコンピューティング機能100および/またはリモートコンピューティング機能300は、たとえば、BCLおよび/またはFASTQファイル形式の、遺伝子配列データなどの、一次データを生成し、および/または受信し、その生成されたおよび/または取得されたデータに対して1つまたは複数の二次600および/または三次700処理プロトコルを実行するように構成され得る。そのような事例において、これらのプロトコルのうちの1つまたは複数は、量子プロセッサ、CPU、および/またはGPU上で実行されるなどの、ソフトウェア、ハードウェア、または組合せ形式で実装されてよい。たとえば、データ生成110および/またはローカル100および/またはリモート300処理リソースは、ソフトウェアおよび/またはハードウェアで、取得されるか、または生成されたデータに対してマッピングオペレーション112、アライメントオペレーション113、バリアントコーリング115、または他の関係する機能114のうちの1つまたは複数を実行するように構成され得る。
したがって、様々な実施形態において、シークエンサ111、たとえばNGSまたはシークエンサオンアチップなどの、データ生成リソースは、ソフトウェアおよび/またはハードウェアで実装されようと、またはその組合せで実装されようと、スケジューラ、様々なアナリティクス、コンペアラー、グラファー、リリーサー、および同様のものなどのプロセッサ500の初期層を備えるようにさらに構成されてよく、それにより、データ生成器111、たとえば、シークエンサが生物学的情報を、BCLまたはFASTQファイル形式111dなどの、生リードデータに変換するのを補助する。さらに、ローカルコンピューティング100リソースは、ソフトウェアおよび/またはハードウェアで実装されようと、またはその組合せで実装されようと、プロセッサ600のさらなる層を備えるようにさらに構成され得る、たとえば、マッピングエンジン112を備え得るか、またはBurrows-Wheeler変換および/または他のアルゴリズムを実行し、ハッシュシードマッピングなどのために、ハッシュテーブルを構築しおよび/またはハッシュ関数112aを前記データに対して実行し、マッピングされた配列データを生成するなど、遺伝子配列データに対してマッピングアルゴリズムを実行するためのプログラミングを他の何らかの形で含み得る。さらに、ローカルコンピューティング100リソースは、ソフトウェアおよび/またはハードウェアで実装されようと、またはその組合せで実装されようと、プロセッサ600の初期層を備えるようにさらに構成され得る、たとえば、本明細書で説明されているように、アライメントエンジン113も備え得るか、またはギャップおよび/または無ギャップSmith-Watermanアライメント、および/またはNeedleman-Wunsch、または他の類似のスコアリングアルゴリズム113aを前記データに対して実行し、アライメントされた配列データを生成するなど、遺伝子配列データ、たとえば、マッピングされた配列決定データに対してアライメントアルゴリズムを実行するためのプログラミングを他の何らかの形で含み得る。
ローカルコンピューティング100および/またはデータ生成リソース110も、マッピングされたおよび/またはアライメントされた配列データなどの、遺伝子配列データに対して1つまたは複数の他の処理機能を実行するように適合され得る1つまたは複数の他のモジュール114を、それがソフトウェアおよび/またはハードウェアで実装されようと、またはその組合せで実装されようと、備えるように構成され得る。したがって、1つまたは複数の他のモジュールは、適切に構成されたエンジン114を備え得るか、または本明細書で説明されている方法による、ソーティング114a、重複除去114b、リキャリブレーション114c、ローカル再アライメント114d、重複マーキング114f、塩基クオリティスコアリキャリブレーション114g機能、および/または圧縮機能(SAM、縮小BAM、および/またはCRAM圧縮および/または復元ファイルを作成するなどのための)1つまたは複数の他の処理機能を実行するための、プログラミングを他の何らかの形で含み得る。様々な事例において、これらの処理機能のうちの1つまたは複数は、システム1の1つまたは複数のパイプラインとして構成され得る。
同様に、システム1は、バリアントコールファイル116を作成するような方式で、データ、たとえば、配列決定された、マッピングされた、アライメントされた、および/またはソーティングされたデータを処理するように適合され得るモジュール115を、それがソフトウェアおよび/またはハードウェアで実装されようと、またはその組合せで実装されようと、備えるように構成され得る。特に、システム1は、たとえば配線構成でおよび/または1つもしくは複数のソフトウェアアプリケーションを介して、たとえば、ローカルまたはリモートのいずれかで、隠れマルコフモデル(HMM)および/またはGATK機能115aなどの、1つまたは複数のバリアントコール機能を実行するためのバリアントコールモジュール115、ならびに/あるいはそれ用のコンバータ115bを備え得る。様々な事例において、このモジュールは、システム1の1つまたは複数のパイプラインとして構成され得る。
特定の実施形態において、図41Bにおいて述べられているように、システム1は、クラウド30またはハイブリッドクラウドネットワーク50などを介して、たとえば、第三者121によって、転送されることなどによって、システムデータ生成器110によって生成されるか、またはシステム取得メカニズム120(本明細書において説明されているような)によって取得されるデータ、たとえば、BCLおよび/またはFASTQデータに対して1つまたは複数のさらなる処理機能を実行するためのコンピュータ処理リソース150を使用するように構成され得るローカルコンピューティング機能100を備えてよい。たとえば、第三者アナライザ121は、さらなる処理が必要になったときに、遺伝子配列データまたは同様のものなどの関連するデータを生成するようにリモートコンピューティングリソース300をデプロイするものとしてよく、データは、ネットワーク30/50でシステム1に伝達され、そこでさらに処理され得る。これは、たとえば、リモートコンピューティングリソース300が、生物学的生データを受け取り、それを、遺伝子配列データのリードを含む1つまたは複数のFASTQファイルの形式などの、そのデジタル表現に変換するように構成されているNGSである場合、および本明細書で説明されているように、個体の生成された配列が1つまたは複数の参照配列とどのように異なるかを決定するなどのさらなる処理が望ましく、および/またはその結果をさらなる、たとえば、三次、処理に通すことが望ましい場合に、有用であり得る。
そのような事例において、システム1は、ユーザが生成されたおよび/または取得されたデータに対して1つまたは複数の定量的および/または定性的処理機能152を実行することを可能にするような仕方で、1人または複数の当事者、たとえば、一次および/または二次および/または第三者ユーザが、関連付けられているローカル処理リソース100、および/またはそれに関連付けられている適切に構成されたリモート処理リソース300にアクセスすることを可能にするように適合され得る。たとえば、一構成において、システム1は、たとえば、一次500および/または二次600処理パイプラインに加えて、処理モジュール700/800の第3の層を備えるものとしてよく、処理モジュールは、生成されたおよび/または取得された一次および/または二次処理済みデータに対して1つまたは複数の処理機能を実行するように構成され得る。
特に、一実施形態において、システム1は、バリアントコールファイル116を生成するなどのためにリモートまたはローカルのいずれかでマッピングされ(112)、アライメントされ(113)、ソーティングされ(114a)、および/またはさらに処理され(114)ている処理済み遺伝子配列データ111を生成し、または受信するように構成されてよく、バリアントコールファイルは、次いで、第二者および/または第三者アナリティクス要求121に応答するなどして、システム1などの中でさらなる処理に通され得る。より具体的には、システム1は、第三者121から処理要求を受信するように構成され、生成されたおよび/または取得されたデータに対してそのような要求された二次600および/または三次処理700/800を実行するようにさらに構成され得る。特に、システム1は、遺伝子配列データ111を作成し、および/または取得するように構成されてよく、その遺伝子配列データを受け取り、それに対してマッピング112、アライメント113、および/またはソーティング114aを行い、それを処理して1つまたは複数のバリアントコールファイル(VCF)116を作成するように構成されてよく、それに加えて、システム1は、たとえば、システム1によって生成されるか、または受信された1つまたは複数のVCFに関して、データに対して三次処理機能700/800を実行するように構成され得る。
特に、システム1は、それに1つまたは複数のパイプライン処理機能700を施して、マイクロアレイ解析パイプライン、エクソーム解析パイプライン、マイクロバイオーム解析パイプライン、RNAシークエンシングパイプライン、および他の遺伝子解析パイプラインなどの、他の潜在的なデータ解析パイプラインの間で、遺伝型判定、たとえば、ジョイント遺伝型判定、データ122d、GATK122eおよび/またはMuTect2 122f解析データを含むバリアント解析データを含む、たとえば、ゲノム、たとえば、全ゲノム、データ122a、エピゲノムデータ122b、メタゲノムデータ122c、および同様のものを生成することなどによって、生成されたおよび/または取得されたデータに対して三次処理700の任意の形態を実行するように構成され得る。さらに、システム1は、非侵襲的胎児検診(NIPT)123a、N/P ICU123b、癌関係診断、および/または治療法123c、様々な実験開発試験(LDT)123d、農業生物学(Ag Bio)アプリケーション123e、または他のそのような健康関係123f処理機能のうちの1つまたは複数などを含む、生成されたおよび/または処理されたデータに対して処理800の追加層を実行するように構成され得る。図41Cを参照のこと。
したがって、様々な実施形態において、一次ユーザが、ローカルコンピューティングリソース100などを通じて、それとの直接アクセスなどにより、システム1およびその様々なコンポーネントに直接アクセスし、および/または構成し得る場合、本明細書において提示されているように、システム1は、また、ローカル環境内でシステム1を構成し実行するために、ローカルネットワークまたはイントラネット接続10を介してシステム1に接続されるような、二次当事者によってアクセスされるように適合され得る。それに加えて、いくつかの実施形態において、システムは、1つまたは複数のグラフィカルユーザインターフェース(GUI)コンポーネントなどを通じてアクセス可能な、アプリケーションプログラムインターフェース(API)などを通じて、第三者121をシステム1に接続する関連付けられているハイブリッドクラウドネットワーク50などで、第三者121によってアクセスされおよび/または構成されるように適合され得る。そのようなGUIは、第三者ユーザがシステム1にアクセスすることを可能にするように構成されてよく、APIを使用して、システムの様々なコンポーネント、モジュール、関連付けられているパイプライン、および他の関連付けられているデータ生成および/または処理機能を、第三者に必要なおよび/または有用なおよび/またはそれによって実行されることを要求されるか、または望まれているシステムコンポーネントのみを実行するように構成する。
したがって、様々な事例において、本明細書で提示されているようなシステム1は、システムの一次、二次、または三次ユーザによって構成可能なように適合され得る。そのような事例において、システム1は、ユーザがシステム1を構成し、それによって、そのコンポーネントを、システム1が所望の結果を得るためにユーザによって要求されたアナリティクスを実行するのに必要なまたは有用なシステムの部分のみを実行するように、たとえば一次、二次、または第三者ユーザによって、生成されるか、取得されるか、または他の何らかの形でシステムに転送されるデータに対して実行する、解析システムリソースの1つ、すべて、または選択したもの、たとえば152をデプロイするような仕方で配置構成するように適合され得る。たとえば、これらおよび他のそのような目的のためのAPIがシステム1に含まれるものとしてよく、APIは、ユーザが必要に応じてシステムおよびそのコンポーネントを構成し、操作するために選択し、および/または他の何らかの形で行うことができる操作可能メニューおよび/またはシステムファンクションコールの関係リストを含むグラフィカルユーザインターフェース(GUI)を備えるか、または他の何らかの形で動作可能に関連付けられるように構成される。
そのような事例において、GUIメニューおよび/またはシステムファンクションコールは、オペレーション600の第1の層の1つまたは複数のユーザ選択可能オペレーションを示すものとしてよく、このオペレーションは本明細書において説明されている一次および/または二次処理機能などに関連する本明細書の教示によるシークエンシング111、マッピング112、アライメント113、ソーティング114a、バリアントコーリング115、および/または他の関連付けられている機能114を含む。さらに、望ましい場合に、GUIメニューおよび/またはシステムファンクションコールは、オペレーション700の第2の層の1つまたは複数のオペレーションを示すものとしてよく、このオペレーションはゲノム、たとえば、全ゲノム、解析パイプライン122a、エピゲノムパイプライン122b、メタゲノムパイプライン122c、遺伝型判定、たとえば、ジョイント、遺伝型判定パイプライン122d、バリアントパイプライン、たとえば、構造バリアントパイプラインを含む、GATK122eおよび/またはMuTect2 122f解析パイプライン、さらにはマイクロアレイ解析パイプライン、エクソーム解析パイプライン、マイクロバイオーム解析パイプライン、RNAシークエンシングパイプライン、および他の遺伝子解析パイプラインなどの他の三次解析パイプラインを含む。さらに、望ましい場合に、GUIメニューおよび/またはシステムファンクションコールは、オペレーション800の第3の層の1つまたは複数のユーザ選択可能なオペレーションを示すものとしてよく、このオペレーションは、非侵襲的胎児検診(NIPT)123a、N/P ICU123b、癌関係診断、および/または治療法123c、様々な実験開発試験(LDT)123d、農業生物学(Ag Bio)アプリケーション123e、または他のそのような健康関係123f処理機能を含む。
したがって、メニューおよびシステムファンクションコールは、1つまたは複数の一次、二次、および/または三次処理機能を備え、それにより、システムおよび/またはそのコンポーネント部分がユーザによって選択され構成されているような1つまたは複数のデータ解析パイプラインを実行することなどに関して構成されることを可能にするようにし得る。そのような事例において、ローカルコンピューティングリソース100は、リモートコンピューティングリソース300に対応し、および/またはミラーリングするように構成されてよく、ならびに/あるいは同様にローカルストレージリソース200は、リモートストレージリソース400に対応し、および/またはミラーリングし、システムの様々なコンポーネントが実行され、および/またはそれによって生成されたデータがシステム1の使用によって選択されるようなシームレスな分散方式でローカルまたはリモートのいずれかに記憶されるように構成され得る。それに加えて、特定の実施形態において、システム1は、生成されたおよび/または処理されたデータに対して、それらの間の相関関係を見つけるように設計されている人工知能インターフェースを通じて実行することなどによって専用解析プロトコル121aを実行するために、第三者にアクセス可能にされる得る。
システム1は、生成されたおよび/または取得されたデータに対して任意の形態の三次処理を実行するように構成され得る。したがって、様々な実施形態において、一次、二次、または三次ユーザは、システム1およびその様々なコンポーネントの任意のレベルを、コンピューティングリソース100による直接アクセスなどを通じて直接的に、ローカルネットワーク接続30などを介して間接的に、または適切な許可を有する適切に構成されたAPIなどを通じて当事者をシステム1に接続する関連付けられているハイブリッドクラウドネットワーク50のいずれかでアクセスし、および/または構成し得る。そのような事例において、システムコンポーネントは、GUI選択可能メニューなどの、メニューとして提示されてよく、ユーザは、ユーザ提示データに対して実行されるよう望まれているすべての様々な処理および記憶オプションから選択することができる。さらに、様々な事例において、ユーザは、システムによって採用され実行される専用のシステムプロトコルをアップロードして、ユーザによって設計され選択される方式で様々なデータを処理し得る。そのような事例において、GUIおよび関連付けられているAPIは、ユーザがシステム1にアクセスすることを可能にし、APIを使用して、システムの様々なコンポーネント、モジュール、関連付けられているパイプライン、および他の関連付けられているデータ生成および/または処理機能を、当事者に必要なおよび/または有用なおよび/またはそれによって実行されることを要求されるか、または望まれているシステムコンポーネントのみを実行するように追加し、構成する。
図41Cに関して、上記の定められたモジュールの1つまたは複数、およびそれぞれの機能および/または関連付けられているリソースは、リモートコンピューティングリソース300などによって、リモートで実行されるように構成され、さらに、適切に構成されたデータ取得メカニズム120などを介して、大域的クラウドベースのインターネット接続50でシームレスな転送プロトコルなどにおいて、システム1に伝送されるように適合され得る。したがって、そのような事例において、ローカルコンピューティングリソース100は、そのような取得されたデータおよび/または関連付けられている情報を伝送し、および/または受信するように構成されているような、データ取得メカニズム120を備え得る。
たとえば、システム1は、データの継続される処理および/または記憶が、処理機能がローカル100および/またはリモート300の両方に分散されるクラウドベースネットワーク50などにおいて、シームレスな一定の方式で行われることを可能にするように構成されているデータ取得メカニズム120を備え得る。同様に、そのような処理の結果の1つまたは複数が、ローカル200および/またはリモート400に記憶されてよく、システムは、リソースが物理的にどこに位置するかに関係なく処理および/または記憶のために所与のジョブが送られるべきローカルまたはリモートリソースをシームレスに割り振る。そのような分散処理、転送、および取得は、本明細書において説明されているように、シークエンシング111、マッピング112、アライメント113、ソーティング114a、重複マーキング114c、重複除去、リキャリブレーション114d、ローカル再アライメント114e、塩基クオリティスコアリキャリブレーション114f機能および/または圧縮機能114g、さらにはバリアントコール機能116のうちの1つまたは複数を含み得る。ローカル200またはリモート400に記憶される場合、処理済みデータは、プロセスにおいてどのような状態にあろうと、再送および/または再記憶の前にさらなる処理などのために、ローカル100またはリモート処理300リソースのいずれかに利用可能にされるものとしてよい。
特に、システム1は、遺伝子配列データ111を作成し、および/または取得するように構成されてよく、その遺伝子配列データを受け取りそれをローカル140で処理するか、またはデータを適切に構成されたクラウド30またはハイブリッドクラウド50ネットワークでリモート処理ファシリティなどに転送してリモート処理300を行うように構成され得る。さらに、処理された後、システム1は、処理済みデータをリモート400に記憶するか、またはそれを送り返してローカル200に記憶するように構成され得る。したがって、システム1は、ローカルまたはリモートのいずれかでデータを生成し、および/または処理するように構成されてよく、たとえば、生成および/または処理ステップは、一次および/または二次処理機能600の第1の層からのものであってよく、その層は、シークエンシング111、マッピング112、アライメント113、および/またはソーティング114aのうちの1つまたは複数を含むものとしてよく、1つまたは複数のバリアントコールファイル(VCF)116を作成する。
さらに、システム1は、ローカルまたはリモートのいずれかでデータを生成し、および/または処理するように構成されてよく、たとえば、生成および/または処理ステップは、三次処理機能700の第2の層からのものであってよく、その層は、ゲノムパイプライン122a、エピゲノムパイプライン122b、メタゲノムパイプライン122c、遺伝型判定パイプライン122d、バリアント、たとえば、GATK122eおよび/またはMuTect2解析122fパイプライン、さらにはマイクロアレイ解析パイプライン、マイクロバイオーム解析パイプライン、エクソーム解析パイプライン、さらにはRNAシークエンシングパイプライン、および他の遺伝子解析パイプラインなどの他の三次解析パイプラインに従ってデータを生成し、および/または取得するステップのうちの1つまたは複数を含み得る。それに加えて、システム1は、ローカルまたはリモートのいずれかでデータを生成し、および/または処理するように構成されてよく、たとえば、生成および/または処理ステップは、三次処理機能800の第3の層からのものであってよく、その層は、非侵襲的胎児検診(NIPT)123a、N/P ICU123b、癌関係診断、および/または治療法123c、様々な実験開発試験(LDT)123d、農業生物学(Ag Bio)アプリケーション123e、または他のそのような健康関係123f処理機能に関係し含むデータを生成し、および/または取得するステップのうちの1つまたは複数を含み得る。
特定の実施形態において、図41Cで述べられているように、システム1は、1人または複数の当事者がシステムにアクセスし、情報を関連付けられているローカル処理100および/またはリモート300処理リソースに、またはそこから転送し、さらには情報をローカル200またはリモート400のいずれかに、ユーザがどのような情報が処理されおよび/またはシステム1上のどこに記憶されるかを選択することを可能にする仕方で記憶することを可能にするようにさらに構成され得る。そのような事例において、ユーザは、生成されたおよび/または取得されたデータに対してどのような一次、二次、および/または三次処理機能が実行されるかだけでなく、それらのリソースがどのようにデプロイされるか、および/またはそのような処理の結果がどこに記憶されるかをも決定することができる。たとえば、一構成において、ユーザは、データがローカルで生成されるか、またはリモートで生成されるかのいずれか、またはその組合せ、二次処理に通されるかどうか、ならびに、もしそうであれば、二次処理のどのモジュールに通されるか、および/またはどのリソースがそれらのプロセスのうちのどれを実行するかを選択するものとしてよく、さらに、その後生成されるか、または取得されたデータがさらに三次処理に通されるかどうか、もしそうであれば、どのモジュールおよび/または三次処理のどの層に通されるか、および/またはどのリソースがそれらのプロセスのうちのどれを実行するか、ならびに同様に、それらのプロセスの結果がオペレーションの各ステップのためにどこに記憶されるかを決定し得る。
特に、一実施形態において、ユーザは、図41Aのシステム1を、遺伝子配列データ111の生成が、NGSなどによってリモートで行われるが、データの二次処理600はローカル100で行われるように構成し得る。そのような事例において、ユーザは、次いで、二次処理機能のどれがローカル100で行われるかを、利用可能な処理オプションのメニューから、VCF116のマッピング112、アライメント113、ソーティング111、および/または作成などの、処理機能を選択することなどによって決定し得る。ユーザは、次いで、ローカルで処理されたデータを三次処理に通すかどうか、およびもしそうであれば、さらにデータを処理するためにどのモジュールがアクティブ化されるか、およびそのような三次処理がローカル100で行われるのかまたはリモート300で行われるのかを選択し得る。同様に、ユーザは、三次処理オプションの様々な層に対する様々なオプションを選択することができ、生成されたおよび/または取得されたデータは、所与のステップまたはオペレーションの時点で、ローカル200またはリモート400のいずれかに記憶されるべきである。
より具体的には、一次ユーザは、システムを第三者から処理要求を受信するように構成し、第三者は、生成されたおよび/または取得されたデータに対してそのような要求された一次、二次および/または三次処理を実行するようにシステムを構成し得る。特に、ユーザまたは第2および/または第3の当事者は、システム1を、ローカル100またはリモート200のいずれかで、遺伝子配列データを作成し、および/または取得するように構成し得る。それに加えて、ユーザは、システム1を、その遺伝子配列データを受け取り、それを、ローカルまたはリモートのいずれかで、マッピングし、アライメントし、および/またはソーティングし、1つまたは複数のバリアントコールファイル(VCF)を作成するように構成し得る。それに加えて、ユーザは、たとえば、1つまたは複数のVCFに関して、データに対して三次処理機能を、ローカルまたはリモートのいずれかで実行するようにシステムを構成し得る。
なおもより具体的には、ユーザまたは他の当事者は、生成されたおよび/または取得されたデータに対して任意の形態の三次処理を実行するようにシステム1を構成するものとしてよく、その処理はそのシステム内で行われるべきである。したがって、様々な実施形態において、第1、第2、および/または第3の当事者121ユーザは、1つまたは複数のグラフィカルユーザインターフェース(GUI)コンポーネントなどを通じてアクセス可能な、アプリケーションプログラムインターフェース(API)などを通じて、システム1およびその様々なコンポーネントを、ローカルネットワーク接続30を介して、または当事者121をシステム1に接続する関連付けられているハイブリッドクラウドネットワーク50で、ローカルコンピューティング機能100に直接アクセスすることなどによって直接アクセスし、および/または構成し得る。そのような事例において、第三者ユーザは、システム1にアクセスし、APIを使用して、システムの様々なコンポーネント、モジュール、関連付けられているパイプライン、および他の関連付けられているデータ生成および/または処理機能を、第三者に必要なおよび/または有用なおよび/またはそれによって実行されることを要求されるか、または望まれているシステムコンポーネントのみを実行するように構成し、さらに、どのコンピューティングリソースが要求された処理を提供し、結果データがどこに記憶されるかについての割り振りを行う。
したがって、様々な事例において、システム1は、データ取得メカニズム120などを介して、それに関連付けられているネットワークなどを介して、ユーザが直接生成するか、システム1に生成させるか、またはシステム1へ転送させるかのいずれかを行うデータに対して実行されるべき解析システムリソースの1つ、すべて、または選択したものをデプロイするような仕方でそのコンポーネントを配置構成するようにシステム1を構成することができるシステムの一次、二次、または三次ユーザによって構成可能であるものとしてよい。そのような方式で、システム1は、要求側当事者によって望まれおよび/または要求されているアナリティクスに必要なまたは有用なシステムの部分のみを実行するように構成可能である。たとえば、これらおよび他のそのような目的のために、APIが含まれるものとしてよく、APIは、ユーザが必要に応じてシステムを構成し、操作するために選択できるGUI操作可能メニューおよび/またはシステムファンクションコールの関係リストを含むように構成される。
それに加えて、特定の実施形態において、システム1は、米国食品医薬品局(FDA)70bなどの、政府規制当局などの、一次ユーザおよび/または第三者からアクセス可能であるようにされるか、または一次ユーザおよび/または第三者が電子医療記録(EMR)データベース70aを形成し、米国FDA医薬品評価などの、システムの政府はアクセスおよび/または監督を可能にするためにシステム1によって導出されるか、または他の何らかの形で取得されおよび/またはコンパイルされた遺伝子情報のデータベースを照合し、コンパイルし、および/またはアクセスすることを可能にし得る。システム1は、また、データ70cを合併し、コンパイルし、および/または注釈を入れ、および/またはそれへの他の高水準ユーザアクセスを許すようにセットアップされ得る。
したがって、システム1および/またはそのコンポーネントは、一次ユーザまたは第三者などの、リモートユーザによってアクセスされるように構成されてよく、したがって、コンピュータリソース100および/または300のうちの1つまたは複数はユーザインターフェースを備え、ならびに/あるいはシステムの潜在的なユーザがシステムにアクセスして本明細書において開示されているBioITパイプラインのうちの1つまたは複数に入力するサンプルデータを伝送することを可能にし、および/またはそれから結果データを受信するためのグラフィカルユーザインターフェースを有する表示デバイスをさらに備え得る。GUIまたは他のインターフェースは、ユーザがシステムコンポーネントを、たとえば、適切に構成されているウェブポータルを介して管理し、関わるコンピューティングリソースがローカル100またはリモート300で利用可能であるかどうかに関係なくサンプル処理進捗を追跡することを可能にするように構成され得る。したがって、GUIは、実行され得るジョブ、たとえば、マッピング112、アライメント113などのセット、および/またはジョブを実行するためのリソースのセットをリストし、ユーザは、どのジョブをどのリソースによって実行したいかを自己選択し得る。したがって、これなどの事例において、各個人ユーザは、実行したい特定の作業プロジェクトをクリックするか、ドラッグするか、または他の何らかの形で選択することなどによって、そこに、固有の解析ワークフローを構築するか、または所定の解析ワークフローを使用し得る。
たとえば、一使用モデルにおいて、GUIインターフェースとともに、システム上で実装され実行され得る様々なプロセスを表す複数のアイコンを含み得るダッシュボードが提示される。そのような事例において、ユーザは、選択された作業プロセスアイコンをクリックするか、またはワークフローインターフェース内にドラッグすることで、所望のワークフロープロセスを構築し、これは構築された後、保存され、サンプルセットバーコードに対する制御命令を確立するために使用され得る。所望の作業プロジェクトが選択された後、ワークフロー管理コントローラ151は、所望のワークフロープロセス(たとえば、二次解析)を構成し、次いで、選択された解析を実行するためのリソースを識別し、選択するものとしてよい。
ワークフロー解析プロセスが開始した後、ダッシュボードを見て、システムを通る進捗を追跡し得る。たとえば、ダッシュボードは、どれだけのデータがシステムを通っているか、どのようなプロセスがデータに対して実行されているか、どれだけ遂行されたか、処理はどれだけ残っているか、どのようなワークフローが完了したが、およびどれがまだアクセスされる必要があるか、実行されるべき最新のプロジェクト、およびどのランが完了しているかを示し得る。本質的に、システム、またはそのサブ部分上で実行されているすべてへの完全なアクセスが、デスクトップにもたらされ得る。
さらに、様々な事例において、デスクトップは、1つまたは複数のタブを介してアクセス可能であり得る様々な異なるユーザインターフェースを備え得る。たとえば、システム制御にアクセスするための1つのタブは、「ローカルリソース100タブ」であってよく、これは選択されると、ユーザがローカルで実装されることが可能な制御機能を選択することを可能にする。別のタブは、「クラウドリソース300」にアクセスするように構成されてよく、これは選択されると、ユーザがリモートで実装されることが可能な他の制御機能を選択することを可能にする。したがって、ダッシュボードをインタラクティブに操作することで、ユーザは、どのリソースがどのタスクを実行するかを選択することができ、したがって、プロジェクト要求条件を満たすように必要に応じてリソース使用量を加減することができる。
したがって、計算複雑度が上がり、および/または速度増大が望まれているときに、ユーザ(またはシステムそれ自体、たとえば、WMS151)は、ボタンをただクリックするだけで、必要に応じて、さらに多くのリソースをオンラインにすることができ、所望の時間フレーム内でタスクを完了するのに必要に応じて、ワークフローマネージャに、追加のローカル100および/またはクラウドベース300リソースをオンラインにするよう命令することができる。この方式で、システムはワークフローマネージャコントローラ151によって自動化されおよび/または制御されるが、システムのユーザは、依然として、制御パラメータを設定し、必要なときに、クラウドベースリソース300をオンラインにすることができる。したがって、コントローラ151は、必要に応じてクラウド50/300に拡張して追加の処理および/またはストレージリソース400をオンラインにすることができる。
様々な事例において、デスクトップインターフェースは、モバイルデバイスおよび/またはデスクトップコンピュータを介してアクセス可能であるモバイルアプリケーションもしくは「アプリ」として構成されてよい。結果として、一態様において、ゲノミクス市場、またはコホートが設けられ、複数のユーザが1つまたは複数の研究プロジェクトに参加して共同研究することを可能にし、ダッシュボードアプリ、たとえば、ウェブベースのブラウザインターフェースを介してアクセス可能な電子コホート市場を形成するものとしてよい。したがって、システムは、共同研究を実施するためのオンラインフォーラムおよび/または遺伝子データを解析するための様々な解析ツールを開発する市場を備えてよく、システムは、システムインターフェースを介して、またはアプリを介して、直接アクセス可能とされ、ユーザによるシステムのリモート制御を可能にし得る。
したがって、様々な実施形態において、図42Aを見るとわかるように、ハイブリッドクラウド50が実現され、ハイブリッドクラウドは、ローカルコンピューティング100および/またはストレージリソース200をリモートコンピューティング300および/または記憶400リソースと接続するように構成され、たとえば、ローカルおよびリモートリソースは、遠位に、空間的に、地理的に、および同様の形で、互いに隔てられる。そのような事例において、ローカルおよび遠位リソースは、デジタルデータなどの情報をそれら2つの間でシームレスに共有するような方式で互いに通信するように構成され得る。特に、ローカルリソースは、ハイブリッドネットワーク50にわたって、伝送する前などに、データに対して1つまたは複数の種類の処理を実行するように構成されてよく、リモートリソースは、データの1つまたは複数の種類のさらなる処理を実行するように構成されてよい。
たとえば、特定の一構成において、システム1は、生成および/または解析機能152が、本明細書で説明されているように、遺伝子配列データを生成しおよび/または処理するために、一次および/または二次処理機能を実行することを目的としてローカルコンピューティングリソースによってローカル100で実行されるように構成されるように、構成され得る。それに加えて、様々な実施形態において、ローカルリソースは、ゲノム、エクソーム、および/またはエピゲノム解析、または癌、マイクロバイオーム、および/または他のDNA/RNA処理解析のうちの1つまたは複数などの、データに対する1つまたは複数の三次処理機能を実行するように構成され得る。さらに、そのような処理済みデータが、リモートコンピューティング300および/または記憶400リソースなどに転送されることを意図されている場合、データは、適切に構成されているトランスフォーマなどによって変換されてよく、トランスフォーマは、ハイブリッドネットワーク50で転送する前などに、データにインデックスを付け、変換し、圧縮し、および/または暗号化するように構成され得る。
特定の事例において、たとえば、生成され処理されたデータがさらなる処理のために、リモートコンピューティングリソース、たとえば、サーバ300に転送される場合、そのような処理は、大域的性質のものであってよく、複数のローカルコンピューティングリソース100からデータを受信するステップと、そのような複数のデータを照合するステップと、データに注釈を入れるステップと、それらを比較するステップとを含み得、たとえば、データを解釈し、その傾向を決定し、それを様々なバイオマーカーについて解析し、診断、治療法、予防法の開発を助ける。したがって、様々な事例において、リモートコンピューティングリソース300は、データ処理ハブとして構成されてよく、たとえば、様々なソースからのデータは、ローカルコンピューティングリソース100によってアクセスされることなどによって、変換されおよび/または転送されるのを待ちながら転送され、処理され、および/または記憶され得る。より具体的には、リモート処理ハブ300は、複数のリソース100からデータを受信し、それを処理し、処理済みデータを様々なローカルリソース100に分配して戻し、研究者らおよび/またはリソース100の間の共同作業を可能にするように構成され得る。そのような共同作業は、様々なデータ共有プロトコルを含むものとしてよく、それに加えて、これは、システム1のユーザがデータが転送に対してどのように準備されるかを制御するために様々なセキュリティプロトコルおよび/またはプライバシー設定を選択することを可能にすることなどによって、データが転送される準備をするステップを含み得る。
特定の一事例において、図42Bに提示されているように、ローカルコンピューティング100または記憶200リソースが、ユーザのロケーションにおけるオンサイトなどで提供される。コンピューティングリソース100および/または記憶200リソースは、直接またはイントラネット接続10などにより、本明細書に説明されているような、NGSまたはシークエンサオンアチップなどの、データ生成リソース121に結合されてよく、シークエンサ121は、BCLおよび/またはFASTQファイルなどの、遺伝子シークエンシングデータを生成するように構成される。たとえば、シークエンサ121は、直接通信可能および/または動作可能な接続を有するために、コンピューティングリソース100および/またはストレージユニット200と同じ装置の一部であり、および/またはそれに収納されてよく、あるいはシークエンサ121およびコンピューティングリソース100および/または記憶リソース200は、互いに別個の装置の一部であってよいが、同じファシリティ内に収納され、したがってケーブル配線またはイントラネット10接続を介して接続され得る。いくつかの事例において、シークエンサ121は、コンピューティング100および/または記憶200リソースのとは別個のファシリティ内に収納され、したがってインターネット30またはハイブリッドクラウド接続50上で接続されてよい。
そのような事例において、遺伝子配列データは、適切に構成されているトランスフォーマによって、変換される前に、ローカル200で処理され(100)記憶され得るか、または生成された配列データは、ローカルで処理される前などに、上で説明されているように、適切に構成されているローカル接続10、イントラネット30、またはハイブリッドクラウド接続50などを介して、トランスフォーマおよび/またはアナライザ152のうちの1つまたは複数に直接伝送され得る。特に、データ生成リソース121のように、トランスフォーマ151および/またはアナライザ152は、直接通信可能および/または動作可能な接続を有するために、コンピューティングリソース100および/またはストレージユニット200と同じ装置の一部であり、および/またはそれに収納されてよく、あるいはトランスフォーマおよび/またはアナライザ152ならびにコンピューティングリソース100および/または記憶リソース200は、互いに別個の装置の一部であってよいが、同じファシリティ内に収納され、したがってケーブル配線またはイントラネット10接続を介して接続され得る。いくつかの事例において、トランスフォーマ151および/またはアナライザ152は、コンピューティング100および/または記憶200リソースのとは別個のファシリティ内に収納され、したがってインターネット30またはハイブリッドクラウド接続50上で接続されてよい。
たとえば、トランスフォーマは、適切に構成されているコンピューティングリソース100および/またはアナライザ152などによって、解析または事後解析のいずれかの前に、伝送されるデータを準備するように構成されてよい。たとえば、アナライザ152は、生成された配列データを、そのゲノムおよび/またはエクソーム特性152a、そのエピゲノム特徴152b、注目する様々なDNAおよび/またはRNAマーカーおよび/または癌152cのインジケータ、およびそれと1つまたは複数のマイクロバイオーム152dとの関係、さらには、本明細書において説明されているような1つまたは複数の他の二次および/または三次プロセスを決定することに関して解析するなどのために、本明細書で説明されているように、データに対して二次および/または三次処理機能を実行し得る。
示されているように、生成されたおよび/または処理されたデータは、直接、ローカル10、インターネット30、またはハイブリッドクラウド50接続などで、一方のコンポーネントから他方のコンポーネントへシステム1全体を通して伝送する前などに適切に構成されているトランスフォーマなどによって変換され得る。そのような変換は、データが一方の形式から他方の形式に変換される場合などの変換151d、理解できない形式からデータを符号化し、復号し、および/または他の何らかの形で受け取り、それを理解できる形式に、または一方の理解できる形式から他方の形式に変換するステップを含む、理解151c、1つまたは複数のリソースから生成されたデータをコンパイルし、および/または照合するステップと、それを、生成されたインデックスなどを介して特定可能および/または検索可能にするステップなどを含む、インデックス付け151b、および/またはインターネット30および/またはハイブリッドクラウド50で伝送する前などに、ロック可能およびアンロック可能な、パスワード保護されたデータセットを創出するステップなどの、暗号化151aのうちの1つまたは複数を含み得る。
したがって、図42Cを見るとわかるように、これらおよび/または他のそのような事例において、ハイブリッドクラウド50は、システムのコンポーネント全体を通してデータのシームレスな保護された伝送を可能にするように構成されてよく、たとえば、ハイブリッドクラウド50は、システムの様々なユーザがユーザの研究、診断、治療、および/または予防的発見および/または開発ニーズに応えるようにそのコンポーネント部分および/またはシステムそれ自体を構成することを可能にするように適合される。特に、ハイブリッドクラウド50および/またはシステム1の様々なコンポーネントは、安全な暗号化可能環境において通信することを可能にしている間中、望ましい仕方で望ましいリソースをデプロイし、さらにシステムの要求および実行される解析の詳細などに基づき、ローカル、リモート、またはその組合せのいずれかでそうするようにユーザがシステム1の様々なコンポーネントをリモートで構成することを可能にするように適合されている互換性のあるおよび/または対応するAPIインターフェースと動作可能に接続されてよい。
特定の事例において、システム1は、解釈機能310を実行するように構成されている、インタプリタなどの処理アーキテクチャ310を備え得る。インタプリタ310は、遺伝子データなどにおける、注釈311、解釈312、診断313、および/または検出などの生成されたデータに対する1つまたは一連の解析機能および/または1つまたは複数のバイオマーカーの存在を決定するための解析機能を実行し得る。インタプリタ313は、ローカルコンピューティングリソース100の一部であるか、またはそれから分離しているものとしてよく、たとえば、インタプリタ310は、ハイブリッドクラウド50などの、クラウドインターフェースを介してコンピューティングリソース100に結合される。
さらに、追加の処理アーキテクチャ320が含まれてよく、たとえば、アーキテクチャ320は、コラボレータとして構成される。コラボレータ320は、伝送されるべきデータのセキュリティおよび/またはプライバシーを確実にすることを目的とする1つまたは複数の機能を実行するように構成され得る。たとえば、コラボレータは、伝送322のプライバシーを確実にし、制御パラメータ323を設定し、および/またはセキュリティプロトコル324を開始するために、データ共有プロセス321をセキュリティで保護するように構成され得る。コラボレータ313は、処理の連携を円滑にするなどのために、データの共有を可能にするように構成され、コラボレータ320は、ローカルコンピューティングリソース100の一部であるか、またはそれから分離しているものとしてよく、たとえば、コラボレータ320は、ハイブリッドクラウド50などの、クラウドインターフェースを介してコンピューティングリソース100に結合される。インタプリタ310、コラボレータ320、および/またはローカルコンピューティングリソース100は、コンピューティング300および/または記憶400機能をクラウド50にオフロードすることによってシステム効率を高めるなどのために、リモートコンピューティングリソース300にさらに結合され得る。様々な事例において、システム1は、安全な第三者解析121が行われることを可能にするように構成されてよく、たとえば、第三者は、適切に構成されているAPIなどを通じてシステムと接続し、システムに関与し得る。
図43を見るとわかるように、システム1は、一次処理段階から二次および/または三次処理段階への遺伝子情報を処理するためにシステマティックおよび同時または逐次的な方式でデプロイされ得る1つまたは複数の処理パイプラインを各々有するデータ生成および/またはデータ処理ユニットのレイヤを含む多層および/または多重化生物分析的処理プラットフォームであってよい。特に、本明細書において提示されているのは、ハードウェアおよび/またはソフトウェアおよび/または量子処理実装形態の1つまたは複数において生物分析を実行するように構成されているデバイス、さらにはその使用方法、およびそれを含むシステムである。たとえば、一実施形態において、ゲノミクス処理プラットフォームが実現され、多数の集積回路として構成されてよく、集積回路は、汎用CPUおよび/またはGPU、ハード配線された実装形態、および/または量子処理ユニットなどの、中央演算処理装置またはグラフィックス処理ユニットのうちの1つまたは複数として適合され得るか、または他の何らかの形でその中に含まれ得る。特に、様々な実施形態において、ゲノミクス処理プラットフォームの1つまたは複数のパイプラインは、量子処理ユニットの1つまたは複数の集積回路および/または量子回路によって構成され得る。
したがって、本明細書に提示されているプラットフォームは、1つまたは集積回路上で実行されてよい、本明細書において開示されている、様々な遺伝子シークエンシングおよび/または二次および/または三次処理機能の実行のために最適化されたソフトウェアおよび/またはハードウェアおよび/または量子処理実装形態の膨大なパワーを利用するように構成され得る。そのような集積回路は、シームレスに一緒に結合されてよく、さらに、三次生物解析機能の様々のソフトウェアおよび/またはハード配線ベースのアプリケーションを実行するように構成されているシステムの、様々な他の集積回路、たとえば、CPUおよび/またはGPUおよび/またはQPUにシームレスに結合されてよい。
特に、様々な実施形態において、これらのプロセスは、CPU、GPU、および/またはQPU上で実行される最適化されたソフトウェアによって実行されてよく、ならびに/あるいは同じファシリティ内の同じデバイス、別個のデバイス内の同じマザーボード、異なるPCIeカード上に位置決めされ、および/または異なるファシリティに配置されてよい、同じデバイスまたは別個のデバイスの一部であり得る、ファームウェア構成集積回路、たとえば、FPGAとして実装され得る。したがって、1つまたは複数の処理ユニットおよび/または集積回路は、同じマザーボード、または同じハウジング内に位置決めされおよび/または他の何らかの形で一緒に結合されている別個のマザーボード内に物理的に組み込まれることなどによって、直接一緒に結合される、たとえば、密結合され得るか、あるいはこれらは、ワイヤレス方式および/またはネットワークインターフェースなどを介して、ローカルクラウド30などを介して、リモートで互いに通信することができる別個のマザーボードまたはPCIeカード上に位置決めされてよく、様々な実施形態において、1つまたは複数の処理ユニットおよび/または集積回路は、互いに地理的に離れて位置決めされるが、ハイブリッドクラウド50を介して通信可能であるものとしてよい。特定の事例において、二次および/または三次アナリティクスプラットフォームの一部として配置構成されるか、または一部であってよい、CPU、GPU、および/またはQPUの一部を形成するか、または一部である集積回路は、解析の1つまたは複数のパイプラインを形成するように構成されてよく、生成された様々なデータは、多数の集積回路の間でデータの高速伝送を可能にし、より具体的には、本明細書における解析を促進するために、シームレスおよび/またはストリーミングの方式などで、様々な処理ユニットおよび/または集積回路の間を行き交うように送られ得る。
たとえば、いくつかの事例において、本明細書において開示されている方法により使用するための様々なデバイスは、シークエンシングプロトコルを実行するために、1つまたは複数のシークエンシングデバイスを含むか、またはそれと他の何らかの形で関連付けられてよく、シークエンシングプロトコルは、クラウドベースのインターフェースを介してアクセス可能にされるような、コアシークエンシングファシリティ内に配置されるNext Genシークエンサ、たとえば、Illumina's HiSeq Tenなどによって、リモートシークエンサ上で実行されるソフトウェアによって実行され得る。他の事例において、シークエンシングは、Thermo Fisher's Ion Torrent、または他のシークエンサオンアチップ技術によって実装されるような、シークエンシングチップ上で実行されるハード配線された構成で実行されてよく、シークエンシングは、ベンチトップ次世代シークエンシングを実現する半導体技術を使用することによって、および/またはグラフェンチャネル層を使用する電界効果トランジスタとして、構成されているまたは他の何らかの形で含む集積回路によって、実行される。そのような事例において、シークエンシングが、半導体シークエンシングマイクロチップとして、またはそれを含むように構成されている1つまたは複数の集積回路によって実行される場合、チップは、配列決定データに対して二次および/または三次アナリティクスを実行するように構成され得る、本明細書で開示されている1つまたは複数の他の処理ユニットおよび/または集積回路から離れた場所に位置決めされ得る。代替的に、チップおよび/または処理ユニットは、一緒に、または同じファシリティ内などの、直接結合されるようにまたは、少なくとも互いから同じ一般的な近さの範囲内で互いに比較的近い位置に位置決めされるものとしてよい。このおよび他のそのような事例では、シークエンシングおよび/またはBioITアナリティクスパイプラインが、シークエンサによって生成される生シークエンシングデータがストリーミング方式などで直接解析のためのパイプラインの他の解析コンポーネントに高速に伝達される、たとえば、ストリーミングされ得るように形成され得る。
さらに、生シークエンシングデータ(たとえば、BCLデータ)またはリードデータ(たとえば、FASTQデータ)がシークエンシング機器によって作成された後、このデータは、生成されたおよび/または受信されたDNA、RNA、および/またはタンパク質配列データを解析することなどに関して、遺伝子および/またはタンパク質配列に対して様々な生物分析的機能を実行するように構成されている集積回路に伝送され、受信され得る。この配列解析は、受信されたデータに対して二次解析を実行する、および/またはいくつかの事例において、疾患診断を実行するなどのために、生成されるか、または受信された核酸またはタンパク質配列を知られている配列の1つまたは複数のデータベースと比較するステップを伴うものとしてよく、たとえば、比較を実行するための知られている配列のデータベースは、1つまたは複数の疾患状態に関連するか、関連すると信じられている遺伝子サンプルのデータである、形態学的に異なるおよび/または忌まわしい配列データを含むデータベースであってよい。
したがって、様々な事例において、分離され配列決定された後、遺伝子、たとえば、DNAおよび/またはRNA、データは、二次解析に通されてよく、これは、マッピングされおよび/またはアライメントされた遺伝子配列と参照配列との間の差異を詳しく示す1つまたは複数のVCFを導出するためにその後使用され得るマッピングされおよび/またはアライメントされたデータを生成するために、マッピング、アライメント、ソーティング、バリアントコーリング、および/または同様のものの実行などのために、受信データに対して実行され得る。特に、二次処理が行われた後、遺伝子情報は、次いで、治療結果および/または予防結果を導出するなど、それによるさらなる処理などのために、システムの1つまたは複数の三次処理モジュール上に受け渡され得る。より具体的には、バリアントコーリングの後に、マッパ/アライナ/バリアントコーラーは、用意できている標準VCFファイルを出力してよく、ゲノム、たとえば、全ゲノム、解析、遺伝型判定、たとえば、ジョイント遺伝型判定、解析、マイクロアレイ解析、エクソーム解析、マイクロバイオーム解析、エピゲノム解析、メタゲノム解析、ジョイント遺伝型判定解析、バリアント解析、たとえば、GATK解析、構造バリアント解析、体細胞バリアント解析、および同様のもの、さらにはRNAシークエンシングまたは他のゲノミクス解析に関係する解析などの、三次解析を実行するための追加の集積回路に通信され得る。
したがって、本明細書において提示されている生物分析、たとえば、BioIT、プラットフォームは、ソフトウェア、ハード配線された、および/または量子処理構成などで、マッピング、アライメント、ソーティング、重複マーキング、ハプロタイプバリアントコーリング、圧縮および/または復元のための高度に最適化されたアルゴリズムを含み得る。たとえば、これらの機能のうちの1つまたは複数が、ハード配線された構成で全体として、または部分的に実行されるように構成されてよいが、特定の事例では、二次および/または三次処理プラットフォームは、本明細書において以下で開示されている機能のうちの1つまたは複数などの、1つまたは複数のバイオアナリティクス機能を実行することを対象とする1つまたは複数のプログラムなどの、1つまたは複数のソフトウェアおよび/または量子処理アプリケーションを実行するように構成され得る。特に、配列決定されたおよび/またはマッピングされたおよび/またはアライメントされたおよび/または他の処理済みデータは、次いで、いくつかの事例ではこれらの機能のうちの1つまたは複数が少なくとも部分的にハードウェアで実装され得るにもかかわらず、汎用CPUおよび/またはGPUおよび/またはQPU上で実行されているソフトウェアによって実装されるような、全ゲノム解析、遺伝型判定解析、マイクロアレイ解析、エクソーム解析、マイクロバイオーム解析、エピゲノム解析、メタゲノム解析、ジョイント遺伝型判定、および/またはバリアント、たとえば、GATK解析のうちの1つまたは複数に対する1つまたは複数の他の高度に最適化されたアルゴリズムによってさらに処理され得る。
したがって、図43を見るとわかるように、様々な実施形態において、多重化された生物分析的処理プラットフォームは、一次、二次、および/または三次処理のうちの1つまたは複数を実行するように構成される。たとえば、一次処理段階では、システム1に転送するために1つまたは複数のBCLおよび/またはFASTQファイルなどで、遺伝子配列データを作成する。システム1内に入ると、関連付けられているメタデータを含む、配列決定遺伝子データは、1つまたは複数のバリアントコールファイルを作成するように、二次処理段階600に送られるものとしてよい。したがって、システムは、また、関連付けられているメタデータ、および/または他の関連付けられている処理済みデータとともに1つまたは複数のバリアントコールファイルを受け取るように構成されてよく、1つまたは複数の三次処理段階において、1つまたは複数の診断および/または予防および/または治療手技をそれにより実行することなどを目的として、1つまたは複数の他のオペレーションをそれに対して実行し得る。
特に、データの解析は、たとえば、リモートコンピューティングリソース100から、たとえば行われるユーザ要求120に応答して、および/または第三者121によってサブミットされるデータ、ならびに/あるいはローカル200および/またはリモート400ストレージファシリティから自動的に取り出されたデータに応答して、開始され得る。そのようなさらなる処理は、処理の第1の層を含むものとしてよく、様々なパイプラインランプロトコル700は、1人または複数の対象の決定された遺伝子、たとえば、バリエーション、データに対してアナリティクスを実行するように構成される。たとえば、三次処理ユニットの第1の層は、ゲノム、エピゲノム、メタゲノム、遺伝子判定、および/または様々なバリアント解析、および/または他のバイオインフォマティクスベースの解析を実行するように構成されているゲノミクス処理プラットフォームを備え得る。それに加えて、第2の三次処理層では、様々な疾患診断、研究、および/または解析プロトコル800が実行され、解析はNIPT、NICU、癌、LDT、生物学的、AgBioアプリケーション、および同様のもののうちの1つまたは複数を含み得る。
システム1は、さらに、電子医療記録(EMR)データ、米国食品医薬品局試験および/または構造化データ、注釈に関連するデータ、および同様のものに関係するなどの、本明細書で開示されているプロシージャおよびプロセスに関係する様々なデータ900を受信し、および/または伝送するように適合され得る。そのようなデータは、ユーザがシステム1の使用を通じて開発され、および/またはそれによってアクセス可能にされた生成された医療、診断、治療、および/または予防法にアクセスし、および/またはアクセスすることを許すことを可能にするために有用であり得る。したがって、様々な事例において、本明細書で提示されているデバイス、方法、およびシステムは、下流処理に容易に使用可能であってよいフォーラムにおいて、遺伝学的および生物分析的解析の安全な実行、さらにはその結果の安全な転送を可能にする。それに加えて、様々な事例において、本明細書で提示されているデバイス、方法、およびシステムは、1つまたは複数の健康監視および/またはデータストレージファシリティから、および/またはFDAまたはNIHなどの、政府機関などから、システム内へのデータの安全な伝送を可能にする。たとえば、システムは、EMR/PHRデータを安全に受信するように構成されるものとしてよく、たとえば、下流処理に容易に使用可能であり得るフォーラムにおいて、遺伝学的および生物分析的解析の実行、さらには、その結果の安全な転送など、本明細書で開示されている方法にしたがって使用するためにヘルスケアおよび/またはストレージファシリティから伝送されてよい。
特に、第1の三次処理層700は、たとえば、SAMまたはBAMファイル形式で、マッピングされたおよび/またはアライメントされたデータなどに対して、遺伝子解析を実行し、および/またはVCF形式などで、バリアントデータを処理するなどのための、1つまたは複数のゲノミクス処理プラットフォームを含み得る。たとえば、第1の三次処理プラットフォームは、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイント遺伝型判定パイプライン、さらには1つまたは複数のバリアント解析パイプラインのうちの1つまたは複数も含むものとしてよく、これはGATKパイプライン、構造バリアントパイプライン、体細胞バリアントコーリングパイプラインを含み、いくつかの事例では、RNAシークエンシング解析パイプラインを含み得る。1つまたは複数の他のゲノム解析パイプラインも含まれ得る。
より具体的には、図43を参照すると、様々な事例において、多層および/または多重化生物分析的処理プラットフォームは、データ生成および/または処理ユニットのさらなるレイヤを備える。たとえば、いくつかの事例において、生物分析的処理プラットフォームは、1つまたは複数の三次処理プロトコルを実行することを対象とする、ソフトウェアおよび/またはハードウェア実装形態のうちの1つまたは複数における1つまたは複数の処理パイプラインを組み込む。たとえば、特定の事例において、三次処理パイプライン700のプラットフォームは、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイント遺伝型判定パイプライン、GATKパイプラインなどのバリアントパイプライン、および/またはRNAパイプラインなどの他のパイプラインのうちの1つまたは複数を含むものとしてよい。それに加えて、三次処理解析プラットフォームの第2のレイヤは、マイクロアレイ解析パイプライン、ゲノム、たとえば、全ゲノム解析パイプライン、遺伝型判定解析パイプライン、エクソーム解析パイプライン、エピゲノム解析パイプライン、メタゲノム解析パイプライン、マイクロバイオーム解析パイプライン、ジョイント遺伝型判定を含む遺伝型判定解析パイプライン、構造バリアントパイプライン、体細胞バリアントパイプライン、およびGATKおよび/またはMuTect2パイプラインを含むバリアント解析パイプライン、さらにはRNAシークエンシングパイプラインおよび他の遺伝子解析パイプラインのうちの1つまたは複数などの、多数の処理パイプラインを含み得る。
したがって、一実施形態において、多層生物分析的処理プラットフォームは、メタゲノミクスパイプラインを含む。たとえば、メタゲノミクスパイプラインは、1つまたは複数の環境ゲノミクスプロセスの実行などのために、含まれ得る。特に、様々な実施形態において、メタゲノミクス解析は、種または他のクレードなど、生物のグループが共通の祖先から進化したかどうかを決定するように構成され得る。より具体的には、様々な実施形態において、中に多数の生きているおよび/または死んでいる生物を含む環境サンプルが取得され、存在している特定の種および/またはそれに関連する1つまたは複数の他のゲノム因子を識別するために、本明細書における処理プラットフォームのうちの1つまたは複数を介して、そこから存在するDNA/RNAが分離され、配列決定され、処理され得る。そのような「環境」サンプルは、多数のヒトマイクロバイオーム(たとえば、皮膚、血液、痰、糞便サンプル中に見つかった微生物を含む、健康な人と病気の人の両方に関連して見つかる微生物に関係する)、さらには外部環境要因を含み得る。
メタゲノム処理を実行するために配列決定遺伝子サンプルを導出するための複数の方法がある。第1の方法は、標的16SリボソームRNAクローニングおよび/または遺伝子シークエンシングプロトコルを含む。たとえば、16SリボソームRNAは、種(または1つの種の株であっても)間で非常に多様である。したがって、このRNAは、システムのA/Iまたは他のデータベースに情報を与えるために使用され得る、自然発生の生物学的サンプルから導出される生物学的多様性の遺伝子プロフィールを作成するように分離され、配列決定され得る。しかしながら、そのようなシークエンシングの問題は、大量の微生物生物多様性が、単純に、それが培養された方式のせいで見逃され得ることである。
したがって、第2の方法は、配列決定された後、微小生命の遺伝的多様性を明らかにし得る、サンプリングされたコミュニティのすべての生物学的因子から複数の、たとえば、すべての遺伝子のサンプルを生成するために使用され得るショットガンおよび/またはPCRダイレクトプロトコルを含む。特に、ショットガンシークエンシング法では、集約参照配列が、たとえば、異なる種の参照ゲノムの多く(たとえば、数万個)から生成され得る。しかしながら、この多くの参照ゲノムの集約サイズは巨大である。したがって、集約参照配列を構築するために各参照ゲノムから1つまたは複数の特徴的な部分配列を選択することが有利である。
たとえば、そのような部分配列は、理想的には他の種(または株)では生じていない固有の配列である、数百塩基から数千塩基の範囲の長さを有し得る。これらの部分配列は、次いで、集約され、参照配列が構築され得る。したがって、分離され、配列決定され、マッピングされ、アライメントされた後、これらのメタゲノム配列は、多くの種に対して部分または完全参照ゲノムに対して比較され得、遺伝子生物多様性が決定され得る。
したがって、メタゲノミクスは、生物界のわれわれの理解に革命を起こし得る微生物界を見るための強力なレンズを提供する。したがって、これらの事例のいずれかにおいて、サンプル中に存在する生物DNAの有意な存在があるときに、その種は、その環境内にあると識別され得る。理想的には、これなどの方式で、一般的にその環境内に存在する他の種と共通点のない種が識別され得る。特に、すべての種のカバレッジが、得られた環境サンプルについて正規化されるときに、存在するすべての種の遺伝的多様性が、特定の生物のDNAの一部を生成された生物学的に多様な参照遺伝子配列のDNAの一部と比較することなどによって、決定され、カバレッジ全体に対して比較され得る。
これらの解析の有意性は、所与の種が存在しているかまたは存在していないと仮定して、特定の生物の配列決定リードを観察する確率を推定することなどによって、ベイズ法によって決定され得る。ベイズ確率法は、事象の確率を、その事象に関係すると思われる条件に基づき記述することに向けられている。たとえば、対象に癌が存在していることを決定することに関心がある場合、および対象の年齢が知られている場合、および癌が年齢に関係のある疾患と決定されている場合には、ベイズの定理を使用することで、対象の年齢に関する情報が、癌の確率をより正確に評価するために使用され得る。
特に、ベイズ確率解釈により、この定理は、観察された証拠を説明するのに主観的な信念の確度が合理的にどのように変わるかを表す。ベイズの定理は、次の式で数学的に述べられる。P(A/B)=P(B/A)P(A)/P(B)、ただし、AおよびBは事象であり、P(B)≠0である。P(A)およびP(B)は、互いに関係せずにAおよびBを観察する確率である。P(A|B)は、条件付き確率であり、事象Bが真であるとした場合に事象Aを観察する確率である。P(B|A)は、事象Aが真であるとした場合に事象Bを観察する確率である。
したがって、このコンテキストにおいてベイズ確率解析を実行するための1つまたは複数のステップは、以下のうちの1つまたは複数を含み得る。様々な存在コールが、界、門、綱、目、科、属、種、および/または株の様々な分類レベルにおいてクレードに対して行われ得る。しかしながら、これは、より低い分類レベルを共有する生物ほど、DNAが次第に類似する傾向にあるという事実によって複雑化する。それに加えて、多くの場合に、サンプルは、より高い分類レベル(または1つの種の多数の株)内の多数の種からの参照ゲノムとマッチするものとしてよく、したがって、多くの事例において、特定の種または株ではなくむしろ、より一般的なクレード(属または科など)のみが、あいまいなく存在していると呼ぶことができる。しかしながら、本明細書で開示されているデバイス、システム、およびそれらを使用する方法は、これらおよび他のそのような問題点を解消するために使用され得る。
特に、一実施形態では、サンプルから生物の2つまたはそれ以上の種もしくはクレードの存在を決定するための方法が実現される。たとえば、第1のステップにおいて、ゲノム配列データのリードがサンプルから取得されてよく、たとえば、リードはFASTQまたはBCL形式であってよい。ゲノム配列のマッピングは、リードを多数のゲノム参照配列にマッピングするように実行され得る。この事例では、ゲノム参照配列は、全ゲノムであり得るか、または各種、株、またはクレードに必要なデータの量を減らすために部分的ゲノムであってよい。しかしながら、ゲノムのより大きな部分を使用することで、検出感度が高まり、使用される各参照配列は、互いに異なる各種、株、またはクレードを表すように選択されるべきである。
この目的のために、各種またはクレードの16Sリボソームからのゲノム配列のすべてまたは一部が使用されてよい。この方式で、サンプル内にあると疑われる生物の種、株、またはクレードの2つまたはそれ以上のゲノム参照配列は、サンプル内のこれらのグループのメンバーを検出するように構築され得る。構築された後、ゲノム参照配列の各々に対するインデックスも構築される。インデックスは、プレフィックスまたはサフィックスツリーインデックスなどの、ハッシュテーブルまたはツリーインデックスであってよい。インデックスが構築された後、サンプルゲノム配列リードは、2つまたはそれ以上のインデックスの各々と比較され得る。次いで、サンプルゲノム配列リードがインデックスの各々にマッピングされるかどうかが決定され得る。
同様に、ゲノム配列のリードも、それらがマッピングされるゲノム参照配列にアライメントされ得る。これは、リードがサンプル中の生物の種またはクレードの存在または非存在を示す確率を解析する際に使用され得る、本明細書の方法による、アライメントスコアを生成する。特に、マッピングおよび/またはアライメントは、本明細書で説明されているように、本発明のソフトウェアおよび/またはハードウェアモジュールによって達成され得る。いくつかの実施形態において、マッピングされアライメントされたデータは、次いで、さらなる解析および処理のために、コンピューティングリソース100/300に通信され得る。
たとえば、マッピングされおよび/またはアライメントされたゲノム配列リードは、ゲノム参照配列を有する生物がサンプル中に存在している尤度を決定するために解析され得る。同様に、環境サンプル中に存在すると決定された種、株、またはクレードのリストが、報告され得る。いくつかの実施形態において、このリストは、評価の統計的信頼度を示すために信頼性計量(たとえば、P値)とともに報告され得る。解析される生物の種、株、またはクレードのリスト全体も、種、株、またはクレードのどれが存在していたかを示す指標、および信頼性計量とともに、報告され得る。マイクロバイオームの解析に関して説明されているが、本明細書で開示されている様々な技術および手順は、適切な場合に、他のすべての三次処理プロトコルの解析において使用され得ることに留意されたい。
たとえば、図43Bでは、環境サンプル内のマイクロバイオームなどの、環境解析を実行するための方法の例示的な実装形態について述べている。たとえば、第1の事例において、環境サンプルが取得され、様々な遺伝物質がそこから分離され得る。様々な遺伝物質は、次いで、適切に構成されているNGSなどを介して、処理され配列決定され得る。
その結果、第1のステップ1000において、様々な遺伝物質が、たとえば、NGSによって、配列決定された後、本明細書で開示されているシステム1に伝送され得る。ステップ1010において、たとえばサンプル内で検出されるべき、注目する2つまたはそれ以上のゲノム参照配列が構築され得る。ステップ1020において、1つ、2つ、またはそれ以上のゲノム参照配列の各々に対するインデックスが構築され得る。さらに、ステップ1030で、ゲノムサンプルの得られた配列決定リードは、次いで、適切に構成されているマッピングモジュールなどを介して、1つ、2つ、またはそれ以上のインデックスと比較され得る。ステップ1040において、配列決定リードのゲノムサンプルが2つまたはそれ以上のインデックスの各々にマッピングされるかどうかが決定され得る。
この時点で、望ましい場合に、ステップ1050で、マッピングされたリードは、ゲノム参照配列とアライメントされて、アライメントおよび/またはアライメントスコアを生成し得る。したがって、サンプル中の得られた遺伝物質がマッピングされ、および/またはアライメントされた後、ステップ1060において、参照配列を有する所与の生物がサンプル内に存在する尤度が決定され得る。また、処理された後、サンプル中に存在している種、株、および/またはクレードのリストが、識別され、および/または報告され得る。
本明細書で開示されている三次処理プラットフォームは、また、エピゲノムパイプラインを含み得る。特に、エピジェネティクスでは、生物のDNA配列中にエンコードされていない遺伝作用を研究する。この用語は、また、変化それ自体、すなわち、ヌクレオチド配列の変化を伴わないゲノムへの機能的に関連する変化を指す。それにもかかわらず、後成的変化は、DNA配列を変化させない染色体の変化の結果生じる安定して遺伝可能な表現型である。これらの変化は、遺伝的である場合もそうでない場合もある。特に、後成的変化は、特定の遺伝子の活性化を修飾するが、DNAの遺伝子コード配列を修飾しない。これはDNAそれ自体の微細構造(コードでない)であるか、あるいは関連付けられているクロマチンタンパク質が修飾され、活性化またはサイレンシングを引き起こす。
エピゲノムは、転移性因子の遺伝子発現、発生、組織分化、および抑制を調節することを伴う。個体内の大きく静的な基礎となるゲノムと異なり、エピゲノムは、環境条件によって動的に変えられ得る。この分野は、細胞のゲノムおよびプロテオームの研究である、ゲノミクスおよびプロテオミクスに類似している。それに加えて、エピゲノミクスは、生物のDNAおよびヒストンタンパク質への化学的変化の記録からなるエピゲノムとして知られている、細胞の遺伝物質に対する後成的修飾の完全なセットの研究を伴う。これらの変化は、継代後成的遺伝を介して生物の子孫に代々伝えられ得る。エピゲノムに対する変化は結果として、クロマチンの構造に対する変化およびゲノムの機能に対する変化を引き起こし得る。
この後成的機構は、多細胞生物の分化した細胞がそれ自体の活性に必要な遺伝子のみを発現することを可能にする。後成的変化は、細胞が分裂するとき保存される。特に、ほとんどの後成的変化は、1つの個別生物の一生にわたって生じるだけである。しかしながら、遺伝子不活性化が精子または卵細胞内で生じ、結果として受精する場合、何らかの後成的変化が次世代に伝えられ得る。いくつかの種類の後成的遺伝系が、細胞記憶として知られているものにおいて役割を果たし得る。たとえば、DNA(たとえば、シトシンメチル化およびヒドロキシメチル化)またはヒストンタンパク質(たとえば、リシンアセチル化、リシンおよびアルギニンメチル化、セリンおよびトレオニンリン酸化、ならびにリシンユビキチン化およびSUMO化)の様々な共有結合修飾は、多くの種類の後成的遺伝に中心的な役割を果たし得る。細胞または個体の表現型は、遺伝子のうちのどれが転写されるかということに影響を受けるので、遺伝性転写状態は、後成的効果を引き起こし得る。細胞および生理学的表現型形質に対するそのような効果は、遺伝子をオン、オフする外部もしくは環境因子から生じ、細胞が遺伝子をどのように発現するかに影響を及ぼし得る。
たとえば、DNA損傷は、後成的変化を引き起こし得る。DNA損傷は、非常に頻繁に起こる。これらの損傷は、大部分が修復されるが、DNA修復の部位に、後成的変化が残り得る。特に、DNA内の二本鎖切断は、DNAメチル化を引き起こすこと、さらにはサイレンシングタイプのヒストン修飾(クロマチン再構築)を促進することの両方によってプログラムされていない後成的遺伝子サイレンシングを開始することができる。そのような変化を作成するメカニズムの他の例は、DNAメチル化およびヒストン修飾であり、その各々が、基礎となるDNA配列を変化させることなく遺伝子がどのように発現されるかを変える。ヌクレオソーム再構築も、DNA修復の後成的サイレンシングを引き起こすことがわかっている。さらに、DNA損傷化学物質も、酸化的ストレス経路の活性化などを通じて、DNAのかなりの低メチル化を引き起こし得る。それに加えて、遺伝子発現は、DNAのサイレンサー領域に付着するリプレッサータンパク質の作用を通じて制御され得る。
これらの後成的変化は、細胞の寿命の間、細胞分裂を通して続くものとしてよく、また、生物の基礎となるDNA配列の変化を伴わないとしても複数の世代の間継続するものとしてよく、代わりに、非遺伝的要因が、生物の遺伝子が異なる振る舞いをする(または、「それ自体を発現する」)ことを引き起こす。真核生物学における後成的変化の一例は、細胞分化の過程である。形態形成時に、全能性幹細胞が、胚の様々な多能性細胞株となり、次いで、これは、完全に分化した細胞となる。言い換えると、単一受精卵細胞-接合体-が分裂を続けると、その結果生じる娘細胞は、他の遺伝子の発現を抑制しながら一部の遺伝子を活性化することによって、ニューロン、筋細胞、上皮細胞、血管の内皮細胞などを含む、生物体内のすべての異なる細胞種類に変化する。
遺伝子発現の調節にはいくつかレイヤがある。遺伝子が調節される一方法は、クロマチンの再構築を通じてのものである。クロマチンは、DNAおよびそれが関連付けるヒストンタンパク質の複合体である。DNAがヒストンに巻き付けられる仕方が変化した場合、遺伝子発現も同様に変化し得る。第1の方法は、ヒストンタンパク質を構成するアミノ酸の翻訳後修飾である。ヒストンタンパク質は、アミノ酸の長鎖から構成される。鎖の中にあるアミノ酸が変化した場合、ヒストンの形状が修飾され得る。DNAは、複製時に完全に解かれることはない。次いで、修飾されたヒストンが、DNAの各新しいコピー内に運ばれる得ることが可能である。そこに入った後、これらのヒストンは、テンプレートとして作用し、囲んでいる新しいヒストンが新しい方式で整形されることを開始する。それらの周りのヒストンの形状を変えることによって、これらの修飾されたヒストンは、系列特異的転写プログラムが細胞分裂の後も維持されることを確実にする。
第2の方法は、メチル基をDNAに、もっぱらCpGサイトのところに添加し、シトシンを5-メチルシトシンに変換することである。5-メチルシトシンは、通常のシトシンとほとんど同じように作用し、二本鎖DNA内のグアニンとペアを作る。しかしながら、ゲノムのいくつかの領域は、他の領域に比べてより重くメチル化され、高度にメチル化された領域は、完全には理解されていないメカニズムを通じて、転写活性が低い傾向がある。シトシンのメチル化は、また、親の1つの生殖細胞系から接合体へと持続し、染色体を、一方の親または他方から遺伝されたものとしてマークする(遺伝子刷り込み)。ヒストン修飾は、配列全体で生じるが、ヒストンの非構造化N末端(ヒストン尾部と呼ばれる)は、特に高く修飾される。これらの修飾は、アセチル化、メチル化、ユビキチン化、リン酸化、SUMO化、リボシル化、およびシトルリン化を含む。
したがって、DNAメチル化は、いくつかのDNAヌクレオチド上のメチル基、特に'C'塩基に続く'G'、または「CpG」ジヌクレオチドの存在である。プロモーター領域内のメチル化は、遺伝子発現を抑制する傾向がある。メチル化解析は、所与のサンプルゲノム内でどの'C'塩基がメチル化されているのかを検出するプロセスである。バイサルファイトシークエンシング(MethylC-seq)は、全ゲノムシークエンシングを使用してメチル化を検出する最も一般的な方法であり、非メチル化シトシン('C')塩基は、ウラシル('U')塩基に化学的に変換され、これはPCR増幅の後チミン('T')塩基になる。メチル化された'C'塩基は、変換に抵抗する。
したがって、本明細書で開示されているデバイスおよび方法によれば、修飾がDNA配列に影響を及ぼさないが、遺伝子発現に影響を及ぼす、DNA分子の修飾の検出は、後成的遺伝物質に対して1つまたは複数のマッピングおよび/またはアライメントオペレーションを実行することなどによって、本明細書において実現される。そのような方法では、得られたリードは、変換された'T'塩基が参照'C'位置にアライメントすることを可能にする仕方で参照ゲノムにマッピングされ、アライメントされてよく、'C'塩基は、マッピング/アライメントの前に、参照配列内で'T'と置き換えられ得る。これは、リードの正確なマッピングおよびアライメントを可能にし、これはバイサルファイト変換'C'(現在は'T')を有し、それにより、ゲノム配列リード内の非バイサルファイト変換(メチル化)'C'を露出させる。逆相補アライメントでは、相補置換が使用されてよく、たとえば、'G'は'A'で置き換えられ得る。
同様に、参照インデックス(たとえば、ハッシュテーブル)ビルダーおよびマッパ/アライナは、MethylC-seq使用のためにこれらの置換を自動的に実行するように修飾され得る。代替的に、マッパ/アライナは、参照'C'へのリード'T'の順方向アライメント、およびリード'A'から参照'G'への逆相補アライメントを可能にするように修飾され得る。本明細書で開示されている方法は精度を改善し、リード'C'から参照'T'の誤った順方向アライメント、またはリード'G'から参照'A'への誤った逆相補アライメントを防ぐ。
それに加えて、本明細書において実現されるのは、ゲノム配列リード内のシトシン塩基のメチル化状態を決定するための方法である。たとえば、第1のステップにおいて、ゲノム配列のリードがバイサルファイト処理ヌクレオチドサンプルから取得されてよい。特に、1つまたは複数の修飾シークエンシングプロトコルは、これらの点で、二次処理に対するリードを生成するために使用され得る。特に、全ゲノムバイサルファイトシークエンシング、簡約表現バイサルファイトシークエンシング、メチル化DNA免疫沈降シークエンシング、およびメチル化に敏感な制限酵素シークエンシングのうちの1つまたは複数は、塩基対レベルまで分解能のレベルを変化させ、ゲノムの一部分にわたるDNAメチル化を識別するために使用され得る。さらに、クロマチンアクセシビリティがアクセスされてよく、たとえば、DNase I過感受性サイトシークエンシングが実行されてよく、たとえば、DNase I酵素は、ゲノム内の開放またはアクセス可能領域を見つけるために使用され得る。さらに、RNAシークエンシングおよび発現アレイは、発現レベルまたはタンパク質コーディング遺伝子を識別するために使用され得る。特に、smRNAシークエンシングは、スモールノンコーディングRNA、もっぱらmiRNAの発現を識別するために使用され得る。
その結果、配列決定されてリードを作成した後、ゲノム参照配列が、リードとの比較のために構築され得る。次いで、ゲノム参照配列内のCpG配置がマークされ得る。さらに、ゲノム参照配列は、ゲノム内のCをTで置き換えることによって前処理され得る。ゲノム参照配列に対するインデックスが構築され得る。そしてインデックスが構築された後、サンプルゲノム配列リードがインデックスと比較され、サンプルエピゲノム配列リードがインデックスにマッピングされるかどうかが決定され得る。
さらに、マッピングされたリードは、アライメントスコアを生成するためにゲノム参照配列とアライメントされ得る。いくつかの実施形態において、塩基置換がリード配列内で行われてよく、リードはインデックスと再比較され、インデックスと再アライメントされ得る。いくつかの実施形態において、アライメント配向制限が、リードのマッピングおよび/またはアライメント時に利用されてよく、それにより、順方向アライメントのみが、リードおよびゲノム配列参照内のCからTへの置換で許されるものとしてよく、逆相補アライメントのみがリードおよびゲノム配列参照においてGからAの置換で許される。
これらのマッピングおよび/またはアライメント手順は、本明細書で説明されている様々なソフトウェアおよび/またはハードウェアモジュールによって達成され得る。いくつかの実施形態において、マッピングされアライメントされたデータは、次いで、さらなる解析および処理のために、CPU/GPU/QPUに通信され得る。たとえば、マッピングされアライメントされたリードは、それらのマッピングされた参照位置によってソーティングされ得る。いくつかの実施形態において、重複リードは、マークされ、取り除かれ得る。リードのパイルアップからの重なり合うリードは、各マークされた参照CpG配置上で解析され得る。そのような事例において、シトシン(C)を置き換えたチミン(T)は、非メチル化シトシンを示し、したがってマークされる。リード配列内に残っているシトシンは、メチル化シトシンとしてマークされ得る。CpG配置の逆相補アライメントも、メチル化または非メチル化としてマークされ得る。たとえば、アデニン(A)を置き換えたグアニン(G)は、非メチル化シトシン(C)の逆相補としてマークされるが、リード配列内に残っているグアニン(G)は、メチル化シトシン(C)の逆相補としてマークされる。各ヌクレオチド鎖上の各CpG配置のありそうなメチル化状態が報告され、メチル化コールにおける関連付けられている信頼度計量(たとえば、p値)が形成され得る。いくつかの実施形態において、マークされたCpG配置のメチル化状態は、また、染色体の二倍体ペアの各染色体について示され得る。
ヒストン修飾に関して、ヒストン修飾は、DNAが巻き付くヒストンタンパク質の様々な自然発生の化学修飾を含み、その結果、DNAの巻付きが強かったり弱かったりする。たとえば、緩く巻き付いたDNAは、遺伝子発現のより高い率に関連付けられる。そのようなヒストン修飾は、クロマチン免疫沈降シークエンシング(ChIP-Seq)によって決定されるものとしてよく、これは、修飾に対して抗体を使用することなどによって、ヒストン修飾のゲノム規模のパターンを識別するために使用され得る。さらに、ChIP-seqは、ヒストン(または他の選択されたタンパク質)にきつく結合されているDNAを分離し、配列決定するために使用され得る方法である。ChIP-seqが実行された後、サンプルが調製され、DNAが分離され配列決定されてよく、配列決定DNAは、次いで、本明細書に開示されているように参照ゲノムにマッピングされ/アライメントされてよく、マッピングされたカバレッジは、ゲノム内の様々な座位においてヒストン結合のレベルを推論するために使用され得る。それに加えて、本明細書で実現されるのは、ChIP導出ヌクレオチド配列を解析する方法であり、これは構造バリアントを解析するための以下で説明されている方法に類似している。
特に、エピジェネティクスは、癌研究および診断において有用であることに留意されたい。たとえば、ヒト腫瘍は、DNAメチル化およびヒストン修飾パターンの大きな破壊を受ける。実際、癌細胞の異常な後成的ランドスケープは、大域的ゲノム低メチル化、腫瘍抑制因子遺伝子のCpGアイランドプロモーター高メチル化、重要遺伝子の改変ヒストンコード、およびモノアセチル化およびトリメチル化ヒストンH4の大域的喪失によって特徴付けられる。したがって、本明細書で開示されている方法は、癌研究および/または診断を目的として使用され得る。
さらに、本明細書で開示されている方法は、1つまたは複数のエピゲノムデータベースおよび/または参照ゲノムを生成するために有用であり得る。たとえば、本明細書で開示されている、たとえば、システムのA/I学習プロトコルを使用する方法は、様々な細胞株、初代細胞、および/または初代組織にわたって、正常で健康な個体からなどのエピゲノムのヒト参照を生成するのに有用であり得る。生成されたそのようなデータは、次いで、本明細書で開示されているマッピングおよび/またはアライメントプロトコルを強化するために使用され得る。さらに、エピゲノムの差異のデータベースが生成された後、データベースは、たとえば、A/Iモジュールによってマイニングされ、癌、認知症、アルツハイマー病、および他の神経学的状態などの、様々な疾患状態において生じる関連する因子をよりよく特徴付け、決定し得る。
したがって、様々な事例において、エピゲノミクス解析は、細胞の遺伝物質に対して生じた後成的修飾の1つまたは複数またはセット全体を識別するなどのために、実行され得る。特に、本明細書で開示されている方法を使用することで、生物のエピゲノム、および/またはその細胞が決定され、それにより、生物の細胞のDNAおよびヒストンタンパク質への化学変化のカタログおよび/または記録を行える。たとえば、例示的なエピゲノム解析が、本明細書の図43Cにおいて述べられている。
たとえば、第1のステップにおいて、ゲノムサンプルが生物から取得され、遺伝物質がそこから分離され、配列決定され得る。したがって、配列決定された後、ステップ1000において、サンプルの配列決定リードは、システム1に伝送され、システム1によって受け取られ得る。この事例では、リードは、二硫酸塩処理ヌクレオチドサンプルから導出され得る。同様に、ステップ1010において、たとえば、生物に対する、配列のゲノム参照は、エピゲノムサンプルリードの比較を実行することなどのために構築されてよい。ステップ1012において、ゲノム参照配列内の様々なCpG配置が識別され得る。
識別された後、1014において、参照内のCpG配置の「C」は「T」で置き換えられ、ステップ1020において、修飾ゲノム参照配列に対するインデックスが生成され得る。修飾参照に対するインデックスが生成された後、ステップ1030において、サンプルのゲノム配列リードは、インデックスと比較され、ステップ1040において、本明細書で開示されている方法および装置によりマッピングされることなどによって、サンプルのゲノム配列リードがインデックスにマッピングされるかどうかが決定され得る。マッピングされたリードは、次いで、ゲノム参照配列とアライメントされ、本明細書で説明されているように、1つまたは複数のアライメントオペレーションを実行することなどによって、アライメントスコアが生成され得る。
この時点で、2、3の様々な解析のうちの1つが実行され得る。たとえば、ステップ1051において、より大きいコンテキストが望ましい場合、上で処理されたような、リード内の塩基置換、および/またはアライメント配向、および/またはパラメータ制限が調整され、比較ステップ1030~1050が繰り返されるものとしてよい。このプロセス自体は、十分なレベルのコンテキストが達成されるまで望ましいだけ繰り返され得る。したがって、十分なレベルのコンテキストが達成された後、マッピングされおよび/またはアライメントされたリードは、ステップ1080において、マッピングされ/アライメントされた参照位置で、本明細書において開示されているプロセスなどにおいてソーティングされ得る。ステップ1081において、重複リードは、マークされ、および/または取り除かれ得る。
さらに、ステップ1082において、各マークされた参照CpG配置と重なり合うリードのパイルアップからのリードが解析され得る。「T」が「C」で置き換えられた場合、これはステップ1083において非メチル化「C」とマークされてよく、「C」が配列内に残っている場合、ステップ1084において、「C」はメチル化「C」としてマークされ得る。最後に、ステップ1086において、各ヌクレオチド鎖上のCpG配置の各々のありそうなメチル化状態、およびメチル化コールにおける信頼度に関する決定および/または報告も行われ得る。
それに加えて、本明細書において実現されるのは、遺伝物質の一部が構造バリアントを有し得るか、または他の何らかの形でそれと関連付けられ得るゲノム物質を解析するための方法である。特に、構造バリエーションは、生物の染色体の構造内のバリエーションである。構造バリエーションは、欠失、重複、コピー数バリアント、挿入、逆立、および転座などの、顕微鏡的なおよび超顕微鏡的なタイプを含む、種のゲノム内の多くの種類のバリエーションを伴う。多くの構造バリアントは、遺伝病に関連付けられている。実際、ヒトゲノムの約13%は、正常集団内で構造バリアントであると定義され、人間集団には同型接合欠失多型として存在する少なくとも240個の遺伝子がある。そのような構造バリエーションは、すべてのゲノム内で数百万個の異種のヌクレオチドを含むものとしてよく、ヒトの罹病性に対する重要な寄与因子を構成する可能性がある。
コピー数バリエーションは、挿入、欠失、および重複を含む、構造バリエーションの大きなカテゴリである。人間の病気に関係すると知られているいくつかの逆立が存在する。たとえば、因子VIII遺伝子における再発400kb逆立は、血友病Aの共通原因であり、イズロン酸2-スルファターゼに影響を及ぼすより小さい逆立はハンター症候群を引き起こす。より多くの例は、アンジェルマン症候群およびソトス症候群を含む。複雑な構造バリエーションの最も一般的なタイプは、非直列重複であり、そこでは配列が重複され、逆立または直接配向でゲノムの別の部分に挿入される。複雑な構造バリアントの他のクラスは、欠失-逆立-欠失、重複-逆立-重複、および欠失が入れ子になっている直列重複を含む。隠れた転座および分節的片親性ダイソミー(UPD)もある。
しかしながら、異常なDNA構造の欠失は、問題であり、公知のバリアントコーリングの範囲を超えている。検出に問題があるそのような構造バリアントは、大きな挿入および欠失(たとえば、50~100bpインデルサイズを超える)、重複、およびコピー数バリエーション(CNV)、逆立および転座、ならびに異数性(異常な染色体コピーカウント、モノソミー、ダイソミー、トリソミーなど)を有するものを含む。本明細書において開示されているいくつかの事例において、識別されたコピー数バリエーションは、定量的SNP遺伝型判定を使用することなどによって、遺伝病を有していない対象に対して試験され得る。
構造バリエーション検出は、一般的に、本明細書で開示されているデバイスおよび方法を使用することなどでマッピングおよびアライメントオペレーションを実行することから開始する。たとえば、解析されるべきゲノムサンプルのリードは、キメラアライメントをサポートするプロトコルなどで、参照ゲノムにマッピングされアライメントされ得る。特に、いくつかの構造バリエーション(たとえば、CNVおよび異数性)は、相対的なマッピングされたカバレッジの解析によって検出され得る。しかしながら、他の構造バリエーション(たとえば、大きいインデル、逆立、転座)は、クリップ済みのおよびキメラのアライメントの解析によって検出され得る。
特に、各構造バリアントは、1つまたは複数の「切断」位置を伴い、リードは、参照ゲノムにマッピングされず、たとえば、幾何学的形状がサンプルと参照との間で変化する。そのような事例において、パイルアップは、構造バリアント切断部位とわずかに重なり合う中のリードがその切断部位でクリップされ、構造バリアント切断部位と実質的に重なり合うリードが、たとえば、異なる参照配置にマッピングされたリードの2つの部分とキメラ的にアライメントされるように構成され得る。しかしながら、構造バリアント切断部位と重なり合うリードペアは、広く異なる参照位置にマッピングされた2つのメイトリードと、および/またはメイトリードの異常な相対的配向と、一貫性なくアライメントされ得る。そのような障害は、本明細書で開示されている方法によって克服され得る。
たとえば、いくつかの事例において、知られている構造バリアントに関連するデータは、構造バリアントの配列をよりよく決定するために使用され得る。たとえば、ヒトゲノムの構造バリエーションのリストを有するデータベースが、たとえば、CNVへの強調とともにコンパイルされてよく、そのようなデータは、適切に構成されている加重プロトコルなどで、特定のバリアントの配列を決定する際に使用され得る。特に、構造バリアントが知られている場合に、「内側」および「外側」座標は、構造バリエーションの影響を受け得る配列の最小および最大範囲として使用され得る。それに加えて、知られている挿入、喪失、獲得、逆立、LOH、反転、transchr、およびUPDバリエーションが分類され、本発明のシステムのナレッジベースに送られ得る。
様々な事例において、構造バリアントの決定は、以前に決定されたシークエンシングデータを使用することなどで、適切に構成されているソフトウェアを実行するCPU/GPU/QPUによって実行されてよく、他の事例では、構造バリアント解析は、本明細書で開示されているハードウェアなどで実行され得る。したがって、特定の事例において、構造バリアントに対するゲノム配列を解析するための方法が実現される。たとえば、第1のステップにおいて、ゲノム配列リードがヌクレオチドサンプルから受信され得る。いくつかの事例において、配列決定リードは、構造バリアントを検出するためのペアエンドまたはメイトペアプロトコルから導出されている可能性がある。次に、ゲノム参照配列に対するインデックスが構築されてよく、たとえば、インデックスは、プレフィックスまたはサフィックスツリーなどの、ハッシュテーブルまたはツリーであってよい。インデックスが構築された後、サンプルゲノム配列リードがインデックスと比較され、サンプルゲノム配列リードがインデックスにマッピングされるかどうかを決定し得る。もしそうであれば、サンプルゲノム配列リードは、次いで、それらがマッピングされるゲノム参照配列にアライメントされるものとしてよく、アライメントスコアが決定され得る。
上で示されているように、マッピングおよびアライメントは、本明細書で説明されているようなハードウェアモジュールによって達成され得る。いくつかの実施形態において、マッピングされアライメントされたデータは、次いで、さらなる解析および処理のために、関連付けられているCPU/GPU/QPUに通信され得る。リードは、マッピングされた参照位置によってソーティングされるものとしてよく、重複リードは、マークされ、削除され得る。2つのメイトリードのキメラリードおよび/または異常な相対的アライメントが決定されてよく、可能な構造バリアントは、検出されたキメラリードおよび/または異常な相対的アライメント(たとえば、大きいインデル、逆立、または転座)に基づき決定され得る。同様に、各可能な構造バリアントの事後確率が計算され得る。いくつかの実施形態において、構造バリアントハプロタイプが、キメラリードおよび/または異常な相対的アライメントのHMM解析を使用することなどによって、決定され得る。たとえば、ペアHMMは、そのような決定に使用されてよい。ペアHMMは、ハードウェアモジュールを使用することで達成され得る。
したがって、様々な事例において、図43Dを見るとわかるように、生物の染色体の構造内のバリエーションを決定するための方法が提示されている。たとえば、本明細書において開示されている方法によれば、ステップ1000において、ゲノム配列データのリードが受信され得る。ステップ1010において、1つまたは複数のゲノム参照配列が構築されてよく、それにより、リードと参照配列との間の比較を実行するものとしてよい。特に、ステップ1010において、ゲノム参照配列は、受信したリードが生成された参照に対して比較されることを可能にするように構築され得る。より具体的には、これらの目的のために、ステップ1020において、ゲノム参照配列に対するインデックスが生成されるものとしてよく、たとえば、ステップ1020において、ハッシュテーブルまたはプレフィックス/サフィックスツリーが生成され得る。したがって、ステップ1030において、サンプルゲノム配列のリードは、本明細書で開示されているソフトウェアおよび/またはハードウェア実装形態などにより、生成されたインデックスと比較され得る。
ステップ1040において、サンプルゲノム配列のリードがインデックスにマッピングされると決定された場合、ステップ1050において、マッピングされたリードは、ゲノム参照配列とアライメントされ、アライメントスコアが生成され得る。ステップ1080において、サンプルリードは、それらのマッピングされた参照位置によってソーティングされ得る。この時点で、ステップ1081において、重複リードは、マークされ、取り除かれ得る。さらに、ステップ1090において、たとえば、2つのメイトリードのキメラリードおよび/または異常な相対的アライメントが検出され、1092において、可能な構造バリアントが、検出されたキメラリードおよび/または異常な相対的アライメントに基づくなどして、決定され得る。さらに、各可能な構造バリアントの事後確率が計算され、任意選択で、ステップ1096において、構造バリアントハプロタイプが、キメラリードおよび/または異常な相対的アライメントの、本明細書において説明されているような、HMM解析を使用することなどによって決定され得る。
さらに、本明細書において開示されているデバイス、システム、および方法は、RNA配列の処理に使用されてよい。特に、本明細書において提示されているのは、スプライスマッピングおよびアライメントプロトコル(たとえば、適切に構成されているRNAマッパ/アライナにより)を使用することなどで、RNA配列リードを解析するための方法である。たとえば、一実施形態において、トランスクリプトームパイプラインが、超高速RNA配列データ解析などのために、用意され得る。特に、このパイプラインは、参照のみのアライメント、さらには注釈支援アライメントなどに関して、RNA転写に対して二次解析を実行するように構成され得る。
したがって、第1の方法において、たとえばBCLおよび/またはFASTQファイル形式の生リードデータが、シークエンシング機器によって作成されてよく、システム内に入力されて、マッピング、アライメント、およびバリアントコーリングが実行され得る。しかしながら、様々な事例において、スプライスアライメントを誘導するなどのために、1つまたは複数の遺伝子注釈ファイル(GTF)がシステム内に入力されてよく、たとえば、スプライスジャンクションLUTが構築され使用され得る。たとえば、アライメント精度およびスプライスジャンクションテーブルが使用されてよい。その結果、2フェーズアライメントが実行されてよく、たとえば、第1の検出フェーズにおいて、新規スプライスジャンクションが使用され、これは、次いで、第2のパスのマッピング/アライメントフェーズを誘導するために使用され得る。バリアントコーリングの後、システムは、三次解析のために準備されている標準VCFファイルを出力する。
特に、入力ファイルが受信された後、スプライスマッピングおよびアライメントが、単一リードエンドとペアリードエンドの両方などに対して実行され得る。示されているように、構成可能なジャンクションフィルタが、単一のジャンクション出力を与えるために使用され得る。位置ソーティングが実行されてよく、これは参照範囲によるビニング、および次いで参照位置によるビンのソーティングを含むものとしてよく、重複マーキングが、開始位置およびCIGAR文字列などに基づき実行され、それにより、高クオリティ重複報告を達成するものとしてよく、それによって、重複が取り除かれ得る。次いで、ハプロタイプバリアントコーリングが、たとえば、SWおよびHMM処理エンジンを使用することで実行され、アセンブリが実行されてよい。
それに加えて、本明細書において開示されているデバイス、システム、および方法は、体細胞バリアントコーリングを実行するために使用されてよい。たとえば、体細胞バリアントコーリングプロトコルは、癌細胞中に生じ得るバリアントを検出するために使用され得る。特に、体細胞コーリングに対するゲノムサンプルは、単一のまたは複数の腫瘍生検標本または血液から取得され得る。任意選択により、「正常」(非腫瘍)サンプルも、バリアントコーリングにおいて比較などのために取得されてよく、たとえば、体細胞バリアントが腫瘍細胞中に出現するが、正常サンプルの細胞中には現れない。サンプルのDNA/RNA形態が、Next Genシークエンサなどによって分離され、配列決定され得る。たとえば、各サンプルからの配列決定データは、次いで、二次処理プラットフォームに伝送され、リードがマッピングされ、アライメントされ得る。さらに、リードは、SWおよびペアHMMエンジンの一方または両方による処理を含む、複数のバリアントコーリングプロシージャに通され得る。
しかしながら、システムは、3%から10%(またはそれ以上)などの、低バリアントアレル頻度を検出することができるように構成されるべきである。より具体的には、遺伝型判定確率モデルが使用されてよく、モデルは、任意のアレル頻度を可能にするように構成される。これを可能にするための一方法は、重なり合うリード内の観察されたアレル頻度に対応する各バリアント遺伝型アレル頻度を割り当てることである。たとえば、重なり合うリードの10%が特定のバリアントを示す場合、90%の参照アレルおよび10%の代替のアレルからなる遺伝型が検査され得る。腫瘍/正常二重サンプルについて、バリアントが腫瘍サンプル中に存在するが正常サンプル中には存在しない事後確率が推定され得る。
さらに、体細胞バリアントコーラーパイプラインは、腫瘍の不均一性、たとえば一連の異なる突然変異事象が発生したことに関する情報を提供するように構成されてよく、たとえば、異なる遺伝型(サブクローン)を有する腫瘍の1つまたは複数のセクションが識別されている。そのようなサブクローン情報は、バリアントアレル頻度およびその分布の決定から、および/または複数の腫瘍サンプルの間でバリアントを示差的に明確にコールすることによって導出され得る。
したがって、サンプルから癌細胞の配列バリアントを検出するための方法が実現される。第1のステップにおいて、ヌクレオチドサンプルからのゲノム配列リードが、癌性および/または正常細胞から取得され得る。配列リードは、構造バリアントを検出するためのプロトコルと類似するペアエンドまたはメイトペアプロトコルに由来するものとしてよい。ゲノム参照配列に対するインデックスが構築されてよく、たとえば、インデックスは、プレフィックスまたはサフィックスツリーなどの、ハッシュテーブルまたはツリーであってよい。たとえば、腫瘍および/または正常サンプルの、サンプルゲノム配列リードは、インデックスと比較され、サンプルゲノム配列リードがインデックスにマッピングされるかどうかが決定され得る。
サンプルゲノム配列リードは、次いで、それらがマッピングされるゲノム参照配列にアライメントされるものとしてよく、アライメントスコアが生成され得る。マッピングおよびアライメントは、本明細書で説明されているように、ソフトウェアおよび/またはハードウェアモジュールによって達成され得る。いくつかの実施形態において、マッピングされアライメントされたデータは、次いで、さらなる解析および処理のために、CPU/GPU/QPUに通信され得る。リードは、マッピングされた参照位置によってソーティングされるものとしてよく、重複リードは、マークされ、削除され得る。バリアントは、任意のバリアントアレル頻度を予想し、可能な低いアレル頻度(たとえば、3%から10%)を検出し、報告するように修正されているベイズ解析を使用して検出され得る。
いくつかの実施形態において、生殖細胞バリアントは、非癌性および癌性の両方のサンプルで検出され、体細胞バリアントは、癌性サンプルでのみ検出され得る。たとえば、生殖細胞および体細胞突然変異は、相対頻度で区別され得る。各可能な癌バリアントの事後確率が計算されるものとしてよく、いくつかの実施形態において、構造バリアントハプロタイプが、キメラリードおよび/または異常な相対的アライメントのHMM解析を使用することによって、決定され得る。たとえば、ペアHMMは、そのような決定に使用されてよい。ペアHMMは、本明細書で説明されているようなハードウェアモジュールを使用して達成され得る。
したがって、様々な実施形態において、図43Eで例示されているような、体細胞バリアントコーリングプロシージャは、バリアントが癌バリアントである確率を計算するなどのために、実行され得る。たとえば、ステップ1000で、ゲノム配列サンプルのリードが、たとえば、NGSのシークエンシングを介して生成されてよく、および/または、たとえば、癌性および非癌性の一方または両方の遺伝子サンプルなどから、適切に構成されているクラウドベースネットワークシステムでの伝送を介して、受信され得る。ステップ1010において、ゲノム参照配列は、リードの比較などのために生成されるものとしてよく、ステップ1020において、インデックスがゲノム参照配列から構築されてよく、ステップ1030において、サンプルゲノム配列は、ステップ1040において、ゲノム配列リードをインデックスにマッピングするために、本明細書で開示されているソフトウェアおよび/またはハードウェア実装形態などを使用して、インデックスと比較され得る。さらに、ステップ1050において、マッピングされたリードは、アライメントスコアを生成するためにゲノム参照配列とアライメントされ得る。マッピングされたおよび/またはアライメントされたリードは、次いで、1080において、参照位置に関してソーティングされてよく、任意選択により、1081において、重複リードは、マークされ、取り除かれ得る。
したがって、リードがマッピングされおよび/またはアライメントされおよび/またはソーティングされおよび/または重複除去された後、ステップ1100において、バリアントが、ベイズ解析を使用するなどして検出されるものとしてよく、1101において、非癌性および癌性の両方のサンプル中の生殖細胞バリアント、さらにはその中の体細胞バリアントが、任意選択により検出されてよい。同様に、ステップ1094において、各可能な癌バリアントの事後確率が計算され得る。さらに、ステップ1096において、癌バリアントハプロタイプは、本明細書において開示されているようなソフトウェアおよび/またはハードウェアでHMM解析を実装することなどによって、任意選択により決定され得る。
さらに、本明細書において開示されているデバイス、システム、および方法は、ジョイント遺伝型判定オペレーションを実行するように構成されてよい。特に、ジョイント遺伝型判定オペレーションは、多数の対象のコホートからリードを一緒に考察することなどによって、バリアントコーリング精度を改善し得るように使用され得る。たとえば、様々な事例において、ゲノムバリエーションは、いくつかの集団内で高い相関を有するものとしてよく、たとえば、いくつかのバリアントは、複数の対象に共通である。そのような事例において、バリアントコーリングの感度および特異性は、多数のDNA(またはRNA)サンプルから各バリアントに対する証拠を一緒に考慮することによって改善され得る。特に、感度は、一方の対象のバリアントに対する弱い証拠が、他方のサンプル内の同じバリアントに対する証拠によって強化され得るので改善され得る。より具体的には、感度は、偽陽性バリアントに対する中程度の証拠が、他方のサンプル内の同じバリアントに対する証拠の非存在によって緩和され得るので改善され得る。一般に、ジョイント遺伝型判定に加わるサンプルが多ければ多いほど、所与の対象に対するバリアントコールはますます正確になり得る。
ジョイント遺伝型判定は、遺伝的バリエーションにおける観察された相関を表現する事前確率を使用して、所与のバリアントを有するすべての対象の様々なサブセットに対する事後確率の推定を伴う。様々な事例において、ジョイント遺伝型判定は、単一のバリアントコーリングパスで実行されてよく、多数のサンプルからのアライメントされたリードは、バリアントコーラーによって調べられる。これは、通常は、少数のサンプルでしか実用的でないが、それは、数十、数百、または数千個のサンプルが関わったときに、全データサイズは高速アクセスおよび操作には実用的でなくなる。
代替的に、ジョイント遺伝型判定は、最初に各サンプルについて別々にバリアントコーリングを実行し、次いで、結果をジョイント遺伝型判定ツールとマージすることによって行われるものとしてよく、これは結合情報を使用して各対象に対するバリアント確率を更新する。この方法では、各単一サンプルバリアントコーリングパスからの追加の出力を使用して、バリアントに対して、および/または結合処理がなければコールされるバリアントがない領域内で弱い証拠の領域をよりよく測定する。VCF形式は、単一サンプルバリアントコーリングからのコールされたバリアントを表すために一般的に使用されるが、特別なgVCF形式は、マージの準備において第1段階バリアント(および非バリアント)コールを表すために使用され得る。gVCF形式は、たぶんバリアントが存在していない場合に、配置、および多数の配置のブロックに対する記録を含み、したがって、この情報は、各対象に対する改善されたジョイント遺伝型コールを生成するために同じ配置で他のコールまたは非コールとマージされ得る。
したがって、ジョイント遺伝型判定パイプラインは、多数のサンプルからより速く、より正確に、バリアントをコールするように構成され得る。それに加えて、ジョイント遺伝型判定パイプラインは、サンプルのコホートからの血統、さらには集団バリアントコーリングをサポートするようにさらに構成され得る。たとえば、パイプラインは、最大10、15、20、25、さらには50もしくはそれ以上のサンプルを一度に取り扱うように構成され得る。様々な事例において、集団コーリング構成は、一度に数千のサンプルサイズを取り扱うように適合され得る。さらに、多数のサンプルの速度および階層グルーピングの組合せは、ジョイント遺伝型判定に対する計算効率のよい解析ソリューションを提供する。それに加えて、ジョイント遺伝型判定に対するサンプルのシークエンシングは、Next Genシークエンサの同じフローセル内で実行されてよく、それによって、システムがマルチサンプル入力を同時にマッピングし/アライメントすることを可能にし、それによって、ジョイントコーリングのプロセス全体をスピードアップし、たとえば、BCLデータは、パイプラインに直接送られ、各サンプルについて固有のgVCFファイルを作成し得る。
したがって、本明細書で実現されるのは、多数の対象のコホートからのリードを一緒に考慮することによってバリアントコーリング精度を改善するための方法である。第1のステップにおいて、2つまたはそれ以上のサンプルからのゲノム配列のリードが受信される。リードとの比較のためのゲノム参照配列が構築され、ゲノム参照配列から、インデックスが生成される。次いで、各サンプルのゲノム配列リードは、インデックスと比較され、各サンプルのゲノム配列リードがインデックスにマッピングされるかどうかが決定される。
次いで、マッピングされたリードは、ゲノム参照配列とアライメントされてよく、アライメントスコアが生成され得る。リードは、マッピングされた参照位置によってソーティングされるものとしてよく、重複リードは、マークされ、および/または削除され得る。それに加えて、次いで、リードのパイルアップからの重なり合うリードが解析され、それにより、リードの大部分が参照ゲノム配列と一致するかどうかを決定し得る。各可能なバリアントの事後確率が計算され、すべてのサンプルからのバリアントコールデータはマージされ、各個別のサンプルに対するバリアントコール精度を高めるものとしてよい。これは、各サンプルに対するバリアントコーリング精度(たとえば、感度および特異性)を高めることができ、サンプルのすべてがバリアントコーリング解析を受けた後に処理ステップとして遂行され得るか、またはこれはサンプルの各々がバリアントコーリング解析を受けた後に、累積的に遂行され得る。次いで、バリアントがコールされない領域内の非参照アレルの尤度が決定されてよく、バリアントがコールされない領域内の非参照アレルの決定された尤度は、報告され得る。
したがって、様々な実施形態において、図43Fで例示されているような、体細胞バリアントコーリングプロシージャは、バリアントが癌バリアントである確率を計算するなどのために、実行され得る。たとえば、ステップ1000で、ゲノム配列サンプルのリードが、たとえば、NGSのシークエンシングを介して生成されてよく、あるいは/または、たとえば、癌性および非癌性の一方または両方の遺伝子サンプルなどから、適切に構成されているクラウドベースネットワークシステムでの伝送を介して、受信され得る。ステップ1010において、ゲノム参照配列は、リードの比較などのために生成されるものとしてよく、ステップ1020において、インデックスがゲノム参照配列から構築されてよく、ステップ1030において、サンプルゲノム配列は、ステップ1040において、ゲノム配列リードをインデックスにマッピングするために、本明細書で開示されているソフトウェアおよび/またはハードウェア実装形態などを使用して、インデックスと比較され得る。さらに、ステップ1050において、マッピングされたリードは、アライメントスコアを生成するためにゲノム参照配列とアライメントされ得る。マッピングされたおよび/またはアライメントされたリードは、次いで、1080において、参照位置に関してソーティングされてよく、任意選択により、1081において、重複リードは、マークされ、取り除かれ得る。
同様に、1082において、リードのパイルアップからの重なり合うリードが解析され、それにより、リードの1つまたは複数、たとえば、大部分が参照ゲノム配列と一致するかどうかを決定するものとしてよく、ステップ1094において、各可能なバリアントの事後確率が計算され得る。この時点で、ステップ1096において、バリアントハプロタイプが、望ましい場合に、HMM解析を実行することなどによって決定されるものとしてよく、および/またはステップ1120において、たとえば、すべてのサンプルからのバリアントコールデータは、任意選択により、マージされ、各個別のサンプルに対するバリアントコール精度を高めるものとしてよい。さらに、ステップ1122において、たとえば、バリアントがコールされない領域内の、非参照アレルの尤度が決定され、報告され得る。
それに加えて、図43を見るとわかるように、一態様において、オンラインアプリストアが用意され、これにより、ユーザがシステム内に組み込まれ、システムに伝送され入力されたゲノムデータを解析するために使用できるゲノミクスツールを開発し、販売し、使用することを可能にする。特に、ゲノムアプリストアは、たとえば、NICU検査のような、遺伝子検査を開発することを望んでいる顧客に対応することができ、この検査は開発された後に、購入できるように、またプラットフォームとして実行するように、システム、たとえば、遺伝子市場にアップロードされるものとしてよく、それにより、新しく開発したシステムプラットフォームを実行する誰もが、ウェブポータルを介してアップロードされた検査をデプロイすることができる。より具体的には、ユーザは、ウェブポータルの「アプリ」ストアをブラウズし、望む検査、たとえば、NICU検査を見つけ、それをダウンロードし、および/またはアップロード可能な遺伝子データなどについてそれを実装するようにシステムを構成することができる。したがって、オンライン「コホート」市場は、新しい遺伝子解析アプリケーションをデプロイする高速で効率的な方法を提示し、これらのアプリケーションは、ダウンロードされたアプリケーションを実行する本発明のシステムプラットフォームのどれかから同一の結果を取得することを可能にする。より具体的には、オンライン市場は、リモートユーザがダウンロードし、本発明のワークフローモデルに従って使用するように構成できる遺伝子解析アプリケーションを誰もが開発するためのメカニズムを提供する。
本明細書上で開示されているコホート市場の別の態様は、データの安全な共有を可能にすることである。たとえば、ゲノムデータの伝送および記憶は、高度の保護をなされるべきである。しかしながら、多くの場合に、そのような遺伝子データは大きく、安全で保護された方式で転送することが難しく、たとえば、対象の身元は機密扱いである。したがって、本発明の遺伝学市場では、コホート参加者が対象を識別しなくても遺伝子データを共有することを可能にする。そのような市場では、コホート参加者は、保護された安全な環境で研究を進めるために質問およびプロセスを共有することができ、しかもそれぞれの対象のゲノムの同一性を危険にさらすことがない。それに加えて、ユーザは、それらのゲノムが誰に属すものなのかを識別することなく、他の研究者がサンプルセットの解析を行うのを助けることができる。
たとえば、ユーザは、ステージ3の乳癌などの、特定の遺伝型および/または表現型を有し、ならびに/あるいは特定の薬物で治療されてきた対象を識別することができる。コホートは、これらの薬物が遺伝子レベルで癌性細胞増殖にどのような影響を及ぼすかを見るために形成され得る。したがって、他にもあるがとりわけ、これらの特性は、たとえば、離れた場所にいる、他の研究者が、コホート基準内に収まる研究者らがアクセスできる対象に関して、統一された解析手順を使用して、遺伝子データに対して標準遺伝子解析を実行することを可能にするコホート選択基準を形成し得る。この方式で、所与の研究者は、自分の科学研究を具体化するために、サンプルセットのすべてのメンバー、たとえば、基準の範囲内に収まる対象を識別し、セキュリティで保護する責任を負う必要がなくなる。
特に、研究者Aは、市場内に研究コホートをセットアップし、対象に対する適切な選択基準、実行されるべきゲノム検査、および検査が実行される際のパラメータを識別するものとしてよい。研究者Aから離れた場所にいる、研究者BおよびCは、次いで、そのコホートにサインアップし、その基準とマッチする対象を識別し、選択し、次いで、それらの対象に対して、本明細書で開示されている統一手順を使用して指定された検査を実行し、研究者Aが自分の研究目標を手際よく達成するか、またはよりよく遂行するのを手助けし得る。これは、遺伝子データの一部しか伝送されず、対象の身元は保護されるので有益であり、データが同じパラメータを採用する同じ遺伝子解析システムを使用して解析されているため、結果データは、検査がどこで、どのようなマシンで行われていようと同じになる。その結果、コホート市場は、ユーザが選択基準を単純にポストすることによってコホートを形成し構築し、ダッシュボード上でパラメータを実行することを可能にする。報酬率もポストされ、適切に構成されている商取引、たとえば、金融取引プログラムを採用することによって決済が行われる。
次いで、コホートへの参加を認める人は誰でも、基準およびデータファイルをダウンロードし、および/または要求された解析を実行する際にすでに生成し、および/または記憶している対象の遺伝子データを使用することができる。たとえば、各コホート参加者は、個別のサーバに記憶されているBCLおよび/またはFASTQファイルのデータベースを有するか、または生成することができる。これらの遺伝子ファイルは、たまたま選択基準に合致した対象から導出されている。特に、対象のこの記憶されている遺伝子および/または他のデータは、コホート選択基準の範囲に含まれるのが適切であるかどうかを決定するためにスキャンされ得る。そのようなデータは、多数の目的のために生成されている可能性があるが、生成に対する理由に関係なく、いったん生成された後は、選択され、要求されたパイプライン解析に通され、コホート内に入れるために使用され得る。
したがって、様々な実施形態において、コホートシステムは、研究者同士をつなぐためのフォーラムであってよく、研究者らがそのリソースおよびデータ、たとえば、遺伝子配列データをプールすることを可能にする。たとえば、コホートに関わることで、第1の研究者は、マッピング、アライメント、バリアントコーリング、および/または同様のものなどに関して、様々な対象からの多数のゲノムのマイニングおよび/または調査を必要とする遺伝子データ解析を必要とするプロジェクトを導入することを可能にするであろう。したがって、対象らを集め、サンプルセットを個別に収集しなければならないことの代わりに、コホート開始者は、規定されている解析手順が以前にサンプルセット上で実行されるか、または他者によって収集されている必要があることを通知することができ、したがって、サンプルセットを生成し、それを解析する集団的アプローチが本明細書におけるコホート組織によって提供される。特に、コホート開始者は、コホート選択をセットアップし、潜在的コホート参加者と共有されるべき構成ファイルを創出し、ワークフローパラメータを、たとえばワークフローフォルダ内に創出することができ、それによって、たとえば、ワークフロー管理システムを介して、データ生成および解析を自動化することができる。システムは、また、取引の商業的側面、たとえば、マッピング、アライメント、バリアントコーリングに関して、および/または三次解析などに関して、解析され得る遺伝子データセットの提供に対してコホート参加者に報酬を支払うための決済処理を使用可能にもし得る。
様々な実施形態において、コホート構造化解析は、画像処理および/または塩基クオリティスコアリキャリブレーション、メチル化解析、および同様のものなどに関して、たとえば、DNAまたはRNAのいずれかの一次処理に向けられてよく、ならびに/あるいはマッピング、アライメント、ソーティング、バリアントコーリング、および同様のものなどに関する、二次解析の実行に向けられてよく、ならびに/あるいはアレイ、ゲノム、エピゲノム、メタゲノム、遺伝型判定、バリアント、および/または他の形態の三次解析などに関する、三次解析に向けられてよい。それに加えて、これにより実行されるパイプラインおよび解析の多くが一次および/または二次処理を伴い得るが、本明細書の様々な解析プラットフォームが、一次または二次処理に向けられ得ないことは理解されるであろう。たとえば、いくつかの事例において、解析プラットフォームは、遺伝子データなどに対する三次解析、または他の形態のゲノミクスおよび/またはバイオインフォマティクス解析を実行することだけに向けられ得る。
たとえば、特定の実施形態において、実行されるべき特定の解析手順に関して、実行されるべき解析は、マッピング、アライメント、ソーティング、バリアントコーリング、および同様のもののうちの1つまたは複数を含むものとしてよく、実行されるように選択された特定のパイプラインに応じて、1つまたは複数の他の二次および/または三次解析手順に通され得る結果データを作成する。ワークフローは単純であるか、または複雑であり得、たとえば、1つのパイプラインモジュール、たとえば、マッピング、または多数のモジュール、たとえば、マッピング、アライメント、ソーティング、バリアントコーリング、および/またはその他などの実行を必要とするが、重要なパラメータは、ワークフローが、コホートに参加する各人に対して同一であるべきであるということである。特に、システムの固有の特徴は、実行されるべき解析がそれらの手順がどこでどのようなマシン上で実行されるかに関係なく同じ方式で実行されることを確実にするように、コホートを設立した要求者が制御パラメータを規定することである。
その結果、コホートをセットアップするときに、要求者は、構成ファイルとともに両方の選択基準をアップロードする。次いで、他のコホート参加者が、選択基準を見て、それらが規定された基準に収まる遺伝子情報のデータセットを有しているかどうかを決定し、もしそうであれば、構成ファイルの設定に基づき、データに対して要求された解析を実行する。研究者らは、コホート参加者として選択されるようにサインアップし、サブスクリプションが大きい場合には、くじ引きまたは競争が開催され、それにより参加者を選択することができる。様々な事例において、入札システムが開始されることが可能である。コホート参加者によって生成される結果データは、オンサイト、またはクラウド上で処理されてよく、構成ファイルに従う限り、データの処理は同じになる。特に、構成ファイルは、BioITアナリティクスデバイスがどのように構成されるべきかを規定し、デバイスが規定された構成に従ってセットアップされた後、システムに関連付けられているデバイスは、どこに配置されていようと、たとえば、ローカルであろうとリモートであろうと関係なく、同じ方式で要求された遺伝子解析を実行する。次いで、結果データは、コホート市場にアップロードされ、受け取った結果データに照らして、支払いがなされ受領され得る。
たとえば、遺伝子データの解析は、ローカルで実行されてよく、クラウドにアップロードされた結果、または遺伝子データそれ自体がアップロードされ、解析がクラウド、たとえば、クラウドに関連付けられている、量子処理プラットフォームなどの、サーバまたはサーバネットワーク上で実行されてもよい。様々な事例において、対象の身元をより適切に保護するために、結果データのみをアップロードすることが有用であり得る。特に、結果データのみをアップロードすることによって、セキュリティが保護されるだけでなく、大量のデータが転送される必要がなくなり、それによってシステム効率が高められる。
より具体的には、様々な事例において、パイプラインの1つまたは複数からの結果データを含む圧縮ファイルはアップロードされ、いくつかの事例では、バリエーションの記述を含むファイルのみがアップロードされる必要がある。いくつかの事例において、テキスト回答、たとえば、「yes」または「no」の回答などの、回答のみが与えられる必要がある。そのような回答は、対象の身元を記述しないので好ましい。しかしながら、解析がオンラインで、たとえば、クラウドで実行される必要がある場合、選択されたBCLおよび/またはFASTQファイルはアップロードされ、解析が実行され、結果データが次いで最初の提出者に押し戻されてよく、次いで、この提出者がコホートインターフェースで結果データをアップロードすることができる。次いで、元の生データが、オンラインメモリから削除され得る。このおよび他のそのような方式で、コホート要求者は、対象の身元にはアクセスしない。
「ジャストインタイム解析」(JIT)で使用されるような圧縮は、コホート効率を高めるうえで特に有用である。たとえば、典型的な手順を使用すると、コホートシステムを出入りするデータの移動は、コストが非常に高くつく。したがって、様々な構成において、システムにアップロードされた生および/または未圧縮データはそこに記憶されてよく、特定の事例において、データはアップロードされる前に圧縮されてよく、次いで、データはシステム内で処理されてよく、次いで、結果が、システムから伝送される前に圧縮されてよく、たとえば、圧縮はJITプロトコルに従って行われる。この事例において、圧縮形式などによるそのようなデータの記憶はコストが安く、したがって、コホートシステムは非常にコスト効率が高い。
それに加えて、様々な事例において、複数のコホートがオンライン市場内に設けられてよく、本明細書で説明されている圧縮プロセスが与えられた場合に、データは、一方のコホートから他方のコホートに伝送され、それにより、様々な異なるコホートの研究者らがそれらの間でデータを共有することを可能にし、本明細書において開示されている圧縮方法が使用されないとすれば、法外に高いコストがかかるところである。特に、JITの速度および効率がなければ、圧縮データは、クラウドに伝送された後、典型的にはクラウド内に留まるが、それでも、検討および操作のためにその中でアクセス可能である。しかしながら、JITは、ローカルおよび/またはクラウドベースの両方の処理のためにクラウドへおよびクラウドからデータが高速伝送されることを可能にする。さらに、図41Bおよび図43を見るとわかるように、特定の事例において、システム1は、生成されたおよび/または二次処理されたデータを、たとえば、ローカル100および/またはリモート300コンピューティングリソースを介して、1つまたは複数の三次処理パイプライン、たとえば、マイクロアレイ解析パイプライン、ゲノム、たとえば、全ゲノム解析パイプライン、遺伝型判定解析パイプライン、エクソーム解析パイプライン、エピゲノム解析パイプライン、メタゲノム解析パイプライン、マイクロバイオーム解析パイプライン、ジョイント遺伝型判定を含む遺伝型判定解析パイプライン、構造バリアントパイプライン、体細胞バリアントパイプライン、およびGATKおよび/またはMuTect2パイプラインを含むバリアント解析パイプライン、さらにはRNAシークエンシングパイプライン、および/または他の三次処理パイプラインのうちの1つまたは複数を通じてそれを実行することなどによって、さらなる処理に通すように構成され得る。そのような処理からの結果データは、次いで、圧縮されおよび/またはリモート400に記憶され、および/またはローカル200に記憶されるように転送され得る。
特に、これらの機能のうちの1つまたは複数、たとえば、すべては、ローカルで、たとえば、オンサイト10で、ローカルクラウド30上で、またはハイブリッドクラウド50を通して制御されたアクセスを介して実行されてよい。そのような事例において、ユーザが自分のニーズに合わせて、システム1の機能を制御すること、および/または同じまたは類似の結果を求める他のユーザにそれに対するアクセスを許すことを可能にする開発者環境が創出される。その結果、システムの様々なコンポーネント、プロセス、プロシージャ、ツール、層、および階層は、ローカルであろうとリモートであろうとシステム全体を通して安全に通信され得る、関連するデータおよびデータの間の接続を生成するために、ユーザによって決定された望みおよびプロトコルに従ってどのようなデータに対して、いつ、どのような順序でシステムのどのコンポーネントが実行されるべきかをユーザが選択することを可能にするGUIインターフェースなどを介して構成可能であり得る。示されているように、これらのコンポーネントは、密結合構成および/またはシームレスなクラウドベース結合であることによって、および/あるいは、システム全体に分散されている対応するAPIインターフェースを使用することなどによって、同じまたは類似の方式で同じまたは類似のプロセスを実行するように、たとえばJITプロトコルを介して構成可能であることなどによって、たとえば配置および/または接続の仕方に関係なく、一緒にシームレスに伝達するように作製されるものとしてよく、システム全体に分散されている対応するAPIインターフェースの使用により、様々なユーザが同様の仕方で様々な手順を実行するように様々なコンポーネントを構成することが可能になる。
たとえば、APIは、システム1の各特定のコンポーネントによって実行されるべきプロセスに関してヘッダファイル内に定義されてよく、ヘッダは機能を記述し、受け渡されるパラメータ、受信する入力および伝送される出力、ならびにこれが行われる方式、何がどのように入る、何がどのように出る、および何が返されるか、およびどのような方式か、など、機能をコールする仕方を決定する。たとえば、様々な実施形態において、システムの1つまたは複数の層の1つまたは複数のパイプラインを形成し得る、コンポーネントの1つまたは複数、および/またはその要素は、ユーザおよび/または1つまたは複数の第二および/または第三者アプリケーションによって入力された命令などによって構成可能であり得る。これらの命令は、システムの様々なドライバのうちの1つまたは複数と通信する対応するAPIを介してシステムに通信されるものとしてよく、ユーザ選択可能インターフェース、たとえば、GUIによって決定され得る、事前選択されたパラメータ構成が与えられた場合に、ドライバに対して、システムのどの部分、たとえば、どのモジュールおよび/またはそれらのどのプロセスが、いつ、どのような順序でアクティブ化されるべきかについて示す。
特に、システム1の1つまたは複数のDMAドライバは、各コンポーネントおよび全体としてシステム1のカーネルレベルなどにおいて、対応する方式で実行するように構成され得る。そのような事例において、提供されたカーネルの1つまたは複数は、システム1の様々なコンポーネントのハードウェアおよび機能へのアクセスを提供するそれ独自の、非常に低いレベルの基本APIを有するものとしてよく、それにより、適用可能なレジスタおよびモジュールにアクセスし、プロセスおよびそれらがシステム1上で実行される方式を構成し、指令するものとしてよい。特に、このレイヤの上に、サービス機能の仮想レイヤが構築されてよく、ファイルをカーネルにまで送信する多数の機能に使用される構成ブロックを形成し、結果を返し、関連するデータを符号化し、暗号化し、および/または伝送し、さらに、より高水準の機能をそれに対して実行する。そのレイヤの上に、これらのサービス機能を使用する追加のレイヤが構築されてよく、これはユーザがインターフェースし得るAPIレベルであってよく、もっぱら全体またはそのコンポーネント部分としてシステム1の構成のために機能し、ファイルをダウンロードし、結果をアップロードするように適合されてよく、これらのファイルおよび/または結果は、ローカルで、または大域的に、のいずれかで、システム全体に伝送されてよい。追加のAPIは、データの安全な記憶に関して上で詳しく述べられているように構成され含まれ得る。
システムの様々なAPI、メモリ、および/またはファームウェアのそのような構成は、レジスタと通信するステップと、さらにファンクションコールを実行するステップとを含み得る。たとえば、本明細書において上で説明されているように、マッピングおよび/またはアライメントおよび/またはソーティングおよび/またはバリアントコールを実行するステップを、たとえば逐次的に実行するのに必要なおよび/または有用な1つまたは複数のファンクションコール、あるいは本明細書で説明されているような他の二次および/または三次機能は、必要なプロセスを生成し、要求されたステップを実行するためにハードウェアオペレーションおよび/または関係するアルゴリズムに従って実装され得る。
特に、いくつかの実施形態では、これらのオペレーションのうちの1つまたは複数は、1つまたは複数の構造に基づくものとしてよいので、これらのオペレーションを実装するために必要な様々な構造が構築される必要があり得る。したがって、この機能を実行するファンクションコールがあり、そのファンクションコールは、オペレーションの実行のために必須の構造を構築させ、これのため、コールは、構造パラメータファイルが記憶される場所のファイル名を受け付け、次いで、必須の構造を含み、および/または構成する1つまたは複数のデータファイルを生成する。別のファンクションコールは、それぞれのアルゴリズムを介して生成された構造をロードし、それをチップおよび/またはシステム1上のメモリにまで下って転送し、ならびに/あるいはそれをハードウェアがそうであると予想している正しいスポットに置くものであってよい。もちろん、様々なデータは、チップ上にダウンロードされ、および/または他の何らかの形でシステム生成器に、システム1の様々な他の選択された機能の実行のためにも、転送される必要があり、構成マネージャは、チップおよび/またはシステムのプラットフォームの層のパイプラインのモジュールが全体として機能を実行するためにそこにある必要のあるすべてを、チップおよび/システム上の、取り付けられている、または他の何らかの形で関連付けられているメモリにロードすることなどによって、これらの機能を実行することができる。
それに加えて、システムは、一緒に備えられているときに、システム1の1つまたは複数のチップがシークエンサ121の回路基板、コンピューティングリソース100/300、トランスフォーマ151、アナライザ152、インタプリタ310、コラボレータ320、他のシステムコンポーネントとインターフェースすることを可能にするなど、システムの様々なコンポーネントが互いに通信することを可能にするように構成されてよく、それにより、FASTQおよび/または他の生成されたおよび/または処理された遺伝子シークエンシングファイルを、それらが生成されおよび/または処理された直後などにシークエンサまたは他の処理コンポーネントから直接受信し、参照ゲノムに関してサンプルDNA/RNAの塩基コール、マッピング、アライメント、ソーティングなどを行い、ならびに/あるいはそれに対して関連付けられている二次および/三次処理オペレーションを実行するために指定された機能をその情報に対して実行できるように全体としてハードウェア、ソフトウェア、および/またはシステムの関連するモジュールにその情報を利用可能にするハードウェアおよび/またはソフトウェア内でその情報を適切なメモリバンクにその後向ける構成マネージャにその情報を次いで転送する。
したがって、様々な実施形態において、クライアントレベルインターフェース(CLI)が備えられてよく、CLIは、ユーザがこれらの機能のうちの1つまたは複数を直接呼び出すことを可能にし得る。様々な実施形態において、CLIは、システムのハードウェアおよび/または様々な他のソフトウェアアプリケーションのアクセス可能性および/または使用を構成するように適合されている、たとえば、GUIを有する、ソフトウェアアプリケーションであってよい。したがって、CLIは、命令、たとえば、引数を受け付け、アプリケーションプログラムを単純に呼び出すことによって機能を利用可能にするプログラムであってよい。上で示されているように、CLIは、コマンドラインベースまたはGUI(グラフィカルユーザインターフェース)ベースであってよい。ラインベースコマンドは、GUIの下のレベルで実行されるものであり、GUIは、ウィンドウベースのファイルマネージャを備え、どのプラットフォームの、どのモジュール、どのパイプライン、どの層が使用されるかということを線引きするクリックオンファンクションボックスと、その使用パラメータと含む。たとえば、動作時に、命令された場合、CLIは、参照を特定し、ハッシュテーブルおよび/またはインデックスが生成される必要があるかを決定するか、またはすでに生成されている場合に、それが記憶されている場所を特定し、生成されたハッシュテーブルおよび/またはインデックスなどのアップロードを示す。これらのタイプの命令は、ユーザが関連付けられているチップ/システム1を選択して実行することができるユーザオプションとしてGUIに表示され得る。
さらに、ライブラリが含まれてよく、ライブラリは、たとえば、既往歴および祖先解析、または疾患診断、または創薬、治療、および/または他のアナリティクスのうちの1つまたは複数などの、様々な解析のために、ゲノムおよび/またはタンパク質解析の一部または全体などに関して、ハードウェアおよび/または関連付けられているソフトウェアの典型的なユーザ選択機能を目的とするファイルなどの、すでに存在している、編集可能な、構成ファイルを含み得る。これらのタイプのパラメータは、そのような解析を実行するなどのためにプリセットされてよく、ライブラリに記憶され得る。たとえば、本明細書で説明されているプラットフォームが、NIPT、NICU、癌、LDT、AgBio、および集団レベルでの関係する研究などに対して使用される場合、プリセットされたパラメータは、プラットフォームが個人レベルなどの、ゲノム研究および/または家系ベースの研究に単純に向けられた場合と異なる形で構成され得る。
より具体的には、個体の特定の診断のために、精度が重要因子となり得る。したがって、システムのパラメータは、場合によっては速度低下と引き換えになるが、精度を確実に高められるように設定され得る。しかしながら、他のゲノミクスアプリケーションについては、速度は重要な決定因子であり得、したがって、システムのパラメータは、最大速度に設定され得るが、しかしながら、ある程度の精度を犠牲にすることになり得る。したがって、様々な実施形態において、異なるタスクを実行するために使用されることが多いパラメータ設定は、使いやすいようにライブラリ内にプリセットすることができる。そのようなパラメータ設定は、また、システム1を実行する際に使用される必要なソフトウェアアプリケーションおよび/またはハードウェア構成も含み得る。たとえば、ライブラリは、APIを実行するコードを含むものとしてよく、システム1を実行するのに必要なサンプルファイル、スクリプト、および他の補助情報をさらに含み得る。したがって、ライブラリは、API、さらには様々な実行ファイルを実行するためのソフトウェアをコンパイルするように構成され得る。
それに加えて、図42Cおよび図43を見るとわかるように、システムは、システムコンポーネントのうちの1つまたは複数がリモートで実行され得るように構成されてよく、たとえば、システムコンポーネントは、解釈機能310および/または協調機能320などの、1つまたは複数の比較機能をデータに実行するように適用される。たとえば、解釈プロトコルがデータ上で使用される場合、解釈プロトコル312は、データを解析し、データに関して結論を引き出し、および/またはそれに関する様々な関係を決定するように構成されてよく、1つまたは複数の他の解析プロトコルも、実行され、データ311に注釈を入れるステップ、データに対する診断313を実行するステップを含むものとしてよく、および/またはデータを解析し、1つまたは複数のバイオマーカー314の存在または非存在を決定する。示されているように、これらの機能のうちの1つまたは複数は、WMSによって示され、および/または本明細書において開示されているA/Iモジュールによって実行され得る。
それに加えて、協調プロトコルが実行される場合、システム1は、データ共有321が行われ得る電子フォーラムを提供するように構成されてよく、そのデータ共有プロトコルは、データが暗号化されおよび/またはパスワード保護されることを可能にするユーザ選択可能セキュリティ324および/またはプライバシー322設定を含み、これにより、データの同一性およびソースがシステム1のユーザから隠され得る。特定の事例において、システム1は、第三者アナライザ121がデータに対して仮想シミュレーションを実行することを可能にするように構成され得る。さらに、生成された後、解釈されたデータおよび/または1つまたは複数の協調解析に通されたデータは、リモート400またはローカル200のいずれかに記憶され、さらなる処理および/または解析などのために、リモート300またはローカル100コンピューティングリソースに利用可能にされるものとしてよい。
別の態様において、図44を見るとわかるように、システムを使用して1つまたは複数の二次および/または三次処理プロトコルが実行され得る1つまたは複数のデータファイルを生成するための方法が実現される。たとえば、この方法は、オンサイト、クラウドベース、および/またはハイブリッドゲノムおよび/またはバイオインフォマティクス生成および/または処理および/または解析のうちの1つまたは複数などのためのゲノムインフラストラクチャを提供するステップを含み得る。
そのような事例において、ゲノムインフラストラクチャは、注目しているゲノム配列を含むデータまたはそれに関連する処理済み結果データなどの、データに対して1つまたは複数の解析処理機能を実行することができるようにシステムを構成するために1つまたは複数の構成可能処理構造を記憶するように構成されている1つまたは複数のメモリを有するバイオインフォマティクス処理プラットフォームを備え得る。メモリは、たとえば、生成されおよび/または取得された後の、処理されるべき注目しているゲノム配列、1つまたは複数の遺伝子参照配列を含むものとしてよく、ならびに/あるいはそれに加えて、1つまたは複数の遺伝子参照配列のインデックスおよび/またはそれに関連するスプライスジャンクションのリストを含み得る。システムは、また、システムのどの処理機能がデータ、たとえば、注目している前処理または処理済みゲノム配列に対して実行されるかを選択することなどによって、システムを構成するなどのために、オプションのリストから構成可能処理構造の1つまたは複数を選択するためのプラットフォームアプリケーションプログラミングインターフェース(API)を有する入力も備え得る。グラフィカルユーザインターフェース(GUI)は、存在し、たとえば、APIに動作可能に関連付けられ、それにより、ユーザがデータに対して実行されることを自分が望んでいる利用可能なオプションを選択するためのメニューを提示し得る。
したがって、これらおよび他のそのような事例において、ハイブリッドクラウド50は、システムのコンポーネント全体を通してデータのシームレスな保護された伝送を可能にするように構成されてよく、たとえば、ハイブリッドクラウド50は、システムの様々なユーザがユーザの研究、診断、治療、および/または予防的発見および/または開発ニーズに応えるように、たとえば、WMSを介して、そのコンポーネント部分および/またはシステムそれ自体を構成することを可能にするように適合される。特に、ハイブリッドクラウド50および/またはシステム1の様々なコンポーネントは、安全な暗号化可能環境において通信することを可能にしている間中、望ましい仕方で望ましいリソースをデプロイし、さらにシステムの要求および実行される解析の詳細などに基づき、ローカル、リモート、またはその組合せのいずれかでそうするようにユーザがシステム1の様々なコンポーネントをリモートで構成することを可能にするように適合されている互換性のあるおよび/または対応するAPIインターフェースと動作可能に接続されてよい。
上で説明されているように、システムは、複数の物理的電気的インターコネクトによって相互接続され得る、構成可能な、たとえば、事前構成されおよび/またはハード配線された、デジタル論理回路の1つまたは複数のセットから形成され得る1つまたは複数の集積回路上に実装されてよい。そのような事例において、集積回路は、たとえば、メモリから1つまたは複数の構成可能な構造プロトコルを受信するための、メモリインターフェースなどの入力を有するものとしてよく、構成可能な処理構造プロトコルに従って集積回路上に1つまたは複数の構造を実装するようにさらに適合され得る。入力のメモリインターフェースは、また、ゲノムデータの複数のリードの形態をとり得る、ゲノム配列データを受信するように構成され得る。インターフェースは、また、1つまたは複数の遺伝子参照配列およびインデックスにアクセスするように適合され得る。
様々な事例において、デジタル論理回路は、デジタル論理回路のサブセットから各々形成される処理エンジンのセットとして配置構成され得る。デジタル論理回路および/または処理エンジンは、ゲノム配列データの複数のリードを生成するように一次、二次、および/または三次処理プロトコルの1つまたは複数の事前構成可能なステップを実行し、ならびに/あるいは遺伝子参照配列または他の遺伝子配列由来情報などに従って、ゲノムデータの複数のリードを処理するように構成され得る。集積回路は、プラットフォームアプリケーションプログラミングインターフェース(API)などに従って、一次、二次、および/または三次処理から結果データを出力するための出力をさらに有し得る。
特に、様々な実施形態において、デジタル論理回路および/または処理エンジンのセットは、複数のゲノム処理パイプラインを形成するものとしてよく、たとえば、各パイプラインは、バイオインフォマティクス処理プラットフォームによる一次および/または二次処理から結果データを受信し、結果データを作成するためにそれに対して1つまたは複数の解析プロセスを実行するようにプラットフォームアプリケーションプログラミングインターフェースに従って定義される入力を有するものとしてよい。それに加えて、複数のゲノム処理パイプラインは、一次および/または二次処理済みデータからの結果データに対し実行されるべき二次および/または三次処理オペレーションを定義する共通パイプラインAPIを有するものとしてよく、たとえば、複数のゲノム処理パイプラインの各々は、二次および/または三次処理オペレーションのサブセットを実行し、パイプラインAPIに従って二次および/または三次処理の結果データを出力するように構成される。
そのような事例において、複数のゲノム解析アプリケーションが、メモリおよび/または関連付けられている検索可能アプリケーションリポジトリ内に記憶されてよく、たとえば、複数のゲノム解析アプリケーションの各々は、複数のゲノム処理パイプラインのうちの1つまたは複数などによって、一次、二次、および/または三次処理の結果データからゲノム前または後処理済みデータの目標解析を実行するために、コンピュータプロセッサによる実行などを行うようにコンピュータによって電子媒体を介してアクセス可能である。特定の事例において、複数のゲノム解析アプリケーションの各々は、APIによって定義されてよく、一次、二次、および/または三次処理の結果データを受信し、および/または前または後処理済みゲノムデータの目標解析を実行し、および目標解析からの結果データを1つまたは複数のゲノムデータベースのうちの1つに出力するように構成され得る。
この方法は、それに加えて、たとえば、GUIのメニューから、システムの複数の利用可能なゲノム処理パイプラインから1つまたは複数のゲノム処理パイプラインを選択するステップと、アプリケーションリポジトリ内に記憶されている複数のゲノム解析アプリケーションからの1つまたは複数のゲノム解析アプリケーションを選択するステップと、コンピュータプロセッサを使用することで、1つまたは複数の選択されたゲノム解析アプリケーションを実行して、一次、二次、および/または三次処理の結果データからのゲノムデータの目標解析を実行するステップを含む。
それに加えて、様々な実施形態において、マッピング、アライメント、およびソーティング、およびバリアントコーリングはすべて、チップ上で行われてよく、ローカル再アライメント、重複マーキング、塩基クオリティスコアリキャリブレーションは、および/または三次処理プロトコルおよび/またはパイプラインのうちの1つまたは複数は、様々な実施形態において、また、チップ上でまたはソフトウェアで行われるものとしてよく、様々な事例において、SAMおよび/またはBAMおよび/またはCRAMなどの様々な圧縮プロトコルも、チップ上で行われ得る。しかしながら、一次、二次、および/または三次処理済みデータが作成された後、これは、解釈および/または協調解析プロトコルなどを含む、バリアントコーリングモジュール、二次、三次、および/または他の処理プラットフォームの実行などのために、システム上で送信されること、クラウドに送信されることなどによって、伝送される前などに、圧縮され得る。これは、その三次処理を含む、バリアントコーリングが、移動するターゲットであり得る、たとえば、業界で使用する標準化された合意したアルゴリズムがない、という事実が与えられた場合に特に有用であり得る。
したがって、異なるアルゴリズムが、望み通りに、異なるタイプの結果を達成するために、リモートユーザなどによって使用されてよく、したがって、この機能の実行のためのクラウドベースモジュールを有することは、特定の所与の時点で有用なアルゴリズムを選択する柔軟な対応を可能にするために、また直列および/または並列処理のためにも有用であり得る。したがって、本明細書で開示されているモジュールの1つが、たとえばチップ上のハードウェア、またはたとえばクラウド上のソフトウェアのいずれかとして実装されてよいが、いくつかの実施形態では、モジュールのすべてが、その機能がチップ上で実行されるように構成され得るか、またはモジュールのすべてが、その機能がクラウドなどのリモートで実行されるように構成され得るか、またはモジュールの混合があり、一部は1つまたは複数のチップ上に位置し、一部はクラウド上に位置決めされる。さらに、示されているように、様々な実施形態において、チップそれ自体は、NGSおよび/またはシークエンサオンアチップなどの、遺伝子シークエンサと連動して、およびいくつかの実施形態では、それと一緒に即時動作する形で機能するように構成され得る。
より具体的には、様々な実施形態において、本開示の装置は、データ解析モジュールのパイプラインを使用することなどによって、ゲノミクスデータを処理するように構成されているチップなどの、チップであってよい。したがって、図45を見るとわかるように、ゲノミクスパイプラインプロセッサチップ100は、ゲノミクスパイプラインプロセッサシステム10の関連付けられているハードウェアと一緒に実現される。チップ100は、たとえば、外部メモリ102(「DDR3メモリコントローラ」のところの)との1つまたは複数の接続部、およびホストコンピュータ1000などの、外部世界との接続部104(たとえば、PCIeまたはQPIインターフェース)を有する。クロスバー108(たとえば、スイッチ)は、メモリインターフェースへのアクセスを様々な要求者に提供する。DMAエンジン110は、ホストとプロセッサチップ100の外部メモリ102との間(クロスバー108を介した)、および/またはホストと中央コントローラ112との間でデータを高速転送する。中央コントローラ112は、特に多数の処理エンジン13の作業を連携する、チップオペレーションを制御する。処理エンジンは、物理的電気的インターコネクトによって相互接続され、エンジンクラスタ11/114に編成されているハード配線されたデジタル論理回路のセットから形成される。いくつかの実装形態において、1つのクラスタ11/114内のエンジン13は、アービタ115を介して1つのクロスバーポートを共有する。中央コントローラ112は、エンジンクラスの各々への接続部を有する。各エンジンクラスタ11/114は、マッパ120(またはマッピングモジュール)、アライナ122(またはアライメントモジュール)、およびソータ124(またはソーティングモジュール)を含む、ゲノムデータを処理するための処理エンジン13を多数有し、バリアントコーリングなどの他の機能の実行のための1つまたは複数の処理エンジンも提供され得る。したがって、エンジンクラスタ11/114は、バリアントコールモジュールなどの、他のエンジンまたはモジュールも備えることができる。
本明細書で説明されている実装形態と一致する1つのデータフローモデルによれば、ホストCPU1000は、コマンドおよびデータをDMAエンジン110を介して中央コントローラ112に送信し、処理エンジン13へのデータの負荷分散を行う。処理エンジンは、処理済みデータを中央コントローラ112に返し、それをDMAエンジン110を介してホストにストリーミングで戻す。このデータフローモデルは、マッピングおよびアライメントおよびバリアントコーリングに適している。示されているように、様々な事例において、ホストCPUとの通信は、比較的疎または密の結合、QPIなどの低遅延、高帯域幅インターコネクトなどを通じて行うものとしてよく、たとえば、2つまたはそれ以上のデバイスの関連付けられているメモリ素子の間のキャッシュコヒーレンシを維持する。
たとえば、様々な事例において、本明細書で説明されているように、ハイブリッドソフトウェア/ハードウェア加速環境におけるマッピング/アライメント/バリアントコーリングなど、ビッグデータアナリティクスを実行するときなどに、様々なパワーおよび/またはスペースに関する制約条件があるため、システムデバイス間でデータが高速に、それとともに、シームレスに移動される必要がある場合、キャッシュコヒーレントな密結合インターフェースは、シークエンサ、DSP(デジタルシグナルプロセッサ)、CPUおよび/またはGPUまたはCPU/GPUハイブリッド、加速集積回路、たとえば、FPGA、ASIC(ネットワークカード上の)、さらには高速キャッシュコヒーレント方式の他のスマートネットワークアクセラレータなどの、結合されたデバイスとの間の、システム全体のそのようなデータ伝送を実行するのに有用であり得る。そのような事例において、好適なキャッシュコヒーレントな、密結合インターコネクトは、異なる命令セットアーキテクチャ(ISA)を使用する、多数の処理プラットフォームの間などの処理が、異なるプラットフォームの間で、および/または1つまたは複数の関連付けられているアクセラレータ、たとえば、ハード配線されたFPGA実装アクセラレータなどとデータをコヒーレントに共有し、たとえば、異種コンピューティングを効率的に使用可能にし、それによってシステムのコンピューティング効率を著しく改善することができることを確実にするように構成されている単一のインターコネクト技術仕様のうちの1つまたは複数であってよく、様々な事例において、これはクラウドベースサーバシステムとして構成されてよい。したがって、いくつかの事例において、QPI、コヒーレントプロセッサアクセラレータインターフェース(CAPI)、NVLink/GPU、または他の好適なインターコネクトプロトコルなどの、高帯域幅、低遅延、キャッシュコヒーレントのインターコネクトプロトコルは、加速エンジンの使用を伴い、その機能は処理されるべき様々なデータがシステム内のどこに置かれようと関係なく様々なシステムコンポーネントの間でシームレスに、データにアクセスし、処理し、移動する必要性を要求し得るマッピング、アライメント、および/またはバリアントコーリング計算機能に関連するような、システムの様々なコンポーネントの間の様々なデータ伝送を円滑にするために使用され得る。そして、そのようなデータが、RAMまたはDRAMなどの、関連付けられているメモリデバイス内に保持される場合、伝送活動は、迅速に処理される、コヒーレントな探索およびメモリ内データベース処理をさらに伴い得る。
特に、特定の実施形態において、そのような異種コンピューティングは、縮小命令セットコンピューティング形式で相互接続され得る多数の処理および/または加速アーキテクチャを伴い得る。そのような事例において、そのようなインターコネクトデバイスは、システム内のすべてのコンピューティングコンポーネントが単一の一貫したコヒーレントな方式で1つまたは複数の関連付けられているメモリへのアドレス指定、読出し、および/または書込みを行うことを可能にするように構成されている、コヒーレントコネクトインターコネクトシックス(coherent connect interconnect six)(CCVI)デバイスであってよい。より具体的には、CCVIインターコネクトは、CPUおよび/またはGPUまたはCPU/GPUハイブリッド、FPGA、および/または関連付けられているメモリなどのシステムの様々なデバイスを互いに、極端に短縮された遅延速度を証拠としながら様々なコンポーネントの間の転送速度を高めるように構成されている高帯域幅方式などで接続するために使用され得る。特に、CCVIインターコネクトは、データがどこにあるかに関係なく、また他の方法ではデータをコヒーレントにするために実装される必要がある複雑なプログラミング環境を必要とすることなく、システムのコンポーネントがデータにアクセスし処理することを可能にするように使用され、構成され得る。処理時間をスピードアップする、たとえば、短縮し、精度を高めるために使用され得る他のそのようなインターコネクトは、QPI、CAPI、NVLink、またはシステムの様々なコンポーネントを相互接続し、および/または関連付けられているPCI-expressペリフェラルインターコネクトの上に載せるように構成され得る他のインターコネクトを含む。
したがって、本明細書で説明されている実装形態と一致する代替的のデータフローモデルによれば、ホストCPU1000はデータを外部メモリ1014に、DMAエンジン110およびクロスバー108を介して直接、または中央コントローラ112を介してのいずれかで、ストリーミングする。ホストCPU1000は、コマンドを中央コントローラ112に送信し、これはコマンドを処理エンジン13に送信し、これは処理エンジンにどのようなデータを処理すべきかを指令する。密結合であるため、処理エンジン13は、外部メモリ1014またはそれに関連付けられているキャッシュから直接、入力データにアクセスし、それを処理し、結果を外部メモリ1014に、密結合されているインターコネクト3などを介して書き戻し、ステータスを中央コントローラ112に報告する。中央コントローラ112は、外部メモリ1014からホスト1000に結果データをストリーミングで戻すか、またはDMAエンジン110を介して結果データそれ自体をフェッチすることをホストに通知するかのいずれかを行う。
図46は、ゲノミクスパイプラインプロセッサおよびシステム20を例示しており、これはエンジンクラスタ11/214の内部の処理エンジン13の全装備を示している。パイプラインプロセッサシステム20は、1つまたは複数のエンジンクラスタ11/214を備え得る。いくつかの実装形態において、パイプラインプロセッサシステム20は、4つまたはそれ以上のエンジンクラスタ11/214を備える。処理エンジン13または処理エンジンタイプは、限定することなく、マッパ、アライナ、ソータ、ローカルリアライナ、塩基クオリティリキャリブレータ、重複マーカー、バリアントコーラー、圧縮器、および/または復元器を含み得る。いくつかの実装形態において、各エンジンクラスタ11/214は、各処理エンジンタイプのうちの1つを有する。したがって、同じタイプのすべての処理エンジン13は、異なるクロスバーポートを通じて、クロスバー208に同時にアクセスするが、それは、各々異なるエンジンクラスタ11/214内にあるからである。すべての処理エンジンタイプがすべてのエンジンクラスタ11/214内に形成される必要はない。マッパ(および取り付けられているアライナ)およびソータなどの、大量の並列処理またはメモリ帯域幅を必要とする処理エンジンタイプは、パイプラインプロセッサシステム20のすべてのエンジンクラスタ内に出現し得る。他のエンジンタイプは、それの性能要件またはパイプラインプロセッサシステム20の性能要件を満たすために必要に応じてエンジンクラスタ214の1つまたはいくつかのみの中に出現し得る。
図47は、ゲノミクスパイプラインプロセッサシステム30を例示しており、これは、上で説明されているエンジンクラスタ11に加えて、1つまたは複数の内蔵中央処理装置(CPU)302を示している。内蔵CPUの例は、Snapdragons(登録商標)または標準ARM(登録商標)コアを含み、または他の事例では、FPGAであってよい。これらのCPUは、DBGの構築またはHMMの実行などの、高度なバリアントコーリングなどの、完全プログラム可能なbio-ITアルゴリズムを実行する。そのような処理は、必要に応じてCPUコア302によってコールされ得る、様々なエンジンクラスタ11内のコンピューティング機能によって加速される。さらに、マッピングおよびアライメントなどの、エンジン中心処理であっても、CPUコア302によって管理されるものとしてよく、高度のプログラム可能性をもたらす。
図48は、ゲノミクスパイプラインプロセッサシステムおよび方法の処理フローを例示している。いくつかの好ましい実装形態において、データに対するパスは3つある。第1のパスは、マッピング402およびアライメント404を含み、リードのフルセットがエンジン13を通じてストリーミングされる。第2のパスは、ソーティング406を含み、ソーティングされるべき1つの大きなブロック(たとえば、実質的な部分または単一の染色体に以前にマッピングされたすべてのリード)は、メモリ内にロードされ、処理エンジンによってソーティングされ、ホストに返される。第3のパスは、下流段階(ローカル再アライメント408、重複マーキング410、塩基クオリティスコアリキャリブレーション(BQSR)412、SAM出力414、縮小BAM出力416、および/またはCRAM圧縮418)を含む。第3のパスのステップおよび機能は、任意の組合せまたは部分組合せ、および任意の順序、単一のパスで行われ得る。
したがって、この方式で、データは、本明細書で説明されている方法の1つまたは複数などに従って、1つまたは複数の処理エンジンからホストCPUに比較的シームレスに受け渡される。したがって、上で説明されているような仮想パイプラインアーキテクチャは、1つの処理エンジンを通じて次々に順番にリードをホストからメモリ内の循環バッファにストリーミングし、ホストに戻すために使用される。いくつかの実装形態において、CRAM復元は、別個のストリーミング機能であってよい。いくつかの実装形態において、SAM出力414、縮小BAM出力416、および/またはCRAM圧縮418は、バリアントコーリング、圧縮、および復元で置き換えられてよい。
様々な事例において、配列解析パイプラインのハードウェア実装形態が説明されている。これは、FPGAまたはASICまたは構造化ASIC実装形態などの多くの異なる方法で実行され得る。FPGAまたはASICまたは構造化ASICによって実装される機能ブロックは、図49で述べられている。したがって、システムは、配列解析を実行する多数のブロックまたはモジュールを備える。ハードウェア実現への入力は、FASTQファイルであってよいが、この形式に限定されるわけではない。FASTQファイルに加えて、FPGAまたはASICまたは構造化ASICへの入力は、NGSなどの技術からのフロー空間情報などの、サイド情報からなる。ブロックまたはモジュールは、次のブロックを含み得る。誤り制御、マッピング、アライメント、ソーティング、ローカル再アライメント、重複マーキング、塩基クオリティリキャリブレーション、BAM、およびサイド情報低減、および/またはバリアントコーリング。
これらのブロックまたはモジュールは、ハードウェア内に存在するか、またはハードウェアによって実装され得るが、これらのブロックのうちのいくつかは、省かれるか、または他のブロックが追加され、配列解析パイプラインを実現する目的を達成し得る。ブロック2および3では、配列解析パイプラインプラットフォームの2つの代替的形態を説明している。配列解析パイプラインプラットフォームは、クラウドおよび/またはクラスタストレージとともにFPGAまたはASICまたは構造化ASICおよびホスト(たとえば、PC、サーバ、クラスタ、またはクラウドコンピューティング)によって支援されるソフトウェアを含む。ブロック4~7は、配列解析パイプラインが有することができる異なるインターフェースを説明している。ブロック4および6では、インターフェースは、PCIeおよび/またはQPI/CAPI/CCVI/NVLinkインターフェースであってよいが、PCIe、QPI、または他のインターフェースに限定されない。ブロック5および7において、ハードウェア(FPGAまたはASICまたは構造化ASIC)は、シークエンシング機に直接一体化され得る。ブロック8および9では、PC、サーバクラスタ、またはシークエンサなどのホストシステム内に一体化されたハードウェア配列解析パイプラインの一体化を説明している。ハードウェアFPGAまたはASICまたは構造化ASICの周りには、複数のDDR3メモリ素子およびPCIe/QPI/CAPI/CCVI/NVLinkインターフェースがある。FPGA/ASIC/sASICを備えるボードは、ARM(登録商標)、Snapdragon(登録商標)、または他のプロセッサなどのいずれかの低電力CPUであり得る、ホストCPUおよび/またはGPUからなるホストコンピュータに接続する。ブロック10は、三次解析を実行するために第三者アプリケーションによってアクセスされ得るハードウェア配列解析パイプラインAPIを例示している。
図50Aおよび図50Bは、処理されるべきデータおよび結果データなどのデータをCPU/GPUからFPGA100に行きつ戻りつして転送するためなど、本開示の、処理チップ100、たとえば、FPGA、さらにはFPGA100をホストCPU/GPUに結合するための1つまたは複数の関連付けられている素子105を有する拡張カード104を示している。図50Bは、本開示の複数の、たとえば、3つの、処理チップを含む複数の、たとえば、3つの、スロットを有する図50Aの拡張カードを示している。
特に、図50Aおよび図50Bに示されているように、様々な実施形態において、本開示の装置は、シリコンフィールドゲートプログラマブルアレイ(FPGA)または特定用途向け集積回路(ASIC)100に埋め込まれるなどのコンピューティングアーキテクチャを含み得る。FPGA100は、コンピューティングプラットフォームに差し込むことができる、ペリフェラルコンポーネントインターフェース-Express(PCIe)カードなどの、プリント基板(PCB)104内に一体化され得る。様々な事例において、図50Aに示されているように、PCIeカード104は、単一のFPGA100を備えるものとしてよく、FPGAはローカルメモリ105によって囲まれてよいが、様々な実施形態において、図50Bに示されているように、PCIeカード104は、複数のFPGA100A、100B、および100Cを備えるものとしてよい。様々な事例において、PCIカードは、PCIeバスも含み得る。PCIeカード104は、極端に大きいデータセットに対してアルゴリズムを実行するためにコンピューティングプラットフォームに追加され得る。代替的実施形態において、図34に関して上で指摘されているように、様々な実施形態において、FPGAは、インターローパーなどを介して、CPU/GPUと直接的に関連付けられ、QPI、CAPI、CCVIインターフェースなどを介して、それらと密結合されるように適合され得る。したがって、様々な事例において、FPGAを伴うゲノムシークエンシングの全体的なワークフローは、サンプル調製、アライメント(マッピングおよびアライメントを含む)、バリアント解析、生物学的解釈、および/または特定応用を含み得る。
したがって、様々な実施形態において、本開示の装置は、極端に大きいデータセットに作用する、マッピングおよびアライメントアルゴリズムなどのアルゴリズムの高性能実行を達成するコンピューティングアーキテクチャを含むものとしてよく、たとえば、このデータセットは、参照の局在性(LOR)がよくない。これらのアルゴリズムは、現代的ないわゆる次世代シークエンサから、数百万個の短いリード配列からの全ゲノムを再構築するように設計されており、ランダムにアクセスされる多ギガバイトデータ構造体を必要とする。再構築が達成された後、本明細書において上で説明されているように、類似の特性を有するさらなるアルゴリズムが、一方のゲノムを他方のゲノムのライブラリと比較し、遺伝子機能解析を行うなどのために使用される。
汎用マルチコアCPUおよび汎用グラフィックス処理ユニット(GPGPU)を含むなど、本明細書において詳しく説明されているオペレーションのうちの1つまたは複数を実行するように一般に構築され得る2つの他の典型的なアーキテクチャがある。そのような事例において、マルチコアシステムにおける各CPU/GPUは、古典的なキャッシュベースのアーキテクチャを有するものとしてよく、命令およびデータは、小さいが極端に高速なアクセスを行うレベル1キャッシュ(L1キャッシュ)からフェッチされる。多数のL1キャッシュは、より大きい、ただし低速である共有L2キャッシュに接続されてよい。L2キャッシュは、大きいが低速なDRAM(ダイナミックランダムアクセスメモリ)システムメモリに接続され得るか、またはその後DRAMに接続され得るなおいっそう大きいが低速であるL3キャッシュに接続され得る。この配置構成の利点は、プログラムおよびデータが参照の局在性を示すアプリケーションがDRAMと同じくらいの大きさだがL1キャッシュと同じくらい速い単一のメモリを備えるコンピュータ上で実行しているかのように振る舞うことであるものとしてよい。フルカスタムの高度に最適化されたCPUは、非常に高いクロックレート、たとえば、2から4GHzで動作するので、このアーキテクチャは、よい性能を達成するのに本質的である場合がある。それに加えて、図33に関して詳細に説明されているように、様々な実施形態において、CPUはFPGA、たとえば、本明細書で説明されている様々なオペレーションに関係する1つまたは複数の機能を実行するように構成されているFPGAに、QPI、CCVI、CAPIなどの高帯域幅低遅延インターコネクトなどを介して密結合され、それにより、性能さらにはシステム全体で転送されるデータの速度およびコヒーレンシをさらに増大させ得る。そのような事例において、キャッシュコヒーレンシは、上で述べたように、2つのデバイスの間で維持され得る。
さらに、GPGPUは、それ専用の小さいL1キャッシュを各々有する、非常に多くの小さいCPUを実装することなどによって、このアーキテクチャを拡張するために使用されてよく、各CPUは、データの異なるサブセットに対して同じ命令を実行する。これはいわゆるSIMD(Single Instruction stream, Multiple Data stream、シングルインストラクションストリームマルチプルデータストリーム)アーキテクチャである。多数のCPUにわたって命令フェッチおよびデコード論理を共有することによって経済性が獲得され得る。各キャッシュは、相互接続ネットワークを介して多数の大きい外部DRAMにアクセスする。実行されるべき計算の並列性が非常に高いと仮定すると、GPGPUは、多数のコンピューティングリソースを有していることから汎用CPUに勝る著しい利点を有する。それにもかかわらず、それらはまだキャッシングアーキテクチャを有しており、その性能は参照の局在性の十分に高い程度を有しないアプリケーションによって損なわれる。そのためキャッシュミス率が高くなり、外部DRAMからデータが届くのを待っている間、プロセッサはアイドル状態になる。
たとえば、様々な事例において、ダイナミックRAMが、システムメモリに使用され得るが、それは、スタティックRAM(SRAM)より経済的であるからである。経験則から、DRAMはSRAMと同じコストで4倍の容量を有していた。しかしながら、DRAMより有利なSRAMに対する需要が減少したせいで、この差異は、需要が大きいDRAMに有利なスケールメリットによりかなり広がっていた。コストとは無関係に、SRAMのフリップフロップを実装するために1ビット当たり4トランジスタに比べて1ビット当たり1トランジスタおよびコンデンサしか必要としないので、DRAMの密度は同じシリコン面積内にレイアウトされるSRAMの密度の4倍である。DRAMは、情報の単一ビットをコンデンサ上の電荷の存在または非存在として表す。
この配置構成の問題は、電荷が時間の経過とともに減衰し、したがって定期的にリフレッシュされなければならないという点である。これを行うことが必要なため、メモリを独立したブロックに編成し、1要求毎に複数ワードのメモリを送出するメカニズムにアクセスするアーキテクチャが現れた。これは、リフレッシュされている間に所与のブロックが利用不可能であるときの時間を補償する。このアイデアは、所与のブロックが利用可能である間に多くのデータを移動するというものである。これは、SRAMとは対照的で、そこではメモリ内の配置が一定の時間内に1回のアクセスで利用可能である。この特徴は、メモリアクセスをブロック指向ではなく単一ワード指向にすることを可能にする。DRAMは、キャッシュミス毎にメモリのブロックがDRAMから読み込まれるので、キャッシングアーキテクチャではうまく働く。参照の局在性の理論は、ワードNにちょうどアクセスしたばかりである場合、まもなく、たぶんワードN+1、N+2、N+3、...とアクセスしてゆくことになる。
図51は、バイオインフォマティクス処理10などに対する、図50の拡張カードのうちの1つまたは複数を含む、本開示のシステム500の例示的な実装形態を提示する。システムは、本明細書で説明されているような塩基コーリング、誤り訂正、マッピング、アライメント、ソーティング、アセンブリ、バリアントコーリング、および同様のものなどの1つまたは複数の機能を処理パイプラインにおいて実行するように構成されているBioIT処理チップ100を含む。
システム500は、1つまたは複数のプロセッサ100のオンボード機能を構成するように適合されている構成マネージャをさらに備える。特に、様々な実施形態において、構成マネージャは、システム500の1つまたは複数の処理機能を構成するために、疎または密結合インターコネクト上で適切に構成されているドライバなどによって、FPGA、たとえばファームウェアの内部コントローラに命令を通信するように適合される。たとえば、構成マネージャは、受信した命令に従って、マッピング、アライメント、ソーティング、バリアントコーリング、および同様のものなどの、1つまたは複数の望ましいオペレーションを実行するように内部処理クラスタ11および/またはそれに関連付けられているエンジン13を構成するように適合され得る。そのような方式で、ホストシステム1000からチップ100に提供されるデータに対して要求された処理オペレーションも実行するための処理エンジン13を含むクラスタ11のみが、受信した命令に従ってデータを処理することに関わるものとしてよい。
それに加えて、様々な実施形態において、構成マネージャは、システム500のアプリによって提示されるユーザインターフェース(GUI)などによって、本明細書において上でより詳しく説明されているように、API接続などで、第三者ユーザによって、たとえばリモートでそれ自体適合されるようにさらに適合され得る。それに加えて、構成マネージャは、1つもしくは複数の参照または個別に配列決定されたゲノムおよび/またはそのインデックス、および/または1つもしくは複数の以前にマッピングされ、アライメントされ、および/またはソーティングされたゲノムまたはその一部を含むデータベースなどのデータベースを形成するか、または何らかの形で収容するメモリなどの、1つまたは複数の外部メモリに接続されてよい。様々な事例において、データベースは、新たにマッピングされ、アライメントされた遺伝子配列またはそれに関連するVCFなどに対する、1つまたは複数の三次処理プロトコルの実行などのために疾患状態を特徴付ける1つまたは複数の遺伝子プロフィールをさらに含み得る。
システム500は、クラウドまたは少なくともハイブリッドクラウド504通信プラットフォームを形成するためにインターネットなどを介してリモート通信を可能にするウェブベースアクセスも含むものとしてよい。これなどの方式で、BioITプロセッサから生成された処理済み情報、たとえば、結果データは、暗号化されて、外部、たとえば、リモート、データベースなどに電子健康記録として記憶され得る。様々な事例において、EMRデータベースは、疾患状態または傾向を決定するためなど、または1つまたは複数の予防もしくはそれに関連する処置の有効性を解析することを目的として、データに対して1つまたは複数の統計解析を実行するなどのために、中に記憶されている遺伝子情報などに関して、検索可能であるものとしてよい。次いで、そのような情報はEMRデータとともに、さらに処理され、および/または遺伝子情報のソースの信頼性を確実にするような方式でさらなるデータベース508内に記憶されてよい。
より具体的には、図51は、遺伝子配列データに対して配列解析パイプラインを実行するためのシステム500を例示している。システム500は、コンピューティングシステムを含む構成マネージャ502を備える。構成マネージャ502のコンピューティングシステムは、パーソナルコンピュータまたは他のコンピュータワークステーションを含むことができるか、または一組のネットワーク接続コンピュータによって実装されてよい。構成マネージャ502は、1つまたは複数の専用アプリケーションにより、シークエンサまたは他のゲノミクスデータソースからのゲノミクスデータを処理するための構成を生成する、1つまたは複数のAPIによってコンピューティングシステムと接続されている1つまたは複数の第三者アプリケーションをさらに備え得る。構成マネージャ502は、構成をゲノミクスパイプラインプロセッサシステム10にロードするドライバをさらに備える。ゲノミクスパイプラインプロセッサシステム10は結果データをウェブ504または他のネットワークに出力するか、またはウェブ504または他のネットワークを介してアクセスされるべき結果データを出力することができ、これにより、結果データを電子健康記録506または他のナレッジデータベース508に記憶する。
本明細書の上のいくつかの場所において説明されているように、ゲノミクスパイプラインプロセッサを実装するチップは、シークエンサ内に接続されるか、または一体化され得る。チップは、また、たとえばインターローパーを介して直接的に、またはたとえば、PCIeなどを介して拡張カード上で間接的に、接続されるか、または一体化されてよく、拡張カードは、シークエンサ内に接続されるか、または一体化され得る。他の実装形態において、チップは、シークエンサに接続されているサーバコンピュータ内に接続されるか、または一体化され、シークエンサからのゲノムリードをサーバに転送することができる。さらに他の実装形態において、チップは、コンピュータおよびサーバのクラウドコンピューティングクラスタ内のサーバにおいて接続されるか、または一体化され得る。システムは、チップを含むサーバに(たとえば、Ethernetを介して)接続されている1つまたは複数のシークエンサを備えることができ。ゲノムリードは、複数のシークエンサによって生成され、サーバに伝送され、次いで、チップ内でマッピングされアライメントされる。
たとえば、一般的な次世代生成DNAシークエンサ(NGS)データパイプラインでは、一次解析段階処理は、一般的に、所与のシークエンシング技術に特有である。この一次解析段階は、シークエンサ内で検出された物理的信号を、関連付けられているクオリティ(信頼度)スコア、たとえば、FASTQ形式ファイル、または配列および通常はクオリティ情報を含む他の形式とともにヌクレオチド配列の「リード」に翻訳するように機能する。上で述べているような一次解析は、多くの場合に、使用されているシークエンシング技術に性質上きわめて特有である。様々な配列において、ヌクレオチドは、蛍光および/または電荷、電流、または放射光の変化を感知することによって検出される。いくつかの一次解析パイプラインは、多くの場合に、センサ出力を増幅し、フィルタ処理し、分離し、測定するための信号処理、量子化、間引き、平均化、変形などによるデータ量縮小、意味のある信号を識別し、増強し、それらを特定のリードおよびヌクレオチドに関連付ける画像処理または数値処理(たとえば、画像オフセット計算、クラスタ識別)、シークエンシング技術のアーチファクトを補償するアルゴリズム処理およびヒューリスティックス(たとえば、フェージング推定、クロストーク行列)、ベイズ確率計算、隠れマルコフモデル、塩基コーリング(配列内の各位置における最もありそうなヌクレオチドを選択する)、塩基コールクオリティ(信頼度)推定、および同様のものを含む。本明細書において上で説明されているように、これらのステップのうちの1つまたは複数は、集積回路、たとえば、FPGAによって実装されるような、ハードウェアで必要な処理機能のうちの1つまたは複数を実装することによって恩恵を受け得る。さらに、そのような形式が達成された後、二次解析が本明細書で説明されているように進行し、リードを参照ゲノムにマッピングしアライメントすること、ソーティング、重複マーキング、塩基クオリティスコアリキャリブレーション、ローカル再アライメント、およびバリアントコーリングなどによって、配列決定サンプルDNA(またはRNAなど)の内容を決定する。次いで、三次解析が続き、決定されたDNA内容から医学的または研究結果の意味を抽出するものとしてよい。
したがって、上記の処理機能の逐次的性質が与えられた場合、一次、二次、および/または三次処理加速を単一の集積回路、または単一の拡張カード上に位置決めされた多数の集積回路内に一体化することは有利であり得る。これは、有用であるためにシークエンサが一次解析と二次解析の両方を典型的には必要とするデータを作成するので有益であり得、さらに、様々な三次処理プロトコルで使用されてよく、それらを単一デバイスに一体化することは、コスト、スペース、パワー、およびリソース共有に関して最も効率的である。したがって、特定の一態様において、本開示は、遺伝子配列データに対して配列解析パイプラインを実行するためのシステムなどの、システムを対象とする。様々な事例において、システムは、デジタル信号、たとえば、ゲノムデータの複数のリードを表すデジタル信号を提供するデータソースなどの、電子データソースを含むものとしてよく、ゲノムデータの複数のリードの各々は、ヌクレオチドの配列を含む。システムは、1つまたは複数の遺伝子参照配列および/または1つまたは複数の遺伝子参照配列のインデックスを記憶するメモリなどのメモリの1つまたは複数を備えてよく、および/またはシステムは、ASIC、FPGA、またはsASICなどの、チップを備え得る。
本明細書で説明されている主題の1つまたは複数の態様または特徴は、デジタル電子回路、集積回路、専用設計の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、構造化ASICコンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せで実現され得る。
これらの様々な態様または特徴は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を伝送するように結合された、専用または汎用のものとしてよい、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能であり、および/または解釈可能である1つまたは複数のコンピュータプログラムによる実装を含むことができる。プログラム可能システムまたはコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワークを通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポーネント、またはコードとも呼ばれ得る、これらのコンピュータプログラムは、プログラム可能なプロセッサ用の機械語命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実装され得る。本明細書で使用されているように、「機械可読媒体」という用語は、機械可読信号として機械語命令を受信する機械可読媒体を含む、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用されるコンピュータプログラム製品、装置、および/またはたとえば、磁気ディスク、光ディスク、メモリ、プログラム可能論理デバイス(PLD)などのデバイスを指す。「機械可読信号」という用語は、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用される信号を指す。機械可読媒体は、たとえば、非一時的ソリッドステートメモリまたは磁気ハードドライブまたは同等の記憶媒体などのように、そのような機械語命令を非一時的に記憶することができる。機械可読媒体は、代替的に、またはそれに加えて、たとえば、プロセッサキャッシュまたは1つまたは複数の物理的プロセッサコアに関連付けられている他のランダムアクセスメモリなどのように、そのような機械語命令を一時的方式で記憶することができる。
それに加えて、21世紀のデータ作成および取得における成長が著しく、現代の開発が基礎に置くますます増大する計算集約的解析を取り扱うことができる処理能力を高める必要性が生じた。スーパーコンピュータが導入され、広範なプラットフォーム上で技術開発を進めるに有用であった。しかしながら、スーパーコンピューティングは有用であるが、今日の技術会社の多くが直面している非常に複雑な計算問題のうちのいくつかについては不十分であることが実証されている。特に、ヒトゲノムのシークエンシング以来、生物学的技術における技術的進歩は指数関数的であった。それにもかかわらず、毎日に作成される生データの複雑さが速い速度で増大するのを見ると、生成されるデータの処理および解析に問題となるボトルネックが生じている。したがって、量子コンピュータは、このボトルネックを解決する助けとなることを目指して開発された。量子コンピューティングは、コンピューティングにおける新しいフロントラインを代表し、世界で最も難しい計算ニーズを解決する全く新しいアプローチを提供するものである。
量子コンピューティングは、1982年以降に知られるようになった。たとえば、International Journal of Theoretical Physicsにおいて、Richard Feynmanは、量子コンピューティングを実行するためのシステムを理論化した。特に、Feynmanは、コンピュータ処理の従来の機能がより速く効率的に実行されるような仕方で他の量子システムをシミュレートする際に使用するように構成され得る量子システムを提案した。参照により全体が本明細書に組み込まれている、Feynman, 1982, International Journal of Theoretical Physics 21, 467~488ページを参照。特に、量子コンピュータシステムは、複雑な計算において指数関数的な時間節約を示すように設計され得る。そのような制御可能な量子システムは、量子コンピュータとして一般に呼ばれており、量子システムをシミュレートするために使用できるだけでなく、専用量子アルゴリズムを実行するように適合させることもできる汎用処理コンピュータとして開発するのに成功している。より具体的には、複雑な問題は、システムの挙動が方程式に対する解に関する情報を提供する仕方で量子システムにおいて表現され得る、ハミルトニアンなどの、方程式の形でモデル化することができる。参照により全体が本明細書に組み込まれている、Deutsch, 1985, Proceedings of the Royal Society of London A 400, 97~117ページを参照。そのような事例において、量子システムの挙動に対するモデルを解くことは、量子システムの粒子の波動力学的記述に関係する差分方程式、たとえば、ハミルトニアンを解くことを伴うように構成され得る。
本質的に、量子コンピューティングは、量子力学的現象、たとえば、重ね合わせおよび/またはもつれを使用して大量のデータに対して極端に速く様々な計算を実行する計算システムである。したがって、量子コンピュータは、従来のデジタル論理コンピュータに勝る非常に大きな改善となっている。特に、従来のデジタル論理回路は、導電性基板上に電子回路をハード配線して形成される2値デジタル論理ゲートを使用することによって機能する。デジタル論理回路では、トランジスタの「オン/オフ」状態は、基本情報単位、たとえば、ビットとして使用される。特に、一般のデジタルコンピュータプロセッサでは、データを符号化するために、「オン」または「オフ」状態の、たとえば0または1として2進数、たとえば、ビットを使用する。その一方で量子計算は、量子ビットまたはqubitと呼ばれる、もつれた状態の重ね合わせを使用してデータを符号化する情報デバイスを使用する。
そのような量子計算を実行するための基礎は、量子ビットを形成する、情報デバイス、たとえば、ユニットである。qubitは、qubitがデジタルビットよりはるかに大きい計算潜在性を有することを除き従来のデジタルコンピュータのデジタル「ビット」に類似している。特に、本明細書においてより詳しく説明されるように、デジタルビットに見られるような、「0」および「1」のような、2つの離散状態のうちの1つのみを符号化する代わりに、qubitは、「0」および「1」の重ね合わせの中に置くこともできる。特に、qubitは、「0」および「1」の両方の状態で同時に存在することができる。その結果、qubitは、両方の状態に対して量子計算を同時に実行することができる。一般に、N個のqubitは、2N個の状態の重ね合わせであり得る。したがって、量子アルゴリズムは、この重ね合わせの特性を利用していくつかの計算をスピードアップすることができる。
したがって、qubitは、従来のデジタルコンピュータにおけるビットに類似しており、コヒーレンスを示す情報デバイスの一種である。特に、量子コンピューティングデバイスは、複数の情報デバイス、たとえば、qubit、構成ブロックから構築される。たとえば、量子コンピュータのコンピューティングパワーは、その構成ブロックを形成する情報デバイスが制御可能な方式で一緒に結合される、たとえば、もつれ状態になるとともに増大する。そのような事例において、一方の情報デバイスの量子状態は、それが結合される他方の情報デバイスの各々の量子状態に影響を及ぼす。
したがって、古典的なデジタルコンピューティングにおけるビットのように、量子コンピューティングにおけるqubitは、量子情報などの、情報の符号化のための基本単位として使用される。ビットと同様に、qubitは、2状態系内でデータを符号化し、この事例では、これは量子力学系である。特に、qubitについて、2つの量子状態は、単一光子の偏光を伴うなど、もつれを伴う。したがって、古典系では、ビットは一方の状態または他方の状態をとらなければならず、量子コンピューティングプラットフォームでは、qubitは、両方の状態の重ね合わせを同時にとるものとしてよく、その特性は量子処理の基本である。その結果、qubitと古典的ビットとの間の際立った特徴は、多数のqubitは量子もつれを示すということである。そのようなもつれは、一組のqubitが古典系において可能な以上に高い相関を表すことを可能にする非局所的特性である。
機能するためには、そのような情報デバイス、たとえば、量子ビットは、いくつかの要求条件を満たさなければならない。第1に、情報デバイスは、量子二準位系に還元可能でなければならない。これは、情報デバイスが、計算を実行するために使用され得る2つの区別可能な量子状態を有していなければならないことを意味する。第2に、情報デバイスは、もつれおよび重ね合わせのような量子効果を作成することができなければならない。それに加えて、いくつかの事例において、情報デバイスは、コヒーレント形式などで、情報、たとえば、量子情報を記憶するように構成されてよい。そのような事例において、コヒーレントデバイスは、おおよそマイクロ秒以上などの、長い期間にわたって著しい劣化なしで永続する量子状態を有するものとしてよい。
特に、量子もつれは、粒子の対または群が生成されるか、または一方の粒子の量子状態が、それらを隔てる空間があるにも関わらず、互いに独立して記述され得ない仕方で相互作用するように他の何らかの形で構成されるときに生じる物理的現象である。その結果、一方の粒子の状態を他方と分離して記述する代わりに、量子状態は、系について全体として記述されなければならない。そのような事例において、もつれた粒子に対し実行される、位置、モーメント、スピン、および/または偏光などの、様々な物理的特性の測定が相関される。たとえば、粒子の対が、全スピンがゼロであると知られるような方法で生成され、一方の粒子が特定の軸上で時計回りのスピンを有することがわかった場合、他方の粒子のスピンは、同じ軸上で測定したときに、反時計回りであることがわかり、これはそのもつれによるものと期待される。
したがって、もつれた対の一方の粒子は、測定の時点では任意に大きい距離だけ隔てられている可能性のある、粒子間で通信されているそのような情報に対する手段は知られていないとしても、他方に対してどのような測定が実行され、どのような結果であったかを単純に「知る」。この関係があるため、一度に1つの値しか有し得ない古典的なビットとは異なり、量子もつれは、複数の状態が同時に作用されることを許す。これは、これらの特異なもつれ関係であり、量子コンピューティングの開発に利用されている量子状態である。
したがって、実行できる純粋なqubit状態を使用する様々な種類の物理的操作がある。たとえば、量子論理ゲートが形成され、基本qubitで動作するように構成されてよく、qubitはユニタリー変換を受け、たとえば、ユニタリー変換はqubitの回転、または他の量子現象に対応する。実際、光子、電子、核スピン、コヒーレント光状態、光格子、ジョセフソン接合、量子ドット、および同様のものなどの、二準位系がqubitとして使用され得る。特に、量子ゲートは、少数のqubitで動作する量子回路の基礎である。たとえば、量子回路は、2または3、またはそれ以上などの、固定された数のqubitに作用する量子ゲートからなる。qubitは、したがって、量子回路の構成ブロックであり、古典的な論理ゲートが従来のデジタル回路に対するものであるのと同様である。特に、量子回路は、量子計算のモデルであり、この計算は、nビットレジスタの量子力学的類似体に対する可逆変換である一連の量子ゲートである。そのような類似構造は、n-qubitレジスタと称される。したがって、古典的な論理ゲートと異なり、量子論理ゲートは常に可逆である。
特に、本明細書において説明されているように、デジタル論理ゲートは、1つまたは複数の2値入力に対して論理演算、たとえば、ブール関数を実行して単一の2値出力を作成するための電子スイッチとして働く1つまたは複数のダイオードまたはトランジスタを使用して実装され得る物理的な配線デバイスである。増幅では、論理ゲートは、ブール関数が構成されるのと同じ方法で直列接続されることができ、それにより、ブール論理のすべての物理的モデルの構築が可能になり、したがって、ブール論理で記述され得るアルゴリズムおよび数学演算のすべては、デジタル論理ゲートによって実行できる。同様の方式で、ブール論理演算の実行のために、量子論理ゲートの直列接続が形成され得る。
量子ゲートは、通常、行列として表される。様々な実装形態において、量子ゲートは、2k×2kのユニタリー行列によって表され得るk個のqubitに作用する。そのような事例において、ゲートの入力および出力におけるqubitの個数は、等しくなければならず、特定の量子状態に対するゲートの作用は、そのゲートを表す行列を、状態を表すベクトルに乗算することによって見つかる。したがって、この構成が与えられた場合、量子計算オペレーションがごく少数の量子ビットに対して実行され得る。たとえば、かなり複雑な計算を可能な確率的古典的アルゴリズムに比べて高速に実行するように構成されている量子アルゴリズムがある。特に、量子アルゴリズムは、計算の量子回路モデル上で実行されるアルゴリズムである。
古典的アルゴリズムが、古典的コンピュータのデジタル論理回路によって実行され得るステップバイステップ命令またはプロシージャの有限列である場合、量子アルゴリズムは、ステップの各々が量子コンピュータ上で実行され得る、ステップバイステッププロシージャである。しながら、Shor、Grovar、Simonのアルゴリズムなどの、量子アルゴリズムが存在しているとしても、すべての古典的アルゴリズムも、正しい構成により量子コンピュータ上で実行され得る。量子アルゴリズムは、通常、たとえば重ね合わせまたは量子もつれを伴うなど、本質的に量子であるアルゴリズムに使用される。量子アルゴリズムは、ハミルトニアンオラクルモデルなどの、量子計算の様々なモデルで記述され得る。
したがって、古典的コンピュータは、ビットから構成されるメモリを有し、各ビットは「1」または「0」のいずれかで表されるが、量子コンピュータは、単一のqubitが1、0、またはそれらの2つのqubit状態の任意の量子重ね合わせを表すことができるqubit列をサポートする。その結果、qubitの対は、4状態の量子重ね合わせとなり、3つのqubitは8状態の重ね合わせとなり得る。一般に、n個のqubitを有する量子コンピュータは、同時に最大2n個の異なる状態の任意の重ね合わせとなることができ、これは任意の一時点においてこれら2n個の状態のうちの1つしかとれない通常のコンピュータとは対照的である。したがって、qubitは、その古典的な対応物であるビットに比べて指数関数的に多くの情報を保持することができる。動作時に、量子コンピュータは、固定された量子論理ゲートでそれらのqubitを操作することによって問題を解くqubitをドリフト状態に設定することによって動作する。量子アルゴリズムのオペレーションを形成するのがこの量子論理ゲートの列である。計算は、測定で終わり、qubitの系を2n個の純粋状態の1つに折り畳むと、各qubitは「0」または「1」となり、それによって古典的状態に分解する。したがって、従来のアルゴリズムも、量子コンピューティングプラットフォーム上で実行され得、結果は、典型的には、情報のn個の古典的ビットである。
標準的な表記では、qubitの基本状態は、「0」および「1」状態と称される。しかしながら、量子計算中、qubit状態は、一般に、基本または基底状態の重ね合わせであってよく、qubitは「0」基底状態を占有する非ゼロ確率および「1」基底状態を占有する同時非ゼロ確率を有する。したがって、qubitの量子性は、基底状態のコヒーレントな重ね合わせ内に存在することができることから、位相を有するqubitの状態に対して、大部分が導出される。qubitは、このように、qubitがデコヒーレンスのソースから十分に分離されている限り基底状態のコヒーレントな重ね合わせとして存在することができることを保持する。
その結果、qubitを使用して計算を完了させるために、qubitの状態が測定される。上で示されているように、qubitの測定が行われるときに、qubitの量子性は、一時的に失われ、基底状態の重ね合わせは、「0」基底状態または「1」基底状態のいずれかに折り畳まれ得る。したがって、これなどの方式で、qubitは、従来のデジタル「ビット」との類似性を取り戻す。しかしながら、それが折り畳まれた後のqubitの実際の状態は、測定オペレーションの直前に存在している様々な確率状態に依存する。したがって、qubitは、それ自体が量子コンピュータを形成するように構成され得る量子回路を形成するために使用され得る。
量子コンピュータの設計およびオペレーションに対していくつかの一般的なアプローチがある。出されている1つのアプローチは、量子コンピューティングに対する回路モデルのアプローチである。回路モデル量子コンピューティングは、長い量子コヒーレンスを必要とし、したがって、そのようなアプローチをサポートする量子コンピュータにおいて使用される情報デバイスのタイプは、定義により長いコヒーレンス時間を有するqubitであり得る。したがって、量子コンピューティングに対する回路モデルは、ビットと同様に、qubitは論理ゲートから形成され論理ゲートの作用を受け得るという前提条件に基づくものであり、ブール計算などの計算を実行するために量子論理を使用してプログラムされ得る。この方式で量子論理関数を実行するようにプログラムされ得るqubitを開発する研究がなされてきた。たとえば、参照により全体が本明細書に組み込まれている、Shor, 2001, arXiv.org:quant-ph/0005003を参照されたい。同様に、コンピュータプロセッサは、超電導量子プロセッサなどの、量子プロセッサの形態をとり得る。
超電導量子プロセッサは、多数のqubitおよび関連付けられている局所的バイアスデバイス、たとえば、2つ、3つまたはそれ以上の超電導qubitを含み得る。したがって、様々な実施形態において、コンピュータプロセッサは、非従来的な超電導プロセッサとして構成され得るが、他の実施形態では、コンピュータプロセッサは、超電導プロセッサとして構成されてよい。たとえば、いくつかの実施形態では、非従来的な超電導プロセッサは、重ね合わせ、量子もつれ、および/または量子トンネル現象などの量子効果を重視しないように構成され得るが、むしろ、古典的コンピュータプロセッサのオペレーションを支配する原理などの、異なる原理を強調することによって動作し得る。他の実施形態では、コンピュータプロセッサは、重ね合わせ、量子もつれ、および/または量子トンネル現象などの、様々な量子効果を通じて処理するように適合されることなどによって従来の超電導プロセッサとして構成され得る。
したがって、様々な事例において、そのような超電導プロセッサの実装にいくつかの利点があり得る。特に、その自然な物理的特性により、超電導プロセッサは、一般に、非超電導プロセッサより高速なスイッチング速度および短い計算時間を達成することができる場合があり、したがって、いくつかの問題を超電導プロセッサ上で解くことは実用的であり得る。さらに、本発明のデバイス、システム、およびその使用法と併せて使用され得る例示的な量子プロセッサの詳細および実施形態は、参照により全体が本明細書に組み込まれている、米国特許出願11/317,838号、米国特許出願12/013,192号、米国特許出願12/575,345号、米国特許出願12/266,378号、米国特許出願13/678,266号、米国特許出願14/255,561号、さらには、米国特許第7,533,068号、米国特許第7,969,805号、米国特許第9,026,574号、米国特許第9,355,365号、米国特許第9,405,876号、およびその対応する外国出願のすべてを含む様々な分割出願、継続出願、および/またはその一部継続出願において説明されている。
さらに、上記の量子デバイスおよびシステムに加えて、複雑な計算問題を解く際に使用する方法も提示されている。たとえば、本明細書において開示されている量子デバイスおよびシステムは、コヒーレントな方式で、1つまたは複数の情報デバイスおよび/またはシステムの量子状態を制御するために使用され、それにより、画像処理、塩基コーリング、マッピング、アライメント、ソーティング、バリアントコーリング、および/または他のゲノミクスおよび/またはバイオインフォマティクスパイプラインにおける1つまたは複数のオペレーションの実行など、バイオインフォマティクスおよび/またはゲノミクス処理パイプラインにおける1つまたは複数のステップを実行し得る。特定の実施形態において、1つまたは複数のオペレーションは、Burrows-Wheelers、Smith-Waterman、および/またはHMMオペレーションを実行するステップを含み得る。
特に、量子コンピューティングデバイスを使用して複雑なゲノミクスおよび/またはバイオインフォマティクス計算問題を解くステップは、1つまたは複数のqubitを生成するステップと、それを使用して計算問題の量子論理回路の表現を形成し、論理回路表現を離散最適化問題として符号化し、量子プロセッサを使用して離散最適化問題を解くステップを含み得る。この表現は、加算、減算、乗算、および/または除算回路によって解く算術および/または幾何学問題であってよい。離散最適化問題は、ミニ最適化問題のセットから構成されるものとしてよく、各ミニ最適化問題は、論理回路表現からそれぞれの論理ゲートを符号化する。たとえば、数学回路は、因子の2値表現を使用するものとしてよく、これらの2値表現は、数学回路を表すために必要な変数の総数を減らすために分解され得る。したがって、本明細書の教示によれば、コンピュータプロセッサは、デジタルおよび/またはアナログプロセッサ、たとえば、超電導量子プロセッサなどの量子プロセッサの形態をとり得る。超電導量子プロセッサは、多数のqubitおよび関連付けられている局所的バイアスデバイス、たとえば、2つまたはそれ以上の超電導qubitを含むものとしてよく、これは1つまたは複数の量子論理回路表現に形成され得る。
より具体的には、様々な実施形態において、超電導集積回路が実現されるものとしてよい。特に、特定の実施形態において、そのような超電導集積回路は、金属、たとえば第1の金属層内に配設される第1の超電導電流路を備え得る。誘電体、たとえば、第1の誘電体層も、含まれてよく、たとえば、誘電体層の少なくとも一部は、第1の金属層内に関連付けられ、および/または担持される。第2の超電導電流路も、第1の誘電体層上で担持されるか、または他の何らかの形で第1の誘電体層に関連付けられている金属層などの、第2の金属層内に含まれ、配設され得る。そのような一実施形態において、第2の超電導電流路の少なくとも一部は、第1の超電導電流路の少なくとも一部の上に載るものとしてよい。同様に、第2の誘電体層も、含まれてよく、たとえば、第2の誘電体層の少なくとも一部は、第2の金属層に関連付けられるか、または担持される。それに加えて、第3の超電導電流路は、第2の誘電体層に関連付けられるか、または担持され得る第3の金属層内に含まれ、配設されてよく、たとえば、第3の超電導電流路の少なくとも一部は、第1および第2の超電導電流路の一方または両方の少なくとも一部の上に載るものとしてよい。1つまたは複数の追加の金属層、誘電体層、および/または電流路も、含まれ、しかるべく構成され得る。
さらに、第1の超電導接続部は、第1の超電導電流路と第3の超電導電流路との間に位置決めされてよく、たとえば、第1の超電導接続部は、第1の誘電体層および第2の誘電体層の両方を貫通する。第2の超電導接続部も、第1の超電導電流路と第3の超電導電流路との間に含まれ、位置決めされてよく、たとえば、第2の超電導接続部は、第1の誘電体層および第2の誘電体層の両方を貫通し得る。それに加えて、第2の超電導電流路の少なくとも一部は、第1の超電導電流路の1つまたは複数の少なくとも一部、第2の超電導電流路の少なくとも一部、および/または第1と第2の超電導接続部によって形成され得る外側超電導電流路によって囲まれるものとしてよい。したがって、そのような事例において、第2の超電導電流路は、外側超電導電流路に信号を結合する、たとえば、誘導結合するように構成されてよい。
いくつかの実施形態において、第2の超電導電流路と外側超電導電流路との間の相互インダクタンスは、第1の誘電体層の厚さおよび第2の誘電体層の厚さに劣線形比例するものとしてよい。第1および第2の超電導接続部は、また、各々少なくとも1つのそれぞれの超電導ビアを備え得る。さらに、様々な実施形態において、第2の超電導電流路は、入力信号ラインの一部であってよく、第1および第3の超電導電流路の一方または両方は、超電導プログラム可能デバイスに結合されてよい。他の実施形態では、第2の超電導電流路は、超電導プログラム可能デバイスの一部であってよく、第1および第3の超電導電流路は両方とも、入力信号ラインに結合されてよい。特定の実施形態において、超電導プログラム可能デバイスは、超電導qubitであってよく、これは、次いで、量子処理デバイスなどの、量子回路からなどの1つまたは複数の他のqubitに結合される、たとえば量子結合されるものとしてよい。
したがって、本明細書において実現されるのは、計算問題、特に、本明細書において上で説明されているゲノミクスおよび/またはバイオインフォマティクスボトルネックを解決することに関係する問題を解くためのデバイス、システム、および方法である。様々な実施形態において、これらのデバイス、システム、および方法は、計算問題の論理回路表現が直接解かれ、および/または離散最適化問題として符号化され得る技術を導入し、離散最適化問題は、量子プロセッサなどの、コンピュータプロセッサを使用することで解かれ得る。たとえば、特定の実施形態において、そのような離散最適化問題を解くことは、論理回路を実行して元の計算問題を解くことを含み得る。
したがって、本明細書において説明されているデバイス、システム、および方法は、量子プロセッサとして使用するようにおよび/または超電導処理で構成されるような、従来の論理回路および/または論理回路表現を含むなどの任意の形態のコンピュータプロセッサを使用して実装され得る。特に、画像処理、塩基コーリング、マッピング、アライメント、および/またはバリアントコーリングバイオインフォマティクスパイプラインを実行する際の様々なステップは、離散最適化問題として符号化されてよく、したがって、本明細書で開示されている量子プロセッサを使用して解かれることに特に適しているものとしてよい。他の事例において、そのような計算は、そのような計算を達成するために量子効果を利用するコンピュータプロセッサによってより一般的に解決されるものとしてよく、および/または他の事例では、そのような計算は、本明細書で詳しく説明されているように、FPGA、ASIC、または構造化ASICなどの、専用集積回路を使用して実行されてよい。いくつかの実施形態において、離散最適化問題は、量子プロセッサにおいて論理回路、qubit、および/またはカプラを構成することによる問題として位置づけられる。いくつかの実施形態において、量子プロセッサは、そのような離散最適化問題を解くことを円滑にするように特に適合され得る。
本明細書および特許請求の範囲を通して開示されているように、たとえば計算問題の「論理回路表現」がたびたび参照されている。文脈に応じて、論理回路は、一組の論理入力、一組の論理出力、および一組の中間論理入力および中間論理出力を通じて論理入力を論理出力に変換する一組の論理ゲート(たとえば、NANDゲート、XORゲート、および同様のもの)を組み込むものとしてよい。完全な論理回路は、計算問題への入力の表現、計算問題の出力の表現、および入力と出力との間の一連の中間ステップの表現を含み得る。
したがって、本発明のデバイス、システム、および方法の様々な目的のために、計算問題は、その入力、その出力、および入力を出力に変換する中間ステップによって定義されるものとしてよく、「論理回路表現」はこれらの要素のすべてを含み得る。当業者であれば、計算問題の「論理回路表現」を離散最適化問題として符号化し、その後離散最適化問題を量子プロセッサにマッピングすると結果として、任意の数の層が層毎に任意の数のqubitを伴うことになり得ることを理解するであろう。さらに、そのようなマッピングは、層間結合(たとえば、異なる層のqubitの間の結合)および層内結合(たとえば、特定の層内のqubitの間の結合)の方式を可能にするためにqubit間結合の方式を実装し得る。
したがって、示されているように、いくつかの実施形態において、論理回路の構造がいくつかの層に層化され得る。たとえば、論理入力は第1の層を表し、各順次論理(または算術)演算はそれぞれの追加の層を表し、論理出力は別の層を表し得る。そして、前に説明されているように、論理演算は、実行されている特定の論理演算に応じて、単一の論理ゲートによって、または論理ゲートの組合せによって実行され得る。したがって、論理回路内の「層」は、実装される特定の論理回路に応じて単一の論理ゲートまたは論理ゲートの組合せを含み得る。
その結果、様々な実施形態において、たとえば、論理回路の構造がいくつかの層に層化される場合(たとえば、論理入力は第1の層を表し、各順次論理演算はそれぞれの追加の層を表し、論理出力は別の層を表す)、各層は、量子および/または超電導プロセッサにおけるqubitのそれぞれの集合によって具現化され得る。たとえば、量子プロセッサの一実施形態において、qubitの1つまたは複数、たとえば、行は、量子論理回路のそれぞれの層を表すようにプログラムされ得る。すなわち、特定のqubitは、論理回路への入力を表すようにプログラムされるものとしてよく、他のqubitは、第1の論理演算(1つまたは複数のいずれかの論理ゲートによって実行される)を表すようにプログラムされてよく、さらなるqubitは、第2の論理演算(同様に1つまたは複数のいずれかの論理ゲートによって実行される)を表すようにプログラムされてよく、なおもさらなるqubitは、論理回路の出力を表すようにプログラムされるものとしてよい。
それに加えて、qubitは様々な集合が問題の様々な層を表す場合、各それぞれの集合の独立した動的制御を可能にすると有利となり得る。さらに、様々な実施形態において、様々な直列論理回路は、量子プロセッサにマッピングされ、それぞれのqubitは、量子処理に対する機能的相互作用をその独立した制御を可能にするのに適した方式で円滑にするようにマッピングされ得る。上記の説明から、当業者であれば、類似の目的関数が任意の論理ゲートについてどのように定義され得るかを理解するであろう。したがって、いくつかの実施形態において、論理回路を表す問題は、本質的に、複数のミニ最適化問題から構成されてよく、論理回路内の各ゲートは特定のミニ最適化問題に対応する。
したがって、例示的な論理回路表現は、当技術分野で知られているシステムおよび方法を使用して生成され得る。一例において、計算問題、たとえば、ゲノミクスおよび/またはバイオインフォマティクス問題の論理回路表現は、本明細書で説明されているような古典的デジタルコンピュータプロセッサおよび/または量子および/または超電導プロセッサを使用して生成され、および/または符号化され得る。したがって、計算問題の論理回路表現は、コンピュータ可読非一時的記憶媒体またはメモリ(たとえば、揮発性または不揮発性)などの、少なくとも1つのコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体に記憶され得る。したがって、本明細書において説明されているように、計算問題の論理回路表現は、離散最適化問題、または一組の最適化目的として符号化されてよく、様々な実施形態において、たとえば、古典的デジタルコンピュータ処理パラダイムは、問題を解くように構成され、システムは、論理回路の条件を満たすビット列は0のエネルギーを有し、他のすべてのビット列は0より大きいエネルギーを有するように構成されてよく、離散最適化問題は、元の計算問題への解を確立するような仕方で解かれるものとしてよい。
さらに、他の実施形態では、離散最適化問題は、量子プロセッサなどの、コンピュータプロセッサを使用して解かれ得る。次いで、そのような事例において、離散最適化問題を解くことは、たとえば、量子プロセッサをシステムのエネルギーを最小にする構成に発展させ最適化目的関数の条件を満たすビット列を確立することを伴い得る。したがって、いくつかの実施形態において、離散最適化問題を解く活動は、3つの活動を含み得る。第1に、離散最適化問題は、コンピュータプロセッサにマッピングされ得る。いくつかの実施形態において、コンピュータプロセッサは、量子および/または超電導プロセッサを含むものとしてよく、離散最適化問題をコンピュータプロセッサにマッピングすることは、量子および/または超電導プロセッサの要素(たとえば、qubitおよびカプラ)をプログラムすることを含み得る。離散最適化問題をコンピュータプロセッサにマッピングすることは、コンピュータ可読非一時的記憶媒体またはメモリ(たとえば、揮発性または不揮発性)などの、少なくとも1つのコンピュータまたはプロセッサ可読記憶媒体における離散最適化問題を含み得る。
したがって、上記に照らして、様々な事例において、ゲノミクス物質などに対して配列解析パイプラインを実行するためのデバイス、システム、および方法が実現される。たとえば、ゲノミクス物質は、画像ファイル、BCL、FASTQファイル、および同様のものなどの中の、ゲノムデータの複数のリードを含み得る。様々な実施形態において、デバイスおよび/またはシステムは、たとえばメモリに記憶されている、1つまたは複数の遺伝子参照配列のインデックスを使用することなどによって、ゲノムデータ、たとえばゲノムデータのリードに対して配列解析を実行するために使用されてよく、たとえば、ゲノムデータの各リードおよび各参照配列は、ヌクレオチドの配列を表す。
特に、様々な実施形態において、デバイスは、量子論理回路のセット、たとえばハード配線された量子論理回路などから形成された、量子コンピューティングデバイスであってよく、たとえば、これらの論理回路は互いに相互接続される。様々な事例において、量子論理回路は、1つまたは複数の超電導接続部によって相互接続され得る。それに加えて、超電導接続部のうちの1つまたは複数は、メモリにアクセスするなどのためのメモリインターフェースを備え得る。それと一緒に論理回路および相互接続は、それ自体が1つまたは複数のqubitの集合として表される量子状態として表される情報を処理するように構成され得る。より具体的には、ハード配線された量子論理回路のセットは、処理エンジンのセットとして配置構成されてよく、各処理エンジンは、ハード配線された量子論理回路のサブセットから形成されてよく、ゲノムデータのリードに対して配列解析パイプラインにおける1つまたは複数のステップを実行するように構成され得る。
たとえば、処理エンジンのセットは、画像処理、塩基コーリング、マッピング、アライメント、ソーティング、バリアントコーリング、および/または他のゲノミクスおよび/またはバイオインフォマティクス処理モジュールを含むように構成され得る。たとえば、様々な実施形態において、第1のハード配線された構成などの、マッピングモジュールが含まれ得る。それに加えて、さらなる実施形態において、第2のハード配線された構成などの、アライメントモジュールが含まれ得る。さらに、第3のハード配線された構成などの、ソーティングモジュールが含まれ得る。そして、追加の実施形態において、第4のハード配線された構成などの、バリアントコーリングモジュールが含まれ得る。さらに、様々な実施形態において、画像処理および/または塩基コーリングモジュールは、さらなるハード配線された構成で含まれるものとしてよく、たとえば、これらのハード配線された構成の1つまたは複数は、処理エンジンのセットとして配置構成され得るハード配線された量子論理回路を含み得る。
より具体的には、特定の事例において、量子コンピューティングデバイスおよび/またはシステムは、マッピングモジュールを備えてよく、マッピングモジュールは、処理エンジンのセットとして配置構成されている量子論理回路のセットを含み、その1つまたは複数はマッピングプロシージャの1つまたは複数のステップを実行するように構成される。たとえば、1つまたは複数の量子処理エンジンは、複数の超電導接続部のうちの1つまたは複数などを介して、ゲノムデータのリードを受信するように構成され得る。さらに、1つまたは複数の量子処理エンジンは、シードを生成するためにリードの一部を抽出するように構成されてよく、たとえば、シードは、リードによって表されるヌクレオチドの配列のサブセットを表し得る。それに加えて、量子処理エンジンのうちの1つまたは複数は、シードに基づきインデックス内の第1のアドレスを計算し、メモリ内のインデックスのアドレスにアクセスし、そのアドレスからレコードを受信するように構成されてよく、たとえば、そのレコードは、遺伝子参照配列内の位置情報を表す。さらに、1つまたは複数の量子処理エンジンは、たとえばそのレコードに基づき、リードから遺伝子参照配列への1つまたは複数のマッチング位置を決定し、メモリインターフェースを介してメモリにマッチング位置のうちの少なくとも1つを出力するように構成され得る。
さらに、マッピングモジュールは、たとえば、ヌクレオチドの配列の第1のサブセットに含まれないヌクレオチドの配列のレコードおよび第2のサブセットの両方に基づき、インデックス内の第2のアドレスを計算するように構成されている処理エンジンのセットとして配置構成されている量子論理回路のセットを備え得る。次いで、処理エンジンは、メモリ内のインデックスの第2のアドレスにアクセスし、第2のアドレスから第2のレコードを受信するものとしてよく、たとえば、第2のレコードまたはその後のレコードは、遺伝子参照配列内の位置情報を含む。処理エンジンは、さらに、位置情報に基づきリードから遺伝子参照配列への1つまたは複数のマッチング位置を決定するようにさらに構成され得る。
それに加えて、様々な事例において、量子コンピューティングデバイスおよび/またはシステムは、アライメントモジュールを備えてよく、アライメントモジュールは、処理エンジンのセットとして配置構成されている量子論理回路のセットを含み、その1つまたは複数はアライメントプロシージャの1つまたは複数のステップを実行するように構成される。たとえば、1つまたは複数の量子処理エンジンは、メモリからリードに対する複数のマッピングされた位置を受信し、マッピングされた位置の各々に対応する遺伝子参照配列のセグメントを取り出すためにメモリにアクセスするように構成され得る。アライメントモジュールとして形成された1つまたは複数の処理エンジンは、遺伝子参照配列の各取り出されたセグメントへのリードのアライメントを計算し、各アライメントに対するスコアを生成するようにさらに構成され得る。さらに、1つまたは複数のスコアが生成された後、リードの少なくとも1つの最良スコアリングアライメントが、選択され得る。特定の事例において、量子コンピューティングデバイスは、Smith-Watermanアライメントなどの、ギャップまたは無ギャップアライメントを実行するように構成されている処理エンジンのセットとして配置構成される量子論理回路のセットを含み得る。
さらに、いくつかの事例において、量子コンピューティングデバイスおよび/またはシステムは、バリアントコーリングモジュールを備えてよく、バリアントコーリングモジュールは、処理エンジンのセットとして配置構成されている量子論理回路のセットを含み、その1つまたは複数はバリアントコーリングプロシージャの1つまたは複数のステップを実行するように構成される。たとえば、量子コンピューティングバリアントコーリングモジュールは、たとえばメモリに記憶されている、1つまたは複数の候補ハプロタイプを使用するなどして、ゲノムデータの複数のリードに対して解析を実行するように適合されている量子論理回路のセット含むものとしてよく、ゲノムデータの各リードおよび各候補ハプロタイプは、ヌクレオチドの配列を表す。
特に、量子論理回路のセットは、複数の超電導接続部のうちの1つまたは複数を介するなどして、たとえばメモリから、ゲノムデータのリードの1つまたは複数を受信し、1つまたは複数の候補ハプロタイプを生成し、および/または受信するように構成されている1つまたは複数の量子処理エンジンとして形成され得る。さらに、1つまたは複数の量子処理エンジンは、ゲノムデータのリードの1つまたは複数および1つまたは複数の候補ハプロタイプをメモリから受信し、さらには1つまたは複数のリードの各々におけるヌクレオチドを1つまたは複数の候補ハプロタイプと比較し、各候補ハプロタイプが正しいバリアントコールを表す確率を決定するように構成され得る。それに加えて、量子処理エンジンのうちの1つまたは複数は、決定された確率に基づき出力を生成するように構成され得る。
それに加えて、様々な事例において、量子論理回路のセットは、少なくとも1つの候補ハプロタイプがたとえば複数のリードの供給元生物の、ヌクレオチドの真の配列であることに基づき複数のリードのうちの各リードを観察する確率を決定するように構成されている1つまたは複数の量子処理エンジンとして形成され得る。特定の事例において、確率を決定することに関して、1つまたは複数の量子処理エンジンは、隠れマルコフモデルを実行するように構成され得る。より具体的には、追加の実施形態において、1つまたは複数の量子処理エンジンは、複数のリードを1つまたは複数の連続するヌクレオチド配列にマージし、および/または1つまたは複数の連続するヌクレオチド配列から1つまたは複数の候補ハプロタイプを生成するように構成され得る。たとえば、様々な実施形態において、複数のリードをマージするステップは、1つまたは複数の量子処理エンジンがDe Bruijnグラフを構築するステップを含む。
したがって、上記に照らして、ゲノミクスおよび/またはバイオインフォマティクス処理に関係する問題を解決する際に様々な計算を実行するためのシステムが実現される。たとえば、システムは、オンサイト自動化シークエンサ、たとえば、NGS、および/または処理サーバのうちの1つまたは複数を備えるものとしてよく、そのいずれかまたは両方は、1つまたは複数のCPU、GPU、ならびに/あるいは、配列解析パイプラインにおける1つまたは複数のステップを実行するように本明細書において説明されているように構成されるFPGA、ASIC、および/または構造化ASICなどを含む、他の集積回路を備え得る。特に、Next Gen Sequencerは、複数の核酸配列のシークエンシングし、配列決定された核酸配列を表す1つまたは複数の画像、BCL、および/またはFASTQファイルを生成するように構成されてよく、核酸配列は、DNAおよび/またはRNA配列であり得る。これらの配列ファイルは、シークエンサそれ自体によって、または関連付けられているサーバユニットによって処理されてよく、たとえば、シークエンサおよび/または関連付けられているサーバは、二次配列解析パイプラインにおける1つまたは複数のステップを実行するように本明細書において説明されているように構成された、FPGAまたはASICなどの、集積回路を含む。
しかしながら、様々な事例において、たとえば、自動化シークエンサおよび/または関連付けられているサーバが、シークエンサから生成されたデータに対して二次配列解析を実行するようには構成されていない場合、生成されたデータは、クラウド媒介インターフェースなどを介して、データに対して二次および/または三次配列解析を実行するように構成されているリモートサーバに伝送され得る。そのような事例において、クラウドアクセス可能サーバは、画像、BCL、および/またはFASTQ形式などで、生成された配列データを受信するように構成されてよく、さらに、受信したデータに対して、配列解析パイプラインなどの、一次、たとえば、画像処理、および/または二次および/または三次処理解析を実行するように構成され得る。たとえば、クラウドアクセス可能サーバは、CPUおよび/またはGPUを備える1つまたは複数のサーバであってよく、その一方または両方は本明細書で説明されているように、FPGAまたはASICなどの、集積回路に関連付けられ得る。特に、いくつかの事例において、クラウドアクセス可能サーバは、本明細書で説明されているように、量子コンピューティングサーバであってよい。
特に、クラウドアクセス可能サーバは、受信したデータに対して一次、二次、および/または三次ゲノミクスおよび/またはバイオインフォマティクス解析を実行するように構成されてよく、その解析は、画像処理、塩基コーリング、マッピング、アライメント、ソーティング、および/またはバリアントコーリングプロトコルのうちの1つまたは複数における1つまたは複数のステップを実行するステップを含み得る。いくつかの事例において、ステップのうちのいくつかは、CPUまたはGPUなどの一方の処理プラットフォームによって実行されるものとしてよく、他方は、配列解析パイプラインにおける様々なステップを実行するように特に構成されているFPGAまたはASICなどの、関連付けられている、たとえば、密結合された、集積回路などの、別の処理プラットフォームによって実行されてよい。そのような事例において、データおよび解析の結果が、一方のプラットフォームから他方に転送されるべきである場合、システムおよびそのコンポーネントは、転送の前にデータを圧縮し、転送された後にデータを復元するように構成されてよく、したがって、システムコンポーネントは、転送などのために、SAM、BAM、またはCRAMファイルのうちの1つまたは複数を生成するように構成され得る。それに加えて、様々な実施形態において、クラウドアクセス可能サーバは、本明細書で説明されているように、配列解析パイプラインにおける1つまたは複数のステップを実行するように本明細書において構成されている量子コンピューティングプラットフォームであってよく、本明細書で開示されている方法の1つまたは複数に従って1つまたは複数の二次および/または三次処理ステップの実行を含み得る。
さらに、量子コンピューティングに関して、本発明のデバイス、システム、および方法と併せて使用され得る例示的な量子プロセッサおよびその使用方法の詳細および実施形態は、参照により全体が本明細書に組み込まれている米国特許第7,135,701号、米国特許第7,533,068号、米国特許第7,969,805号、米国特許第8,560,282号、米国特許第8,700,689号、米国特許第8,738,105号、米国特許第9,026,574号、米国特許第9,355,365号、米国特許第9,405,876号、さらには様々な対応特許において説明されている。
それに加えて、上で述べた人工知能モジュールに関して、一態様において、クラウドアクセス可能人工知能モジュールが実現され、本明細書において開示されているBioITパイプラインの他のコンポーネントのうちの1つまたは複数に通信可能におよび動作可能に結合されるように構成される。たとえば、A/Iモジュールは、本明細書で開示されているシステムの様々なプロセスを効率よく示し、および/または制御するためにWMSと緊密に連携し得る。したがって、様々な実施形態において、A/Iモジュールが実現され、A/Iモジュールは、ゲノムの世界と臨床世界との間のインターフェースとして動作するように構成される。
たとえば、様々な事例において、BioITシステムは、臨床データを受信するように構成され得る。そのような事例において、ワークフローマネージャシステムは、臨床データ、および他のそのようなデータを解析し、1つまたは複数の決定論的ルールシステムを実装して、臨床データの解析に従って結果データを導出するように構成され得る。たとえば、いくつかの実施形態において、システムの様々なデータベースは、リレーショナルアーキテクチャを有するように構成されてよい。
これらの構成は、1つまたは複数のテーブル構造体によって表され得る。一連のテーブルは、たとえば、WMSによって反復方式でとられ得る相関によって使用され得る。たとえば、様々な使用モデルにおいて、第1の相関が、病状のある対象の名前に関してとられ得る。次いで、別のテーブルが、対象の病状とその薬剤との相関をとるために使用され得る。同様に、さらなるテーブルが、症状および/または病気それ自体の軽減に関して薬剤の進捗の相関をとるために使用されてよい。テーブルの相関を求めるために鍵が使用されてよく、鍵は質問のプロンプトまたはコマンドに応答してアクセスされ得る。鍵は、名前、番号、たとえば、社会保障番号、税金識別番号、従業員番号、電話番号、および同様のものなどの、共通識別子であってよく、それによって、テーブルの1つまたは複数がアクセスされ、相関をとられ、および/または質問に回答し得る。したがって、この鍵がなければ、一方のテーブル内の情報と他方のテーブル内の情報との相関をとることは困難になる。
しかしながら、他の事例において、A/Iモジュールは、生成されおよび/または提供されたデータに対してより包括的な解析を行うように構成され得る。たとえば、A/Iモジュールは、EMRおよびシステムに入力された他の臨床的に関連するデータなどを考慮して、たとえば、システムになって生成された、ゲノムデータと、1人または複数の対象のクリニカルデポジッション(clinical deposition)との間の相関をとるようにAIモジュールに教えるように工夫されたシステムのデータに対する1つまたは複数の機械学習プロトコルを実装するように構成され得る。
特に、A/Iモジュールは、受信した入力のタイプおよび特性に基づき出力がどのようになされたかをより高速に、たとえば瞬時に認識するようにシステムを訓練することに向けられたプログラミングを備え得る。したがって、システムは、受信する入力、およびそれが出力する結果から学習し、受信したデータの初期入力に基づきより高速に正確に相関を引き出すことができるように構成される。典型的には、入力データは、2つの一般的なタイプのものであってよい。第1の事例では、データは、出力、たとえば回答が知られているタイプのものであってよい。このタイプのデータは、システムに入力され、訓練目的に使用されてよい。第2のタイプのデータは、回答が知られていない、したがって、決定されなければならないものであってよく、このデータは、たぶん、解析が行われるべきゲノムデータ、または臨床的に関連する結果が決定されるべきである臨床データである。特に、これらの方法は、第2の種類の入力データに対する結果をよりよく予測するために第1のタイプの入力データから学習することができるA/Iモジュールの能力を高めるために使用され得る。特に、履歴的証拠に基づき、A/Iモジュールは、以前に観察されたデータに基づき結果を予測することを学習するように構成され得る。
より具体的には、本明細書では臨床ゲノミクスプラットフォームが提示され、臨床ゲノミクスプラットフォームは、疾患の臨床結果とゲノミクスデータとの相関をとるように構成される。そのような事例において、対象の臨床プロフィールは、システムに入力され、決定されたゲノムプロフィールとともに評価され得る。特に、これら2つのデータセットを組み合わせる際に、A/Iモジュールはそれらの間の様々な相互関係を決定するように構成される。したがって、第1のステップにおいて、グラフデータベースまたはナレッジグラフが構築され得る。たとえば、この事例において、ナレッジグラフは、3つの典型的な要素からなるものとしてよく、これらは、基本的に、主語、述語、および目的語を含み、これらはノードを形成するものとしてよく、ノードの間の関係が決定されなければならない。特定のデータ点は、ノードとして選択されてよく、ノードは、実行されるクエリに基づき変わるものとしてよい。決定され得る関係のタイプは数種類ある。たとえば、関係は、その効果に基づき決定されてよく、たとえば、これらは、効果ベースであるか、またはそれらは、推論、たとえば、未知であるが、決定可能である関係に基づき決定され得る。
したがって、ナレッジグラフを構築することに関して、特定のデータ点がノードを形成し得る。たとえば、グラフの一方の側では、疾患状態がノードを形成し、グラフの他方の側では、遺伝型、たとえば、バリアントの配列がノードを形成し得る。これら2つのノードの間に、1つまたは複数の症状、1つまたは複数の薬剤、1つまたは複数のアレルギー、1つまたは複数の他の状態もしくは表現型形質、たとえば、血圧、コレステロールなどの、第3のノード、たとえば、一連の第3のノードがあり得る。それに加えて、これらのノードの間には、決定され得る関係がある。
特に、ナレッジグラフを構築するときに、臨床データが、暗号化され、電子的に安全に転送され得る、医療記録機能、たとえば、電子医療記録、病状の家族歴などから、システムに入力される。同様に、対象からのゲノムデータは配列決定され、本明細書に述べられている二次処理ステップに従って生成され得る。さらに、これら2つのノードが確立された後、1つまたは複数の第3のノードがシステム内に入力されるものとしてよく、その存在から、これら2つの元のノードの間の関係が決定され得る。
たとえば、一例において、第1のノードは、人または人々の集団の医療記録によって表されるものとしてよく、第2のノードは、疾患特性によって表され得る。そのような事例において、1つまたは複数の第3のノードがシステムに入力され、グラフ内に生成されるものとしてよく、たとえば、第3のノードは、薬剤、物理的、生物学的、精神的、状態および/または特性、アレルギー、地理的領域、食事、食品および/または食材、環境条件、地理的条件、送電線、電波塔、および/または同様のものであってよい。次いで、一連の関係が、これら3つの項目の間の様々な接続点を解析することによって決定され得る。特に、特定の事例において、一方のノードは、疾患状態を患っている患者を表し、第2のノードは、患者のゲノムデータであり、第3のノードの間に、患者のゲノムバリエーション、たとえば、対象の突然変異、染色体単位、その薬剤、生理学的状態、および同様のものがあり得る。同様に、このプロセスは、同じ診断および/または状態を有する多数の対象について繰り返されるものしてよい。したがって、これなどの方式で、臨床世界とゲノミクス世界との間の相関が決定され得る。
したがって、臨床ゲノミクスグラフを構築する際のステップは、アンカーノードを定義するものであり、これらは、すべての様々な共通点が定義され、探索される2つの境界要素を表す。したがって、さらなるステップは、第3のノードとしてグラフ内に表され得る、2つのアンカーノードの間の可能な知られているすべての対応関係を定義することである。これらの知られている対応関係は、一方のノードまたは他方のノードによって引き起こされる効果、および/または一方のノードまたは他方のノードの特性を詳述することに関して構築され得る。これらは、ノードの間の知られているおよび/または観察可能な関係を形成し得る。これらの知られている関係から、第2のタイプの関係が探索され、および/または決定されてよく、その関係は推論に基づき構築され得る。さらに、原因および/または予測可能な結果をよりよく決定するために、確度、共通点の数、ノードを共有するインスタンスの数、共通関係の数、および同様のものなどに基づき、様々な異なる関係に重みを付けるものとしてよい。
したがって、ダイナミックナレッジグラフの構築および実装は、臨床ゲノミクス処理プラットフォームの中心である。示されているように、大域的システムの様々な処理プラットフォームは、一瞬に結合され、それにより様々なコンポーネント間でデータをシームレスに転送し得る。たとえば、示されているように、マッピング、アライメント、および/またはバリアントコーリングパイプラインは、そのデータ、たとえば結果データを人工知能モジュールに伝送するように構成され得る。特に、A/Iモジュールは、二次処理プラットフォームコンポーネントの1つまたは複数および/またはシステムの他のコンポーネントの1つまたは複数からデータの入力を受信するように構成され得る。より具体的には、A/Iモジュールは、マッパ、アライナ、および/またはバリアントコーリング処理エンジンからマッピングされ、アライメントされ、および/またはバリアントコールされたデータを受信し、そのデータを取り出してそれを使用してナレッジグラフ内に1つまたは複数のノードを生成するように構成される。さらに、示されているように、A/Iモジュールは、診療所、医療サービス提供者、研究所、記録保管施設、および同様のものなど、1つまたは複数の他のソースから入力データを受信するように構成されてよく、たとえば、記録は、1人または複数の対象の身体、精神、および/または情緒面の健康に関連するデータを含み、そのデータを受け取り、それを使用してナレッジグラフ内に1つまたは複数のノードを生成する。
それに加えて、ナレッジグラフアーキテクチャが構築された後、これは、増えて行く関連するデータをナレッジ構造内に追加し、潜在的ノードおよび/または関係をますます構築することによって継続的に更新され、拡大され得る。そのような事例において、境界ノードは、ノードの組合せであってよく、したがって、いくつかの事例において、ユーザ選択可能であってよい。たとえば、様々な実施形態において、システムは、第三者によってアクセス可能なように構成され得る。そのような事例において、ユーザは、A/Iモジュールに、たとえば、適切に構成されているユーザインターフェースを介してアクセスし、関連する情報をシステムにアップロードし、および/または問い合わせを制限すべき関連するノードを、たとえば、クリックするかドラッグしてドロップすることなどによって決定するものとしてよく、A/Iモジュールによって回答されるべき関連する問いを立てるものとしてよい。したがって、ユーザは、境界ノードを検討しおよび/または選択し、次いで、システムが選択されたノードを使用して適切なナレッジマップを生成することを可能にし、ノード間の関係を決定し、その関係から、たとえば、A/Iシステムによって、様々な問い合わせがクエリされ、回答されるか、または少なくとも推論され得る。
たとえば、一使用モデルにおいて、ユーザは、特定の薬物投与量が所与の疾患に関して患者にどのような影響を及ぼしているかを知ることを望んでいる医師であるものとしてよい。その結果、医師は、患者のEMR、疾患状態、および薬剤投与量をアップロードし、このデータとともに、A/Iモジュールは、適切なナレッジグラフを生成し(および/またはすでに存在しているナレッジグラフに追加し)、そのナレッジグラフから、境界ノードが選択され、関係が決定されるものとしてよい。さらに、様々な事例において、ユーザは、患者の遺伝子データをアップロードし、そのデータは二次処理に通され、その結果、たとえば、マッピング、アライメント、および/またはバリアントコール結果データがA/Iモジュールにアップロードされ得る。そのような事例において、疾患および/またはEMRおよび/または家族病歴データとゲノムデータとの相関がとられ、そのデータから様々な関係が決定され、推論が評価され、予測が行われ得る。
特に、対象のVCFがシステム内に入力されてよく、たとえば、決定された染色体特性のすべてが、たとえば、ノードのコンスタレーションとしてアップロードされてよく、これらのノードは、システムにクエリを実行し、それが回答を推論できる適切な接続を生成することを可能にすることなどによって、対象に関連する様々な関係を決定するために使用され得る。より具体的には、1人または複数の対象の表現型特徴、たとえば、人間表現型オントロジが、システムにアップロードされ、それにより、ノードのさらなるコンステレーションを生成し得る。たとえば、2人のゲノム履歴および/または病歴がシステムに入力されるときに、2人の間の関係は、共通の遺伝型、表現型、状態、環境、地理、アレルギー、民族文化的背景、薬剤、および同様のものなどに関して、A/Iモジュールによって決定され得る。
さらに、対象の2つまたはそれ以上の特徴の間の関係、または対象の間の関係が決定され得る。たとえば、対象の収縮期血圧と拡張期血圧との間の関係が、システムによって決定され得る。特に、一連の履歴的収縮期および拡張期読取り値がシステムに入力され、それによって、システムの機械学習プラットフォームは、それらの読取り値を解析し、および/またはそれら2つの間の1つまたは複数の関係を決定し、それにより、所与の収縮期入力がシステムに入力された場合に、2つの間の予測重みを考慮して、予測された拡張期出力が与えられ得る。先行する例は、1人の対象の血圧に関して与えられたが、多数の対象および/または様々な条件などに関して、互いに対する数学的関係にある所与のノードに同じことが適用されることに留意されたい。
それに加えて、いくつかの事例において、関係は線形アレイで構成され、たとえば、情報のニューラルネットワークを形成し得るが、様々な他の事例において、関係は、深層学習プロトコルなどにおいて多数の段階で形成され得る。たとえば、A/Iシステムは、深層学習などを目的として、層化または多段方式で情報を処理するように適合され得る。したがって、システムは、データを段階的に評価するように構成され得る。特に、A/Iモジュールは、学習プロトコルを実行するときなどに、様々なデータを、段階毎に調査するので、データ間の各接続は、たとえば関係の履歴的証拠および/または特徴に基づき、システムによって加重されるように適合され得る。
システム内で開始される学習の段階が多ければ多いほど、接合間の重み付けはよくなり、学習は深くなる。さらに、データを段階に分けてアップロードすることで、システム内のデータの収束を高めることができる。特に、様々な特徴抽出パラダイムも、アップロードされるべきデータの最も顕著な特徴をよりよく編成し、加重し、解析するために使用され得る。それに加えて、データをよりよく相関させるために、1人または複数のユーザが、基本加重関数を入力し、および/または調節し得るが、システムそれ自体は、能動的学習プロトコルに基づきより高度な加重関数を使用し得る。
ユーザとインタラクションを行うために、本明細書で説明されている主題の1つまたは複数の態様もしくは特徴は、ユーザに情報を表示するための、たとえば、陰極線管(CRT)、液晶ディスプレイ(LCD)、または発光ダイオード(LED)モニタなどの表示デバイスならびにユーザがコンピュータに入力を提供するために使用できるキーボードおよび、たとえば、マウスもしくはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとインタラクションを行うために使用されてよい。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの、任意の形態の感覚フィードバックであってよく、ユーザからの入力は、限定はしないが、音響、音声、または触覚入力を含む、任意の形態で受信され得る。他の可能な入力デバイスは、限定はしないが、1点または多点抵抗膜方式または静電容量方式トラックパッドなどのタッチスクリーンまたは他のタッチセンサデバイス、音声認識ハードウェアおよびソフトウェア、光スキャナ、光ポインタ、デジタル画像キャプチャデバイスおよび関連する解釈ソフトウェア、ならびに同様のものを含む。
本明細書において説明されている主題は、所望の構成に応じてシステム、装置、方法、および/または物品で具現化され得る。前述の説明で述べられている実装形態は、本明細書において説明されている主題と一致するすべての実装形態を表すわけではない。その代わりに、これらは、説明されている主題に関係する態様と一致するいくつかの例にすぎない。上では少数の変更形態が詳しく説明されたが、他の修正形態または追加形態も可能である。特に、さらなる特徴および/または変更形態が、本明細書で述べられているものに加えて提供され得る。たとえば、上で説明されている実装形態は、開示されている特徴の様々な組合せおよび部分的組合せおよび/または上で開示されているいくつかのさらなる特徴の組合せおよび部分的組合せを対象とすることができる。それに加えて、添付図に示されているおよび/または本明細書において説明されている論理フローは、必ずしも、望ましい結果を達成するために、図示されている特定の順序、または順番を必要としない。他の実装形態は、次の特許請求の範囲内に収まり得る。