実用的なとき、同様の参照番号は同様の構造、特徴、または要素を示す。
現在利用可能な解決法についてのこれらのおよび場合によっては他の問題に対処するために、現在の主題の1つまたは複数の実装形態と一貫する方法、システム、製造物品などは、潜在的な利点の中でもとりわけ、遺伝子配列データに対して配列分析パイプラインを実行するための配列分析装置を提供することができる。
以下は、シーケンシングプラットフォーム、配列分析パイプライン、ならびに1つまたは複数の三次処理プロトコルを実行するためのシステムの様々な実装形態の詳細を与える。
身体は、その最も基本的な形式において細胞からなり、細胞は組織を形成し、組織は器官を形成し、器官は系を形成し、これらの系が一緒に機能して、身体が個人の生命を維持するように動作することを確実にする。したがって、身体の細胞は生命の基本要素である。より具体的には、各細胞は核を有し、1つ1つの細胞の核内には染色体がある。染色体はデオキシリボ核酸から形成され、これは組織化されているがねじれた二重らせん構造を有する。DNA自体は、2つの対向する、しかし相補的なヌクレオチドの鎖からなり、これらのヌクレオチドは、細胞にその構造を与えて身体の組織および器官の機能および制御を仲介するタンパク質をコードする遺伝子を備える。基本的に、タンパク質は、身体の普通の処理および機能を維持する際の細胞の働きの大半を行う。
身体の構成要素の多さと、それらが身体の様々な処理および機能を維持するためにどのように互いに相互作用するかについての複雑さを考慮すると、身体がこれらの様々なレベルのいずれか1つで異常を起こし得る多数の様式がある。たとえば、1つのそのような事例では、所与のタンパク質をある特定の遺伝子がコードする様式に異常があることがあり、これは、そのタンパク質および異常の性質に応じて、疾病状態の発現をもたらすことがある。
したがって、そのような疾病状態を診断し、予防し、かつ/または治療する際に、被験者の遺伝的体質を決定することは極めて有用であり得る。たとえば、ある人物の遺伝的体質、たとえばゲノム構成が知られると、それは、診断の目的で、かつ/または、人物がある疾病状態を有するかどうか、もしくは疾病状態になる可能性があるかどうかを判定するために使用することができ、したがって、予防のために使用することができる。同様に、ある人物のゲノムの知識は、使用者に害をもたらすことなく予防または治療の計画において使用できる、または使用できない、薬物などの様々な潜在的な治療法を決定するのに有用であり得る。様々な事例において、ある人物のゲノムの知識はまた、薬物の効能を決定するために利用することができ、かつ/または、そのような薬物使用の問題のある副作用を予測および/または特定することができる。場合によっては、ある人物のゲノムの知識は、ある人物の特定の遺伝的体質に従って仕立てられて最適化された薬物などの、デザイナードラッグを産生するために使用することができる。具体的には、一事例において、遺伝子の転写をオフまたはオンにしてタンパク質を過剰にまたは過少に産生して、それにより疾病状態を改善するために、設計されたタンパク質またはヌクレオチド配列を、個人の固有の遺伝的特性に合わせて製作することができる。
したがって、いくつかの事例では、人々の個々のゲノムを決定することがバイオインフォマティクス処理の目標であり、この決定は、各々の特定の個人および人類全体の生活をより良くするために、遺伝子発見プロトコルにおいて、ならびに予防および/または治療の計画のために使用され得る。さらに、ある個人に対して効く可能性が高い薬物および/または有害な副作用のある可能性が高い薬物がもしあればそれが何であるかを、個人のゲノムおよび/またはゲノムから導かれるタンパク質プロフィールを分析し、それらをそのような薬物の投与から予測される生物学的反応と比較することなどによって、より良好にかつ詳細に予測するために、薬物発見および/またはFDA試験などにおいて、個人のゲノムの知識を使用することができる。
そのようなゲノミクスおよびバイオインフォマティクス処理は通常、3つの明確に定義された、しかし典型的には別々の、情報処理の段階を伴う。第1の段階はDNA/RNAシーケンシングを伴い、そこで、被験者のDNA/RNAが取得されて様々な処理を受け、それにより、被験者の遺伝子コードが機械可読のデジタルコード、たとえばFASTQファイルに変換される。第2の段階は、個人の遺伝的体質の決定、たとえば、個人のゲノムヌクレオチド配列および/またはバリアントコールファイルを決定すること、たとえば、個人のゲノムが1つまたは複数の基準ゲノムの配列とどのように異なるかを決定することのために、被験者の生成されたデジタル遺伝子コードを使用することを伴う。そして第3の段階は、被験者の遺伝的体質に対して1つまたは複数の分析を実行して、そこから治療上有用な情報を決定することを伴う。これらは順番に、それぞれ一次処理、二次処理、および三次処理と呼ばれ得る。
予備的に、たとえば段階Iにおいて、または一次処理において、遺伝物質は、使用可能な遺伝子配列データを導くために、たとえばヌクレオチドシーケンシングを介して前処理されなければならない。デオキシリボ核酸(DNA)およびリボ核酸(RNA)などの核酸のシーケンシングは、生物学における発見の重要な部分である。そのような検出は、様々な目的に有用であり、しばしば科学的研究ならびに医療の進歩において使用される。たとえば、ゲノミクスおよびバイオインフォマティクスの分野は、遺伝学および/または分子生物学の分野に情報技術および計算機科学を適用することに関係する。具体的には、本明細書で説明されるものなどのバイオインフォマティクス技法を適用して、個人などからの様々なゲノムデータを生成し、処理し、分析して、そのデータについての定性的および定量的な情報を決定することができ、次いで、これらの情報を、様々な従事者が、疾病状態を検出し、予防し、かつ/または少なくとも軽減するための、個々のおよび/もしくは全体的な診断方法、予防方法、ならびに/または治療方法の開発において使用することができるので、個人および/または社会に対する医療の安全性、品質、ならびに有効性が改善する。
一般に、遺伝子診断などのためのDNA/RNA分析の手法は、核酸のハイブリダイゼーションおよび検出を伴う。たとえば、様々な典型的なハイブリダイゼーションおよび検出の手法は、次のステップを含む。遺伝子分析のために、分析されるべき被験者のRNAまたはDNA試料を基質上で単離および固定化することができ、既知の遺伝子配列、たとえば疾病マーカーのプローブを、基質全体にわたって標識し洗浄することができる。疾病マーカーが存在する場合、結合事象、たとえばハイブリダイゼーションが発生し、プローブが標識されているので、ハイブリダイゼーション事象は検出されるかされないかのいずれかであることがあり、それにより、被験者の試料における疾病マーカーの存在または不在を示す。代替的に、上で示されたように、ハイブリダイゼーション反応が、適切に構成されたFETデバイスの中などにある、たとえば反応物および/または反応の副産物を検出するように構成される反応層の隣で発生する場合、標識されたプローブを利用する必要はない。
典型的には、ヌクレオチドシーケンシングのために、まず、特定されるべき未知の核酸配列、たとえば被験者のDNAおよび/またはRNAの一本鎖の配列が単離され、増幅され、基質に固定化される。次に、識別可能なタグで標識された既知の核酸が、ポリメラーゼの存在下で未知の核酸配列と接触する。ハイブリダイゼーションが発生すると、標識された核酸は、基質の表面に固定化された未知の配列の中の相補的な塩基に結合する。次いで、結合事象を、たとえば光学的または電気的に検出することができる。そしてこれらのステップは、DNA試料全体が完全にシーケンシングされるまで繰り返される。
一般に、これらのステップは、手動で、または次世代シーケンサ(NGS)などの自動シーケンサを介して実行され、次世代シーケンシング処理においては数千個から数百万個の配列が同時に産生され得る。しかしながら、本明細書で提示されるように、相補型金属酸化膜半導体(CMOS)チップなどのコンピュータチップ上などでのDNAおよび/またはRNAのシーケンシングのための直接の標識のないシステムが提示され、たとえば、シーケンサの様々なコンポーネントまたは検知装置全体が、半導体チップ内で具現化され、または半導体チップと別様に関連付けられることがある。そのようなシステムは、本明細書で与えられるように、同じ半導体チップセット内などで、一次処理、二次処理、および/または三次処理のシームレスな統合を可能にする。
より具体的には、利用されるシーケンシング装置のタイプとは無関係に、典型的なシーケンシング手順は、静脈穿刺、毛髪などを通じて被験者から生体試料を取得することと、試料を処理してそこから遺伝物質を単離することとを伴う。単離されると、遺伝子試料がDNAである場合、DNAは変性させられて鎖が分離され得る。RNAはすでに一本鎖であるので、RNAを処理するときにはこのステップは必要ではないことがある。単離されたDNAおよび/もしくはRNAまたはそれらの部分を次いで、たとえばポリメラーゼ連鎖反応(PCR)を介して増幅して、自動シーケンサなどによってシーケンシングされ読み取られる準備ができている複製された鎖のライブラリを構築することができ、このシーケンサは、複製された鎖をたとえば合成によって読み取り、それによって、DNAおよび/またはRNAを構成するヌクレオチド配列を決定するように構成される。さらに、複製され増殖された鎖のライブラリを構築する際などの様々な事例において、DNAおよび/またはRNAの所与の部分を前処理するときにオーバーカバレッジを提供することが有用であり得る。このオーバーカバレッジを、たとえばPCRを使用して実行することは、より多くの試料準備のリソースと時間を必要とすることがあるので高価であり得るが、最終結果がより正確になる確率を高めることが多い。
複製されたDNA/RNA鎖のライブラリが生成されると、それらは自動シーケンサ、たとえばNGSに注入されることがあり、次いで自動シーケンサが、合成などによって鎖を読み取り、鎖からヌクレオチド配列を決定することができる。たとえば、複製された一本鎖DNAまたはRNAは、ガラスビーズに付着され、試験容器、たとえばアレイの中へと挿入され得る。標識されたヌクレオチドを含む、相補的な鎖を複製するために必要なすべての構成要素も、ただし順番に、容器に追加される。たとえば、標識され得るすべての「A」、「C」、「G」、および「T」は、一度に1つ追加されるか、すべて一緒に追加されるかのいずれかが行われ、標識されている場合、ヌクレオチドのいずれが一本鎖DNAまたはRNAの場所1で結合することになるかを見る。
各々の追加の後で、標識されたモデルでは、光、たとえばレーザーがアレイに照射される。混合物が蛍光を発する場合、どのヌクレオチドが対象の位置に結合したかを示す画像が産生される。標識されないモデルでは、ガラスビーズを含む複製された一本鎖DNAまたはRNAが配置される反応層の近くのゲート、たとえば溶液ゲートにおける抵抗の変化などによって、結合事象を検出することができる。より具体的には、ヌクレオチドが一度に1つ追加される場合、結合事象が発生すれば、それを示す蛍光または抵抗の変化が観察される。結合事象が発生しない場合、試験容器を洗浄することができ、4つのヌクレオチドのうちの適切な1つが対象の位置においてその相補物と結合し、条件の変化を示すものが観察されるまで手順が繰り返される。すべての4つのヌクレオチドが同時に追加される場合、各々が異なる蛍光インジケータで標識することができ、対象の場所でその相補物と結合するヌクレオチドを、蛍光の色などによって決定することができる。これは、合成処理を大きく加速する。
結合事象が発生すると、次いで混合物が洗浄され、合成ステップが場所2に対して繰り返される。たとえば、標識された、または別様にマークされたヌクレオチド「A」は、シーケンシングされている結合したテンプレート分子の中の場所1における相補物が「A」であるかどうかを判定するために反応混合物に追加されることがあり、そうである場合、標識された「A」反応物は、その相補物を有するテンプレート配列に結合し、したがって、蛍光を発し、その後で、あらゆる余剰のヌクレオチド反応物を除去するために試料がすべて洗浄される。結合事象が発生した場合、結合したヌクレオチドは洗浄されない。この処理は、すべてのオーバーサンプリングされた核酸セグメント、たとえばリードがシーケンシングされ、データが収集されるまで、すべての場所およびすべてのヌクレオチドに対して繰り返される。代替的に、各々が異なる蛍光インジケータで標識される、すべての4つのヌクレオチドが同時に追加される場合、1つだけのヌクレオチドが対象の場所においてその相補物と結合し、他のものは洗浄されるので、容器が洗浄された後で、レーザーを容器に照射することができ、蛍光の色などによって、どのヌクレオチドがその相補物に結合したかを決定することができる。しかしながら、CMOS FETセンサが以下で説明されるように利用される場合、結合事象は、適切に構成されたゲートまたは他の反応領域の近くで発生する導電率の変化によって検出され得る。
具体的には、一部には、実行されているシーケンシング反応において、光学的に検出可能な、たとえば蛍光性の標識を使用する必要があることにより、そのような高スループットのシーケンシングを実行するための必要な器具は、大型であり、高価であり、時間がかかり、携帯できない傾向があり得る。この理由で、DNAおよび/またはRNAシーケンシングの直接の標識なしの検出のための新しい手法が、本明細書で提案される。たとえば、様々な実施形態において、NGS処理を実行するための改善された方法が提供されるが、他の実施形態では、NGSに必ずしも関与しない、核酸シーケンシングおよび/または処理のための改善された方法およびデバイスが提供される。たとえば、特定の事例では、様々な電子分析デバイスの使用に基づく検出方法が本明細書で提案される。そのような直接の電子検出方法は、典型的なNGSプラットフォームを上回るいくつかの利点を有する。
より具体的には、本明細書で開示されるようなセンサおよび/または検出装置は、相補型金属酸化膜半導体デバイス「CMOS」などの、biosystem-on-a-chipデバイスを利用するなどして、基質自体に組み込まれ得る。具体的には、遺伝子検出においてCMOSデバイスを使用する際、ハイブリダイゼーション事象を表す出力信号、たとえば、ハイブリダイゼーションおよび/または核酸シーケンシングのいずれかのための出力信号が、マイクロチップ自体で直接取得され処理され得る。そのような事例では、リアルタイムで、かつ典型的なNGS処理を使用して現在達成可能なものよりも低いコストで、自動認識が達成可能である。その上、標準的なCMOS基質デバイスを、そのような電子検出のために利用することができ、処理を簡単に、安価に、高速に、かつ携帯可能にする。
たとえば、次世代シーケンシングが医療産業において診断として広く使用されるようになるには、シーケンシング器具が、高度な信頼性、移動性、および経済性で大量生産される必要がある。これを達成する1つの方法は、高度な技術の大規模で、高品質で、低コストの製造の現下の頂点である、相補型金属酸化膜半導体(CMOS)チップ製作などの、コンピュータチップのために作成された製造基盤を完全に活用するような様式で、DNA/RNAシーケンシングを改めることである。これを達成するために、理想的には、シーケンサの検知装置全体が、論理およびメモリチップのために使用されるのと同じ製作施設で製造されるものなどの、標準的な半導体チップにおいて具現化され得る。
したがって、本開示の別の態様では、DNA/RNAシーケンシングおよび/またはハイブリダイゼーション反応のうちの1つまたは複数を実行する際に使用するために構成されるCMOSチップ上に製作され得る、またはそれと別様に関連付けられ得る、電界効果トランジスタ(FET)が本明細書で提示される。そのようなFETは、ゲートと、ソース端子およびドレイン端子を接続するチャネル領域と、ゲートをチャネルから分離するように構成され得る絶縁障壁とを含み得る。そのようなFETの最適な動作は、チャネル導電性の制御に依存するので、ゲート端子とソース端子との間に印加され得る電圧などによるドレイン電流の制御に依存する。
高速な用途のために、およびセンサ感度を高める目的で、本明細書で与えられるFETは、ゲート電圧(VGS)の変動に迅速に応答するような方式で動作し得る。しかしながら、これは短いゲートとチャネルにおける高速なキャリアとを必要とする。これに鑑みて、核酸のハイブリダイゼーションおよび/またはシーケンシング反応などにおいて使用するための本開示のFETセンサは、キャリアの高速な伝導ならびにより高いセンサの感度および精度を可能にするために、垂直方向および/または水平方向に非常に薄いことがあるチャネルを有するように構成され、これにより、核酸シーケンシング反応に対する具体的な利点を本開示のセンサに与える。したがって、本明細書で与えられるデバイス、システム、およびこれらを利用する方法は、核酸シーケンシングおよび/または遺伝子診断などのための、ゲノミクスの分析および適用の実行に対して理想的である。
したがって、本開示の一態様は、核酸シーケンシングおよび遺伝子診断と関連付けられる現在の問題の多くを解決する、生体物質または化学物質の分析のために設計された電界効果トランジスタ(FET)などの、化学的に敏感なトランジスタである。そのようなFETは、ウェハ、たとえばシリコンウェハなどの一次構造上に製作され得る。様々な事例において、一次構造は、絶縁体材料層などの1つまたは複数の追加の構造を、たとえば積層された構成で含み得る。たとえば、絶縁体材料は、一次構造の頂部に含まれることがあり、酸化ケイ素、たとえば二酸化ケイ素、もしくは窒化ケイ素などの無機材料、または、ポリイミド、BCB、もしくは他の同様の材料などの有機材料であり得る。
たとえば絶縁体層を含む一次構造および二次構造は、互いに空間によって離隔され一次構造および/もしくは絶縁体材料層に埋め込まれるなどされた、導電性のソースおよび/または導電性のドレインのうちの1つまたは複数を含むさらなる構造を含むことがあり、かつ/または、絶縁体の頂面と同一平面にあることがある。様々な事例において、この構造はさらに、センサにより導かれるデータなどの生成されたデータを処理することなどのための、プロセッサを含むことがあり、または別様にプロセッサと関連付けられることがある。したがって、構造は、本明細書で説明されるものなどの、集積回路として構成されることがあり、もしくは別様に集積回路を含むことがあり、かつ/または、ASIC、ストラクチャードASIC、もしくはFPGAであることがある。
特定の事例では、構造は相補型金属酸化膜半導体(CMOS)として構成されることがあり、これは次いで、導電性のソース、導電性のドレイン、チャネルもしくはウェル、および/またはプロセッサのうちの1つまたは複数を含む、化学的に敏感なFETとして構成されることがある。たとえば、FETはシリコンウェハ上に製作される集積回路を有するCMOS構造を含むことがあり、これはさらに絶縁体層を含み、この絶縁体層は、その中に埋め込まれるなどされた導電性のソースおよび導電性のドレインを含み、このソース端子およびドレイン端子は、ダマシン銅のソースおよびダマシン銅のドレインなどの金属でできていることがある。様々な事例において、構造は表面、たとえば頂面を含むことがあり、この表面はチャネルを含むことがあり、たとえば、表面および/またはチャネルは、導電性のソースから導電性のドレインに延び、それにより反応ゾーンを形成するように構成されることがある。
いくつかの事例では、表面および/またはチャネルは、1次元トランジスタ材料、2次元トランジスタ材料、3次元トランジスタ材料などを含み得る。様々な事例において、1次元(1D)トランジスタ材料が含まれることがあり、1D材料はカーボンナノチューブまたは半導体ナノワイヤからなることがある。他の事例では、チャンバおよび/またはチャネルは、1つまたは複数のカーボンナノチューブ、および/または半導体ナノワイヤのシートなどの半導体ナノワイヤを含むものなどの、1次元トランジスタ材料からなる。
特定の事例では、2次元(2D)トランジスタ材料が含まれることがあり、たとえば、2D材料は、原子1個または2個の厚みであることがあり、平面的に延びることがある。そのような事例では、2D材料は、グラフェン、グラフィン(アセチレン結合により接続されるベンゼン環の格子からなる炭素の同素体)、ボロフェン(ホウ素の同素体)、ゲルマネン(ゲルマニウムの同素体)、ゲルマナン(別のゲルマニウムの同素体)、シリセン(ケイ素の同素体)、スタネン(スズの同素体)、フォスフォレン(黒リンと呼ばれることがあるリンの同素体)、またはパラジウムもしくはロジウムなどの金属の単原子の層;二硫化モリブデン(モリブデナイトと呼ばれることがあるMoS2)、二セレン化タングステン(WSe2)、二硫化タングステン(WS2)、または他のものなどの、遷移金属ダイカルコゲナイド(2つのカルコゲン原子ごとに1つの遷移金属原子を含む);Ti2C、V2C、Nb2C、Ti3C2、Ti3CN、Nb4C3、もしくはTa4C3などのMXene(典型的にはMn+1Xnの式である遷移金属の炭化物および/または窒化物、ここでMは遷移金属であり、Xは炭素および/または窒素である)(バンドギャップが小さい半導体を産生するために、さらなるMXeneがO、OH、またはFで終端することがある);またはNi HITP(Ni3(2,3,6,7,10,11-ヘキサイミノトリフェニレン)2)などの有機金属化合物;または2D supracrystal(supracrystalは、構造の節において典型的に見出される原子がその対称錯体で置換された、上の周期的な原子構造として定義される)などの、基本的な2D材料を含むことがあり、または別様にそれでできていることがある。遷移金属ダイカルコゲナイドは、比率として、カルコゲン(S、Se、またはTe)のいずれかの2つの原子と結合した、任意の遷移金属(Sc、Ti、V、Cr、Mn、Fe、Co、Ni、Cu、Zn、Y、Zr、Nb、Mo、Tc、Ru、Rh、Pd、Ag、Cd、Hf、Ta、W、Re、Os、Ir、Pt、Au、Hg、Rt、Db、Sg、Bh、Mt、Ds、またはRg)の1つの原子を備え得ることに留意されたい。具体的な事例では、2D材料は、グラフェン層、シリセン、二硫化モリブデン、黒リン、および/または金属ダイカルコゲナイドのうちの1つまたは複数を含み得る。様々な事例において、3次元(3D)材料が表面に含まれることがあり、かつ/またはチャネルが誘電体層を含むことがある。
加えて、様々な事例において、反応層、たとえば酸化物層が、1D、2D、たとえばグラフェン、もしくは3D層に積層され、または別様に堆積されるなどして、表面および/またはチャネルに設けられ得る。そのような酸化物層は、酸化アルミニウムまたは二酸化ケイ素などの酸化ケイ素であり得る。様々な事例において、パッシベーション層が、1D、2D、たとえばグラフェン、もしくは3D層に積層され、または別様に堆積されるなどして、表面および/もしくはチャネル上に、かつ/または、表面および/もしくはチャネル上の関連する反応層上に設けられ得る。
特定の事例では、一次構造および/または二次構造は、表面の中に、および/もしくは表面に接して、チャンバまたはウェルを含むように製作され、または別様にそのように構成されることがある。たとえば、ウェル構造は、一次構造および/または二次構造の表面、たとえば外部表面の一部分に配置され得る。いくつかの事例では、ウェル構造は、1D、2D、たとえばグラフェン、および/もしくは3D材料の少なくとも一部分の頂部に形成されることがあり、もしくは別様にそれを含むことがあり、かつ/または、反応層、たとえば酸化物層、および/もしくはパッシベーション層を追加で含むことがある。様々な事例において、チャンバおよび/またはウェル構造は、1D、たとえばカーボンナノチューブもしくはナノワイヤ、2D、たとえばグラフェンの、表面および/またはチャネルとの直接の接触を可能にするなど、チャンバの内部への進入を可能にする開口などの開口を画定することがある。
したがって、様々な実施形態において、本開示はバイオセンサを対象とする。バイオセンサは、金属を含むソース、たとえばダマシン銅のソース、ならびに金属を含むドレイン、たとえばダマシン銅のドレインと、ソース端子からドレイン端子に延びる、1Dまたは2Dの積層された、たとえばグラフェンの積層された表面またはチャネルと、1Dもしくは2Dもしくは3Dの積層されたウェル構造の外部表面の一部分に配置され得るウェルまたはチャンバ構造とを含み得る、CMOS構造を含む。そのような事例では、ウェル構造は、ナノチューブ、ナノワイヤ、および/またはグラフェンのウェルもしくはチャンバ表面との直接の接触を可能にする開口を画定するように構成され得る。様々な事例では、酸化物層および/またはパッシベーション層が、チャンバ表面の中に、またはそれに接して設けられ得る。したがって、いくつかの事例では、1つまたは複数のナノウェルまたはマイクロウェルを含む電界効果トランジスタ(FET)などの、化学的に敏感なトランジスタが設けられ得る。
いくつかの実施形態では、化学的に敏感な電界効果トランジスタは、複数のウェルを含むことがあり、アレイ、たとえばセンサアレイとして構成されることがある。したがって、システムは、1つまたは複数の、たとえば複数のセンサを含むウェルのアレイを含むことがあり、たとえば、センサの各々は、導電性のソースと、導電性のドレインと、導電性のソースから導電性のドレインに延びる反応表面またはチャネルとを有する、化学的に敏感な電界効果トランジスタを含む。そのような1つまたは複数のアレイは、DNA/RNAハイブリダイゼーションおよび/またはシーケンシング反応を含む、多種多様な化学的および/または生物学的処理において、様々な検体タイプの存在および/または濃度変化を検出することなどのために、利用され得る。たとえば、本明細書で説明されるデバイスおよび/またはそれを含むシステムは、ゲノム全体の分析、ゲノム型の分析、マイクロアレイ分析、パネル分析、エキソーム分析、マイクロビオーム分析、ならびに/または、癌の分析、NIPT分析、および/もしくはUCS分析などの臨床分析などのための、疾病の診断および/または生体物質もしくは化学物質の分析のための方法において利用され得る。
ある特定の実施形態では、FETは、本明細書で説明されるようなグラフェンFET(gFET)アレイであることがあり、gFETベースのセンサのゲート付きの反応チャンバもしくはウェル内などでの、水素イオン濃度(pH)の変化、他の検体の濃度の変化、および/または、DNA/RNA合成に関する化学的処理と関連付けられる結合事象を監視することなどに基づいて、DNA/RNAシーケンシングおよび/またはハイブリダイゼーション技法を容易にするために利用されることがある。たとえば、化学的に敏感な電界効果トランジスタは、CMOSバイオセンサとして構成されることがあり、かつ/または、1Dおよび/もしくは2Dおよび/もしくは3D材料で積層された表面、誘電体もしくは反応層、パッシベーション層などを有する、1つまたは複数の表面またはウェルを含むことなどによって、センサおよび/もしくは関連するアレイの測定の感度および/もしくは精度を向上させるように適合されることがある。たとえば、ある特定の実施形態では、CMOS構造を有するグラフェン電界効果トランジスタ(gFET)などの化学的に敏感なgFETが提供され、gFETセンサ、たとえばバイオセンサは、センサおよび/もしくは関連するアレイの測定の感度ならびに/または精度を向上させるために、ウェルまたはチャンバの表面に設けられる層などの、酸化物層および/またはパッシベーション層を含み得る。酸化物層は、存在するとき、酸化アルミニウム、酸化シリコン、二酸化シリコンなどからなり得る。
システムはさらに、反応を実行することなどのための流体コンポーネント、反応プロセスを走らせることなどのための回路コンポーネント、ならびに/または、反応プロセスを制御することおよび/または処理することなどのためのコンピューティングコンポーネントのうちの1つまたは複数を含み得る。たとえば、流体コンポーネントが含まれることがあり、ここで、流体コンポーネントは、アレイおよび/またはアレイの1つまたは複数のチャンバにわたって、試料の1つまたは複数の流れを制御するように構成される。具体的には、様々な実施形態において、システムは表面またはウェルなどの複数の反応位置を含み、システムはまた、複数のセンサおよび/または複数のチャネルを含み、さらに、1つまたは複数の表面/またはウェルへとその中での1つまたは複数の反応の実行のために送達される複数の試料および/または検体を有する流体を含む、1つまたは複数の流体源を含む。いくつかの事例では、1つまたは複数の電場および/または磁場を生成するための機構も含まれ得る。
システムは加えて回路コンポーネントを含むことがあり、たとえば、回路コンポーネントは、サンプリングおよびホールド回路、アドレスデコーダ、バイアス回路、ならびに/または少なくとも1つのアナログデジタルコンバータを含み得る。たとえば、サンプリングおよびホールド回路は、リード期間の間などに、本開示のデバイスのアレイの選択された列および/または行の線に印加されることになる電圧のアナログ値を保持するように構成され得る。加えて、アドレスデコーダは、アレイ内の所与のアドレスを有するセンサにアクセスするために、アレイのある列および/または行に対する列および/または行選択信号を作成するように構成され得る。バイアス回路は、アレイの1つまたは複数の表面および/またはチャンバに結合されることがあり、アレイの選択された化学的に敏感な電界効果トランジスタに、たとえばトランジスタのゲート端子に、リードおよび/またはバイアス電圧を印加するように構成されることなどがある、バイアスコンポーネントを含み得る。アナログデジタルコンバータは、アナログ値をデジタル値に変換するように構成され得る。
コンピューティングコンポーネントも含まれることがあり、たとえば、コンピューティングコンポーネントは、シグナルプロセッサなどの1つまたは複数のプロセッサ、シーケンシングされた核酸の1つまたは複数のリードの1つまたは複数の塩基を決定するために構成されるベースコールモジュール、シーケンシングされたデータの1つまたは複数のリードから1つまたは複数のシードを生成するために、かつ1つまたは複数のシードおよび/もしくはリードに対してマッピング機能を実行するために構成される、マッピングモジュール、1つまたは複数のマッピングされたリードに対してアライメント機能を実行するために構成されるアライメントモジュール、1つまたは複数のマッピングされたリードおよび/もしくはアライメントされたリードに対してソート機能を実行するために構成されるソートモジュール、ならびに/または、1つまたは複数のマッピングされた、アライメントされた、および/もしくはソートされたリードに対してバリアントコール機能を実行するために構成されるバリアントコールモジュールを含み得る。具体的な事例では、ベースコールモジュールの塩基コーラは、位相および信号の損失などについて複数の信号を訂正し、鍵に対して正規化し、かつ/または、複数のシーケンシングリードを産生するために各センサにおいて各フローに対する複数の訂正されたベースコールを生成するように構成され得る。様々な実施形態では、デバイスおよび/またはシステムは、少なくとも1つの基準電極を含み得る。
具体的には、システムはシーケンシング反応を実行するために構成され得る。そのような事例では、FETシーケンシングデバイスは、関連する1つまたは複数の化学的に敏感な電界効果トランジスタを有するセンサのアレイを含み得る。そのようなトランジスタは、ソース端子、ドレイン端子、またはゲート端子のうちの1つまたは複数を有するカスコードトランジスタを含み得る。そのような事例では、トランジスタのソース端子は、化学的に敏感な電界効果トランジスタのドレイン端子に直接または間接的に接続され得る。いくつかの事例では、1次元または2次元のチャネルが、含まれることがあり、ソース端子からドレイン端子に延びることがあり、たとえば、1Dチャネル材料はカーボンナノチューブまたはナノワイヤであることがあり、2次元チャネル材料は、グラフェン、シリセン、フォスフォレン、二硫化モリブデン、および金属ダイカルコゲナイドからなることがある。デバイスはさらに、センサのアレイの中に、センサに結合される複数の行または列の線を含むように構成され得る。そのような事例では、複数の列の線の中の各列の線は、アレイの中の対応する複数のピクセルのトランジスタ、たとえばカスコードトランジスタのドレイン端子に直接もしくは間接的に接続され、または別様に結合されることがあり、同様に、複数の行の線の中の各行の線は、アレイの中の対応する複数のセンサのトランジスタ、たとえばカスコードトランジスタのソース端子に直接もしくは間接的に接続され、または別様に結合されることがある。
いくつかの事例では、複数の反応表面、たとえばチャネル部位がその間に延びている、複数のソース端子およびドレイン端子が含まれることがあり、たとえば、各チャネル部位は1次元または2次元または3次元の材料を含む。そのような事例では、複数の第1および/または第2の導電体層が、アレイの中のそれぞれの列と行における化学的に敏感な電界効果トランジスタの第1および第2のソース/ドレイン端子に結合され得る。加えて、制御回路が設けられ、選択された列の線および/または選択された行の線に接続される選択されたセンサを読み取ることなどのために、複数の列および行の線に結合され得る。この回路はまた、リード電圧を選択された行の線に印加するように、かつ/または、選択されたセンサのFETおよび/もしくはカスコードトランジスタなどのトランジスタのゲート端子などにバイアス電圧を印加するように、構成されることなどがある、バイアスコンポーネントを含み得る。ある特定の実施形態では、バイアス回路は、アレイの1つまたは複数のチャンバに結合され、導電性の列および/または行の線を介してリードバイアスを選択された化学的に敏感な電界効果トランジスタに印加するように構成され得る。具体的には、バイアス回路は、リード期間の間などに、リード電圧を選択された行の線に印加し、かつ/または、トランジスタ、たとえばカスコードトランジスタのゲート端子にバイアス電圧を印加するように構成され得る。
選択された化学的に敏感な電界効果トランジスタのゲート構成の1つまたは複数に結合される電荷を検知するために、検知回路が含まれ、アレイに結合され得る。検知回路はまた、選択された行および/または列の線のサンプリングされた電圧レベルに基づいて、選択されたセンサを読み取るように構成され得る。そのような事例では、検知回路は、リード期間の前に選択された列の線をプリチャージ電圧レベルにプリチャージすることなどのためのプリチャージ回路、および、リード期間などの間に、選択されたトランジスタ、たとえばカスコードトランジスタのドレイン端子における電圧レベルをサンプリングすることなどのためのサンプリング回路のうちの、1つまたは複数を含み得る。サンプリング回路が含まれることがあり、サンプリング回路は、リード期間の間に選択された列の線の電圧のアナログ値を保持するように構成されるサンプリングおよびホールド回路を含むことがあり、アナログ値をデジタル値に変換するためのアナログデジタルコンバータをさらに含むことがある。
別の態様では、本発明の1D、2D、または3DのFET集積回路、たとえば本開示のgFET、センサ、および/またはアレイは、当技術分野で知られている任意の適切な相補型金属酸化膜半導体(CMOS)処理技法を使用するなどして製作され得る。いくつかの事例では、そのようなCMOS処理技法は、センサおよび/もしくはアレイの測定の感度ならびに/または精度を向上させ、同時に、非常に小さなセンササイズおよび密集したgFETチャンバセンサ領域を容易にするように構成され得る。具体的には、反応層として1D、2D、3D、および/または酸化物を利用する本明細書で説明される改善された製作技法は、小さなセンサからセンサの大きな密集したアレイへの高速なデータ取得を実現する。特定の実施形態では、イオン選択性のある透過膜が含まれ、この膜の層は、ペルフルオロスルホン材料、ペルフルオロカルボキシル材料、PEEK、PBI、Nafion、および/またはPTFEなどのポリマーを含み得る。いくつかの実施形態では、イオン選択性のある透過膜は、酸化物またはガラスなどの無機材料を含み得る。様々な層、たとえば反応層、パッシベーション層、および/または透過膜層のうちの1つまたは複数は、スピンコーティング、陽極酸化、PVD、および/またはゾルゲル法によって製作され、または別様に塗布され得る。
したがって、本明細書で説明されるCMOS FETデバイスは、核酸試料をシーケンシングするために利用されることがあり、そのような事例では、核酸試料は、反応ゾーンの表面、たとえばグラフェンで被覆された表面に結合され得る、またはそれに近接し得る、DNA/RNA合成およびシーケンシングのテンプレートとして機能する。固定化されると、次いで、以下のステップの1つまたは複数を実行することによって、テンプレート配列をシーケンシングおよび/または分析することができる。たとえば、プライマー、ならびに/またはポリメラーゼ、たとえばDNAおよび/もしくはRNAポリメラーゼ、ならびに/または1つまたは複数の基質、たとえばデオキシヌクレオチド三リン酸dATP、dGTP、dCTP、およびdTTPが、鎖伸長反応を引き起こすために、ハイブリダイゼーション反応が開始した後などに、たとえば順番に、反応チャンバに添加され得る。適切な、たとえば対応する基質が、テンプレート配列においてその相補物に対してハイブリダイゼーションを行うと、新しい局所的なゲーティング効果の結果として測定される、個々の電気的に特徴のある電圧、たとえばソースドレイン電圧(Vsd)の付随する変化がある。1D、2D、または3Dの表面に堆積される酸化物層などの反応層が含まれる場合、結合事象が発生する感度を増幅させることができ、たとえば、反応層は、水素イオン濃度(pH)の変化、他の検体濃度の変化を生み出すためにおよび/または監視するために構成される。
したがって、適切な、たとえば相補的な基質を伴う1つ1つの鎖伸長反応に対して、特徴的な電圧および/またはpH濃度の変化がある。たとえば、本明細書で説明されるように、核酸シーケンシングおよび/または遺伝子検出のための電界効果デバイスは、フローセルの試料チャンバまたはウェルの中に設けられることがあり、たとえばポリメラーゼと、1つまたは複数の基質、たとえば核酸とを含む試料溶液が、システムの流体コンポーネントの1つまたは複数などを介して、試料溶液チャンバに導入され得る。様々な実施形態において、基準電極は、電界効果デバイスと接触する流体の上流に、下流に、またはその中に設けられることがあり、かつ/または、ソース端子および/もしくはドレイン端子自体が、ハイブリダイゼーションの検出などのための電極として機能することがあり、ゲート電圧が必要とされるときにはいつでも印加することができる。
具体的には、上で説明されるものなどの例示的な鎖伸長反応では、添加される基質が標的のDNA/RNAプライマーおよび/またはテンプレートの塩基配列と相補的である場合、ポリヌクレオチドが合成される。添加される基質がテンプレートの中の次に利用可能な塩基配列に対して相補的ではない場合、ハイブリダイゼーションは発生せず、鎖伸長はない。DNAおよびRNAなどの核酸は水溶液中で負に帯電しているので、鎖伸長をもたらすハイブリダイゼーションは、反応表面および/または反応チャンバでの電荷密度の変化によって付加的に決定され得る。そのような検出は、pHの変化を検出することなどによって、イオン濃度の上昇を検出することが可能であることにより、改良され得る。基質は順番に添加されるので、どのヌクレオチドがテンプレートに結合したかを容易に決定することができ、それにより、鎖伸長反応を促進する。したがって、鎖伸長の結果として、グラフェンの積層されたゲート表面、絶縁膜の表面、および/または反応チャンバの側壁の表面での負の電荷が増大する。次いで、本明細書で詳細に説明されるように、ゲートソース電圧および/またはイオン濃度の変化などの、この増大が検出され得る。どの基質の添加がゲートソース電圧における信号またはpHの変化をもたらしたかを決定することによって、標的の核酸の塩基配列の識別情報を決定および/または分析することができる。
具体的には、本明細書で説明されるような、NGSおよび/またはFETベースのシーケンシングデバイスなどの、利用されるシーケンシングデバイスとは無関係にこの反復的な合成プロセスは、DNA/RNAテンプレート鎖全体が容器の中で複製されるまで続く。通常は、この方式で複製される配列の典型的な長さは、利用されるシーケンシングプロトコルに応じて、約250塩基対から約300塩基対などの、約200塩基対から約350塩基対を含めて、約150塩基対から約400塩基対などの、約100塩基対から約500塩基対である。さらに、これらのテンプレートセグメントのヌクレオチドの長さは、たとえば、任意の特定のシーケンシング機械および/またはその機械が動作させられるプロトコルに従うように、事前に決められていることがあり、たとえば設計されることがある。
最終結果は読出しまたはリードであり、これは、たとえば長さが約100個から約1000個以上のヌクレオチドの複製されたDNA/RNAセグメントからなり、このセグメントは、配列の中の1つ1つのヌクレオチド、たとえばリードがその標識により知られるか、または、電圧および/もしくはpHの変化などのゲート特性の変化によって決定され知られるかのいずれかであるような方式で標識されている。したがって、ヒトゲノムは約32億塩基対からなり、様々な既知のシーケンシングプロトコルは通常、約100または101塩基から約250または約350または約400塩基の、標識された複製された配列、たとえばリードをもたらすので、シーケンシングされる必要のあるセグメントの総数、および結果的に、生成されるリードの総数は、標識された複製された配列がどれだけ長いかに応じて、約15,000,000から約30,000,000などの、約10,000,000から約40,000,000までのどこかにあり得る。したがって、シーケンサは典型的には、一回でゲノムをカバーするために、リードの長さが100個のヌクレオチドである場合などにおいて、約30,000,000個のリードを生成することがある。しかしながら、本明細書で示されるように、本明細書で提示されるチップフォーマット上での本発明のシーケンシングの圧縮された性質により、800塩基、1000塩基、2500塩基、5000塩基、最高で10000塩基などの、はるかにより大きなリードの長さが達成可能であり得る。
さらに、上で示されたように、そのような手順では、DNA/RNAを、たとえば約5倍、または約10倍、または約20倍、または約25倍、または約30倍、または約40倍、または約50倍、または約100倍、または約200倍、または約250倍、または約500倍、または約1000倍、または約5000倍、または約10000倍をも超える倍率でオーバーサンプリングすることが有用であり得るので、行われる必要がある一次処理の量およびこれを行うのにかかる時間は、かなり膨大であることがある。たとえば、40倍のオーバーサンプリングでは、様々な合成されるリードがある程度重畳するように設計され、最高で約12億個のリードが合成される必要があり得る。典型的には、これらの標識される配列のすべてではないにしても大半を、並列に生成することができる。最終結果は、最初の生物学的な遺伝物質が、たとえば本明細書で要約されるものなどのシーケンシングプロトコルによって処理され、データのデジタル表現が生成され、そのデータのデジタル表現が一次処理プロトコルにかけられ得るというものである。
具体的には、被験者の遺伝物質が、測定可能な電気的信号、化学的信号、放射性信号、および/または光学的信号が生成されるような方式で、複製およびシーケンシングされることがあり、この信号が次いで、たとえばシーケンサおよび/またはシーケンサと関連付けられる処理装置によって、被験者の遺伝子コードのデジタル表現へと変換される。より具体的には、一次処理は、記録された発光または他の電気的もしくは化学的な信号データなどの画像をFASTQファイルデータに変換することを含み得る。したがって、この情報はFASTQファイルに記憶され、これは次いで、さらなる処理、たとえば二次処理のために送信され得る。典型的なFASTQファイルは、デジタル的に符号化されたヌクレオチド配列を表すリードの大きな集合体を含み、ここで、配列の中の各々の予測される塩基は、コールされており、示される場所におけるコールされた塩基が正しくないことの確率スコアを与えられている。
多くの事例において、シーケンサおよび/またはシーケンシングプロトコルから得られたデジタル的に符号化された配列データを、デジタル的に表現されたデータを二次処理にかけることなどによって、さらに処理するのが有用であり得る。この二次処理は、たとえば、個人のゲノムプロフィール全体をアセンブルするために使用することができ、たとえば、個人の全体的な遺伝的体質が決定され、たとえば、それぞれの染色体のそれぞれのヌクレオチドが、個人のゲノム全体の組成が特定されるように順番に決定される。そのような処理において、個人のゲノムは、個人の遺伝的体質が基準のものとどのように異なるかを決定するために、標準的なゲノム、たとえばヒトゲノム計画から得られた1つまたは複数のゲノムなどの、基準ゲノムとの比較などによって、アセンブルされ得る。この処理は一般に、バリアントコールとして知られている。任意のある人物のDNA/RNAと別の人物のDNA/RNAの差異は1000塩基対のうち1塩基対であるので、そのようなバリアントコール処理は非常に労働集約的で時間がかかることがある。
したがって、典型的な二次処理プロトコルでは、主題の遺伝的体質が基準ゲノムとの比較によりアセンブルされる。この比較は、数百万個の短いリード配列から個々のゲノムを再構築すること、ならびに/または、個人のDNAおよび/もしくはRNAの全体を例示的なDNAおよび/もしくはRNA配列モデルに対して比較することを伴う。典型的な二次処理プロトコルにおいて、生のシーケンシングされたリードデータを含むFASTQファイルが、シーケンサから受け取られる。たとえば、いくつかの事例では、各リードの長さが約100ヌクレオチドである場合などに、オーバーサンプリングがないと仮定すると、被験者のゲノムをカバーする最高で30,000,000個以上のリードがあり得る。したがって、そのような事例では、被験者のDNA/RNAゲノムを標準的な基準ゲノムのDNA/RNAと比較するために、これらのリードの各々が基準ゲノムのどこにマッピングするか、たとえば、各々が互いに対してどのようにアライメントされるか、および/または、各リードが染色体の順序によってどのようにソートもされ得るかなどを、各々のリードがどこの場所に属しどの染色体に属するかを決定するために、決定する必要がある。これらの機能の1つまたは複数は、完全な長さの配列全体に対してバリアントコール機能を実行する前に行われ得る。各リードがゲノムの中のどこに属するかが決定されると、完全な長さの遺伝子配列を決定することができ、次いで、被験者の遺伝子コードと基準の遺伝子コードとの差異を評価することができる。
ヒトゲノムは長さが30億塩基対を超えるので、臨床的に有用であり得る期間内にそのようなDNA/RNAゲノムのシーケンシングを達成するために、効率的な自動のシーケンシングプロトコルおよび機械が開発されている。自動シーケンシングにおけるそのような革新は、シーケンシングされているゲノムの数、関与するオーバーサンプリングの量、およびジョブに割り当てられる処理リソースの数に応じて、数時間から数日のうちに、ゲノム全体をシーケンシングする能力をもたらした。したがって、シーケンシングにおけるこれらの進歩を考慮すると、大量のシーケンシングデータが、比較的短い期間に生成されることが可能である。しかしながら、これらの進歩の結果が、二次処理段階におけるボトルネックの増大である。このボトルネックを克服するのを助けようとして、本明細書で説明されるものなどの様々なソフトウェアベースのアルゴリズムが、基準ベースのアセンブリプロセスなどによって、被験者のシーケンシングされるDNAおよび/またはRNAをアセンブルするプロセスを速めるのを助けるために開発されている。
たとえば、基準ベースのアセンブリは、被験者のシーケンシングされたゲノムDNAおよび/またはRNAを、1つまたは複数の標準、たとえば既知の基準配列のゲノムDNAおよび/またはRNAと比較することを伴う、典型的な二次処理アセンブリプロトコルである。様々なアルゴリズムが、このプロセスを速めるのを助けるために開発されている。これらのアルゴリズムは典型的には、各々の特定のリードが各染色体上でどこに対応するか、または別様に位置するかを決定するために、シーケンサによって伝えられるデジタルファイル、たとえばFASTQファイルから受け取られる、数百万個のリードをマッピングすること、アライメントすること、および/またはソートすることのうちの1つまたは複数の何らかの変形を含む。しばしば、これらの様々なアルゴリズムの機能の背後に共通の特徴は、アルゴリズムの処理機能を速めるためにインデックスおよび/またはアレイを使用することである。
たとえば、マッピングに関して、大量の、たとえばすべてのシーケンシングされたリードが、それらのリードが基準ゲノムにおいて潜在的にアライメントし得る可能な位置を決定するために、処理され得る。この目的で使用され得る1つの方法は、すべての一致の場所を見つけるために、リードを基準ゲノムと直接比較することである。別の方法は、基準DNA/RNAゲノムの中の様々な場所にリードをマッピングする目的で、プレフィックスアレイまたはサフィックスアレイを利用すること、またはプレフィックスツリーまたはサフィックスツリーを構築することである。そのような機能を実行する際に有用な典型的なアルゴリズムはBurrows-Wheeler変換であり、これは、データの繰り返し配列を圧縮する圧縮式を使用して、リードのうちの選択されたものを基準にマッピングするために使用される。
さらなる方法はハッシュテーブルを利用することであり、たとえば、リードの選択されたサブセットである、選択された長さ「k」のk-mer、たとえばシードが、ハッシュテーブルにおいて鍵として配置され、基準配列が等価な複数のk-mer部分へと分解され、ハッシュ関数に従って、それらの部分および部分の位置が、それらがマッピングするハッシュテーブル中のそれらの位置において、ハッシュテーブルへとアルゴリズムによって挿入される。この機能を実行するための典型的なアルゴリズムは「BLAST」、Basic Local Alignment Search Toolである。そのようなハッシュテーブルベースのプログラムは、クエリヌクレオチドまたはタンパク質配列を1つまたは複数の標準的な基準配列データベースと比較し、一致の統計的な有意性を計算する。これらのような方式では、任意の所与のリードが基準ゲノムに関してどこに位置する可能性があるかが決定され得る。これらのアルゴリズムは、被験者のゲノムがたとえばこれらのアルゴリズムを使用せずに直接の比較によってアセンブルされた場合などの、他の場合よりも、少量のメモリ、少数のルックアップしか必要とせず、したがって、機能の実行に少量の処理リソースおよび時間しか必要としないので、有用である。
加えて、リードがゲノムの中の複数の場所にマッピングすることができ、その場所が実際に、元のシーケンシングプロトコルによってシーケンシングされるなどしてリードが実際に導かれた位置であるような事例において、所与のリードがゲノム上でマッピングし得るすべてのあり得る位置の中から決定するために、アライメント機能が実行され得る。この機能はゲノムの多数のリードに対して実行されることがあり、被験者のDNAおよび/またはRNAの遺伝子配列の一部分もしくは全体を表す、順序付けられたヌクレオチド塩基の列が取得されることがある。順序付けられた遺伝子配列とともに、任意の所与のヌクレオチド場所に対して、その場所にあると予測されるヌクレオチド、たとえば「A」、「C」、「G」、「T」(または「U」)が実際に、その割り当てられた場所に属するヌクレオチドである確率を表す、スコアが各ヌクレオチド場所に対して与えられ得る。アライメント機能を実行するための典型的なアルゴリズムは、Needleman-WunschおよびSmith-Watermanである。いずれの場合でも、これらのアルゴリズムは、被験者のクエリゲノムDNAおよび/またはRNA配列の列と、基準ゲノム配列の列との間の配列アライメントを実行し、それにより、ゲノム配列全体を互いに比較する代わりに、あり得る長さの選択部分のセグメントが比較される。
リードがどの染色体に属するか、および/または、染色体の開始からのリードのオフセットを特定することを含み得る、基準ゲノムなどに対する相対的な場所をリードが割り当てられると、リードは場所によってソートされ得る。これは、下流の分析が、上で説明されたオーバーサンプリングを利用することを可能にし得る。ゲノムの中の所与の場所と重畳するリードのすべてが、ソートの後で互いに隣接するようになり、それらは、パイルアップへと組織化され、それらの大多数が基準値と一致するかどうかを判定するために容易に調査され得る。一致しない場合、バリアントの印をつけることができる。
これらのアルゴリズムおよび同様の他のものは、二次処理に固有のボトルネックを解決することにまで進むが、より高速な実行時間およびより高い精度がそれでも望ましい。より具体的には、生成されたDNA/RNA配列データなどの生データの生成には進歩があったが、情報技術の進歩はこれについていけておらず、データ分析のボトルネックになっていた。このボトルネックは、上で説明されたものなどの、これらの分析を加速するのを助ける様々なアルゴリズムの開発によっていくらか軽減されているが、データの生成および取得、そのようなデータの計算、記憶、ならびに/または分析を扱うために、新しい技術が、とりわけ二次処理段階などにおけるゲノム配列分析に関係するので、依然として必要である。
たとえば、標準的なNGS技術を利用すると、ヒトゲノムをシーケンシングするのに数時間、最長で約1日かかることがあり、そのような取得されたゲノムシーケンシングデータに対して二次処理を実行するための標準的なプロトコルを使用すると、個人の臨床的に関連のあるゲノム配列情報を生成するためにシーケンシングされたデータを処理するのに、3日または最長で1週間以上もかかることがある。様々な異なる最適化されたデバイス、アルゴリズム、方法、および/またはシステムを利用すると、一次処理から二次処理に費やされる時間は、わずか27時間から48時間に短縮され得る。しかしながら、そのような高速な結果を達成するには通常、事実上すべての生成されるリード、たとえば各々100ヌクレオチドの3000万個のリードが並列かつ同時に処理されることが必要である。そのような並列処理は、大量のCPUリソースを伴う膨大な処理能力を必要とし、依然として比較的長い時間がかかる。
さらに、様々な事例において、結果の精度の向上が望まれている。そのような精度の向上は、シーケンシングされるゲノムのいくらかの量のオーバーサンプリングを提供することを通じて達成され得る。たとえば、上で説明されたように、ヌクレオチドの配列の任意の所与の位置において、その領域のオーバーサンプリングがあるような方式で、被験者のDNAを処理するのが望ましいことがある。上で示されたように、ゲノムの任意の所与の領域を、最高で10倍、または15倍、または20倍、または25倍、または30倍、または40倍、または50倍、または100倍、または250倍、またさらには、500倍または1000倍以上でオーバーサンプリングするのが望ましいことがある。しかしながら、ゲノムがたとえば40倍でオーバーサンプリングされる場合、処理されるべきリードの量は概ね3000万×40(リードの長さに依存する)であり、ゲノム全体が40倍でオーバーサンプリングされるとき、約12億個のリードが処理されなければならないことになる。したがって、そのようなオーバーサンプリングは通常より高い精度をもたらすが、ゲノムの各セクションが1回から40回までのいずれかの回数カバーされるので、より長い時間がかかり、より膨大な処理リソースを必要とするという犠牲を伴う。その上、臨床医が血流中の癌細胞の変異したゲノムを健康な細胞のゲノムとは別個のものとして区別しようとするような、いくつかの腫瘍学への適用形態では、500倍、または1000倍、または5000倍、またさらには10000倍ものオーバーサンプリングが利用されることがある。
したがって、本開示は、取得されたゲノムシーケンシングデータまたはその一部分に対して、一次処理および/または二次処理などの、遺伝子取得および/または分析を実行するための、1つまたは一連のゲノミクスおよび/またはバイオインフォマティクスプロトコル、たとえばパイプラインにおいて実施され得る、そのような新しい技術を対象とする。シーケンシングデータは、ROCHEの「Sequencing by Synthesis」454自動シーケンサ、ILLUMINAのHiSeq x TenまたはSolexia自動シーケンサ、LIFE TECHNOLOGIESの「Sequencing by Oligonucleotide Ligation and Detection」(SOLiD)もしくはIon Torrentシーケンサ、および/または、HELICOS GENETIC ANALYSIS SYSTEMSの「Single Molecule Fluorescent Sequencing」シーケンサなどによって、シーケンシング処理ユニットとの直接のリンクによって、自動の高スループットシーケンサシステムから直接取得することができ、または、シーケンシングデータは、本明細書で説明されるような、CMOSシーケンシングチップを含むグラフェン積層FETセンサなどのチップ構成でのシーケンシングなどにおいて、直接取得することができる。そのようなシーケンシングデータはまた、たとえばインターネットを介してアクセス可能なデータベース、またはWi-Fi、Bluetooth(登録商標)などのワイヤレス通信プロトコルを通じてアクセス可能な他のリモート位置などから、リモートで取得することができる。
いくつかの態様では、これらの遺伝子取得および/または分析技術は、より処理集約的ではなく、かつ/またはより時間がかからない方式で、かつ/またはより高い百分率精度で実行されるソフトウェアによって実施され得る、改善されたアルゴリズムを利用し得る。たとえば、いくつかの実施形態では、本明細書で開示されるように、一次処理プロトコルなどにおいて遺伝子配列情報を産生するための改善されたデバイスおよび方法、ならびに/または、本明細書で開示されるように、遺伝子配列情報に対して二次処理を実行するための改善されたアルゴリズムが提供される。様々な特定の実施形態において、改善されたデバイス、システム、それらの使用方法、および利用されるアルゴリズムは、上に記載されたもののうちの1つなどの、自動シーケンサおよび/またはチップ上のシーケンサから得られるFASTQファイルフォーマットなどの、シーケンシングプラットフォームから得られるDNA/RNA配列データのデジタル表現を生成および/または分析することなどのために、シーケンシング、マッピング、アライメント、および/またはソート機能のうちの1つまたは複数を、より効率的かつ/またはより正確に実行することを対象とする。
加えて、いくつかの実施形態では、ローカルリアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、圧縮、および/または解凍機能のうちの1つまたは複数を、より効率的にかつ/またはより正確に実行することを対象とする、改善されたアルゴリズムが提供される。さらに、本明細書において以下でより詳細に説明されるように、いくつかの態様では、これらの遺伝子産生および/または分析技術は、同じことを行うための様々なソフトウェア実装形態よりも、処理集約的ではなく、かつ/または時間がかからない方式で、かつ/または高い百分率精度で実行される、ハードウェアによって実装され得る、改善されたアルゴリズムなどの1つまたは複数のアルゴリズムを利用することができる。
特定の実施形態では、遺伝子配列データを産生するためにDNA/RNAをシーケンシングするための、および/または遺伝子分析を実行するための技術のプラットフォームが提供され、このプラットフォームは、シーケンシング、マッピング、アライメント、ソート、ローカルリアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、圧縮、および/もしくは解凍機能のうちの1つまたは複数の実行を含むことがあり、かつ/または、本明細書で説明されるような三次処理プロトコルをさらに含むことがある。いくつかの事例では、これらのプラットフォーム機能の1つまたは複数の実装形態は、被験者のコンセンサスゲノム配列を生成すること、ならびに/または、決定および/もしくは再構築することのうちの1つまたは複数を実行すること、被験者のゲノム配列を基準配列、たとえば基準もしくはモデルの遺伝子配列と比較すること、被験者のゲノムDNAおよび/もしくはRNAが基準と異なる様式を決定すること、たとえばバリアントコールが目的であり、かつ/または、被験者のゲノム配列に対して三次分析を実行することが目的であり、この三次分析は、ゲノム全体のバリエーション分析および/もしくはゲノム型分析などの全ゲノム分析、遺伝子機能分析、タンパク質機能分析、たとえばタンパク質結合分析、ゲノムおよび/もしくはトランスクリプトームの定量的な分析および/もしくはアセンブリ分析、マイクロアレイ分析、パネル分析、エキソーム分析、マイクロビオーム分析、ならびに/または、癌の分析、NIPT分析、および/もしくはUCS分析などの臨床分析のためのものであり、さらに、様々な診断法、および/または予防法、および/または治療法の評価分析のためのものでもある。
具体的には、遺伝子データが、たとえば、被験者からの遺伝子配列データが1つまたは複数の基準配列とどのように異なるかを決定するために、1つまたは複数のバリアントコールファイルを産生することなどのために、マッピングされること、アライメントされること、および/またはソートされることなどによって、たとえば1つまたは複数の一次処理プロトコルおよび/または二次処理プロトコルにおいて生成および/または処理されると、本開示のさらなる態様は、さらなる処理、たとえば三次処理などのために、生成および/または処理された遺伝子データに対して1つまたは複数の他の分析機能を実行することを対象とし得る。たとえば、システムは、本明細書で開示されるデバイスおよび方法などによって、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイントゲノタイピング、MuTect2パイプライン、または他の三次処理パイプラインのうちの1つまたは複数などの1つまたは複数の三次処理パイプラインを通じてシステムを走らせることなどによって、生成されたデータおよび/または二次的に処理されたデータのさらなる処理のために構成されることがある。たとえば、様々な事例において、NIPT、NICU、癌、LDT、AgBio、ならびに、本開示の一次パイプラインおよび/または二次パイプラインおよび/または三次パイプラインのうちの1つまたは複数によって生成されるデータを利用する、他のそのような疾病診断、予防、および/または治療などを含む、疾病診断、治療処置、および/または予防などのために、処理の追加の層が設けられることがある。したがって、本明細書で開示されるデバイスおよび方法は、遺伝子配列データを生成するために使用されることがあり、このデータは次いで、1つまたは複数のバリアントコールファイルおよび/または他の関連するデータを生成するために使用されることがあり、バリアントコールファイルおよび/または他の関連するデータはさらに、特定のおよび/または一般的な疾病診断、ならびに、予防処置および/または治療処置および/または発達療法などのための、本明細書で開示されるデバイスおよび方法に従った他の三次処理パイプラインの実行の対象であることがある。
さらに、様々な実施形態において、本明細書で開示されるようなバイオインフォマティクス処理体制は、ゲノム基準マスク、デフォルトマスク、疾病マスク、および/または反復フィードバックマスクなどの1つまたは複数のマスクを作成する目的で利用されることがあり、これらは、たとえば基準とともにマッパおよび/またはアライナに追加されることがあり、マスクのセットは関心のある特定の領域またはオブジェクトを特定するように構成される。たとえば、一実施形態では、本明細書で開示される方法および装置は、基準とともにマッパおよび/またはアライナにロードされ得るマスクセットを作成することなどによって、ゲノム基準マスクを作成するために利用されることがあり、このマスクセットは、たとえば従事者もしくは被験者にとって重要性および/もしくは関連性が高い領域を特定するように、かつ/または、エラーがより生じやすい領域を特定するように構成される。様々な実施形態において、マスクセットは、品質を改善するためにゲノムのどの領域に注目すべきかなどについての、インテリジェントな案内をマッパおよび/またはアライナに提供することができる。したがって、マスクは、様々な特定の適用例に基づいて、可変のレベルの、または繰り返しの誘導を提供するように、階層化された方式で作成され得る。各マスクはそれに従って、関心のある領域を特定し、その領域に対する最低限の品質目標を提供することができる。加えて、デフォルトマスクは、ゲノムの特定された、たとえば典型的な「高い値」の領域などについての、案内を提供するために利用され得る。そのような領域は、既知のコーディング領域、制御領域など、ならびに、エラーを生むことがよく知られている領域を含み得る。さらに、既知のマーカー、たとえばCancerに基づく非常に高いレベルの精度を要求する領域などの、重要性の高い領域を特定するマスクセットに対して、疾病マスク、または特定用途向けのマスクが利用され得る。またさらに、観察されたエラーまたは不一致に基づいて問題のある領域を特定した三次分析システム(Cypher Genomicsのような)からのフィードバックを使用することによって特別に設計され得る、新しいアドホックなマスクを追加することなどによって、反復フィードバックマスキングを利用することができる。
上で示されたように、一態様では、これらのプラットフォーム機能のうちの1つまたは複数、たとえば、マッピング、アライメント、ソート、リアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、1つまたは複数の三次処理モジュール、圧縮、および/または解凍機能は、ソフトウェアでの実装のために構成される。別の実施形態では、これらのプラットフォーム機能のうちの1つまたは複数、たとえば、マッピング、アライメント、ソート、ローカルリアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、三次処理、圧縮、および/または解凍機能が、ハードウェアでの実装のために構成される。
したがって、いくつかの事例では、方法が本明細書において提示され、この方法は、マッピング、アライメント、ソート、リアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、圧縮、および/または解凍などの、1つまたは複数の遺伝子分析機能を実行するためのアルゴリズムなどの、あるアルゴリズムの実行を伴い、このアルゴリズムは、それが実装されるべき方式に従って最適化されている。具体的には、このアルゴリズムがソフトウェアの解決法で実装されることになる場合、アルゴリズムおよび/またはその付随する処理は、その媒体による実行のためにより高速に、かつ/またはより高い精度で実行されるように最適化されている。同様に、アルゴリズムの機能がハードウェアの解決法で実装されることになる場合、ハードウェアは、その媒体による実行のためにより高速に、かつ/またはより高い精度で実行されるように最適化された方式で、これらの機能および/または付随する処理を実行するように設計されている。たとえば、これらの方法は、反復的なバリアントコールの手順などにおいて利用され得る。
したがって、一態様では、ゲノムデータなどの遺伝子データを、たとえば1つまたは複数のハードウェア処理プラットフォームなどの上の1つまたは複数の最適化されたアルゴリズムおよび/または1つまたは複数の最適化された集積回路を介して分析するための、1つまたは複数の機能を実行することなどのために、バイオインフォマティクスプロトコルを実施するためのシステム、装置、および方法が本明細書で提示される。したがって、一事例では、バイオインフォマティクスプロトコルにおいてゲノムデータを分析するための1つまたは複数のステップの実行のために1つまたは複数のアルゴリズムを実装するためのシステムおよび方法が提供され、たとえば、これらのステップは、マッピング、アライメント、ソート、ローカルリアライメント、重複マーキング、塩基品質スコア再較正、バリアントコール、圧縮、および/または解凍のうちの1つまたは複数の実行を含み得る。別の事例では、本明細書に記載されるような、バイオインフォマティクスプロトコルにおいてゲノムデータを分析するための1つまたは複数のステップの実行のために1つまたは複数のアルゴリズムの機能を実装するための、システムおよび方法が提供され、この機能は、1つまたは複数の汎用プロセッサおよび/またはスーパーコンピュータと結合されることもされないこともあるハードウェアアクセラレータ上で実装される。
より具体的には、いくつかの事例では、被験者の遺伝子組成に関するデータに対して二次分析を実行するための方法が提供される。一事例では、実行されるべき分析は、被験者のゲノムの基準ベースの再構築を伴い得る。たとえば、基準ベースのマッピングは基準ゲノムの使用を伴い、基準ゲノムは単一または複数の個人のゲノムをシーケンシングすることから生成されることがあり、または、基準ゲノムは、たとえば、個人の遺伝子配列を決定して再構築するために、かつ/または、個人の遺伝的体質と標準的な基準の遺伝的体質の差異を決定するために、たとえばバリアントコールのために、任意の個人のDNAが比較され得るプロトタイプの標準的な基準ゲノムを産生するような方式で合成された、様々な人々のDNAの融合であることがある。
より具体的には、被験者のシーケンシングされたDNAに対して二次分析を実行する理由は、被験者のDNAが基準のDNAからどのように変化しているかを決定するためである。より具体的には、基準のヌクレオチド配列からの被験者のヌクレオチド配列の1つの、多数の、またはすべての差異を決定するためである。たとえば、任意のランダムな2人の遺伝子配列の差異は1000塩基対の中の1塩基であり、これは、ゲノム全体の30億を超える塩基対を考慮すると、人物当たり最大で3,000,000個の相違する塩基対のバリエーションに相当する。これらの差異を決定することは、たとえば、遺伝的な異常などが原因の疾病状態の発生の可能性、および/または、予防もしくは治療が被験者のDNAもしくはそれから生成されるタンパク質とどのように相互作用することが予想されるかということなどに基づく、予防法もしくは治療法の成功の尤度を予測するために、三次分析プロトコルなどにおいて有用であることがある。様々な事例において、ある結果を他の結果に対して確認し、望ましい場合、バリアントコールプロトコルの精度を上げるために、被験者のゲノムのde novoの再構築と基準ベースの再構築の両方を実行することが有用であり得る。
様々な事例において、上に記載されたように、一次シーケンシングプロトコルを実行する際に、被験者のゲノムの1つまたは複数の領域に対してオーバーサンプリングを産生するのが有用であり得る。これらの領域は、被験者の状態に、かつ/または一般にゲノム全体などに基づく、バリアント発生が多いことが知られているエリア、バリアント発生が疑われる領域に基づいて選択され得る。上で示されるように、実行されるシーケンシングプロトコルのタイプに基づくシーケンシングの基本的な形式では、シーケンシングは、被験者の遺伝子配列コードのデジタル表現である読出し、たとえばリードを産生する。これらのリード長は典型的には、利用されているシーケンシング機械のタイプに基づいて設計される。たとえば、ROCHEの454自動シーケンサは通常、100または150塩基対から約1000塩基対の長さのリード長を産生し、ILLUMINAでは、リード長は通常、一部の技術に対しては約100または101塩基対から約150塩基対の長さに、他の技術に対しては250塩基対の長さになるように設計され、LIFE TECHNOLOGIESでは、リード長は通常、SOLiD技術に対しては約50から約60塩基対の長さに、Ion Torrent技術では35から450塩基対の長さになるように設計され、HELICOS GENETIC ANALYSIS SYSTEMSでは、リード長は様々であり得るが、通常は1000ヌクレオチド未満の長さであり得る。
しかしながら、特定のサイズの設計されたリード長を産生するのに必要なDNAサンプルの処理は、労働集約的かつ化学処理集約的であり、シーケンシング自体がシーケンシング機械の機能に依存することが多いので、シーケンシング処理全体でエラーが生じ、それにより、シーケンシングされたゲノムのエラーが発生した部分に異常がもたらされ得る可能性がいくらかある。そのようなエラーは、被験者のゲノムを再構築する目的が、そのゲノムまたはその少なくとも一部分が標準のまたはモデルの基準からどのように変化しているかを決定することである場合には、特に問題であり得る。たとえば、別のものに対して1つのヌクレオチドの変化をたとえばあるリードにおいてもたらす機械的または化学的なエラーは、実際にそこにはないバリエーションの誤った指示を与える。これは、誤ったバリアントコールをもたらすことがあり、さらに、疾病状態などの誤った指示をもたらすことがある。したがって、シーケンシングプロトコルの実行における、機械的な、化学的な、および/または人によるエラーの可能性があるので、多くの事例では、ゲノムの部分または全体をオーバーサンプリングすることなどによって、冗長性を分析システムに築くことが望ましい。より具体的には、自動シーケンサは、所与の場所におけるヌクレオチドとともに、コールされた場所にある所与のヌクレオチドに対するコール、たとえばベースコールが実際には誤りであることの確率を有する、リードの配列を呼び出すFASTQファイルを産生し、シーケンシング処理により行われるベースコールが検出され訂正され得ることを確実にするために、オーバーサンプリングなどの方法を利用するのが望ましいことが多い。
したがって、本明細書で説明される方法を実行する際に、いくつかの事例では、一次シーケンシングプロトコルが、シーケンシングされるゲノムを産生するような方式で実行され、ここで、ゲノムの一部分または全体が、約10倍、約15倍、約20倍、約25倍、約30倍、約40倍、約50倍以上などでオーバーサンプリングされる。したがって、オーバーサンプリングが約40倍である場合などにおいて、リード長が約50~60塩基対の長さになるように設計される場合、このオーバーサンプリングは、約20億個から約25億個のリードをもたらすことがあり、または、リード長が約100または101塩基対の長さである場合、オーバーサンプリングは約10億個から約12億個のリードをもたらすことがあり、リード長が約1000塩基対の長さである場合、約5000万個から約1億個のリードがシーケンサによって生成されることがある。より具体的には、そのような事例において、40倍のオーバーサンプリングにより、ゲノムの任意の所与の点において、任意の1つの場所をカバーする40個のリードがあることが予想されるが、所与の場所は、1つのリードの最初、別のリードの途中、別のリードの最後にあることがあり、しかし、約40回カバーされることが予想される。
したがって、そのようなオーバーサンプリングは、たとえば、オーバーサンプリングが約40倍である場合、最大で40個のリードなどの、多数のリード、たとえば重複によってカバーされる、シーケンシングされるゲノムの領域を産生する。これらの少なくとも部分的な重複は、任意の特定のリードにおける任意の所与のバリエーションが実際に本当のゲノムのバリエーションであるのか、または機械的もしくは化学的なアーティファクトであるのかを判定するのに有用である。したがって、オーバーサンプリングは、被験者の遺伝子配列が基準の遺伝子配列と異なる事例を決定するために被験者のゲノムが基準ゲノムと比較されることになる事例において特に、被験者のゲノムを再構築する際の精度を上げるために利用することができる。このような方式では、以下でより詳細に説明されるように、再構築された配列とモデルとの間の任意の所与のバリエーションが実際に、本当のバリアントの存在によるものであり、試料DNAの初期の処理またはリードアライメントソフトウェアなどにおけるエラーによるものではないことを確認することができる。
たとえば、個人のシーケンシングされるDNAの遺伝子配列を構築する際、どのヌクレオチドがヌクレオチドの成長する列の中でどこに行くかを決定しなければならない。どのヌクレオチドがどこに行くかを決定するために、様々なリードを組織化することができ、重複位置をカバーするリードのパイルアップを築くことができる。このことは、任意の所与の場所に本当のバリエーションがあるかどうか、またはパイルアップの中の問題の場所における任意の1つのリードにエラーがあり得るかどうかをより正確に決定するために、同じ位置をカバーするすべてのリードについて比較が行われることを可能にする。たとえば、場所Xにおいて特定のヌクレオチドを有する読出しが40個のうちの1つまたは2つしかない場合、すべての38個または39個の他のリードは、ある異なるヌクレオチドがその場所にあることについて一致し、2つの異常なリードは、少なくともこの特定の位置においてはエラーであるものとして除外され得る。
より具体的には、被験者のゲノムの任意の1つの位置に対して生成される多数のリードがある場合、任意の所与のヌクレオチド場所に対して複数の重畳またはパイルアップがある可能性が高い。これらのパイルアップは、任意の特定の位置に対するカバレッジを表し、被験者のゲノムの正しい配列をより高い精度で決定するのに有用であり得る。たとえば、示されるように、シーケンシングはリードの産生をもたらし、様々な事例において、産生されるリードはオーバーサンプリングされるので、様々な場所において、様々な特定のリードが重畳する。この重畳は、高い確率の正確性などとともに、本当の試料ゲノムを決定するのに有用である。
したがって、目的は、被験者のゲノムをより正確に再構築するために、本明細書において以下でより詳細に説明されるように、基準ゲノム全体を付加的に複数回スキャンすることであることがあり、被験者のゲノムが異なるゲノム、たとえばモデルゲノムとどのように異なるかを決定するのが望ましい場合、パイルアップの使用が、化学的な、機械的な、またはリードのエラーなどのエラーをより正確に特定し、それらの本当のバリアントと区別することができる。より具体的には、被験者が場所Xにおいて本当のバリエーションを有する場合、パイルアップの中のリードの大多数が、そのバリエーションを確証するはずであり、たとえば含むはずである。本明細書で説明されるものなどの、統計的な分析手順が次いで、基準ゲノムからのすべてのバリアントを伴う被験者の本当の遺伝子配列を決定するために実行され得る。
たとえば、被験者の遺伝子配列が基準ゲノムの使用に関して再構築されることになる場合、リード、たとえばリードのパイルアップが生成されると、次のステップは、1つまたは複数の基準ゲノムにリードをマッピングし、かつ/またはアライメントし、かつ/またはソートし(たとえば、例示的な基準ゲノムがモデルとして利用可能であるほど、分析がより良好になる可能性が高い)、それにより被験者のゲノムを再構築することであることがあり、このことは、一致がある場合、鎖に沿ったすべてのあり得る場所における基準ゲノムに対してマッピングおよび/またはアライメントされた一連のリードをもたらし、各々のそのような場所において、リードは、リードがその場所に実際に属する確率についての確率スコアを与えられる。
したがって、様々な事例において、リードが生成されると、マッピングされるリードの場所、たとえば、リードがマップし得る基準ゲノムの中のあり得る位置が決定され、それらの順序がアライメントされ、被験者のゲノムの本当の遺伝子配列が、アライメントされたデータに対してソート機能を実行することなどによって決定され得る。さらに、本当の試料ゲノムが知られて基準ゲノムと比較されると、これらの2つの間のバリエーションを決定することができ、基準ゲノムと試料ゲノムとの間のすべてのバリエーション/逸脱のリストが決定され呼び出される。2つの遺伝子配列の間のそのようなバリエーションは、多数の理由によるものであり得る。
たとえば、被験者の遺伝子配列の中の1つの塩基が別のものと置き換わっているような一塩基多型(SNP)があることがあり、複数のヌクレオチドのより広範囲の置換があることがあり、塩基の1つまたは多数が被験者の遺伝子配列に追加され、もしくはそれから削除されているような、挿入もしくは欠失があることがあり、および/または、たとえば、2つの染色体の腕(leg)の交差などによって引き起こされる構造的なバリアントがあることがあり、および/または、配列にずれを引き起こすオフセットが単に存在することがある。様々な事例において、基準配列に対する被験者の遺伝子配列のすべてのバリエーションを含むバリアントコールファイルが生成される。より具体的には、様々な実施形態において、本開示の方法は、そのDNAがシーケンシングされた個人の、たとえば1つまたは複数の基準ゲノムに対する遺伝子バリアントの1つまたは複数、たとえばすべてを特定する、バリアントコールファイル(VCF)を生成するステップを含む。基本的な形式のVCFは、バリアントの位置とバリアントのタイプのリストであり、たとえば、3番染色体、場所X、「A」が「T」に置き換わっている、などである。
しかしながら、上で示されたように、そのようなファイルを生成するために、被験者のゲノムは、そのバリアントを決定する前にシーケンシングされ再構築されなければならない。しかしながら、そのようなアセンブリを生成しようとするときに生じ得る、いくつかの問題がある。上で述べられたように、シーケンシング処理において生じる、化学的なエラー、シーケンシング機械のエラー、および/または人によるエラーの問題があり得る。加えて、そのような再構築を問題のあるものにする遺伝子のアーティファクトがあり得る。たとえば、そのようなアセンブリを実行することの問題は、ヌクレオチドの同じ列を含むゲノムの長いセクションなどの、繰り返し現れるゲノムの巨大な部分が存在することがあるということである。したがって、どの遺伝子配列も、あらゆる場所で固有であるということはないので、特定されたリードが実際にゲノムの中のどこにマッピングしてアライメントするかを決定するのは難しいことがある。
たとえば、利用されるシーケンシングプロトコルに応じて、より短いまたはより長いリードが産生され得る。より長いリードは、リードが長いほど、ゲノムの中の複数の位置に現れる可能性が低いという点で、有用である。評価すべき潜在的な位置がより少ないと、システムを高速にすることができる。しかしながら、リードがより長いと、たとえばSNP、InDel(挿入または欠失)、または機械エラーなどにより引き起こされる、真のまたは偽のバリエーションを含み、その結果、リードと基準ゲノムが一致しない可能性が高くなるので、より問題になることがある。一方、より短いリードは、リードが短いほど、バリアントをコードする場所をカバーする可能性が低くなるので、有用である。しかしながら、より短いリードの問題は、リードが短いほど、ゲノムの中の複数の場所に現れる可能性が高くなるので、すべてのあり得る場所のうちのいずれが、リードがアライメントする本当の場所である可能性が最も高いかを決定するために、追加の処理時間およびリソースを必要とするということである。理想的には、本明細書で開示される方法を実践することなどによって達成され得ることは、バリアントコールファイルを産生できるということであり、ここで、すべてのバリアント塩基対がどこにあるかを示す、シーケンシングされるゲノムのリスト(クエリ配列)が生成され、コールされる各バリアントが本当のバリアントであり、単なる化学的もしくは機械的なリードエラーまたはその他の人によるエラーではないことを確実にする。
したがって、バリエーションには2つの主な可能性がある。1つの可能性として、問題の特定の位置に本当のバリエーションがあり、たとえば、人物のゲノムが実際に基準のゲノムとはある特定の位置において異なっており、たとえば、SNP(1塩基置換)、(1つまたは複数のヌクレオチドの長さの)挿入または欠失による自然なバリエーションがあり、かつ/または、ある染色体からのDNA物質が別の染色体もしくは腕と交差するようになる場合、もしくはある領域がDNAにおいて2回コピーされるようになる場合などの、構造的なバリアントがある。あるいは、バリエーションは、化学的なエラーもしくは機械的なエラー、シーケンサもしくはアライナのエラー、またはその他の人によるエラーのいずれかを通じて、リードデータに問題が存在することにより、引き起こされることがある。したがって、本明細書で開示される方法は、これらのタイプのエラーを補償するような方式で、およびより具体的には、化学的な、機械的な、または人によるバリエーションにおけるエラーと、シーケンシングされたゲノムの本物のバリエーションにおけるエラーとを区別するために、利用され得る。より具体的には、本明細書で説明されるような方法、装置、およびそれらを利用するシステムは、これらの2つのタイプのバリエーションを明確に区別するために、およびしたがって、真のバリアントを正しく識別するために生成されるあらゆるコールファイルの正確さをより確かなものにするために、開発された。
さらに、様々な実施形態において、被験者のゲノムが再構築されると、かつ/またはVCFが生成されると、そのようなデータは次いで、この人物がどのような疾病に罹患し得るか、もしくは罹患する可能性があり得るかを特定することに関してそのデータが何を意味するかを決定すること、ならびに/または、疾病状態を軽減および/もしくは予防するためにこの被験者がどのような治療または生活習慣の変更を用いることを望み得るかを決定することなどのために、データを解釈するための三次処理にかけられることがある。たとえば、被験者の遺伝子配列および/またはそれらのバリアントコールファイルを分析して、疾病状態の存在もしくは可能性、および/または、提案される治療法もしくは予防法が被験者に対して有し得る効能を示す、臨床的に関連のある遺伝子マーカーを決定することができる。次いで、このデータを使用して、疾病状態を治療および/または予防することなどの、被験者の生活の質を改善するために、1つまたは複数の治療法または予防法を被験者に提供することができる。
より具体的には、医療科学技術は、情報技術の進歩とともに進歩しており、この進歩は医療データを蓄積して分析するための能力を高めた。したがって、個人の遺伝子バリエーションの1つまたは複数が決定されると、そのようなバリアントコールファイル情報を使用して医療的に有用な情報を明らかにすることができ、次いでこの情報は、たとえば、様々な既知の統計分析モデル、健康関連データ、および/または医療的に有用な情報を使用して、たとえば、診断の目的で、たとえば、疾病またはその可能性を、したがって臨床上の解釈を診断すること(たとえば、疾病バリアントを表すマーカーを探すこと)を目的に、被験者が様々な臨床試験に含まれるべきか除外されるべきかを決定するために、および他のそのような目的で、使用され得る。遺伝的な奇形によって引き起こされる疾病状態の数は有限であるので、あるタイプの三次処理の変形、たとえば、疾病状態の徴候に関するものとして知られているものが、1つまたは複数の遺伝子ベースの疾病マーカーが被験者のバリアントコールファイルに含まれているかどうかを判定することなどによって、クエリされ得る。
その結果、様々な事例において、本明細書で開示される方法は、VCFおよび/または生成された配列における遺伝子マーカーの存在を特定し、存在する場合、遺伝的に誘導される疾病状態の存在または可能性についてコールを行うために、遺伝子マーカーのデータベースなどの中の既知の疾病配列バリアントに対して、VCFおよび/または生成された配列を分析するステップ、たとえばスキャンするステップを伴い得る。多数の既知の遺伝子バリエーションがあり、そのようなバリエーションにより引き起こされる疾病を罹患する多数の個人がいるので、いくつかの実施形態では、本明細書で開示される方法は、たとえばある個人もしくは複数の個人からの、ゲノム全体のシーケンシングされたデータおよび/もしくはそれに関連するバリアントコールファイルを疾病状態と結び付ける1つまたは複数のデータベースを生成すること、ならびに/または、生成されたデータベースを検索して、ある特定の被験者がそのような疾病状態にかかりやすくなるような遺伝的組成を有するかどうかを判定することを伴い得る。そのような検索は、1つのゲノム全体を1つまたは複数の他のゲノムと比較すること、または、バリエーションのみを含む断片などのゲノムの断片を、基準ゲノムまたはその断片のデータベースの中などにある1つまたは複数の他のゲノムの1つまたは複数の断片と比較することを伴い得る。
さらに、これらの方式で利用されるべき遺伝子配列は、DNA、ssDNA、RNA、mRNA、rRNA、tRNAなどであることが理解される。したがって、本開示全体を通じて、ゲノムDNAを分析するための様々な方法および装置への様々な言及が行われるが、様々な事例において、本明細書で開示されるシステム、装置、および方法は、たとえば、DNA、ssDNA、RNA、mRNA、rRNA、tRNAなどを含むすべてのタイプの遺伝物質に対して、それぞれの機能、たとえば分析を実行するのに、等しく適している。加えて、様々な事例において、本開示の方法は、被験者からの生成された遺伝子配列、たとえば、DNA、ssDNA、RNA、mRNA、rRNA、tRNAなどを分析し、そこから、遺伝子配列によって引き起こされる可能性が高いタンパク質のバリエーションを決定するステップ、および/または、タンパク質の発現のエラーなどによる疾病状態の可能性をそこから判定し、および/または、予測するステップを含み得る。得られる遺伝子配列はイントロンまたはエキソンを表すことがあり、たとえば、遺伝子配列はDNAのコーディング部分のみに対するものであることがあり、たとえば、エキソームが取得され、既知の処理技法を使用して、コーディング領域または非コーディング領域のみをシーケンシングすることができ、これは、より難しい試料調製手順を伴うが、より高速なシーケンシングおよび/またはより高速な処理時間につながり得ることに留意されたい。
現在、本明細書で説明されるそのようなステップおよび分析は通常、異なる位置にある異なる分析機械をしばしば利用して、様々な別個の関連しないステップにおいて実行される。したがって、様々な態様において、本開示の方法およびシステムは、遺伝子配列データを生成するように構成される自動シーケンサまたは他の装置などとともに、単一の装置によって、かつ/または1つの位置で実行される。様々な事例において、複数の装置が、同じ位置または複数のリモート位置で利用されることがあり、いくつかの事例では、方法は、2つ以上の処理ユニットが2つ以上の位置において展開されることを伴うことがある。
たとえば、様々な態様において、パイプラインが設けられることがあり、パイプラインは、自動シーケンサからデジタルのファイルフォーマットで、たとえばFASTQファイルフォーマットで取得されるデータなどの、1人または複数の個人のゲノム遺伝子配列に対して、本明細書で説明されるような1つまたは複数の分析機能を実行することを含む。実行されるべき典型的なパイプラインは、1人または複数の被験者の遺伝物質、たとえばゲノムの一部分または全体をシーケンシングすることを含むことがあり、この遺伝物質は、DNA、ssDNA、RNA、rRNA、tRNAなどを含むことがあり、かつ/または、いくつかの事例では、遺伝物質は、DNAのエキソーム、エピソームなどのコーディング領域または非コーディング領域を表すことがある。パイプラインは、デジタル化された遺伝子データなどに対して、ベースコールおよび/またはエラー訂正動作のうちの1つまたは複数を実行することを含むことがあり、かつ/または、遺伝子データに対してマッピング機能、アライメント機能、および/もしくはソート機能のうちの1つまたは複数を実行することを含むことがある。いくつかの事例では、パイプラインは、リアライメント、重複解消、塩基品質スコア再較正、縮小および/もしくは圧縮、ならびに/または解凍のうちの1つまたは複数を、デジタル化された遺伝子データに実行することを含み得る。いくつかの事例では、パイプラインは、遺伝子データに対してバリアントコール動作を実行することを含み得る。
したがって、様々な事例において、本開示のパイプラインは1つまたは複数のモジュールを含むことがあり、モジュールは、遺伝子データ、たとえばシーケンシングされた遺伝子データに対して、ベースコールおよび/またはエラー訂正動作および/またはマッピングおよび/またはアライメントおよび/またはソートの機能などの、1つまたは複数の機能を実行するために構成される。様々な事例において、パイプラインは1つまたは複数のモジュールを含むことがあり、モジュールは、ローカルリアライメント、重複解消、塩基品質スコア再較正、バリアントコール、縮小および/もしくは圧縮、ならびに/または解凍のうちの1つまたは複数を、遺伝子データに対して実行するために構成される。これらのモジュールの多くは、ソフトウェアによって、もしくはハードウェア上で実行されるか、または、たとえばソフトウェアもしくはハードウェアを介して、クラウドもしくはリモートサーバおよび/もしくはサーババンクなどにおいて、リモートで実行されるかの、いずれかであり得る。
加えて、パイプラインのこれらのステップおよび/またはモジュールの多くは任意選択であり、かつ/または、任意の論理的な順序で並べることができ、かつ/または完全に省略することができる。たとえば、本明細書で開示されるソフトウェアおよび/またはハードウェアは、ベースコールアルゴリズムまたは配列訂正アルゴリズムを含むことも含まないこともあり、たとえば、そのような機能が統計的なバイアスをもたらし得る懸念があり得る。その結果、システムは、望まれる精度および/または効率のレベルにそれぞれ応じた、ベースコール機能および/または配列訂正機能を含み、または含まない。上で示されたように、パイプライン機能の1つまたは複数は、基準ベースのゲノム再構築などを通じた被験者のゲノム配列の生成において利用され得る。また上で示されたように、いくつかの事例では、パイプラインからの出力は、ゲノムまたはその一部分の中のバリアントの一部分またはすべてを示すバリアントコールファイルである。
したがって、上で示されたように、上に記載されたもののうちの1つまたは複数などのシーケンシングプロトコルを実行することの出力は通常、FASTQファイルフォーマットなどでの、被験者の遺伝物質のデジタル表現である。しかしながら、デジタル的に転写されたautoradも利用されることがある。より具体的には、シーケンシングプロトコルからの出力は複数のリードを含むことがあり、各リードは、ヌクレオチドの配列、たとえば列を含み、1つ1つのヌクレオチドの場所がコールされ、品質スコアはコールされたヌクレオチドが誤っている確率を表す。しかしながら、これらの出力の品質は、より高い品質のスコアを達成するために様々な前処理プロトコルによって改善されることがあり、そのようなプロトコルの1つまたは複数が本明細書で開示される方法において利用されることがある。
たとえば、いくつかの事例では、生のFASTQファイルデータは、たとえば本明細書において上で説明された二次処理の前に、一次処理段階などにおいて、シーケンサ/リーダから取得された初期ベースコールをクリーンアップするために処理され得る。具体的には、シーケンサ/リーダは通常、どのヌクレオチドがどの場所にあるかを示す蛍光データなどのシーケンシングデータを分析し、品質スコアを伴うベースコールへと画像データを変換し、たとえば、品質スコアは各場所における蛍光の相対的な明るさに基づく。適切なベースコールをより正確に行うために、一次処理段階などにおいて、特別なアルゴリズムを利用して、蛍光のこれらの区別を正確に分析することができる。上で示されたように、このステップは、ステップのパイプラインに含まれることがあり、ソフトウェアまたはハードウェアまたは両方を介して実施されることがあるが、この事例では、一次処理プラットフォームの一部である。
追加の前処理ステップはエラー訂正機能を含むことがあり、これは、数百万個から数十億個のFASTQファイルのリードを用いて、任意の機械的なシーケンシングエラーのうちのある割合を、マッピング、アライメント、および/またはソートの機能などのあらゆるさらなる処理の前に入手可能なベースコールおよび品質スコアに関する情報を用いて、訂正しようとすることを含み得る。たとえば、リードのいずれかの中に他のリードに現れるサブ配列があるかどうかを決定するために、FASTQファイル内のリードを分析することができ、そのようなサブ配列があることは、重複するカバレッジが原因で、リードの中のサブ配列が正しいことの確信を高めることができる。これは、1つ1つのリードから、選択された長さkのすべてのあり得るk-merを含むハッシュテーブルを構築し、各k-merを、その頻度と、またその直後にどの塩基がどのような確率で来るかということとともに記憶することによって、実施され得る。そして、ハッシュテーブルを使用して、各リードを再スキャンすることができる。ある特定のリードの中の各k-merがハッシュテーブルにおいてルックアップされると、そのk-merの直後の塩基が正しい可能性が高いかどうかについての評価を行うことができる。可能性が高くない場合、直後の塩基は、テーブルから直後に来る可能性が最も高いものと置き換えられ得る。そうすると、そのリードの後続のk-merは、その場所における値として訂正された塩基を含むことになり、処理が繰り返される。これは、各k-merの次に何が来るかを予測するための正確な統計を集めることをオーバーサンプリングが可能にするので、エラーを訂正するのに極めて有効である。しかしながら、上で示されたように、そのような訂正は、データに対する誤った訂正などによる、統計的なバイアスをシステムに加えることがあるので、これらの手順は望まれる場合にはスキップされ得る。
したがって、本開示の態様によれば、様々な事例において、本開示の方法、装置、および/またはシステムは、自動シーケンサのFASTQファイルから直接取得することなどによって、前処理されたかされていないかのいずれかであるリードデータを取得することと、取得されたデータをマッピング、アライメント、および/またはソートの機能のうちの1つまたは複数にかけることとを含み得る。そのような機能の実行は、たとえば、上に記載されたように、様々な事例において、様々な自動シーケンサによって通常は生成されるシーケンシングデータ、たとえばリードが、分析されているゲノム配列全体よりもかなり短い長さを有するので、有用であることがあり、ヒトゲノムは通常、多数の反復セクションを有しており、様々な反復パターンがその中にあることが知られているので、任意の所与のリード配列がヒトゲノムのあるセグメントに対応し得る、多数の位置があり得る。その結果、ゲノムの中の様々な反復配列などが原因で、所与のリードがゲノムの配列と一致し得るすべての可能性を考慮すると、生のリードデータは、その可能性のうちのいずれが、本当にそのデータの導出元の正しい位置であるかを、明確には示さないことがある。したがって、各リードに対して、リードがゲノムの中のどこに実際にマッピングするかを決定することが必要である。加えて、被験者の実際の配列識別情報を決定するために、リードの配列アライメントを決定することも有用であることがあり、かつ/または、配列の各部分に対する染色体位置を決定することも有用であることがある。
様々な事例において、本開示の方法は、所与のリードがアライメントされ得るすべての可能性のある場所を見つけるために、かつ/または、被験者の実際の配列識別情報を決定するために、かつ/または、配列の各部分に対する染色体位置を決定するために、FASTQファイルの生のリードデータをマッピングし、アライメントし、かつ/またはソートすることを対象とし得る。たとえば、マッピングは、生成されたリードを基準ゲノムにマッピングし、それによって、各リードがゲノムによく一致するように見える位置を見つけるために、たとえば、任意の所与のリードを基準ゲノムにアライメントするための良いスコアがあり得るすべての場所を見つけるために、利用され得る。したがって、マッピングは、FASTQファイルから受け取られた生のまたは前処理されたリードの1つまたは複数、たとえばすべてを用いることと、それらのリードを1つまたは複数の基準ゲノムと比較することと、リードが基準ゲノムとどこで一致し得るかを決定することとを伴い得る。その基本的な形式において、マッピングは、シーケンサから得られたFASTQリードの1つまたは複数が一致するように見える基準ゲノムの中の位置を見つけることを伴う。
同様に、個々のリードのすべての位置候補を基準ゲノムのある区間に対して評価して、リード配列がどこでどのようにゲノムに対して最も良くアライメントするかを決定するために、アライメントが利用され得る。しかしながら、アライメントを実行することは、リードが厳密にアライメントするのを妨げ得る、置換、挿入、欠失、構造的なバリエーションなどが原因で、難しいことがある。したがって、アライメントを得るいくつかの異なる方法があるが、それを行うにはリードに変更を行うことが必要であることがあり、ここで、適切なアライメント結果を得るために行われなければならない各変更は、より低い信頼性スコアをもたらす。たとえば、任意の所与のリードが、基準ゲノムと比較して置換、挿入、および/または欠失を有することがあり、これらのバリエーションが、アライメントを実行する際に考慮される必要がある。
したがって、予測されるアライメントとともに、予測されるアライメントが正しいことの確率スコアも与えられ得る。このスコアは、任意の所与のリードに対して、そのリードがアライメントする可能性がある複数の位置の中で最良のアライメントを示す。たとえば、アライメントスコアは、所与のリードが潜在的なマッピング位置とどの程度よく一致するかということに基づいており、最良のアライメントを得るために、リードのビットおよび断片を伸長すること、短縮すること、および変更することを含み得る。
このスコアは、基準に対応するようにリードが変更されたすべての方法を反映する。たとえば、リードと基準との間のアライメントを生成するには、リードに1つまたは複数のギャップを挿入する必要があることがあり、各ギャップの挿入は基準に対するリードにおける欠失を表す。同様に、リードにおいて欠失を行う必要があることがあり、各欠失は基準に対するリードにおける挿入を表す。加えて、様々な塩基が、1つまたは複数の置換などにより変更される必要があることがある。これらの変更の各々は、リードを基準に対してより厳密にアライメントさせるために行われるが、各変更は品質スコアの低下を伴い、このスコアは、基準のある領域にリード全体がどれだけよく一致するかの尺度である。次いで、リードがゲノムにマッピングさせられ得るすべての位置を探し、各位置におけるそのような品質スコアを比較し、最高のスコアの位置を選ぶことによって、品質スコアの信頼性が決定される。より具体的には、品質スコアの高い複数の場所がある場合、信頼性は低く、しかし、最良のスコアと2番目に良いスコアの差が大きい場合、信頼性は高い。最終的に、すべての提案されるリードおよび信頼性スコアが評価され、最も合うものが選択される。
リードがどの染色体に属するか、およびその染色体の最初からのリードのオフセットを特定することからなる、基準ゲノムに対する相対的な場所へのゲノムの割当てが行われると、リードは場所によってソートされ得る。このことは、下流の分析が本明細書で説明される様々なオーバーサンプリングプロトコルを利用することを可能にする。ゲノムの所与の場所と重畳するリードのすべてが、ソートの後で互いに隣り合うことがあり、それらは、それらの大多数が基準値と一致するかどうかを判定するために、蓄積されて容易に調査され得る。
上で示されたように、シーケンサから得られたFASTQファイルは、個人のゲノムの一部分または全体を表すヌクレオチド配列データの短い列からなる、複数の、たとえば数百万個から10億個以上のリードからなる。一般に、マッピングは、一致がある基準ゲノムの中のすべての位置にリードをプロットすることを伴う。たとえば、リードのサイズに応じて、リードが基準ゲノム上の対応する配列と実質的に一致する、1つまたは複数の位置があり得る。したがって、本明細書で開示されるマッピングおよび/または他の機能は、1つまたは複数のリードが基準ゲノムの中で一致し得るすべての潜在的な位置のうちのいずれが、実際にリードがマッピングする真の位置であるかを決定するために、構成され得る。
1つ1つのリードを32億個の基準ゲノムの中の1つ1つの場所と比較して、リードが基準ゲノムと一致する場所がもしあればそれがどこかを決定することは可能である。これは、たとえば、リード長が約100,000ヌクレオチド、約200,000ヌクレオチド、約400,000ヌクレオチド、約500,000ヌクレオチド、さらには約1,000,000以上のヌクレオチドの長さに達する場合に行われ得る。しかしながら、5000万個以上のリード、たとえば10億個のリードがある場合などの、リードの長さがかなり短い場合、このプロセスは非常に長い時間がかかり、大量のコンピューティングリソースを必要とし得る。したがって、本明細書で説明されるものなどの、FASTQリードを基準ゲノムに対してはるかに高速にアライメントするために開発された、いくつかの方法がある。たとえば、上で開示されたように、被験者のリードが基準ゲノムの中のどこでマッピングする可能性があるかを決定するために、シーケンサによって生成されるリードの1つまたは複数を、たとえばFASTQファイルにおいてマッピングし、それらを基準ゲノムとマッチングするために、1つまたは複数のアルゴリズムが利用され得る。
たとえば、様々な方法において、基準のインデックスが生成されるので、リードまたはリードの部分をインデックスにおいてルックアップすることができ、リードを基準にマッピングするために基準における位置を示すものが取り出される。基準のそのようなインデックスは、様々な形式で構築され、様々な方式でクエリされ得る。いくつかの方法では、インデックスはプレフィックスおよび/またはサフィックスツリーを含み得る。他の様々な方法において、インデックスは基準のBurrows/Wheeler変換を含み得る。さらなる方法において、インデックスは1つまたは複数のハッシュテーブルを含むことがあり、リードを基準にマッピングしようとする中で、ハッシュ関数がリードの1つまたは複数の部分に対して実行されることがある。様々な事例において、これらのアルゴリズムの1つまたは複数は、1つまたは複数のリード、たとえばかなりの部分の、または1つ1つのリードが、どこで基準ゲノムと正確に一致するかを正確に決定するために、順番に、または同時に実行され得る。
これらのアルゴリズムの各々には、利点および/または欠点があり得る。たとえば、プレフィックスおよび/もしくはサフィックスツリーならびに/またはBurrows/Wheeler変換は、基準ゲノムのインデックスがツリー状のデータ構造として構築および/またはクエリされるような方式で、配列データに対して実行されることがあり、ここで、リードの単塩基のまたは短いサブ配列から始まって、サブ配列は付加的にリードの中で伸長され、各々の付加的な伸長がインデックスへのアクセスを引き起こし、サブ配列が十分固有のものになるまで、たとえば最適な長さが達成されるまで、かつ/またはリーフノードがツリー状のデータ構造に達するまで、ツリー状のデータ構造を通る経路をたどり、リーフツリーノードまたは最後にアクセスされたツリーノードは、リードがそこに由来する可能性のある基準ゲノムの中の1つまたは複数の場所を示す。したがって、これらのアルゴリズムは通常、インデックスをクエリすることによってマッピングされ得るリードサブ配列に対して固定された長さを有しない。しかしながら、ハッシュ関数はしばしば、リードの全長であり得る固定された長さの比較ユニットを利用するが、リードの何らかの副部分である長さであることが多く、この副部分はシードと呼ばれる。そのようなシードはより長いことも短いこともあるが、プレフィックスおよび/もしくはサフィックスツリーならびに/またはBurrows/Wheeler変換とは異なり、ハッシュ関数において利用されるリードのシードは通常、事前に選択された固定された長さである。
プレフィックスおよび/またはサフィックスツリーは、基準ゲノムから構築されるデータ構造であるので、親ノードから子ノードへの各リンクは、ヌクレオチドもしくはヌクレオチドの配列で標識され、またはそれらと関連付けられ、様々なリンクおよびノードを通るルートノードからの各経路は、その関連する集合的なヌクレオチド配列が基準ゲノムの何らかの連続的なサブ配列と一致する経路をたどる。その経路が達するノードは、ルートからその経路によってたどられる基準サブ配列と暗黙的に関連付けられる。プレフィックスツリーの中のサブ配列は、ルートノードから進み、基準ゲノムにおいて前方に伸びるが、サフィックスツリーの中のサブ配列は基準ゲノムにおいて後方に伸びる。ハイブリッドプレフィックス/サフィックスアルゴリズムにおいてはプレフィックスツリーとサフィックスツリーの両方が使用され得るので、サブ配列は両方の方向に伸び得る。プレフィックスツリーおよびサフィックスツリーはまた、1つの基準サブ配列と関連付けられるノードからより短い基準サブ配列と関連付けられる別のノードにジャンプすることなどの、追加のリンクを含み得る。
たとえば、基準ゲノムのインデックスとして機能するツリー状のデータ構造は、サブ配列にヌクレオチドを追加することにより構築される、マッピングされているリードのサブ配列に対応するツリーを通る経路を追跡すること、追加されたヌクレオチドを使用して、ツリーを横断するための次のリンクを選択すること、および、固有の配列が生成されるまで必要なところまで深く進むことによって、クエリされ得る。この固有の配列はシードとも呼ばれることがあり、配列ツリーデータ構造のブランチおよび/またはルートを表し得る。代替的に、ツリーの下降は累積のサブ配列が完全に固有になる前に終了することがあるので、シードは基準ゲノムの中の複数の位置にマッピングすることがある。具体的には、ツリーは、基準ゲノムに対する1つ1つの開始場所に対して構築されることがあり、生成されたリードはツリーのブランチおよび/またはルートと比較されることがあり、これらの配列をツリー全体にわたって巡回して、リードが基準ゲノムにおいてどこで一致するかを見つけることができる。より具体的には、FASTQファイルのリードが、基準ツリーのブランチおよびルートと比較されることがあり、一致すると、基準ゲノムにおけるリードの位置が決定され得る。たとえば、ある場所に到達し、それにより、リードが基準の中のある特定の場所と本当にアライメントすることを特定するのに、累積したサブ配列が十分固有であると決定されるまで、試料のリードをツリーに沿って巡回することができ、たとえば、リーフノードに達するまでツリーを巡回する。
しかしながら、そのようなプレフィックスツリーおよび/またはサフィックスツリーの欠点は、ツリーがリードを基準ゲノムにマッピングするために巡回されるので、多数の時間にアクセスされなければならない巨大なデータ構造であるということである。一方、ハッシュテーブル関数の利点は、本明細書において以下でより詳細に説明されるように、一度構築されると、通常は、シードと基準の一致があり得る場合にはそれがどこかを決定するのに、1回のルックアップしか要しないということである。プレフィックスツリーおよび/またはサフィックスツリーは通常、一致があるかどうか、およびどこに一致があるかを決定する際に、複数回の、たとえば、5回、10回、15回、20回、25回、50回、100回、1000回以上などのルックアップを要する。さらに、DNAの二重らせん構造により、逆方向の相補的なツリーも構築して探索する必要があることがあり、それは、基準ゲノムに対する逆相補鎖も見つける必要があることがあるからである。上では、データツリーは基準ゲノムから構築され、基準ゲノムが次いで被験者のシーケンシングされたDNAからのリードと比較されるものとして説明されたが、データツリーは最初に、基準配列と試料リードのいずれかから、または両方から構築されて、上で説明されたように互いに比較されてもよいことを理解されたい。
プレフィックスツリーもしくはサフィックスツリーを利用する代わりに、またはそれに加えて、Burrows/Wheeler変換がデータに対して実行され得る。たとえば、Burrows/Wheeler変換は、プレフィックスツリーおよび/またはサフィックスツリーと抽象的に等価なツリー状のデータ構造を、基準ゲノムを記憶するために割り振られる空間の中などのコンパクトなフォーマットで記憶するために使用され得る。様々な事例において、記憶されているデータはツリー状の構造ではなく、むしろ、基準配列データは1次元リストの中にあり、この1次元リストは、「ツリー」を効果的に巡回するために、試料リードに関して基準が探索されることを付随するアルゴリズムが可能にするように、非常に具体的な方法で基準配列データを変換するために、異なる順序へとスクランブリングされている可能性がある。プレフィックスツリーおよび/またはサフィックスツリーなどを上回る、Burrows/Wheeler変換の利点は、通常は記憶のために必要なメモリがより少ないということであり、ハッシュ関数を上回る利点は、可変長のシードをサポートするので、固有の配列が決定されて一致が発見されるまで探索できるということである。たとえば、プレフィックスツリー/サフィックスツリーに関しては、所与の配列が固有となるのに、または十分に少数の基準場所にマッピングするのに、どれだけ多くのヌクレオチドを要するかが、シードの長さを決める。一方、ハッシュテーブルでは、シードはすべて同じ所定の長さである。しかしながら、Burrows/Wheeler変換の欠点は、ツリー下流の1つ1つのステップなどのために、2回以上のルックアップなどの多数のルックアップが通常は必要であるということである。
基準ゲノムおよび被験者の配列データに対して、プレフィックス/サフィックスツリーおよび/またはBurrows/Wheeler変換のうちの一方または両方を利用する代わりに、またはそれに加えて、一方が他方に対してどこでマッピングするかを見つけるために、別のそのような方法は、ハッシュテーブルインデックスの産生および/またはハッシュ関数の実行を伴う。ハッシュテーブルインデックスは、基準ゲノムの配列から構築される大きな基準構造であることがあり、基準ゲノムは次いで、一方が他方に対してどこで一致し得るかを決定するためにリードの1つまたは複数の部分と比較されることがある。同様に、ハッシュテーブルインデックスはリードの部分から構築されることがあり、このリードの部分は次いで、基準ゲノムの1つまたは複数の配列と比較され、それによって、一方が他方に対してどこで一致し得るかを決定するために使用されることがある。
より具体的には、本明細書で開示される方法ステップのいずれかにおける実装形態などのための、本明細書で説明されるマッピングアルゴリズムのいずれにおいても、シーケンシングされたDNAの試料の1つまたは複数の配列を1つまたは複数の基準ゲノムの1つまたは複数の配列とマッピングするために、ソフトウェアまたはハードウェアで、1つまたは3つすべてのマッピングアルゴリズムが、または当技術分野で知られている他のものが利用され得る。本明細書において以下でより詳細に説明されるように、これらの動作のすべてが、ソフトウェアを介して、または、たとえば回路基板の一部としてのチップ上などで、集積回路の中などにハードワイヤリングされることによって、実行され得る。たとえば、これらアルゴリズムの1つまたは複数の機能は、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)チップ、またはストラクチャードASIC(特定用途向け集積回路)チップなどへと、チップ上に埋め込まれることがあり、そのようなハードウェアの実装が原因でより効率的に実行するように最適化されることがある。
加えて、これらのマッピング機能のうちの1つまたは複数、たとえば2つまたは3つすべてが、マッピングモジュールなどのモジュールを形成することができ、このモジュールは、個人の実際のゲノム配列の全体またはその一部分を決定するためのプロセスにおいて使用されるシステムの一部、たとえばパイプラインを形成することができる。マッピング関数の実行から返される出力は、1つまたは複数の、たとえば各々のリードが1つまたは複数の基準ゲノムにどこでマッピングするかについての、可能性のリストであり得る。たとえば、各々のマッピングされたリードの出力は可能性のある位置のリストであることがあり、リードは基準ゲノムの中の一致する配列にマッピングされることがある。様々な実施形態において、リードのすべてではないにしても少なくとも断片、たとえばリードのシードの、基準に対する厳密な一致を探すことができる。したがって、様々な事例において、すべてのリードのすべての部分が基準ゲノムのすべての部分と厳密に一致する必要はない。
さらに、これらの機能の1つまたはすべては、結果の編集などの、厳密なまたは大まかな一致および/または編集が実行され得るような方式でプログラムされ得る。したがって、これらの処理のすべては、望まれる場合に、80%の一致、85%の一致、90%の一致、95%の一致、99%の一致、またはそれ以上などの、事前に選択された相違度などに従って、厳密ではないマッチングも行うように構成され得る。しかしながら、以下で本明細書においてより詳細に説明されるように、厳密ではないマッチングは、時間および処理能力の要件などにおいてはるかに高価であることがあり、それは、たとえば、許容可能な一致を達成するために、たとえばSNPまたは1つまたは複数の塩基の挿入もしくは欠失であり得る、任意の数の編集、たとえば1回または2回または3回または5回以上の編集が実行されることを必要とし得るからである。そのような編集は、ハッシュプロトコルを実施する際に、または、プレフィックスツリーおよび/もしくはサフィックスツリーを実装するとき、ならびに/またはBurrows/Wheeler変換を実行するときに、より広く使用される可能性が高い。
ハッシュテーブルに関して、ハッシュテーブルは、多くの異なる方法で産生され得る。一事例では、ハッシュテーブルは、基準ゲノムを標準的な長さのセグメント、たとえば、約18ヌクレオチドから約28ヌクレオチドなどの、約16ヌクレオチドから約30ヌクレオチド以上の長さのシードへと分解すること、それらを検索可能なテーブルへとフォーマットすること、および、シーケンシングされたDNA、たとえば1つまたは複数のリードまたはその一部分がマッチングを決定するために比較され得る際に参照するすべての基準セグメントのインデックスを作成することによって、構築され得る。より具体的には、ハッシュテーブルインデックスは、基準ゲノムを既知の均一な長さ、たとえばシードのヌクレオチド配列のセグメントへと分解すること、および、それらをランダムな順序で基準テーブルの中の個々のキュービクルへと記憶することによって、生成され得る。これは、マッチングを決定する目的で、FASTQファイルなどからの1つまたは複数のリードの部分と基準ゲノムの部分を比較するために使用され得る実際の基準インデックステーブルを構築するために、基準ゲノムの一部分または全体に対して行われ得る。
この方法は次いで、適切な、たとえば選択された長さのシードを生成するために、FASTQファイルの中のリードの一部分、たとえば大部分またはすべてに対して、概ね同じ方式で繰り返される。たとえば、FASTQファイルのリードは、所定の長さのシードを産生するために使用されることがあり、このシードは、バイナリ形式に変換され、ハッシュ関数を通され、ハッシュテーブルインデックスに収められることがあり、ここで、バイナリ形式のシードは、試料シードが基準ゲノムの中の場所とゲノムにおいてどこで一致するかについての位置を与えるために、基準ゲノムのバイナリセグメントと照合されることがある。
たとえば、リードが概ね100塩基の長さである場合、典型的なシードは、約2分の1または約3分の1、たとえば約27塩基から約30塩基の長さであり得る。したがって、そのような事例では、各々のリードに対して、多数のシード、たとえば、リードの長さおよび/またはシードの長さに応じて概ね3つまたは4つのシードが、リードをカバーするために生成され得る。次いで、各シードを、バイナリ形式に変換し、かつ/または、次いでハッシュテーブルに供給することができ、基準ゲノムに関するシードの場所についての可能性のある結果を得ることができる。そのような事例では、リード全体が基準ゲノム全体の中の1つ1つのあり得る場所と比較される必要はなく、むしろ、リードの一部分のみ、たとえば、リードごとの生成される試料シードの1つまたは複数のみが、基準ゲノムの等価なシード部分を含むインデックスなどと比較されるされるだけでよい。したがって、様々な事例において、1回だけのメモリルックアップによって、試料シードが、したがってリードが基準ゲノムに対して相対的にどこに位置しているかが通常は決定され得るように、ハッシュテーブルが構成され得る。しかしながら、いくつかの事例では、ハッシュ関数を実行して、あるリードからシードの1つまたは複数の重複するセクションをルックアップするのが望ましいことがある。そのような事例では、生成されることになるシードは、シードの配列の少なくとも一部分が互いに重複するような方式で形成され得る。これは、たとえば、機械および/もしくは人のエラー、または被験者のゲノムと基準ゲノムとの差異に対処する際に有用であることがあり、厳密なマッチングを促すことがある。
いくつかの事例では、ハッシュテーブルの構築ならびに様々な比較の1つまたは複数の実行が、ハッシュ関数によって実行される。ハッシュ関数は一部がスクランブラである。ハッシュ関数は、入力を受け、ランダムな順序であるように見えるものを入力に与える。この事例では、ハッシュ関数スクランブラは、事前に選択された長さのセグメントへと基準ゲノムを分解し、それをハッシュテーブルの中にランダムに置く。次いで、データが記憶空間全体にわたって均等に記憶され得る。代替的に、記憶空間はセグメント化されることがあり、かつ/または記憶空間における記憶は異なるように重み付けられることがある。より具体的には、ハッシュ関数は、入力を受け、バイナリパターン出力などの数を与える関数であり、この数は通常、任意の1つの所与の入力に対して同じ出力が常に返されることを除き、ランダムであり得る。したがって、ハッシュテーブルに供給される2つの入力がほとんど同じであったとしても、それらは厳密には一致しないので、2つの完全にランダムな異なる出力が返される。
さらに、遺伝物質は4つの基本的なヌクレオチド、たとえば「A」、「C」、「G」、および「T」(またはRNAの場合は「U」)からなり得るので、ハッシュテーブルに供給されることになる、配列の個々のヌクレオチド、たとえば基準のセグメントおよび/もしくはリード、またはそれらの一部分は、バイナリ形式でデジタル化して表現することができ、たとえば、4つの塩基の各々が2ビットのデジタルコードを表し、たとえば「A」=00、「C」=01、「G」=11、および「T」/「U」=10である。いくつかの事例では、そのバイナリ表現に等しい値を有する既知の位置においてハッシュテーブルにランダムに配置されるのは、このバイナリ「シード」値である。したがって、ハッシュ関数は、基準ゲノムを基準シードのバイナリ表現に分解するように機能し、各バイナリシードデータを、その数値に基づいて、ハッシュテーブルの中のランダム空間、たとえばキュービクルへと挿入する。このデジタルバイナリコード、たとえばアクセス鍵とともに、各キュービクルは、実際の基準ゲノムの中のどこにセグメントが由来するか、たとえば基準場所を指し示す、実際のエントリーも含み得る。したがって、基準場所は、ゲノムにおける元の基準シードの場所を示す数であり得る。これはまた、重複する場所に対して行われることがあり、重複する場所は、ハッシュ関数などによって、ランダムな順序で、しかし既知の位置においてテーブルに置かれる。このような方式で、ハッシュテーブルインデックスを生成することができ、インデックスは、1つまたは複数の基準ゲノムの複数のセグメントの一部分またはすべてに対するデジタルバイナリコードを含み、これが次いで、1人または複数の個人からの遺伝物質の1つまたは複数の配列、たとえば1つまたは複数のリード、またはその一部分によって参照され得る。
ハッシュテーブルおよび/または関数を、ソフトウェア(ビット幅が上で説明されたシードにおける塩基の数の2倍である場合など)および/またはハードウェアで、モジュールのパイプラインの中のモジュールなどのモジュールとして実装するとき、上で言及されたように、ハッシュテーブルは、基準シードのバイナリ表現が所望の任意のビット幅であり得るように構築され得る。シードは長いことも短いこともあるので、バイナリ表現は大きいことも小さいこともあるが、通常は、シードの長さは、固有となるのに十分長いように、しかし、ゲノム基準のシードと試料リードのシードとの一致を見つけるのがエラーまたはバリアントなどが原因であまりにも難しくなるほどには長くないように、選ぶことができる。たとえば、上で示されたように、ヒトゲノムは約31億個の塩基対からなり、典型的なリードは約100ヌクレオチドの長さであり得る。したがって、有用なシードの長さは、約16ヌクレオチドまたは約18ヌクレオチド未満の長さから、約28ヌクレオチドまたは約30ヌクレオチド以上の長さの間であり得る。たとえば、いくつかの事例では、シードの長さは20ヌクレオチドのセグメントの長さであり得る。他の事例では、シードの長さは28ヌクレオチドのセグメントの長さであり得る。
結果として、シードの長さが20ヌクレオチドのセグメントである場合、各セグメントは40ビットの出力、たとえばシードの40ビットのバイナリ表現によってデジタル的に表され得る。たとえば、2ビットが各ヌクレオチドを表すために選択される場合、たとえば、A=00、C=01、G=10、およびT=11などの場合、20ヌクレオチドのシード×ヌクレオチド当たり2ビット=40ビット(5バイト)のベクトル、たとえば数である。シードの長さが28ヌクレオチドの長さであり得る場合、シードのデジタル表現、たとえばバイナリ表現は56ビットのベクトルであり得る。したがって、シードの長さが約28ヌクレオチドの長さである場合、28ヌクレオチドのシードの長さを扱うために56ビットを利用することができる。より具体的には、56ビットがハッシュテーブルの中にランダムに配置されている基準ゲノムのバイナリ形式のシードを表す場合、基準のシードに対してマッチングされるべきリードのシードをデジタル的に表すために、さらに56ビットを使用することができる。これらの56ビットは、1:1の対応で、56ビットの入力を56ビットの出力に変換する多項式を通され得る。出力のビットの数を増やすことまたは減らすことなく、この動作を実行することは、隣り合う入力値の記憶位置をランダムにするので、様々なシード値が、すべての潜在的な記憶位置にわたって均一に分散する。このことはまた、同じ位置にハッシュする値の間での衝突を最小限にするようにも機能する。具体的には、本明細書で説明される典型的なハッシュテーブルの実装形態では、56ビットのうちの一部分だけが、記憶位置を選択するためのルックアップアドレスとして使用され、残りのビットは、一致の確認のためにその位置に記憶される。ハッシュ関数が使用されない場合、アドレスビットは同じであるが記憶されているビットが異なる非常に多くのパターンが、同じハッシュ位置を共有しなければならないであろう。
より具体的には、ハッシュテーブルが、たとえばハッシュテーブルにランダムに基準ゲノムのシードを置くソフトウェアおよび/またはハードウェアによって構築される方法と、ハッシュテーブルがハッシュされているリードのシードによってアクセスされる方法との間には類似性があるので、それらはともに同じ方法でテーブルにアクセスする。したがって、同じである、たとえば同じバイナリコードを有する、基準のシードおよび試料リードのシードは、テーブルにおいて同じ位置、たとえばアドレスに来ることになり、それは、それらが、たとえば同じ入力パターンに対しては、同じ方式でハッシュテーブルにアクセスするからである。これは、パターン照合を実行するための最速の既知の方法である。各ルックアップには、実行するのにほぼ一定の長さの時間がかかる。これは、クエリ当たり多くのプローブ(この数はどれだけのビットが固有のパターンを見つけるために必要とされるかに応じて変化し得る)が一致を見つけることを必要とし得るBurrows-Wheeler法、または、log2(N)個のプローブ(Nはテーブルの中のシードパターンの数である)を要するバイナリ探索法とは対照的であり得る。
さらに、ハッシュ関数が任意の所与の長さのシードのセグメント、たとえば28塩基対へと基準ゲノムを分解でき、次いでシードをデジタルの、たとえばバイナリの56ビットの表現へと変換できるとしても、56ビットすべてが完全に同じ時間にまたは同じ方法でアクセスされる必要があるとは限らない。たとえば、ハッシュ関数は、約28ビットから約30ビットを含む、約20ビットから約45ビット、約25ビットから約40ビット、約28ビットから約35ビットなどの、56ビット未満の数によって指定される各シードのアドレスが、ハッシュテーブルにアクセスするための初期の鍵またはアドレスとして使用され得るような方式で、実装され得る。
たとえば、いくつかの事例では、約26ビットから約29ビットがハッシュテーブルのための一次アクセス鍵として使用されることがあり、約27ビットから約30ビットが残され、それらは、第1の鍵をダブルチェックするための手段として利用されることがあり、たとえば、第1の鍵と第2の鍵の両方がハッシュテーブルの中の同じセルに到達する場合、前記位置がそれらの鍵の属する場所であることが相対的に明らかである。具体的には、ハッシュテーブルおよび/またはハッシュ関数がハードウェアで実装されるときなどに、空間を節約し、ハッシュモジュールのメモリ要件および/または処理時間を減らすために、特定のシーケンシングされたリードのデジタル化されたシードを表す元の56ビットから導かれた一次アクセス鍵を表す約26ビットから約29ビットが、一次アドレスを構成するためにハッシュ関数によって利用されることがあり、ダブルチェック方法において使用され得る約27ビットから約30ビットが残る。
より具体的には、様々な事例において、バイナリ形式の基準シードを表す56ビットからの約26ビットから約29ビットが一次アドレスを構成するために利用されることがあり、この指定された26から29ビットが次いで、ハッシュテーブルにおけるランダム化された位置を与えられることがあり、次いでこの位置に、厳密な一致を確かめることができるように、シードの残り27ビットから30ビットとともに、基準シードがどこに由来するかを示す位置を格納することができる。バイナリ形式へと変換される被験者のゲノムのリードを表すクエリシードはまた、一次アクセス鍵を構成する29ビットによっても表されるような方式で、同じ関数によってハッシュされ得る。基準シードを表す29ビットがクエリシードを表す29ビットに対して厳密に一致する場合、それらの両方がハッシュテーブルの中の同じ場所を対象とする。基準シードに対する厳密な一致がある場合、同じ残りの27ビットから30ビットを含むエントリーをその位置において見つけることを期待する。そのような実例では、次いで、クエリシードの導出元であるクエリのリードがアライメントする、基準の中の場所を特定するために、基準配列の29個の指定されたアドレスビットがルックアップされ得る。
しかしながら、残りの27ビットから30ビットに関して、これらのビットは、一次アクセス鍵の最初の26ビットから29ビットの結果を確実にすることなどを目的に、ハッシュテーブルに持ち込まれ得る二次アクセス鍵も表し得る。ハッシュテーブルは28ヌクレオチド/56ビットの配列の完全な1:1のスクランブリングを表し、ビットのうちの約26ビットから約29ビットだけがアドレスを決定するために使用されるので、一次アクセス鍵のこれらの26ビットから29ビットは基本的に確認されており、それにより、最初のやり直しにおいて正しいアドレスを決定する。したがって、このデータは確認される必要はない。しかしながら、二次アクセス鍵の残りの約27ビットから約30ビットは確認されなければならない。したがって、クエリシードの残りの約27ビットから30ビットは、マッチングを完了するための手段としてハッシュテーブルに挿入される。そのような実装形態は、56ビットの鍵全体を記憶するよりも短いことがあるので、空間を節約し、モジュールの全体的なメモリ要件および処理時間を減らす。
したがって、ハッシュテーブルをインデックスとして構成することができ、ここで、所定の長さの配列、たとえば、長さが28ヌクレオチドなどのシードへと分解された1つまたは複数の基準ゲノムの既知の配列がテーブルへとランダムに組織化され、被験者のゲノムDNAまたはRNAのシーケンシングから導出された1つまたは複数のシーケンシングされたリード、またはその「シード部分」が、ハッシュテーブルインデックスの中でシードをルックアップするために、ハッシュ関数などに従ってハッシュテーブルインデックスを通されることがあり、試料シードが基準ゲノムの中の場所と一致する1つまたは複数の場所、たとえば基準ゲノムにおける位置を、テーブルから取得することができる。シードが一致する位置について基準ゲノムをスキャンするために力ずくの1次元検索を使用すると、30億個の位置が確認されなければならない。しかしながら、ハッシュ手法を使用すると、各々のシードルックアップは、概ね一定の長さの時間に行われ得る。しばしば、この位置は単一のアクセスで確認され得る。複数のシードがテーブルの中の同じ位置にマッピングする場合、現在ルックアップされているシードを見つけるために、少数の追加のアクセスが行われ得る。したがって、基準ゲノムに関して、所与の100ヌクレオチドの長さのリードに対して、照合すべき3000万個以上の潜在的な位置があり得るとしても、ハッシュテーブルおよびハッシュ関数は、リードが基準ゲノムの中のどこで現れることになるかを高速に決定することができる。したがって、ハッシュテーブルインデックスを使用することによって、リードがどこでアライメントするかを決定するために基準ゲノム全体を検索することは必要ではなくなる。
上で示されたように、染色体は、二重らせんを形成するように一緒に結合した、2つの対向する相補的な核酸配列の鎖からなる、二重らせん構造を有する。たとえば、二重らせん構造が形成されるとき、これらの相補的な塩基対は、「A」が「T」と結合する、かつ「G」が「C」と結合するという法則に従って、互いに結合する。したがって、このことは、互いに相補的である、2つの等しく対向する核酸配列の鎖をもたらす。より具体的には、一方の鎖のヌクレオチド配列の塩基は、対向する鎖の相補的な塩基によって鏡写しにされ、2つの相補的な鎖が生じる。しかしながら、DNAの転写は一方向にのみ行われ、DNAの一方の末端から始まり他方の末端に向かって進む。したがって、結論から言うと、DNAの一方の鎖について、転写は一方向に行われ、その相補的な鎖について、転写は反対の方向に行われる。その結果、DNA配列の2つの鎖は逆相補鎖変換されていることが分かり、すなわち、DNAの一方の鎖の配列順序が他方と比較される場合、見出すことができるものは、一方の鎖のヌクレオチドの文字が他方の鎖におけるその相補的な文字に切り替えられた、たとえば、「A」が「T」にされ、「G」が「C」にされ、およびそれらの逆が行われ、かつ順序が逆にされた、2つの鎖である。
DNAの二重らせん構造により、DNAをシーケンシングする前の試料調製ステップの間に、染色体が引き離され、たとえば変性させられて、別々の鎖へと分離され、次いで、所定の長さの、たとえば100~300塩基の長さのより小さいセグメントへと溶解され、これが次いでシーケンシングされる。一方の鎖のみがシーケンシングされるようにシーケンシングの前に鎖を分離することは可能であるが、通常は、DNAの鎖は分離されないので、DNAの両方の鎖がシーケンシングされる。したがって、そのような事例では、FASTQファイルにおけるリードの約半分が、逆相補鎖変換され得る。
当然、基準ゲノムの両方の鎖、たとえば相補鎖と逆相補鎖が、上で説明されたように処理されハッシュされ得るが、これはハッシュテーブルを2倍に大きくし、ハッシュ関数の実行に2倍かかるようにし、たとえば、2つのゲノム配列の相補鎖と逆相補鎖の両方を比較するために、約2倍の処理時間を要することがある。したがって、メモリ空間を節約し、処理電力を減らし、かつ/または処理の時間を短縮するために、様々な事例において、モデルゲノムDNAの1つの鎖しか、基準としてハッシュテーブルに記憶される必要がない。
しかしながら、被験者のDNAの2つの鎖が互いに分離されていないものなどの、典型的なシーケンシングプロトコルに従うと、シーケンシングされたDNAから生成されるあらゆるリードがいずれかの鎖、すなわち相補鎖またはその逆相補鎖からのものであることがあり、相補鎖または逆相補鎖のどちらの鎖が処理されているかを決定するのが難しいことがある。より具体的には、様々な事例において、基準ゲノムの一方の鎖のみがハッシュテーブルを生成するために使用される必要があるので、シーケンシングプロトコルによって生成されるリードの半分は、モデルゲノム基準の特定の鎖、たとえば相補鎖またはその逆相補鎖のいずれかと一致しないことがあり、それは、たとえば、処理されているリードがたびたび、基準ゲノムのハッシュされたセグメントに関する逆相補鎖であるからである。したがって、DNAの一方の鎖から生成されるリードのみが基準ゲノムのインデクシングされた配列と一致するが、他方の鎖から生成されたリードは、理論的にはその配列の逆相補鎖であり、基準ゲノムの中のどこにおいても一致しない。さらに、記憶されている基準ゲノムの鎖の逆相補鎖である任意の所与のリードに対して、リードがそれでも単なる偶然などによって基準ゲノムの一部分に誤って一致することがあるということが、さらに事を複雑にし得る。上記に鑑みて、マッピングが効率的に進行するようにするために、様々な事例において、リードが基準ゲノムにおいてどこで一致するかを決定しなければならないだけではなく、リードが逆相補鎖変換されているかどうかも決定しなければならない。したがって、ハッシュテーブルおよび/または関数モジュールは、これらの複雑さおよび/またはそれにより生じ得るエラーのタイプを最小限にできるように構築されるべきである。
たとえば、上で示されたように、一事例では、ハッシュテーブルに、基準ゲノムの相補鎖と逆相補鎖の両方を格納することができるので、被験者のシーケンシングされたDNAの1つ1つのリードまたはその逆相補鎖を、ゲノム基準DNAの中のそれぞれの鎖とマッチングすることができる。そのような事例では、リードの中の任意の所与のシードに対して、エラーまたはバリエーションがないと仮定すると、シードは理論的には一方の鎖または他方の鎖、すなわち基準の相補鎖または逆相補鎖と一致するはずである。しかしながら、基準ゲノムの両方の鎖をハッシュインデックスに記憶することは、約2倍の記憶空間を必要とすることがあり(たとえば、32ギガバイトではなく64ギガバイトが必要であり得る)、2倍の量の処理リソースおよび/または2倍の長さの処理時間を必要とすることがある。さらに、そのような解決法は、両方の方向、たとえば相補鎖と逆相補鎖において一致し得る、回文構造の問題を解決しない。
したがって、ハッシュテーブルインデックスは、ゲノム基準配列の両方の鎖を含むように構築され得る。様々な事例において、ハッシュテーブルは、モデルゲノムの一方の鎖のみを基準として含むように構築され得る。これは、ハッシュテーブルをメモリに記憶することが、両方の鎖が記憶され処理される場合に必要なものの半分の記憶および/または処理のリソースしか要さず、したがって、ルックアップに必要な時間もより短い時間しか必要としないはずであるので、有用であり得る。しかしながら、ゲノムの一方の鎖のみを基準として記憶することは混乱を引き起こすことがあり、それは、上で示されたように、シーケンシングされた被験者のDNAが二重らせんである場合、任意の所与のリードがどちらの鎖から生成されたかが通常は知られていないからである。したがって、そのような事例では、ハッシュテーブルは、マッピングされているリードがいずれかの鎖からのものであることがあり、したがって基準ゲノムの記憶されているセグメントの相補鎖または逆相補鎖であり得るという事実を、考慮するように構築されるべきである。
したがって、基準からのシードの一方の方向のみがハッシュテーブルへと格納される場合などの様々な事例において、FASTQファイルのリードから生成されたシードに対してハッシュ関数を実行するとき、シードをまず、現在の方向でルックアップすることができ、かつ/または、次いで逆相補鎖変換することができ、逆相補鎖をルックアップすることができる。これは、エラーまたはバリエーションがないと仮定すると、ハッシュインデックスにおいて2回のルックアップを、たとえば2倍のルックアップを必要とし得るが、シードまたはその逆相補鎖のうちの1つが、基準ゲノムの中の相補的セグメントと一致するはずであり、全体の処理リソースを減らすはずであり、たとえばより少ないメモリが使用され、また、時間を短縮するはずであり、たとえば、さほど多くの配列を比較する必要がない。
より具体的には、上で説明されるような、たとえば56ビットのバイナリフォーマットでデジタル的に表される、1つの特定の方向にあるシードが28ヌクレオチドからなる場合などに、シードを逆相補鎖変換することができ、逆相補鎖を56ビットのバイナリフォーマットでデジタル的に表現することができる。シード配列の各表現に対するバイナリフォーマットおよびその相補鎖は、ある値を有する数、たとえば整数をもたらし、その値はその数により表される。これらの2つの値、たとえば2つの整数を比較することができ、より高いまたは低い値、たとえばより高いまたは低い絶対値を伴う数を標準的な方向の選択として選ぶことができ、これが、ハッシュテーブルに記憶され得る、かつ/またはハッシュ関数に通され得るものである。たとえば、いくつかの事例では、より高い値を伴う数が、ハッシュ関数により処理されるために選択され得る。
利用され得る別の方法は、各シードが奇数個の塩基からなるようにシードを構築することである。そうすると、選択されることになる標準的な方向は、中央の塩基が「A」または「G」であるが「T」または「C」ではない、またはその逆である鎖であり得る。ハッシュ関数が次いで、標準的な方向の要件を満たすシードに対して実行される。そのような方式では、どちらがより高い値を有するかを確かめるために比較される必要があるのは、中央の塩基を表す2ビットだけであり、ルックアップされるのはその配列のうちの2ビットだけである。したがって、中央の2つの塩基を表すビットを見るだけでよい。典型的には、これはうまくいくことがあり、それは、シードが奇数個の長さであり、そうすると中心の塩基が常に逆相補鎖変換されるからである。しかしながら、これは奇数個のシードの長さに対して機能し得るが、上で説明されたように、より高いまたは低い値を有するシードをハッシュすることはすべてのシードの長さに対して機能するはずであり、ただしそのような方法は、より多くのビットのデータを処理しなければならないこと、たとえばルックアップしなければならないことを要求し得る。
これらの方法は、基準の任意の数のシード、たとえばすべてのシード、および/または、FASTQファイルのリードのすべてもしくは一部分から導出された任意の数のシード、たとえばすべてのシードに対して実行され得る。概ね半分の時間、所与の方向のシードのバイナリ表現、たとえば相補鎖がより高い値を有し、概ね半分の時間、反対方向のシードのバイナリ表現、たとえば逆相補鎖がより高い値を有する。しかし、二進数を見ると、より高い値を有するものが、ハッシュテーブルへと供給されるものである。たとえば、各リードおよびその相補鎖に対する二進の整数を比較することができ、初めて現れる1を有する配列が、ハッシュテーブルに鎖として記憶されるように、かつ/またはハッシュ関数に通されるように選択される、2つの鎖のうちの1つである。両方の鎖が同じ場所に初めての1を有する場合、先に来る2番目の1を有する鎖が選択され、以下同様である。当然、より低い値を有するリードを選択することもでき、その場合、最初の0を有する、および/または初めにより多数の0を有する鎖が選択される。指示、たとえばフラグもハッシュテーブルに挿入されることがあり、このフラグは、記憶および/またはハッシュされている鎖がどちらの方向、すなわち相補鎖または逆相補鎖を表しているかを示し、たとえば、逆相補鎖変換される場合には1RCフラグである。
より具体的には、ハッシュ関数を実行してハッシュテーブルにアクセスするとき、ゲノム基準DNAからのシードおよび配列データのリードから導出されるシードは、これらの同じ操作の対象であり、たとえば、バイナリ形式に変換されその逆相補鎖と比較され、ここで、より高いまたは低い値を有する整数が、標準的な方向として選択され、ハッシュ関数に通され、ルックアップされて互いにマッチングされるためにハッシュテーブルへと供給される。しかしながら、これは、基準配列およびリード配列に対して実質的に同じ方式で実行されている同じ操作であるので、2つの配列、すなわち基準シードおよび被験者シードが最初に同じ配列を有している場合、同じレコードが導出され、一方が逆相補鎖変換されている場合であっても、それらはすべてハッシュテーブルの中の同じセルに向けられる。
その結果、特定の方向に所与の配列を有する基準の中のあるシードがバイナリ形式に変換されてハッシュされる場合、試料リードから導出されるシードは、同じ配列を、しかしその逆の方向に有し、たとえば逆相補鎖変換されており、そしてそのシードは上記のプロトコルにかけられ、上で開示された方法により、バイナリ値が決定されてハッシュ関数が実行されるとき、ハッシュ関数が最初から相補的なシードに対して実行されたかのように、ルックアップはハッシュテーブルの中のまさに同じアドレスに向けられる。したがって、この方式では、処理されているシードがどの方向にあるかは関係なく、それは、常に同じアドレスに向けられるからである。
したがって、このような方式では、本明細書で開示される方法は、テーブル内でのシードの位置をその方向にかかわらずハッシュし、それにより決定することが可能であり、レコードの中のフラグにより、任意の所与のシードが逆相補鎖変換されているかどうかも知られる。たとえば、シードが基準から反転していたかどうかが知られ、被験者のリードから導かれたシードも反転していなければならなかったかどうかも知られる。結果として、判断が両方で同じであった場合、方向はリードと基準の間で同じである。しかしながら、一方が反転しており他方が反転していない場合、リードが基準に対して逆相補鎖変換されたものにマッピングすると結論付けることができる。したがって、ハッシュテーブルを使用することによって、ゲノムの中のどこで、所与のリード、もしくはその一部分、たとえばシードが一致するか、かつ/または、それが逆相補鎖変換されているかどうかを決定することができる。さらに、上記は、基準ゲノムからハッシュテーブルを生成して、リードから、たとえばFASTQファイルから生成されたシードに対して様々な付随するハッシュ関数処理を実行することに関して説明されているが、ハッシュテーブルインデックスが被験者のシーケンシングされたDNAのリードから導出されたシードから生成され、本明細書で説明されるような様々な付随するハッシュ関数処理が基準ゲノムから生成されたシードに対して実行されるように、システムを構築できることを理解されたい。
上に記載されたように、ハッシュテーブルおよび/またはハッシュ関数を利用することの利点は、シードを利用することによって、シーケンシングされたDNAのリードの大部分が、しばしば単一のハッシュルックアップを利用することによって基準ゲノムとマッチングでき、様々な事例において、リードから導出されるすべてのシードをハッシュおよび/またはルックアップする必要がないということである。シードは、たとえば、16ヌクレオチド未満、約20ヌクレオチド、約24ヌクレオチド、約28ヌクレオチド、約30もしくは約40もしくは約50、もしくは75、もしくは約100ヌクレオチド、もしくはさらには250、500、750、もしくはさらには999、もしくはさらには約1000ヌクレオチドの長さなどの、比較的短い長さ、または、約1000ヌクレオチドもしくはさらには約10000以上、もしくはさらには約100,000以上、もしくは1,000,000以上のヌクレオチドの長さなどの、比較的長い長さなどの、任意の適切な長さであり得る。しかしながら、上で説明されたように、ハッシュテーブルの中などにおいて、特に適切な長さのシードを選択することに関してシードを使用することに対する、いくつかの欠点がある。
たとえば、任意の適切なシードの長さをマッピング関数において利用することができるが、比較的短いまたは比較的長いシードの長さを使用することには利点および欠点がある。たとえば、シードの長さが短いほど、エラーまたはバリエーションを含む可能性が低く、これはハッシュテーブル内で一致を見つけるのを妨げ得る。しかしながら、シードの長さが短く、より固有ではないほど、基準ゲノムのシードと被験者のシーケンシングされたDNAのリードから導出されるシードとの間でより多くの一致が期待されることになる。さらに、シードの長さが短いほど、より多くのルックアップがハッシュ関数により実行されなければならず、より多くの時間と処理電力を要する。
一方、シードの長さが長いほど、シードはより固有になり、基準のシードとクエリとの間に複数の一致する場所が存在する可能性が低くなる。また、より長いシードでは、リードの中により少ないシードしか必要ではないので、より少ないルックアップしか必要ではなく、それにより、かかる時間がより短くなり、必要な処理電力が少なくなる。しかしながら、シードが長いほど、シーケンシングされたDNAから導出されるシードが、シーケンシングエラーなどのエラーを含み得る可能性および/または基準と比較した場合のバリエーションを含み得る可能性が高くなるので、一致が成立するのを妨げる。さらに、より長いシードは、リードの終わりおよび/または染色体の終わりに当たる可能性がより高いという欠点を有する。したがって、シードがわずか20~100ヌクレオチドの長さである場合、ハッシュテーブル内にはいくつかの一致があり得るが、シードが1000以上のヌクレオチドの長さである場合、一致ははるかに少ないことがあるが、一致がまったくないこともある。
これらの問題を最小限にするのを助けるためのいくつかの方法がある。1つの方法は、シーケンシングの前のDNA処理ステップにおいて適切なオーバーサンプリングが生成されることを確実にすることである。たとえば、1つ1つの1000塩基対の中に通常は少なくとも1つのバリエーションがあることが知られているので、一致を最大化しながら、一方で同時に、エラーおよび/またはバリアントが含まれることによる不一致を最小限にするように、シードの長さを選ぶことができる。加えて、プリシーケンシングおよび/またはシーケンシングステップなどにおけるオーバーサンプリングの使用は、ハッシュ関数などの中でシードを使用することに固有の様々な問題を最小限にするためのさらなる方法として利用され得る。
上で示されたように、オーバーサンプリングはパイルアップを産生する。パイルアップは、ゲノムの中の同じ場所に全般に重複するようにマッピングするリードの集合体である。試料リードの大部分に対して、そのようなパイルアップは必要ではないことがあり、たとえば、リードおよび/またはリードから生成されたシードはバリアントを含まず、かつ/または、ハッシュテーブルの中の複数の場所にマッピングしない(たとえば、ゲノムにおいて実際には重複していない)。しかしながら、シードおよび/もしくはリードと基準ゲノムとの間に、バリアントならびに/またはエラーならびに/または他の不一致を含み得る、リードおよび/またはシードでは、ゲノムの任意の所与の領域に対するパイルアップの産生が有用であり得る。たとえば、試料リードを基準ゲノムにマッピングすることが可能となるのに、試料ゲノムのリードから生成されるシードの間で1つの厳密なヒットしか必要ではないとしても、リードと基準との間でのそのような厳密な一致の発生を妨げ得る機械のエラーまたは試料DNA配列における真のバリアントがあり得るという事実により、プリシーケンシングおよびシーケンシングステップにおける重複するパイルアップの産生がしばしば有用になる。
たとえば、試料シードが本当にバリアントまたはエラーを含む事例では、リードパイルアップの産生は、本当のバリアンスと機械的および/または化学的なエラーを区別するのに有用であり得る。そのような事例では、外見上のバリエーションが実際に本当のバリエーションであるかどうかを判定するために、パイルアップを利用することができる。たとえば、パイルアップにおけるリードの95%が、ある場所に「C」があることを示している場合、基準ゲノムがその位置に「T」を有する場合であっても、それが正しいコールである可能性が高い。そのような事例では、不一致は、SNP、たとえばゲノムのその場所における「T」から「C」への置換によるものであることがあり、個人の遺伝子コードが基準の遺伝子コードから実際に変化している。そのような事例では、バリアンスが存在する場所におけるパイルアップのリードの重複する部分を比較するために、パイルアップの深さを利用することができ、バリアンスを有するパイルアップにおけるリードの割合に基づいて、バリアンスが本当に試料配列における実際のバリエーションによるものであるかどうかを判定することができる。したがって、ゲノム配列と最も良く合うリードの実際の配列は、一部には、パイルアップの深さにおいて反映されるものに基づいて決定され得る。しかしながら、パイルアップを使用することの欠点は、すべての過剰なリードおよび/またはそれにより生成されるシードを処理するためにより長い処理時間を必要とするということである。
短いまたは長いリードに固有の問題を最小限にするための別の方法は、第1の、たとえば一次ハッシュテーブルとともに、またはそれに関連して、二次ハッシュテーブルを利用することである。たとえば、第2のハッシュテーブルおよび/またはハッシュ関数は、一次ハッシュテーブルの中にヒットがないシード、または一次ハッシュテーブルの中に複数のヒットがないシードに対して利用され得る。たとえば、あるシードを別のシードと比較するときに、生じ得るいくつかの結果がある。一事例では、2つの配列の間でどこにもヒットがない、たとえば一致がないことがあり、この場合、これは基準ゲノムから導出されたシードに対して比較されるような被験者のリードのシードなどにおける潜在的なエラーまたはバリエーションを示唆する。または、1つまたは複数の一致が発見されることがある。しかしながら、多数の一致が発見される場合、これは問題であり得る。
たとえば、一次ハッシュテーブルに関して、ハッシュされている基準の中の各シードが、たとえば1回、2回、または3回など、数回だけ現れる場合、二次ハッシュテーブルおよび/またはハッシュ関数の必要はないことがある。しかしながら、シードの1つまたは複数がより多くの回数、たとえば、5回、10回、15回、20回、25回、50回、100回、1000回、またはより多くの回数発生する場合、これは問題であり得る。たとえば、多くの回数繰り返されるという点で数学的に重要であると判定された既知の領域が、ヒトゲノムの配列の中にある。その結果、これらの場所のうちの1つへの任意のシードのマッピングは、シードが重複する配列のヌクレオチドを構成する場合などに、これらの場所のうちの多数へ実際に意図せずにマッピングすることがある。そのような事例では、すべての可能性のうちのいずれにシードが実際にアライメントするかを決定するのは難しいことがある。しかしながら、これらの反復領域は知られているので、かつ/または知られるようになるので、決定不可能である可能性が高い何かを決定するために一次ハッシュ関数を使用しようとして時間および処理電力を無駄にしないために、これらの領域の1つまたは複数に通常マッピングするあらゆるシードが、一次ハッシュ関数または二次ハッシュ関数による処理のために二次ハッシュテーブルに割り振られるように区別され得る。
より具体的には、ゲノム基準のシードを被験者のゲノムリードから生成されるシードと比較するとき、1から数百の、または数千もの一致場所が生じることがある。しかしながら、本発明のシステムは、一致の数が約50未満、または約40未満、または約30未満、約25または約20未満、約16個未満の一致または約10個もしくは5個未満の一致である場合などの場合、さらなる処理ステップなどを必要とせずに、ある数の重複する一致を扱うように構成され得る。しかしながら、これよりも、返される有効なヒットの一致が多い場合、システムは、たとえば二次ハッシュテーブルを使用して、二次ハッシュ関数を実装するように構成され得る。
したがって、冗長性の確率が高いことが知られているそのようなシードを一次ハッシュテーブルに置くのではなく、そのようなシードは、二次ハッシュテーブルに、または第1のハッシュテーブルの中の二次領域に置くことができる。加えて、いくつかの事例では、そのシードの多数の潜在的なマッピング場所について何も伝えないが、二次ハッシュテーブルにアクセスするためのコマンドを伝えるレコード、たとえば伸長レコードを、一次ハッシュテーブルに置くことができる。たとえば、伸長レコードは、一次シード、たとえば非固有または非重複性のシードを、二次テーブルなどにおいてハッシュしてルックアップできるより長いシード配列にするために、一次シードの隣に、たとえばシードの終わりに1つまたは複数の追加の塩基を追加することなどによって、一次シードの長さをより長い固有のシードの長さに延ばすための命令などの、命令であり得る。
このレコードは、既知の冗長なシードを所与の量だけどれだけ延ばすべきかを知らせ、または別様に指示するように、かつ、シードをどこで、および/またはどのように延ばすべきかについても指示し得るように、構成され得る。たとえば、ハッシュテーブルは普通は事前に計算されるので、たとえば、基準ゲノムから生成されたシードから元々は構築されるので、基準ゲノムから生成されるシードの中に多くの回数発生することになるものがあればそれがどれであるかは、テーブルを構築する前に知られていることがある。したがって、様々な事例において、どのシードが二次ハッシュテーブルにシフトされなければならないことになるかは、事前に決定され得る。たとえば、ハッシュテーブルインデックスを構築するとき、ハッシュテーブルにインデックスとして入力されている基準シード配列の特性は知られているので、1つ1つの潜在的なシードに対して、多数のヒット、たとえば10個から10000個のヒットを与えることになる場合であるかどうかが判定され得る。
より具体的には、様々な事例において、基準から導出された所与のシードおよび/または被験者のリードが有し得るすべての予測される一致を決定するために、あるアルゴリズムが実行され得る。任意の特定のシードに対して、多数の一致を返す可能性が高いと判定される場合、フラグ、たとえばレコードが、ハッシュテーブルのセル内などで生成されることがあり、これは、この特定のシードが高い頻度でヒットすることを示す。そのような事例では、レコードはさらに、このシード、およびこのシードのようなシードの一次ハッシュがスキップされるべきであることを指示することができ、それは、シードが実際にどこにマッピングするかを正確に決定するために必要とされる、そのようなシードに対する多数の、たとえば20~10000回以上の評価を実行するのは現実的ではないからである。そのような事例では、一次ハッシュ関数は、シードが一致し得るすべての潜在的な場所のうちでいずれの場所が、リードが本当にアライメントする場所であるかを正確に決定することが可能ではないことがあり、したがって、現実的には、シードをこの段階において正しくマッピングすることができないので、一次ハッシュ関数は、シードがゲノムにおいてどこで実際に一致するかを正確に示す結果などの、使用可能な結果を返す可能性が高くないことがある。
そのような事例では、ハッシュ関数アルゴリズムは、冗長なシードをより固有にするために何を行う必要があるかを計算するように構成され得る。たとえば、二次ハッシュ関数は、シードがもはや冗長ではなく、むしろハッシュされるのに適切に固有であることを確実にするために、シードがどれだけの数の塩基の分、どのような順序で、かつどの位置で伸長される必要があるかを決定することができる。したがって、レコードはまた、所定のレベルの一意性を達成するために、シードの一端または両端で、冗長なシードを伸長すること、たとえば2個、4個、6個などの分伸長することのための命令を含み得る。このような方式では、最初は同一であるように見えるシードは、同一ではないと決定され得る。
たとえば、いくつかの事例では、典型的なレコードは、重複するシードが、最高でX個という奇数個または偶数個の塩基の分だけ伸長されること、しかしいくつかの事例では、約2個~4個または約8個~16個から、約32個、または約64個以上の塩基などへと、偶数個の塩基の分だけ、たとえば両側に等しく伸長されることを、指示することができる。たとえば、伸長が64塩基分である場合、レコードは、32個の塩基がシードの両側に追加されることを指示し得る。シードが伸長されるべき塩基の数は設定可能であり、システムがどのように構築されるかに依存した任意の適切な数であり得る。いくつかの事例では、より妥当な数の一致結果が戻ってくるように、シードをどれだけの塩基の分だけ伸長すべきかを決定するために、二次ハッシュ関数が利用され得る。したがって、この伸長は、パターンが現れる一致場所が1個、2個、3個しかない点まで、または、16個、25個、もしくは50個もある点までなどの、相対的な一意性の点までであり得る。様々な事例において、シードを両側から等しく伸長することは、逆方向のリードについての問題を避けることなどのために有用であり得るが、様々な事例において、シードは両側に不均等に1つまたは複数の塩基を追加することによって伸長され得る。
より具体的には、一例などにおいて、シードが28塩基を含み、一次ハッシュテーブルの中のセル内に位置する伸長レコードなどの伸長レコードが、たとえば64塩基だけシードを伸長するようにハッシュ関数に指示する場合、レコードはさらに、シードをどのように伸長すべきかについて、たとえばシードの両側に32個の塩基を追加することを、ハッシュ関数に命じることができる。しかしながら、伸長は、リード上の任意の適切な場所で行うことができ、対称的にまたは非対称的に行うことができる。いくつかの事例では、レコードは、いくつかの事例では対称的な伸長が本明細書で論じられる逆相補鎖などについてより良好に機能し得るので、シードを対称的に伸長するようにハッシュ関数に指示し得る。そのような事例では、伸長するときに、シードの両側などに同じ数の塩基が追加される。しかし、他の事例では、非対称のフォーマットで偶数個または奇数個の塩基を追加することによって伸長を実行できるので、両側で同じ数の塩基の分だけシードを伸長することは必要ではない。典型的には、一次ハッシュテーブルは、完全には満たされないように構成される。たとえば、テーブルの容量の80%または90%を超えないようにテーブルを構成するのが望ましい。これは、ルックアップレートの高い性能を維持するためである。テーブルを構築するときに同じ位置へシードをハッシュする際に多数の衝突があると、記憶機構が他の位置への参照の連鎖を作成するので、ルックアップ機構は、オーバーフローしたシードに割り当てられているものを見つけることが可能になる。テーブルの密度が高いほど、衝突の数は多くなり、本当の一致を見つけるためにたどるべき連鎖は長くなる。
初期の冗長なシードが28塩基の長さであり、18個から32個から64個の塩基などへと、シードの各々の対向する側でシードを伸長するようにレコードが指示する場合などの、様々な事例において、シードのデジタル表現は、約64塩基×塩基当たり2ビット=128ビットであり得る。したがって、マッピングモジュールがどのようにセットアップされるかに応じて、これは一次ハッシュテーブルが処理するには大きすぎることがある。したがって、いくつかの事例では、そのような膨大な処理の必要性に対処するために、いくつかの実施形態では、二次ハッシュモジュールは、より大きなシードと関連付けられる情報を記憶するように構成され得る。伸長を必要とするシードの数はシードの総数の一部であるので、二次ハッシュテーブルは、一次ハッシュテーブルより小さいことがある。しかしながら、他の事例では、モジュールの処理要件を下げること、たとえばビットを節約することなどのために、配列、たとえば一次配列の既知の冗長な部分が、所定の配列の長さなどの事前に選択された変数によって置換され得る。そのような事例では、冗長な配列がすでに知られており特定されているので、冗長な配列は完全にデジタル的に表現される必要はない。むしろ、様々な事例において、本当に行う必要のあることは、既知の冗長配列を既知の可変配列で置換することがすべてであり、本当にルックアップされる必要があるものは、可変配列の両側に追加された伸長部分、たとえばウィングであり、それは、それらが、冗長ではなく新しい初期配列の唯一の部分であるからである。したがって、いくつかの事例では、初期配列は、より短い固有の識別子コード(56ビットの表現の代わりの24ビットのプロキシなど)で置換することができ、36ビットの伸長などの伸長塩基をプロキシに追加することができ(たとえば、全体で60ビットになる)、次いでこの伸長を一次テーブルの中の伸長レコードに置くことができる。このような方式では、リードが短すぎることおよび/または長すぎることの欠点を最小限にすることができ、ハッシュテーブルにおいて1回または少数のルックアップしかないことの利点を維持することができる。
上で示されたように、上で説明されたハッシュ関数の実装形態は、ソフトウェアおよび/またはハードウェアで実行され得る。ハードウェアでハッシュモジュールを実装することの利点は、処理を加速できるので、はるかに高速に処理を実行できるということである。たとえば、ソフトウェアがこれらの様々な機能の1つまたは複数を実行するための様々な命令を含み得る場合、そのような命令の実施はしばしば、実行の前などに、データおよび命令が記憶され、かつ/またはフェッチされ、かつ/または読み取られ、かつ/または解釈されることを必要とする。しかしながら、上で示され、以下で本明細書においてより詳細に説明されるように、一連の命令の1つまたは複数をフェッチすること、解釈すること、および/または実行することを必要とせずに、これらの機能を実行するために、チップをハードワイヤリングすることができる。むしろ、チップはそのような機能を直接実行するようにワイヤリングされ得る。したがって、様々な態様において、本開示は、上で説明されたハッシュモジュールの部分またはすべてが、FPGA、ASIC、またはストラクチャードASICなどの、チップ上でハードワイヤリングされる集積回路などの、1つまたは複数のネットワーク回路によって実装され得るように構成され得る、カスタムのハードワイヤードマシンを対象とする。
たとえば、様々な事例では、ハッシュテーブルインデックスを構築することができ、ハッシュ関数をチップ上で実行することができ、他の事例では、ハッシュテーブルインデックスを、ホストCPUにより実行されるソフトウェアなどを介してチップから生成することができるが、一度生成されると、ハッシュテーブルインデックスは、チップへとロードされ、ハッシュモジュールを実行する際などにチップにより利用される。いくつかの事例では、チップは、8ギガバイト、16ギガバイト、32ギガバイト、64ギガバイト、約128ギガバイトなどの、任意の適切なギガバイト数を含み得る。様々な事例において、チップは、ハッシュモジュールの様々なプロセスがメモリリソースの一部分だけを、またはすべてを利用して実行されるように、構成可能であり得る。たとえば、カスタムの基準ゲノムを構築できる場合、メモリの大部分が、ハッシュ基準インデックスを記憶すること、および/またはリードを記憶すること、および/または他の機能モジュールが使用するための空間を確保することに専用であることがあり、たとえば、16ギガバイトがリードを記憶することに専用であり、8ギガバイトがハッシュインデックスを記憶することに専用であることがあり、別の8ギガバイトが他の処理機能に専用であることがある。別の例では、32ギガバイトがリードを記憶することに専用である場合、26ギガバイトが一次ハッシュテーブルを記憶することに専用であることがあり、2.5ギガバイトが二次テーブルを記憶することに専用であることがあり、1.5ギガバイトが基準ゲノムに専用であることがある。
いくつかの実施形態では、二次ハッシュテーブルは、一次ハッシュテーブルより大きいデジタル的な影響力を有するように構築され得る。たとえば、様々な事例において、一次ハッシュテーブルは、ハッシュバケット当たり8個のレコードを各々伴う8バイトのハッシュレコード、全体でバケット当たり64バイトを記憶するように構成されることがあり、二次ハッシュテーブルは、バケット当たり全体で128バイトの16個のハッシュレコードを記憶するように構成されることがある。ハッシュ鍵の同じビットと一致するオーバーフローハッシュビットを含む各ハッシュレコードに対して、基準ゲノムにおける潜在的な一致場所が報告される。したがって、一次ハッシュテーブルに対して、最大で8個の場所が報告され得る。二次ハッシュテーブルに対して、最大で16個の場所が報告され得る。
ハードウェアで実施されるかソフトウェアで実施されるかに関係なく、多くの事例において、衝突を避けるようにハッシュテーブルを構築するのが有用であり得る。たとえば、様々なシステムのアーティファクトにより、そこに一致があるかどうかに関係なく同じ場所においてハッシュテーブルへと挿入されることを望む複数のシードがあり得る。そのような事例は衝突と呼ばれる。しばしば、ハッシュテーブルが構築される方法により、衝突を一部回避することができる。したがって、様々な事例において、ハッシュテーブルは衝突を避けるために構築されることがあり、したがって、1つまたは複数の仮想ハッシュバケットを含むように構成されることがある。
様々な事例において、ハッシュテーブルは、それが8バイト、16バイト、32バイト、64バイト、128バイトのフォーマットなどで表されるように構築され得る。しかし、様々な例示的な実施形態では、ハッシュテーブルを64バイトのフォーマットで表すのが有用であり得る。これは、たとえば、ハッシュ関数が、たとえば標準的なDIMMまたはSODIMMフォームファクターのDRAMなどの、メモリへのアクセスを使用することになる場合に有用であることがあり、たとえば、ここで最小のバーストサイズは通常64バイトである。そのような事例では、所与のメモリにアクセスするためのプロセッサの設計は、ハッシュテーブルの中のバケットを形成するために必要なバイトの数も64となるようなものであり、したがって、最大限の効率を実現することができる。しかしながら、テーブルが32バイトのフォーマットで構築されるとすると、これは、バーストで送達される約半分のバイトがプロセッサにより必要とされない情報を含むので、非効率である。このことは、実効的なバイト送達率を半分にする。逆に、ハッシュテーブルの中のバケットを形成するために使用されるバイトの数が最小バーストサイズの倍数、たとえば128である場合、プロセッサが単一のアクセスにおいて返される情報のすべてを実際に必要としている限り、性能の低下はない。したがって、メモリアクセスの最適なバーストサイズが所与のサイズ、たとえば64バイトである事例では、ハッシュテーブルは、メモリのバーストサイズが最適に利用されるように構築することができ、たとえば、ハッシュテーブルの中のビンを表すために割り振られてマッピング機能によって処理されるバイト、たとえば64バイトは、メモリのバーストサイズと一致する。その結果、メモリ帯域幅が制約である場合、ハッシュテーブルは、そのような制約を最適に利用するように構築され得る。
さらに、レコードを8バイトに詰め込むことができるが、ハッシュ関数は、テーブルからの8バイトが1つのレコードを処理するように読み取られるということが、非効率であり得るので起こらないように、構築することができることに留意されたい。むしろ、バケットの中のすべての8個のレコードを、またはその何らかの副部分を一度に読み取ることができる。これは、上で説明されたアーキテクチャを考慮すると、すべての8個のレコードを同じ速度で処理するのに、1つのレコードを単に処理する場合と同じ時間しかかからないので、システムの処理速度を最適化するのに有用であり得る。したがって、いくつかの事例では、マッピングモジュールは、それ自体が1つまたは複数のサブセクション、たとえば仮想セクションまたはバケットを含み得る、ハッシュテーブルを含むことがあり、各バケットは8スロットなどの1つまたは複数のスロットを有し得るので、衝突を管理することなどのために、1つまたは複数の異なるレコードをバケットに挿入することができる。しかしながら、いくつかの状況では、そのようなバケットの1つまたは複数がレコードを満たし得るので、他のバケットに追加のレコードを記憶し、ハッシュテーブルルックアップ機構が一致を見つけるためにさらに調べる必要があることを示す情報を元のバケットの中に記録するための、手段が提供され得る。
したがって、いくつかの事例では、衝突を管理することなどのための1つまたは複数の追加の方法を利用することも有用であることがあり、1つのそのような方法は、1次元プローブおよび/またはハッシュ連鎖のうちの1つまたは複数を含み得る。たとえば、ハッシュテーブルの1つのバケットの中などの、ハッシュテーブルまたはその一部分の中で、何が本当に検索されているのかが知られておらず、特定のバケットが満杯である場合、ハッシュルックアップ機能は、あるバケットが満杯であり検索されても所望のレコードが見つからない場合に、その機能が次のバケット、たとえば+1バケットに進むことができ、次いでそのバケットを確認できるように、構成され得る。そのような方式では、特定のレコードを探すときに、すべてのバケットを検索することができる。したがって、そのような検索は、探されているものが見つかるまで、またはそれが見つかりそうにないことが明らかになるまで、たとえばバケットの少なくとも1つの中に空のスロットが見つかるまで、バケットを次々と順番に見て実行され得る。具体的には、各バケットが順番に満たされ、各バケットが充填の順序に従って検索され、空のスロットが見つかる場合、たとえば、特定のレコードを求めてバケットを順番に検索するとき、空のスロットはレコードが存在しないことを示すものであることがあり、それは、もしレコードが存在するとすれば、先行するバケットの中にはなかったとしても空のスロットの位置には少なくともあったはずであるからである。
より具体的には、64バイトがハッシュバケットに情報を記憶するために指定され、8個のレコードが含まれる場合、フェッチされたバケットを受け取ると、マッピングプロセッサは、どれが一致でありどれが一致ではないかを決定するために、すべての8個のレコードに対して同時に動作することができる。たとえば、基準ゲノムから生成されたシードに対する、シーケンシングされた試料DNAから得られたリードからのシードなどのルックアップを実行するとき、一致を見つけるために、試料シードのデジタル表現を、すべての、たとえば8個のレコードの中の基準シードに対して比較することができる。そのような事例では、いくつかの結果が生じ得る。直接の一致が見つかることがある。試料シードはハッシュテーブルに入ることがあり、いくつかの事例では、一致が見つからず、それはたとえば、そのシードまたはそのシードの生成元のリードに関して機械またはシーケンシングのエラーがあったことなどにより、そのシードが単に基準の中のいずれの対応するシードとも厳密に同じではないから、または、人物が基準ゲノムとは異なる遺伝子配列を有するからである。または、シードがハッシュテーブルに入ることがあり、複数の一致が返されることがあり、たとえば、試料シードがテーブルの中の2個、3個、5個、10個、15個、20個、またはより多くの場所と一致する。そのような事例では、その特定のシードが一致する基準ゲノムの中の様々な異なる位置をすべてが指す、複数のレコードが返されることがあり、これらの一致のレコードは、同じバケットの中にあることがあり、または、複数のバケットが、重要な結果、たとえば一致の結果のすべてを返すためにプローブされなければならないことがある。
空間がハッシュテーブルの中、たとえばハッシュテーブルバケットの中で限定的な要因になり得る場合などの、いくつかの事例では、衝突を解決するための、かつ/または空間を節約するための追加の機構が実装され得る。たとえば、8個よりも多くのレコードがバケットに記憶される必要があるとき、または他の事例ではそのことが望ましいときなどの、空間が限られるようになるときに、ハッシュ連鎖機能が実行され得る。ハッシュ連鎖は、たとえば、ゲノムの中の位置を指し示す代わりに何らかの他のアドレスを、たとえば現在のハッシュテーブル、たとえば一次ハッシュテーブルまたは二次ハッシュテーブルの中の第2のバケットを指し示す、連鎖ポインタを含むレコードで、ゲノム配列の中の特定の場所の位置を含むレコードを置き換えることを伴い得る。これは、ハッシュルックアップ機構が、バケットを順次順番に確認するのではなく所望のレコードを含むバケットに直接アクセスすることを可能にするという、1次元プローブ方法を上回る利点を有する。
そのようなプロセスは、システムアーキテクチャを考慮すると有用であり得る。たとえば、一次ルックアップなどの中にある、ハッシュされている一次シードは、テーブルの中の所与の位置、たとえばその元の場所に位置しているが、連鎖しているシードは、元のバケットとは異なり得る場所に置かれている。したがって、上で示されたように、デジタル的に表されるシードの第1の部分、たとえば約26ビットから約29ビットを、ハッシュすることができ、第1のステップにおいてルックアップすることができる。そして、第2のステップにおいて、残りの約27ビットから約30ビットを、第1のパスを確認するための手段として、ハッシュ連鎖の中などのハッシュテーブルに挿入することができる。したがって、任意のシードに対して、その元のアドレスビットを第1のステップにおいてハッシュすることができ、二次アドレスビットを第2の確認ステップにおいて使用することができる。したがって、シードの第1の部分を一次レコード位置に挿入することができ、第2の部分を二次レコード連鎖位置においてテーブルへと収めることができる。そして、上で示されたように、様々な事例において、これらの2つの異なるレコード位置は、連鎖フォーマットレコードなどによって、位置的に分離され得る。したがって、連鎖の任意の宛先バケットにおいて、連鎖フォーマットレコードは、ローカルの主要な第1のバケットアクセスおよびプロービングのためのエントリー/レコードと、連鎖のためのレコードとを位置的に分離することができる。
そのようなハッシュ連鎖は、多数の長さに対して継続され得る。そのような連鎖の利点は、バケットの1つまたは複数が1つまたは複数の、たとえば、2個、3個、4個、5個、6個、またはより多くの空のレコードスロットを含む場合に、これらの空のスロットをハッシュ連鎖データを記憶するために使用できるということである。したがって、いくつかの事例では、ハッシュ連鎖は、1つのバケットの中の空のスロットで開始し、そのスロットを別のバケットの中の別のスロットに連鎖することを伴うことがあり、ここで、2つのバケットはハッシュテーブルの中の遠隔の位置にあることがある。ハッシュ連鎖の一部として遠隔のバケットに配置されているレコードと、同じバケットへと直接ハッシュする「ネイティブの」レコードとの混同を避けるために、追加の配慮を行うことができる。いつものように、二次アクセス鍵の残りの約27ビットから約30ビットが、連鎖されたバケットの中で遠隔に配置されたレコードに記憶されている対応する約27ビットから30ビットに対して確認されるが、連鎖したバケットが元のハッシュバケットから離れて配置されていることにより、これらの約27ビットから30ビットを確認することは、一致するハッシュレコードが連鎖によってこのバケットに達する元のシードに対応し、何らかの他のシードが直接のアクセスによって同じバケットに達することとは対照的であることを保証するには十分ではない(たとえば、ハッシュテーブルのアドレス指定に使用される約26ビットから29ビットが、アクセスされている初期のハッシュバケットへの近接により暗黙的に確認されるとき、約27ビットから30ビットを確認することが完全な検証であり得る)。
レコードの中のハッシュ鍵全体を記憶する必要なく誤ったハッシュレコードを取り出すのを防ぐために、連鎖されたバケットにおいて位置システムが使用され得る。したがって、連鎖されたバケットは連鎖連続フォーマットレコードを含まなければならず、これは必要な場合、バケット連鎖を続けるためのさらなる連鎖ポインタを含む。この連鎖連続レコードは、直接のハッシュアクセスに対応するすべての「ネイティブな」レコードの後に、かつ連鎖に属するすべての遠隔のレコードの前に、バケットのスロットにおいて現れなければならない。クエリの間、任意の連鎖ポインタに従う前は、連鎖連続レコードの後に現れるあらゆるレコードを無視すべきであり、任意の連鎖ポインタに従った後は、連鎖連続レコードの前に現れるあらゆるレコードを無視すべきである。
たとえば、バケットが約75%~85%の充填率である場合、8個のバケットをスキャンすることができ、使用できる15~25個のスロットしか見つけることができず、一方で、ハッシュ連鎖を用いると、これらのスロットを、2個または3個または4個のバケットで見つけることができる。そのような事例では、ハッシュレコードを記憶するのに必要なプローブまたは連鎖ステップの数が重要であり、それは、システムの速度に影響するからである。実行時に、プロービングがレコードを見つけるために必要である場合、システムを低速にする多数のハッシュルックアップアクセス、たとえば64バイトのバケットリードが、実行される必要がある。ハッシュ連鎖は、実行されなければならないアクセスの平均の回数を最小限にするのを助け、それは、順序的に次のものでなければならないプロービングバケットごとではなく、広い領域から選択することができる連鎖されたバケットごとに、一般により過剰なハッシュレコードを格納することができるからである。したがって、典型的には、所与の数の過剰なハッシュレコードを、プロービングバケットの必要な配列よりも短い、連鎖されたバケットの配列へと格納することができ、このことは同様に、クエリの中のそうした過剰なレコードを位置特定するために必要なアクセスの回数を制限する。それでも、プロービングは、より少量の過剰なハッシュレコードに対しては価値があるままであり、それは、プロービングは、バケットスロットが連鎖ポインタのために犠牲にされることを必要としないからである。
たとえば、すべてのあり得る一致が基準ゲノムに対するシードについてのものであると判定された後で、所与のリードが一致する可能性のあるすべての潜在的な位置のうちのいずれが、実際にリードがアライメントする正しい場所であるかを決定しなければならない。したがって、マッピングの後で、基準ゲノムにおいて1つまたは複数のリードが一致するように見える、複数の場所があり得る。その結果、厳密に同じものを示しているように見える複数のシードが存在することがあり、たとえば、それらは、リードにおけるシードの場所を考慮すれば、基準の厳密に同じ場所と一致していることがある。
したがって、実際のアライメントは、各々の所与のリードに対して決定しなければならない。この決定は、いくつかの異なる方法で行うことができる。一事例では、ハッシュルックアッププロセスの間に場所情報を返した、リードからの1つ1つのシードによって示される場所に基づいて、基準ゲノムに関する正しいアライメントを決定するために、すべてのリードが評価され得る。しかしながら、様々な事例において、アライメントを実行する前に、シード連鎖フィルタリング機能が、シードの1つまたは複数に対して実行され得る。
たとえば、いくつかの事例では、基準ゲノムに対するのと同じ全般的な場所にマッピングするように見える、所与のリードと関連付けられるシードを、同じ領域を参照する単一の連鎖へと集約することができる。1つのリードと関連付けられるシードのすべてを、各シードが1つだけの鎖のメンバーとなるように、1つまたは複数のシード連鎖へとグループ化することができる。次いで、リードが基準ゲノムの中の各々の示される場所にアライメントされるようにするのは、そのような連鎖である。具体的には、様々な事例において、基準の中の同じ全般的な位置にすべてが属していることを示す、同じ傍証を有するすべてのシードを集めて、1つまたは複数の連鎖を形成することができる。したがって、一緒にグループ化するシード、または、少なくとも基準ゲノムの中で互いに近くなるように見える、たとえばある範囲内にあるように見えるシードは、シードの連鎖へとグループ化され、この範囲の外側のものは、異なるシードの連鎖に入れられる。
これらの様々なシードが1つまたは複数の様々なシード連鎖へと集約されると、連鎖のうちのいずれが、アライメントされることになる正しい連鎖を実際に表しているかが決定され得る。これは、少なくとも一部、正しいものである可能性が極めて低い弱いシード連鎖を除去するように設計されるヒューリスティックであるフィルタリングアルゴリズムを使用することによって行われ得る。一般に、リードの中でわたる長さに関して、シード連鎖が長いほど、正しい可能性が高く、さらに、寄与するシードがより多いシード連鎖は、正しい可能性がより高い。一例では、ヒューリスティックを適用することができ、ここで、比較的強い「優れた」シード連鎖、たとえば長い、または多数のシードを有するものが、比較的弱い「劣った」シード連鎖、たとえば短い、または少数のシードを有するものを除去する。
1つの変形では、劣った連鎖の長さは、たとえばその2倍の長さである閾値の長さを決定し、それにより、少なくとも閾値の長さの優れた連鎖が劣った連鎖を除去することができる。別の変形では、劣った連鎖のシードカウントが閾値シードカウント、たとえばその5倍のシードを決定し、それにより、少なくとも閾値シードカウントの優れた連鎖が劣った連鎖を除去することができる。別の変形では、劣った連鎖の長さが閾値シードカウント、たとえばそのシードカウントの2倍からそのシード長を引いたものを決定し、それにより、少なくとも閾値シードカウントの優れた連鎖が劣った連鎖を除去することができる。リードのキメラアライメントが望まれるときなどのいくつかの変形では、リード内の劣ったシード連鎖に実質的に重畳する優れたシード連鎖のみが、劣ったシード連鎖を除去し得る。
このプロセスは、高品質のリードのアライメントを見つけることができる基準ゲノムの領域を特定した可能性が低いシードを取り除く。したがって、これは、各リードに対して実行される必要があるアライメントの数を減らし、それにより処理速度を高めて時間を節約するので、有用であり得る。したがって、このプロセスは、一部、調整機能として利用することができ、それにより、より高い速度が望まれるとき、たとえば高速モードにおいて、より詳細なシード連鎖フィルタリングが実行され、より高い全体的な精度が望まれるとき、たとえば高精度モードにおいて、より少ないシード連鎖フィルタリングが実行され、たとえばすべてのシード連鎖が評価される。
様々な実施形態において、シード連鎖フィルタリングステップの前などに、シード編集を実行することができる。たとえば、各リードに対して、そのリードのシードのすべてがマッピング機能にかけられ、それらのいずれもがヒットを返さなかった場合、リードの中に1つまたは複数のエラーが、たとえばシーケンサが作り出したエラーがあった可能性が高くなり得る。そのような事例では、一致の結果が返されなかった場合などに、一変化の編集処理などの編集機能、たとえばSNP編集処理を各シードに対して実行することができる。たとえば、場所Xにおいて、一変化の編集機能は、指定されたヌクレオチドが他の3つのヌクレオチドのうちの1つと置換されることを指示することがあり、その変更、たとえばSNP置換を行うことによって、ヒット、たとえば一致が得られるかどうかが判定される。この一変化の編集は、シードの中の1つ1つの場所に、かつ/またはリードの1つの1つのシードに対して同じ方式で実行することができ、たとえば、シードの中の各場所を各々の代替的な塩基で置換する。加えて、1つの変化が1つのシードにおいて行われる場合、その変化が1つ1つの他の重畳するシードに対して有する効果が、その1つの変化に照らして決定され得る。
そのような編集はまた、4つのヌクレオチドのうちの1つが所与の挿入場所Xにおいて追加される場合などの、挿入のために実行されることがあり、置換を行うことによってヒットが得られたかどうかが判定される。これは、4つすべてのヌクレオチドに対して、かつ/またはシードの中のすべての場所(X、X+1、X+2、X+3など)に対して、かつ/またはリードの中のすべてのシードに対して行われ得る。そのような編集はまた、4つのヌクレオチドのうちの1つがシードの中の所与の場所Xにおいて欠失している場合などの、欠失のために実行されることがあり、欠失を行うことによってヒットが得られたかどうかが判定される。次いで、これはすべての場所X+1、X+2、X+3などに対して繰り返され得る。しかしながら、そのような編集は、2回、または3回、または4回、または5回、または10回、または50回、または100回、または200回などの、多数の追加のルックアップを必要とすることなどによって、多くの余計な処理作業および時間をもたらし得る。それでも、そのような編集によって、それまで一致がなかった場合に実際のヒットを決定できれば、たとえば一致が成立すれば、そのような余計な処理および時間は有用であり得る。そのような事例では、エラーが生じたことと、さらにエラーが訂正されたこととを通常は決定することができ、それによりリードを再利用する。
加えて、編集機能が実行されるべきかどうかを決定するために、さらなるヒューリスティックを利用することができ、それにより、このアルゴリズムは、そのような編集が実行された場合にヒットが得られる確率を決定するための計算を実行する。ある閾値の確率がたとえば85%の可能性で満たされる場合、そのようなシード連鎖の編集が実行され得る。たとえば、システムは、どれだけ高い頻度でヒットが存在するか、かつ/またはどれだけのシード連鎖が高頻度のヒットを含むかを計算するなど、シード連鎖についての様々な統計を生成し、それにより、シード連鎖の編集が一致を判定する際の差となる可能性が高いかどうかを決定することができる。たとえば、高頻度のヒットの割合が大きいと判定される場合、そのような事例では、シード連鎖の編集をスキップすることができ、それは、様々な配列を、100回以下、50回以下、40回以下、30回以下、20回以下、または10回以下などの、妥当な回数のハッシュテーブルのルックアップ内でヒットを与えるのに十分に固有なものにする可能性が低いからである。そのような統計を再検討することができ、次いで、シード編集を行うかどうかを決定することができる。たとえば、任意の1つのリードに対して、場所の半分が一致を示さず、他の半分が高頻度の一致を示すことを、統計が示している場合、一致が返されない場合にエラーがある可能性が高いので、シード編集を行う価値がおそらくあるが、多数の高頻度の一致がある場合には、シード編集を実行する価値は単純にない可能性がある。
これらのマッピング機能、フィルタリング機能、および/または編集機能のうちの1つまたは複数を実行することによる結果は、リードが基準ゲノムに対して一致し得るすべての潜在的な位置のリストを各リードに対して含む、リードのリストである。したがって、シーケンサから得られたFASTQファイルのリードが基準ゲノムにどこでマッピングするかを、たとえば、ゲノム全体の中で様々なリードがどこでマッピングするかを高速に決定するために、マッピング機能が実行され得る。しかしながら、リードのいずれかの中のエラーまたは遺伝子バリエーションがある場合、基準に対する厳密な一致を得ないことがあり、かつ/または、1つまたは複数のリードが一致しているように見えるいくつかの場所がないことがある。したがって、様々なリードがゲノムに関して全体として実際にどこでアライメントするかを決定しなければならない。
したがって、マッピングおよび/またはフィルタリングおよび/または編集の後で、多数のリードの位置の場所が決定されており、ここで、個人のリードの一部に対して、複数の位置の場所が決定されており、今度は、すべての潜在的な位置のうちのいずれが実際に、様々なリードがアライメントする真の位置または最も可能性の高い位置であるかを決定する必要がある。そのようなアライメントは、マッピングされたリードを基準ゲノムと照合して基準ゲノムに対してアライメント機能を実行する、動的なプログラミングアルゴリズムなどの1つまたは複数のアルゴリズムによって実行され得る。
例示的なアライメント機能は、テーブル、たとえば仮想的なアレイまたはマトリクスなどにおいて、リードの1つまたは複数、たとえばすべてを互いに対するグラフィカルな関係において配置することなどによって、リードを基準に対して比較し、ここで、基準ゲノムまたはマッピングされたリードの一方の配列が一方の次元または軸、たとえば水平軸に配置され、他方が垂直軸などの対向する次元または軸に配置される。マトリクスの中の各セルに対するアライメントスコアを計算することなどによって、基準ゲノムに対するリードのアライメントを決定するために、概念的なスコアリングウェーブフロントが次いでアレイの上を通される。
スコアリングウェーブフロントは、マトリクスの1つまたは複数の、たとえばすべてのセル、またはそうしたセルの一部分を表し、これらは、Smith-Watermanアルゴリズム、および/またはNeedleman-Wunschアルゴリズム、および/または関連するアルゴリズムなどの、アライメントアルゴリズムにおいて適用可能な動的プログラミングのルールに従って、独立にかつ/または同時にスコアリングされ得る。たとえば、マトリクスの原点(リードの始点および/または概念的なスコアリングウェーブフロントの基準区間の始点に対応する)を左上の角にとると、まず、マトリクスの座標(0,0)にある左上のセルだけをスコアリングすることができ、たとえば1セルのウェーブフロントである。次に、座標(0,1)および(1,0)にある右と下の2つのセルをスコアリングすることができ、たとえば2セルのウェーブフロントである。次に、(0,2)、(1,1)、および(2,0)にある3つのセルをスコアリングすることができ、たとえば3セルのウェーブフロントである。これらの例示的なウェーブフロントは次いで、左下から右上への直線に沿って斜めに延びることができ、ステップからステップへのウェーブフロントの動きは、マトリクスを通る左上から右下への斜めの方向である。アライメントスコアは、一番上の行の左から右に向かってすべてのスコアを計算し、続いて、次の行の左から右に向かってすべてのスコアを計算することなどによって、順番に、または他の順序で計算され得る。このようにして、斜めのウェーブフロントを斜めに掃引することが、一連のウェーブフロントステップにおいて同時にまたは並列に計算される、スコアの束の最適な配列を表す。
たとえば、一実施形態では、リードがマッピングされたセグメントを含む基準ゲノムの区間は水平軸に配置され、リードは垂直軸に配置される。このような方式では、アレイまたはマトリクス、たとえば仮想的なマトリクスが生成され、これにより、リードの中の各場所におけるヌクレオチドが、基準区間の中の各場所にあるヌクレオチドと比較され得る。リードの1つまたは複数のヌクレオチドを他のヌクレオチドに変更すること、または、1つまたは複数の新しいヌクレオチドをある配列に挿入すること、または1つまたは複数のヌクレオチドをある配列から削除することなどによって、リードを基準配列と一致させるために、ある配列への変更が必要とされる場合を含めて、ウェーブフロントがアレイの上を通過するにつれて、基準区間にリードをアライメントするすべてのあり得る方法が考慮される。
厳密なアライメントを達成するために行われる必要がある変更の程度を表すアライメントスコアが生成され、このスコアおよび/または他の関連するデータは、アレイの所与のセルに記憶され得る。アレイの各セルは、リード軸上でセルの場所にあるヌクレオチドが基準軸上でセルの場所にあるヌクレオチドにアライメントする確率に対応し、各セルに対して生成されるスコアは、リードおよび基準区間の中のセルの場所で終端する部分的なアライメントを表す。いずれかのセルの中で生成される最高のスコアは、基準区間に対するリードの全体的に最良のアライメントを表す。様々な事例において、アライメントはグローバルであることがあり、ここで、Needleman-Wunschアルゴリズムまたは同様のアルゴリズムなどを使用して、リード全体が基準区間の何らかの部分にアライメントされなければならず、また他の事例では、アライメントはローカルであることがあり、ここで、Smith-Watermanアルゴリズムまたは同様のアルゴリズムなどを使用して、リードの一部分のみが基準区間の一部分にアライメントされ得る。
基準区間のサイズは任意の適切なサイズであり得る。たとえば、典型的なリードは約100ヌクレオチドから約1000ヌクレオチドの長さであり得るので、いくつかの事例では、基準区間の長さはそれに従って、約100ヌクレオチドから1000ヌクレオチドの長さまたはそれ以上であり得る。しかしながら、いくつかの事例では、リードの長さはより大きいことがあり、かつ/または、基準区間の長さはより大きいことがあり、約10,000ヌクレオチド、25,000ヌクレオチド、50,000ヌクレオチド、75,000ヌクレオチド、100,000ヌクレオチド、200,000ヌクレオチドの長さまたはそれ以上などであることがある。リードの端部に近い挿入および/または欠失が完全に評価されることを可能にすることなどのために、リードがマッピングされた基準ゲノムのセグメントの端部を超えて、基準区間の中に32個または64個または128個または200個またはさらには500個の余剰のヌクレオチドを含めることなどの、リードよりもいくらか長くなるように基準区間をパディングするのが有利であり得る。たとえば、リードの一部分のみが基準のセグメントにマッピングされた場合、リード空間のマッピングされていない部分が基準区間に完全にアライメントすることを可能にするために、リードのマッピングされていない部分に対応する基準区間に、または、10%もしくは15%もしくは20%もしくは25%もしくはさらには50%以上などの、何らかの係数の分だけより長く、余剰のパディングを適用することができる。しかしながら、いくつかの事例では、基準区間の長さはリードの長さより短くなるように選択されることがあり、たとえば、マッピングされた部分でのアライメントに注力することなどのために、リードの一端における1000個程度のヌクレオチドなどの、リードの長い部分が基準にマッピングされない。
アライメントウェーブフロントは、長さが限定されていないことがあり、または、任意の適切な固定された長さに限定されていることがあり、または可変の長さであることがある。たとえば、完全に一方の軸から他方の軸に延びる、各ウェーブフロントステップの全体的に斜めの線に沿ったすべてのセルが、スコアリングされ得る。代替的に、幅が64セルなどである限定された長さが、マトリクス全体でスコアリングされるセルの対角方向に64セルの幅の範囲を追跡し、この範囲の外側のセルをスコアリングされないままにすることなどによって、各ウェーブフロントステップについてスコアリングされ得る。いくつかの事例では、真のアライメント経路の周りの範囲から遠いスコアを計算することは不要であることがあり、本明細書で説明されるように、固定された長さのスコアリングウェーブフロントを使用して、限られた範囲の幅の中だけでスコアを計算することによって、かなりの作業を減らすことができる。
したがって、様々な事例において、マッピングモジュールから得られたデータなどに対して、アライメント機能を実行することができる。したがって、様々な事例において、アライメント機能は、個人の実際のゲノム配列の全体、またはその一部分を決定するためのプロセスにおいて、マッピングモジュールなどに加えて使用されるシステムの一部、たとえばパイプラインを形成し得る、アライメントモジュールなどのモジュールを形成し得る。たとえば、マッピングモジュールなどからの、マッピング機能の実行から返される出力、たとえば、1つまたは複数の基準ゲノムの中の1つまたは複数の場所にリードの1つまたは複数またはすべてがどこでマッピングするかについての可能性のリストが、被験者のシーケンシングされたDNAの本当の配列アライメントを決定するために、アライメント機能によって利用され得る。
そのようなアライメント機能が時には有用であることがあり、それは、上で説明されたように、しばしば、様々な理由で、シーケンシングされたリードが基準ゲノムに対して常に厳密には一致しないからである。たとえば、リードの1つまたは複数にSNP(一塩基多型)、たとえば単一の場所におけるあるヌクレオチドから別のヌクレオチドへの置換が存在することがあり、「インデル」、すなわちリード配列の1つまたは複数に沿った1つまたは複数の塩基の挿入もしくは欠失が存在することがあり、この挿入もしくは欠失は基準ゲノムの中にはなく、かつ/または、これらの外見上のバリエーションのうちの1つまたは複数を引き起こすシーケンシングエラー(たとえば、試料調製および/またはシーケンサのリードおよび/またはシーケンサの出力などにおけるエラー)が存在することがある。したがって、SNPまたはインデルなどによってリードが基準から変化しているとき、これは、基準がサンプリングされた真のDNA配列と異なるからであることがあり、または、リードがサンプリングされた真のDNA配列と異なるからであることがある。問題は、おそらく2つの配列が多数の異なる方法で互いに異なるようになるという事実を前提に、リードを基準ゲノムにどのように正しくアライメントするかを見つけ出すことである。
したがって、様々な事例において、プレフィックス/サフィックスツリー、またはBurrows/Wheeler変換、またはハッシュテーブルおよび/もしくはハッシュ関数などの、マッピング機能などからの、アライメント機能への入力は、1つまたは複数のリードが1つまたは複数の基準配列の1つまたは複数の場所にどこで一致し得るかについての可能性のリストであり得る。たとえば、任意の所与のリードに対して、リードは、基準ゲノムの中の任意の数の場所、たとえば、所与のリードがゲノムの中でマッピングする1個または16個または32個または64個または100個または500個または1000個以上の位置と、一致することがある。しかしながら、あらゆる個々のリードは、ゲノムの1つの特定の部分だけから導出された、たとえばシーケンシングされたものである。したがって、所与の特定のリードの導出元である真の位置を見つけるには、一致が発生する潜在的な位置のすべてを比較し、どの位置のアライメントスコアが最も高いかに基づいて、すべての可能性のうちのいずれが、リードのシーケンシング元である可能性が最も高いゲノムの中の位置であるかを決定することなどによって、リードの1つまたは複数が実際にゲノムの中のどこから導出されたかを決定するために、たとえば、Smith-Watermanギャップ付きアライメント、Needleman-Wunschアライメントなどの、アライメント機能を実行することができる。
示されるように、通常、アルゴリズムはそのようなアライメント機能を実行するために使用される。たとえば、Smith-Watermanおよび/またはNeedleman-Wunschアライメントアルゴリズムは、2つ以上の配列を互いにアライメントするために利用され得る。この事例では、それらは、リードが基準ゲノムにマッピングする任意の所与の場所に対して、そのマッピングが実際にリードの由来する場所である確率を決定するような方式で、利用され得る。通常は、これらのアルゴリズムはソフトウェアにより実行されるように構成されるが、本明細書で提示されるものなどの様々な事例において、これらのアルゴリズムの1つまたは複数は、本明細書で以下でより詳細に説明されるように、ハードウェアで実行されるように構成され得る。
具体的には、アライメント機能は、リードがゲノムの中のどこで正しく適合する可能性が高いかを決定するために、1つまたは複数の不一致の部分、たとえば、SNP、挿入、欠失、構造的なアーティファクトなどの存在にもかかわらず、少なくとも一部、リードの1つまたは複数、たとえばすべてを基準ゲノムにアライメントするように動作する。たとえば、1つまたは複数のリードが基準ゲノムに対して比較され、置換および/またはインデルおよび/または構造的なバリアントを考慮しながら、ゲノムに対するリードの最良のあり得る適合が決定される。しかしながら、リードの変更されたバージョンのうちのいずれが基準ゲノムに対して最も良く適合するかをより良く決定するために、提案された変更を考慮しなければならず、したがってスコアリング機能も実行され得る。
たとえば、スコアリング機能を、たとえば全体的なアライメント機能の一部として実行することができ、これにより、アライメントモジュールはその機能を実行し、互いに比較される配列への1つまたは複数の変更を、たとえば変更と基準との間でより良いまたは最も良い適合を達成するように導入し、より良いアライメントを達成するために行われる各変更に対して、開始スコア、たとえば満点のスコアまたは0の開始スコアのいずれかからある数が引かれ、これは、アライメントが実行されるにつれてアライメントのスコアも決定され、たとえば一致が検出される場合にスコアが上昇し、導入された各変更に対してペナルティを受けるので、たとえば、すべての潜在的な変更されたリードのうちのいずれが最高のスコアでゲノムに適合するかを見つけ出すことによって、潜在的なアライメントに対する最良の適合を決定できるような方式で、行われる。したがって、様々な事例において、アライメント機能は、最高のスコアのアライメントを達成するためにリードに対して行われる必要がある変更の最良の組合せを決定するように構成されることがあり、このアライメントが次いで、正しいまたは最も可能性の高いアライメントであると決定されることがある。
上記を考慮すると、したがって、アライメント機能を実行することで達成され得る少なくとも2つの目標がある。1つは、基準ゲノムにおける場所と、リードをその場所における基準セグメントと一致させるのにどのような変更が必要かの記述とを含む、最良のアライメントの報告であり、もう1つは、アライメント品質スコアである。たとえば、様々な事例において、アライメントモジュールからの出力は、Compact Idiosyncratic Gapped Alignment Report、たとえばCIGAR文字列であることがあり、CIGAR文字列出力は、最も良く適合するアライメントを達成するためにリードに対して行われたすべての変更を詳述する報告、たとえば、クエリが実際に基準に対してどのようにアライメントするかを示す詳細なアライメント命令である。そのようなCIGAR文字列の読出しは、所与の被験者のゲノムヌクレオチド配列に対して、基準ゲノムに対して比較されたような予測されるバリエーションが実際に真のバリエーションであるのか、マシン、ソフトウェア、または人のエラーによるものにすぎないのかをより良く判定するために、処理のさらなる段階において有用であり得る。
上で記載されたように、様々な実施形態において、アライメントは通常は順番に実行され、ここで、アルゴリズムは、マッピングモジュールなどからのリードに関するリード配列データと、リードが1つまたは複数の基準ゲノムにマッピングする可能性があり得る1つまたは複数の潜在的な位置とを受け取り、さらに、1つまたは複数のメモリなどから、リードがマッピングし得る1つまたは複数の基準ゲノムの中の1つまたは複数の場所に関するゲノム配列データを受け取る。具体的には、様々な実施形態において、マッピングモジュールは、FASTQファイルなどからのリードを処理し、それらの各々を、リードがアライメントする可能性があり得る基準ゲノムの中の1つまたは複数の場所にマッピングする。次いで、アライナがこれらの予測された場所を受け取り、リードがそれを用いて基準ゲノムと比較され得る仮想的なアレイを構築することなどによって、予測された場所を使用してリードを基準ゲノムにアライメントする。
この機能を実行する際に、アライナは、各々の個々のリードに対する各々のマッピングされた場所を評価し、具体的には、基準ゲノムの中の複数の可能性のある位置にマッピングするリードを評価し、各々の場所が正しい場所である確率をスコアリングする。アライナは次いで、最良のスコア、たとえば2つの最良のスコアを比較し、特定のリードがどこで実際にアライメントするかについての判断を行う。たとえば、第1と第2の最良のアライメントスコアを比較する際、アライナはこれらのスコアの差に注目し、これらの差が大きい場合、より大きなスコアを有するものが正しいということの信頼性スコアは高い。しかしながら、それらの差が小さい場合、たとえば0である場合、リードが実際に導出されるのが2つの場所のいずれからであるかを見分けられることの信頼性スコアは低く、リードがそこから導出される基準ゲノムの中の真の位置を明確に決定できるようにするために、さらなる処理が有用であり得る。したがって、アライナは一部、コールを行う際に、所与のリードが基準ゲノムの中の所与の位置にマッピングすることの最も高い信頼性スコアと2番目に信頼性スコアの最大の差を探している。理想的には、アライメントの最良のあり得る選択のスコアは、その配列に対する2番目に良いアライメントのスコアよりはるかに大きい。
アライメントスコアリング方法が実施され得る多くの異なる方法があり、たとえば、本明細書で開示される方法などによれば、アレイの各セルをスコアリングすることができ、またはセルの副部分をスコアリングすることができる。通常は、アライメントマトリクスにおける対角方向のステップに対応する各アライメントの一致は、対応するリードと基準ヌクレオチドが一致する場合、+1などの正のスコアに寄与し、2つのヌクレオチドが一致しない場合、-4などの負のスコアに寄与する。さらに、アライメントマトリクスの中の水平方向のステップに対応する基準からの各欠失は、-7などの負のスコアに寄与し、アライメントマトリクスの中の垂直方向のステップに対応する、基準への各挿入は、-7などの負のスコアに寄与する。
様々な事例において、ヌクレオチドの一致、ヌクレオチドの不一致、挿入、および欠失のためのスコアリングパラメータは、任意の様々な正の値または負の値または0の値を有し得る。様々な事例において、これらのスコアリングパラメータは、利用可能な情報に基づいて変更され得る。たとえば、いくつかの事例では、アライメントギャップ(挿入または欠失)は、ギャップ長のアフィン関数により、たとえば、最初の欠失した(それに応じて挿入される)ヌクレオチドに対しては-7、しかし連続する配列の中の各々の追加の欠失した(それに応じて挿入される)ヌクレオチドに対してはわずか-1だけ、ペナルティを与えられる。様々な実装形態において、アフィンギャップペナルティは、ギャップにおける最初のステップに適用されるギャップ開始ペナルティ、たとえば-6、およびギャップにおける1つ1つのまたはさらなるステップに適用されるギャップ伸長ペナルティ、たとえば-1などの、2つの成分にギャップ(挿入または欠失)ペナルティを分割することによって、達成され得る。アフィンギャップペナルティは、長い挿入または欠失を含むアライメントに適度に高いスコアを達成させることなどによって、より正確なアライメントを生み出すことができる。さらに、各々の横方向の移動は、ステップ当たり同じコストなどの、同じまたは異なるコストを有することがあり、かつ/またはギャップが発生する場合、そのようなギャップはより高いまたは低いコストを伴い得るので、アライナの横方向の移動のコストは、ギャップのコストより低いことがある。したがって、様々な実施形態において、アフィンギャップスコアリングを実施することができるが、これは、各セルに対して複数の、たとえば3つのスコアがスコアリングされることを通常は必要とするので、ソフトウェアおよび/またはハードウェアにおいて高価であることがあり、したがって、様々な実施形態では、アフィンギャップスコアリングは実施されない。
様々な事例において、スコアリングパラメータは、リードの中のヌクレオチドに対応する「塩基品質スコア」の影響も受けることがある。FASTQなどのフォーマットの、いくつかのシーケンシングされるDNAリードデータは、各ヌクレオチドと関連付けられる塩基品質スコアを含むことがあり、これは、たとえばシーケンシングエラーにより、ヌクレオチドが不正確である推定の確率を示す。いくつかのリードデータでは、塩基品質スコアは、挿入および/または欠失のシーケンシングエラーが各場所の中もしくはその隣にある確率を示すことができ、または、追加の品質スコアがこの情報を別々に提供することができる。したがって、より正確なアライメントは、ヌクレオチド一致スコア、ヌクレオチド不一致スコア、ギャップ(挿入および/または欠失)ペナルティ、ギャップ開始ペナルティ、および/もしくはギャップ伸長ペナルティのいずれかまたはすべてを含む、スコアリングパラメータを、現在のリードのヌクレオチドまたは場所と関連付けられる塩基品質スコアに従って変化させることによって、達成され得る。たとえば、スコアのボーナスおよび/またはペナルティは、シーケンシングまたは他のエラーが存在する高い確率を塩基品質スコアが示すときに、より小さくされ得る。塩基品質の影響を受けるスコアリングは、たとえば、塩基品質スコアを使用してアクセスされる固定されたまたは構成可能なルックアップテーブルを使用して実施されることがあり、このルックアップテーブルは対応するスコアリングパラメータを返す。
FPGA、ASIC、またはストラクチャードASICなどの集積回路におけるハードウェアの実装形態では、スコアリングウェーブフロントは、16セルまたは32セルまたは64セルまたは128セルなどの、スコアリングセルの1次元アレイとして実装され得る。スコアリングセルの各々が、アライメントスコアを計算するためのワイヤード構成のデジタル論理要素で構築され得る。したがって、ウェーブフロントの各ステップに対して、たとえば、クロック周期、または何らかの他の固定されたもしくは可変の時間の単位、スコアリングセルの各々、またはセルの一部分が、仮想的なアライメントマトリクスの中の新しいセルのために必要な1つまたは複数のスコアを計算する。概念的には、様々なスコアリングセルは、たとえば、マトリクスの中の左下から右上に延びる直線に沿った、本明細書で論じられるようなスコアリングウェーブフロントに対応するアライメントマトリクスの中の様々な場所にあるものと考えられる。デジタル論理回路の設計の分野においてよく理解されるように、物理的なスコアリングセルおよびそれらを構成するデジタル論理回路は、集積回路上で同様の方式で物理的に並べられる必要はない。
したがって、ウェーブフロントが仮想的なアライメントマトリクス全体を掃引するのに複数のステップを要するので、スコアリングセルの概念的な場所は、それに対応して各セルを更新し、たとえばステップを右に、またはたとえば、ステップをアライメントマトリクスにおいて下方に、概念的に「移動する」。すべてのスコアリングセルは、同じ相対的な概念的な移動を行い、対角方向のウェーブフロントの配置をそのままにする。たとえばマトリクスにおける垂直な下方へのステップ、または水平な右へのステップを伴って、ウェーブフロントが新しい場所に移動するたびに、スコアリングセルは、新しい概念的な場所に到達し、スコアリングセルが入った仮想的なアライメントマトリクスセルのアライメントスコアを計算する。
そのような実装形態では、1次元アレイの中の隣接するスコアリングセルは、クエリ(リード)ヌクレオチド、基準ヌクレオチド、および以前に計算されたアライメントスコアを伝えるために結合される。基準区間のヌクレオチドは、ウェーブフロントの一端に、たとえば1次元アレイの中の右上のスコアリングセルに順番に供給されることがあり、ウェーブフロントの長さの分だけそこから順番に下方にシフトすることがあるので、任意の所与の時間において、スコアリングセルの数に等しい長さの基準ヌクレオチドのセグメントがセル内に存在し、各々の連続するスコアリングセルの中に1つの連続するヌクレオチドがある。
したがって、ウェーブフロントが水平方向に進むたびに別の基準ヌクレオチドが右上のセルに供給され、他の基準ヌクレオチドがウェーブフロント全体で左下にシフトする。基準ヌクレオチドのこのシフトは、アライメントマトリクス全体での右へのスコアリングセルのウェーブフロントの概念的な移動という、背後にある現実であり得る。したがって、リードのヌクレオチドが、ウェーブフロントの反対側の端部へと、たとえば1次元アレイの中の左下のスコアリングセルへと順番に供給されて、そこからウェーブフロントの長さの分だけ順番に上にシフトし得るので、任意の所与の時間において、スコアリングセルの数に等しい長さのクエリヌクレオチドのセグメントがセル内に存在し、各々の連続するスコアリングセルの中に1つの連続するヌクレオチドがある。
同様に、ウェーブフロントが垂直方向に進むたびに、別のクエリヌクレオチドが左下のセルへと供給され、他のクエリヌクレオチドがウェーブフロント全体で右上にシフトする。クエリヌクレオチドのこのシフトは、アライメントマトリクス全体での下へのスコアリングセルのウェーブフロントの概念的な移動という、背後にある現実である。したがって、基準ヌクレオチドのシフトを命令することによって、ウェーブフロントを水平方向に1ステップ動かすことができ、クエリヌクレオチドのシフトを命令することによって、ウェーブフロントを垂直方向に1ステップ動かすことができる。したがって、全般的に対角方向のウェーブフロントの動きを生み出すために、たとえば、挿入または欠失のないクエリおよび基準配列の典型的なアライメントに従うために、垂直方向と水平方向に交互に、ウェーブフロントのステップが命令され得る。
したがって、1次元アレイの中の近隣のスコアリングセルは、以前に計算されたアライメントスコアを伝えるために結合され得る。Smith-WatermanもしくはNeedleman-Wunsch、またはそのような変形などの、様々なアライメントスコアリングアルゴリズムでは、仮想的なアライメントマトリクスの各セルの中のアライメントスコアを、現在のセルのすぐ左、現在のセルのすぐ上、および現在のセルのすぐ斜め左上に位置する3つのセルなどの、マトリクスの他のセルの中の以前に計算されたスコアを使用して計算することができる。スコアリングセルが、自身が入った別のマトリクス場所に対する新しいスコアを計算するとき、スコアリングセルは、そのような他のマトリクス場所に対応するそのような以前に計算されたスコアを取り出さなければならない。これらの以前に計算されたスコアは、同じセル内の以前に計算されたスコアのストレージから、および/または、1次元アレイの中の1つまたは2つの隣接するスコアリングセルの中の以前に計算されたスコアのストレージから取得され得る。これは、仮想的なアライメントマトリクスの中の3つの寄与するスコア場所(すぐ左、上、および斜め左上)が、現在のスコアリングセルによって、または、1次元アレイの中の隣接するスコアリングセルのうちの1つによってスコアリングされているからである。
たとえば、マトリクスの中のすぐ左にあるセルは、直近のウェーブフロントのステップが水平方向(右方向)である場合には、現在のスコアリングセルによってスコアリングされており、または、直近のウェーブフロントのステップが垂直方向(下方向)である場合には、1次元アレイにおいて左下の隣接セルによってスコアリングされている。同様に、マトリクスにおいてすぐ上のセルは、直近のウェーブフロントのステップが垂直方向(下方向)である場合には、現在のスコアリングセルによってスコアリングされており、または、直近のウェーブフロントのステップが水平方向(右方向)である場合には、1次元アレイにおいて右上の隣接するセルによってスコアリングされている。同様に、マトリクスにおいて斜め左上のセルは、直近の2つのウェーブフロントのステップが異なる方向にある場合、たとえば下次いで右もしくは右次いで下である場合には、現在のスコアリングセルによってスコアリングされており、または、直近の2つのウェーブフロントのステップが両方とも水平方向(右方向)である場合には、1次元アレイにおいて右上の隣接するセルによってスコアリングされており、または、直近の2つのウェーブフロントのステップが両方とも垂直方向(下方向)である場合には、1次元アレイにおいて左下の隣接するセルによってスコアリングされている。
したがって、最後の1つまたは2つのウェーブフロントステップの方向についての情報を考慮することによって、スコアリングセルは、適切な以前に計算されたスコアを選択することができ、それらに、そのスコアリングセル自体の中でアクセスし、かつ/または、隣接するセルとセルの間の結合を利用して隣接するスコアリングセルの中でアクセスする。ある変形では、ウェーブフロントの2つの端部にあるスコアリングセルは、無効な、または0の、または最小値のスコアへとハードワイヤリングされた外向きのスコア入力を有し得るので、それらの入力は、これらの端部セルにおける新しいスコアの計算に影響しない。
ウェーブフロントがスコアリングセルの1次元アレイにおいてこのように実装され、ウェーブフロントを垂直方向および水平方向のステップにおいて概念的に動かすためにそのアレイ全体で基準ヌクレオチドおよびクエリヌクレオチドを反対方向にシフトするための結合、および、ウェーブフロントが入る新しい仮想的なマトリクスセル場所におけるアライメントスコアを計算するために隣接するセルによって以前に計算されたスコアにアクセスするための結合があると、それに従って、マトリクス全体でウェーブフロントを掃引するためにウェーブフロントの連続的なステップを命令することなどによって、仮想的なマトリクスにおけるセルの範囲、すなわちウェーブフロントの幅をスコアリングすることが可能になる。したがって、アライメントされるべき新しいリードおよび基準区間に対して、ウェーブフロントは、スコアリングマトリクスの内部に配置され始めることがあり、または有利には、たとえば、マトリクスの左上の角の左、もしくは上、もしくは斜め左上で開始して、外側からスコアリングマトリクスに徐々に入ることがある。
たとえば、ウェーブフロントは、仮想的なマトリクスの左上のセルのすぐ左に配置された左上のスコアリングセルで開始することがあり、ウェーブフロントは次いで、一連の水平方向のステップによってマトリクスへと右方向に掃引して、マトリクスの左上の領域におけるセルの水平方向の範囲をスコアリングすることができる。ウェーブフロントが基準とクエリとの間の予測されるアライメント関係に達すると、または、増大するアライメントスコアから一致が検出されると、ウェーブフロントは、垂直方向のステップと水平方向のステップを交互に行うことによって、対角方向に右下へ掃引し始め、マトリクスの中央を通るセルの対角方向の帯状部分をスコアリングすることができる。左下のウェーブフロントのスコアリングセルがアライメントマトリクスの底に達すると、ウェーブフロントは、セルの一部またはすべてのウェーブフロントがアライメントマトリクスの境界の外側で掃引するまで、連続的な水平方向のステップによって再び右方向に掃引し始めて、マトリクスの右下の領域におけるセルの水平方向の帯状部分をスコアリングすることができる。
ある変形として、2つの連続的なアライメント動作の間でスコアリングセルを共有することによって、効率の向上がアライメントウェーブフロントから実現できる。次のアライメントマトリクスが事前に確立されているので、ウェーブフロントの右上部分が現在のアライメントマトリクスの右下の領域から出るにつれて、その右上部分は、直ちに、または1つのセルまたは3つのセルなどの最小限のギャップを通過した後で、次のアライメントマトリクスの右上の領域に入り得る。このようにして、1つのアライメントマトリクスから出る水平方向のウェーブフロントの掃引は、次のアライメントマトリクスへの水平方向のウェーブフロントの掃引と同じ動きであり得る。これを行うことは、スコアリングセルへと供給されることになる次のアライメントの基準塩基およびクエリ塩基が次のアライメントマトリクスへと入ることを含むことがあり、たとえば、64、63、または61クロック周期を要し得る、たとえば64または63または61ステップなどの、ウェーブフロントにおけるアライメントセルの数にほとんど等しい数のウェーブフロントステップを実行するための時間によって消費される、アライメント当たりの平均時間を減らすことができる。
アライメントウェーブフロントのある実装形態におけるスコアリングセルの数は、アライメント精度、最大の挿入および欠失の長さ、デジタル論理回路の面積、コスト、および電力消費、アライナ論理回路のクロック周波数、ならびに集積回路全体の性能を含む、様々な要因のバランスをとるように選択され得る。N個のセルのウェーブフロントは、約N個のヌクレオチドの長さの、またはわずかに短いインデルにわたってアライメントできるので特に、長いウェーブフロントが良好なアライメント精度のために望ましい。しかし、より長いウェーブフロントはより多くの論理回路を要し、これはより多くの電力を消費する。さらに、より長いウェーブフロントは、集積回路上での配線のルーティングの複雑さおよび遅延を増やし、より低い最高クロック周波数につながり、正味のアライナ性能を下げることがある。またさらに、集積回路のサイズまたは電力消費が限られている場合、より長いウェーブフロントを使用すると、ウェーブフロント全体を、または他のアライナもしくはマッパ論理コンポーネントをより少数複製することなどの、IC上の他の場所で実装される論理回路をより少なくすることが必要であることがあり、これがICの正味の性能を低下させる。1つの特定の実施形態では、ウェーブフロントにおける64個のスコアリングセルが、これらの要因の許容可能なバランスを与えることがある。
したがって、ウェーブフロントの幅がX個、たとえば64個のスコアリングセルである場合、アライメントマトリクスの中のスコアリングされる帯状部分は同様に64個のセルの幅(対角方向に測定される)である。マトリクスを通る最適な(最良のスコアの)アライメント経路がスコアリングされる帯状部分の中にとどまる限り、この帯状部分の外側のマトリクスセルは必ずしも、処理される必要もスコアが計算される必要もない。したがって、比較的短いリード、たとえば100ヌクレオチドまたは250ヌクレオチドのリードをアライメントするために使用される比較的小さいマトリクスでは、たとえばウェーブフロントがリードの予測されるアライメントされた場所に沿って完全に対角方向に掃引する場合、これは安全な想定であり得る。
しかしながら、長いリード、たとえば1000ヌクレオチドまたは10,000ヌクレオチドまたは100,000ヌクレオチドをアライメントするために使用される大きなアライメントマトリクスなどにおけるいくつかの事例では、累積したインデルにより、真のアライメントがスコアリングされる帯状部分から逸脱し得るのに全体として十分遠くに、完全な対角方向からずれるかなりの危険性があり得る。そのような事例では、スコアの最高のセットがウェーブフロントの中心の近くになるように、ウェーブフロントを操作することが有用であり得る。結果として、ウェーブフロントが掃引を実行するにつれて、最高のスコアがある方向または他の方向に、たとえば左から右に動き始める場合、ウェーブフロントはこの動きを追跡するようにシフトする。たとえば、最高のスコアがウェーブフロントの中心から実質的に右上にあるスコアリングセルにおいて観測される場合、最高のスコアがウェーブフロントの中心の近くにおいて返ってくるまで、ウェーブフロントを連続的な水平方向のステップによっていくらかの距離真っ直ぐ右に操作することができる。
したがって、ウェーブフロントスコアリングセルにおいて観測される現在のおよび過去のスコアに基づいて、ウェーブフロントの長さの範囲内で操作目標の場所を決定するために、および、ウェーブフロントが中心からずれている場合、ウェーブフロントをこの目標に向かって操作するために、ウェーブフロント制御論理回路において、自動操作機構が実装され得る。より具体的には、直近にスコアリングされたウェーブフロントの場所における最高のスコアの場所が、操作目標として使用され得る。これはいくつかの事例では効果的な方法である。しかしながら、いくつかの事例では、この最高のスコアの場所は悪い操作目標であり得る。たとえば、アライメントスコアリングパラメータの何らかの組合せでは、長いインデルが始まり、それに従ってスコアが下がり始めると、2つのより高いスコアのピークの間に低スコアの谷があるパターンが、ウェーブフロントに沿って形成することがあり、これらの2つのピークはインデルが継続するにつれてばらばらになる。
進行中の事象が挿入であるか欠失であるかを容易に決定することはできないので、成功したマッチングが再び始まるまで、欠失のために右に何らかの距離、または挿入のために下に何らかの距離、対角方向に追跡することがウェーブフロントにとって重要である。しかし、2つの拡散するスコアのピークが形成する場合、それらの一方が他方よりわずかに高い可能性が高く、その方向に自動操作を引っ張り、実際のインデルが他方の方向であった場合にはウェーブフロントにアライメントを失わせ得る。したがって、より堅牢な方法は、最高の観測されるウェーブフロントスコアからデルタ値を差し引いて閾値のスコアを決定し、この閾値のスコアに少なくとも等しい2つの端部のスコアリングセルを特定し、これらの端部のセルの間の中点を操作目標として使用することであり得る。これは、2ピークのスコアパターンの間で対角方向に誘導する傾向がある。しかしながら、より高いスコアをウェーブフロントの中心の近くに保つように働く、他の操作基準を容易に適用することができる。ウェーブフロントスコアリングセルからスコアを取得することと、対応する操作の判断を行うこととの間で遅延した反応がある場合、有利には、自動ウェーブフロント操作のパターンが振動するのを避けるために、介在する時間において行われる操作の判断を補償するために、ヒステリシスを適用することができる。
そのようなアライメント手順の1つまたは複数は、本明細書で説明された機能に対応するように変更された可能性のあるNeedleman-Wunschアライメントアルゴリズムおよび/またはSmith-Watermanアライメントアルゴリズムなどの、任意の適切なアライメントアルゴリズムによって実行され得る。一般に、これらのアルゴリズムと、それらに似たアルゴリズムの両方が、いくつかの事例では、基本的に同様の方式で実行される。たとえば、上で記載されたように、これらのアライメントアルゴリズムは通常、同様の方式で仮想的なアレイを構築するので、様々な事例において、水平方向の上部の境界がゲノム基準配列を表すように構成されることがあり、このゲノム基準配列は、その塩基対の組成に従ってアレイの一番上の行にわたってレイアウトされることがある。同様に、垂直方向の境界は、第1の列に沿って下方に順番に配置された、シーケンシングされマッピングされたクエリ配列を表すように構成され得るので、それらのクエリ配列のヌクレオチド配列の順序が一般に、それらがマッピングする基準のヌクレオチド配列と照合される。次いで、所与の場所におけるクエリの関連する塩基が基準に対して相対的にその位置に配置される確率についてのスコアを、介在するセルに格納することができる。この機能を実行する際、介在するセル内にスコアを格納するマトリクスにわたって対角方向に帯を動かすことができ、クエリの各塩基が示されている場所にある確率を決定することができる。
最適なグローバル(またはセミグローバル)アライメントを生成して、リード配列全体を基準ゲノムの何らかのセグメントにアライメントするNeedleman-Wunschアライメント機能に関して、ウェーブフロントの操作は、典型的にはアライメントマトリクスの上端から下端までずっと掃引するように構成され得る。ウェーブフロントの掃引が完了すると、アライメントマトリクスの下端(リードの終わりに対応する)の最高のスコアが選択され、アライメントがマトリクスの上端(リードの始まりに対応する)のセルまでバックトレースされる。本明細書で開示される様々な事例において、リードは、任意の長さであってよく、任意のサイズであってよく、アライメントがどのように実行されるかについての膨大なリードパラメータが存在する必要はなく、たとえば、様々な事例において、リードは染色体と同じ長さであり得る。しかしながら、そのような事例では、メモリのサイズおよび染色体の長さが制約する要因であり得る。
最適なローカルアライメントを生成して、リード配列全体またはリード配列の一部を基準ゲノムの何らかのセグメントにアライメントするSmith-Watermanアルゴリズムに関して、このアルゴリズムは、リードの完全なまたは部分的なアライメントに基づいて可能な最良のスコアリングを見つけるように構成され得る。したがって、様々な事例において、ウェーブフロントスコアリングされる帯状部分は、非常に長いリードが、基準ゲノムにマッピングされたシードをその中央にしか持たない場合などは、アライメントマトリクスの上端および/または下端まで延びないことがあるが、一般的には、それでもウェーブフロントはマトリクスの上から下までスコアリングし得る。ローカルアライメントは通常、2つの調整によって達成される。まず、アライメントスコアは、0(または何らかの他の最低値)を下回ることが決して許容されず、別様に計算されたセルスコアが負である場合、新しいアライメントの開始を表す0のスコアで代用する。第2に、必ずしも下端に沿っているとは限らない、マトリクスの中の任意のセルにおいて産生される最高のアライメントスコアが、アライメントの末端として使用される。このアライメントは、それがマトリクスの一番上の行にないとしてもローカルアライメントの開始場所として使用される0のスコアまで、この最高のスコアからマトリクスを通って上および左にバックトレースされる。
上記に鑑みて、仮想的なアレイを通るいくつかの異なる潜在的な経路がある。様々な実施形態において、ウェーブフロントは、仮想的なアレイの左上の角から開始し、最高のスコアの識別子に向かって下方に動く。たとえば、すべての潜在的なアライメントの結果を収集し、処理し、相関付け、スコアリングして、最高のスコアを決定することができる。境界の端またはアレイの端に達すると、かつ/または、処理されたセルのすべてに対する最高のスコアをもたらす計算結果が決定されると(たとえば、全体で最高のスコアが特定されると)、その最高のスコアを達成するためにとられた経路を見つけるために、バックトレースを実行することができる。
たとえば、予測される最高のスコアをもたらす経路を特定することができ、特定されると、たとえば、ウェーブフロントスコアリングセルなどによって計算される、特定された最高のスコアの達成をもたらした経路をたどる最良スコアアライメント矢印に従って後方に動くことによって、その最高のスコアがどのように導出されたかを決定するために、監査を実行することができる。この後方への再構築またはバックトレースは、決定された最高のスコアから開始して、最高のスコアの達成をもたらしたスコアを有するセルの経路に沿って以前のセルを通ってテーブルの中をずっと後方に向かって作業し、アレイの始点またはローカルアライメントの場合には0のスコアなどの、最初の境界まで行くことを伴う。
バックトレースの間、アライメントマトリクスにおいて特定のセルに達すると、次のバックトレースステップは、現在のセルにおけるスコアを構築するために選択された最良のスコアに寄与した、すぐ左の、またはすぐ上の、またはすぐ斜め左上の、隣接するセルに対するものである。このようにして、最高のスコアの進化を決定することができ、それにより、最高のスコアがどのように達成されたかを見つけ出す。バックトレースは、角、端、もしくは境界において終わることがあり、または、アレイの左上の角などにある、0のスコアにおいて終わることがある。したがって、適切なアライメントを特定し、それによって、個人から導かれた試料ゲノム配列またはその一部分が、基準DNAのゲノム配列とどのように一致するか、または別様にアライメントするかを表すCIGAR文字列の読出し、たとえば3M、2D、8M、4I、16Mなどを産生するのは、そのようなバックトレースである。
したがって、各リードがどこでマッピングされるかが決定されると、かつ、各リードがどこでアライメントされるかがさらに決定されると、たとえば、各々の関連するリードは、場所と、その場所が正しいアライメントである確率を反映する品質スコアとを与えられているので、被験者のDNAのヌクレオチド配列が知られ、次いで、被験者の様々なリードおよび/またはゲノム核酸配列の順序を、試料ゲノム配列において適切な順序にある1つ1つの核酸の識別情報を決定するためにアレイを通って上へ逆に動くバックトレース機能を実行することなどによって、検証することができる。その結果、いくつかの態様では、本開示は、個人からのゲノム試料からのものなどの、生の配列リードデータをとること、ならびに後でソートされ得るそのデータをマッピングおよび/またはアライメントすることを目的とするパイプラインなどの、モジュールのパイプラインの一部であり得るモジュールなどの、アライメント機能とバックトレース機能の両方を実行するアライメントモジュールの一部などの、バックトレース機能を対象とする。
バックトレース動作を支援するために、アライメントマトリクスに各々のスコアリングされたセルのスコアリングベクトルを記憶し、スコア選択の判断を符号化することが有用である。1次元のギャップペナルティを用いた古典的なSmith-Watermanおよび/またはNeedleman-Wunschスコアリングでは、スコアリングベクトルは4つの可能性を符号化することができ、これらは任意選択で、0から3の2ビットの整数として記憶されることがあり、たとえば、0=新しいアライメント(ヌルのスコアが選択される)、1=垂直方向のアライメント(選択された上にあるセルからのスコアがギャップペナルティによって変更される)、2=水平方向のアライメント(選択された左にあるセルからのスコアがギャップペナルティによって変更される)、3=対角方向のアライメント(選択された上および左のセルからのスコアがヌクレオチド一致または不一致スコアによって変更される)である。任意選択で、各々のスコアリングされるマトリクスセルの計算されるスコアを(標準的に記憶される最高の達成されるアライメントスコアに加えて)記憶することもできるが、これは一般にバックトレースには必要ではなく、大量のメモリを消費し得る。そして、バックトレースを実行することは、スコアリングベクトルに従うことの問題になる。バックトレースがマトリクスにおいて所与のセルに達すると、次のバックトレースステップは、そのセルの記憶されているスコアリングベクトルによって決定され、たとえば、0=バックトレース終了、1=上方向のバックトレース、2=左方向のバックトレース、3=斜め左上のバックトレースである。
そのようなスコアリングベクトルは、アライメントマトリクスの次元に従って並べられた2次元のテーブルに記憶されることがあり、ウェーブフロントによってスコアリングされるセルに対応するエントリーのみが格納される。代替的に、メモリを節約し、スコアリングベクトルをそれらが生成されるにつれてより簡単に記録し、様々なサイズのアライメントマトリクスをより簡単に収容するために、スコアリングベクトルは、スコアリングセルの単一のウェーブフロントからのスコアリングベクトルを記憶するようなサイズ、たとえば、64セルのウェーブフロントからの64個の2ビットのスコアリングベクトルを記憶するための128ビットを各行が伴い、行の数がアライメント動作におけるウェーブフロントステップの最高の数に等しいような、テーブルに記憶されることがある。
加えて、この選択肢では、様々なウェーブフロントステップの方向について記録をとることができ、たとえば、このウェーブフロントの場所に先行する垂直方向のウェーブフロントステップに対して0を符号化し、このウェーブフロントの場所に先行する水平方向のウェーブフロントステップに対して1を符号化する、余剰の、たとえば129番目のビットをテーブルの各行にたとえば記憶する。テーブルの各行の中のスコアリングベクトルが、どの仮想的なスコアリングマトリクスの場所に対応するかを追跡するために、この余剰のビットをバックトレースの間に使用することができるので、各々の連続的なバックトレースステップの後で、適切なスコアリングベクトルを取り出すことができる。バックトレースステップが垂直方向または水平方向であるとき、次のスコアリングベクトルは以前のテーブルの行から取り出されるべきであるが、バックトレースステップが対角方向であるとき、次のスコアリングベクトルは2行前から取り出されるべきであり、それは、任意のあるセルをスコアリングすることから、そのセルから対角方向に右下のセルをスコアリングすることに移行するために、ウェーブフロントが2つのステップをとらなければならなかったからである。
アフィンギャップスコアリングの場合、スコアリングベクトル情報を、たとえばスコアリングされるセル当たり4ビットまで伸長することができる。たとえば2ビットのスコア選択方向インジケータに加えて、垂直伸長フラグおよび水平伸長フラグという2つの1ビットのフラグを追加することができる。Smith-WatermanまたはNeedleman-Wunschまたは同様のアライメントアルゴリズムへのアフィンギャップスコアリングの拡張の方法によれば、各セルに対して、そのセルにおいて終端する最良のスコアのアライメントを表す一次アライメントスコアに加えて、最後に垂直方向のステップでそのセルに到達する最高のアライメントスコアに対応する「垂直スコア」が生成されるべきであり、最後に水平方向のステップでそのセルに到達する最高のアライメントスコアに対応する「水平スコア」が生成されるべきであり、これらの3つのスコアのいずれかを計算するとき、セルへの垂直方向のステップは、上のセルからの一次スコアからギャップ開始ペナルティを引いたものと、上のセルからの垂直スコアからギャップ伸長ペナルティを引いたもののうちで大きい方を使用して計算することができ、セルへの水平方向のステップは、左のセルからの一次スコアからギャップ開始ペナルティを引いたものと、左のセルからの水平スコアからギャップ伸長ペナルティを引いたもののうちで大きい方を使用して計算することができる。垂直スコアからギャップ伸長ペナルティを引いたものが選択される場合、スコアリングベクトルの中の垂直伸長フラグがセットされるべきであり、たとえば「1」であり、それ以外の場合にはセットされるべきではなく、たとえば「0」である。水平スコアからギャップ伸長ペナルティを引いたものが選択される場合、スコアリングベクトルの中の水平伸長フラグがセットされるべきであり、たとえば「1」であり、それ以外の場合にはセットされるべきではなく、たとえば「0」である。アフィンギャップスコアリングのためのバックトレースの間、バックトレースが所与のセルから上に垂直方向のステップをとるときはいつでも、そのセルのスコアリングベクトルの垂直伸長フラグがセットされていれば、上のセルのスコアリングベクトルとは無関係に、後続のバックトレースステップも垂直方向でなければならない。同様に、バックトレースが所与のセルから左に水平方向のステップをとるときはいつでも、そのセルのスコアリングベクトルの水平伸長フラグがセットされていれば、左のセルのスコアリングベクトルとは無関係に、後続のバックトレースステップも水平方向でなければならない。
したがって、行の何らかの個数NRを伴うスコアリングベクトルのそのようなテーブル、たとえば、1次元ギャップスコアリングを使用する64セルに対しては行当たり129ビット、またはアフィンギャップスコアリングを使用する64セルに対しては行当たり257ビットが、アライメントスコアリングを終えた後のバックトレースをサポートするのに適しており、ここでスコアリングウェーブフロントはNR個以下のステップをとる。たとえば、300ヌクレオチドのリードをアライメントするとき、必要とされるウェーブフロントステップの数は常に1024未満であり得るので、テーブルは257×1024ビット、または概ね32キロバイトであることがあり、これは多くの場合に、IC内部の妥当なローカルメモリであり得る。しかし、非常に長いリード、たとえば100,000ヌクレオチドがアライメントされることになる場合、スコアリングベクトルに対するメモリ要件は極めて大きく、たとえば8メガバイトになることがあり、これは、IC内部にローカルメモリとして含めるには非常に高価であり得る。そのようなサポートのために、スコアリングベクトル情報をICの外部のバルクメモリ、たとえばDRAMに記録することができるが、そうすると、帯域幅の要件、たとえばアライナモジュール当たりクロック周期ごとに257ビットが過剰になることがあり、これがボトルネックとなりアライナ性能を大きく下げることがある。
したがって、たとえば、付加的なバックトレースを実行するために、スコアリングベクトルの記憶要件を限定的なものに保てるように、アライメントを完了する前にスコアリングベクトルを処分し、たとえばアライメントのスコアリングベクトルの履歴の早い部分から付加的な部分的なCIGAR文字列を生成し、それにより、スコアリングベクトルのそのような早い部分が次いで廃棄され得るような方法があることが望ましい。課題は、アライメントスコアリングが完了するまで知られていない、アライメントの終端である最高のスコアリングセルにおいてバックトレースが始まると考えられるので、アライメントが完了する前に開始されたあらゆるバックトレースが、最終的な最後の最適なアライメント経路上にない誤ったセルから始まり得るということである。
したがって、たとえば、これまでにスコアリングされたアライメントマトリクスセルのための部分的なスコアリングベクトル情報を備える、部分的なアライメント情報から付加的なバックトレースを実行するための方法が与えられる。現在完了しているアライメントの境界、たとえば特定のスコアリングされたウェーブフロントの場所から、その境界上のすべてのセルの場所からバックトレースが開始される。すべての境界セルからのそのようなバックトレースは順番に実行されることがあり、または有利には、特にハードウェア実装形態では、すべてのバックトレースが一緒に実行されることがある。これらの複数のバックトレースからアライメント表記、たとえばCIGAR文字列を抽出することは必要ではなく、ただ、バックトレースの間にどのアライメントマトリクスの場所を通過するかを決定するだけである。スコアリング境界からの同時のバックトレースの実施において、たとえばすべてが「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における単一のバックトレースおよびアライメント表記の抽出がそれに続くことがある。同時のバックトレース、単一のバックトレース、およびアライメントスコアリングの速度がすべて同様または同一であり、同時に、たとえばICの並列ハードウェアにおいて実行され得る場合、ブロックN-1における単一のバックトレースは、スコアリングベクトルがブロックN+2を満たすのと同時であることがあり、ブロックN+3が満たされることになるとき、ブロックN-1が解放され再利用され得る。
したがって、そのような実装形態では、最小で4つのスコアリングベクトルブロックを利用することができ、周期的に利用することができる。したがって、アライナモジュールのための全体のスコアリングベクトルのストレージは、たとえば各々257×512ビットの4つのブロック、または概ね64キロバイトであることがある。ある変形では、現在の最高のアライメントスコアが、現在のウェーブフロントの場所より早いブロックに対応する場合、このブロックおよび以前のブロックは再利用されるのではなく保存され得るので、最終的なバックトレースは、それが最高のスコアのままである場合にはこの場所から開始することができる。この方式で保存されたままにされる余剰の2つのブロックがあることは、最小限の、たとえば6つのブロックをもたらす。別の変形では、重畳したアライメントをサポートするために、スコアリングウェーブフロントが上で説明されたようにあるアライメントマトリクスから次のアライメントマトリクスへと徐々に通過するので、追加のブロック、たとえば1つまたは2つの追加のブロック、たとえば全体で8つのブロック、たとえば概ね128キロバイトを利用することができる。したがって、そのような限られた数のブロック、たとえば4つのブロックまたは8つのブロックが周期的に使用される場合、スコアリングベクトルのために外部メモリを使用することなく、任意の長さの、たとえば100,000ヌクレオチドまたは染色体全体の、リードのアライメントおよびバックトレースが可能である。
上で説明されたように、DNAのある領域は、タンパク質または機能するRNAをコードする遺伝子である。各遺伝子は、しばしばイントロン(非コーディングセグメント)によって分離された一連のエキソン(コーディングセグメント)として、二本鎖のDNA二重らせんの一本鎖の上に存在する。一部の遺伝子は単一のエキソンしか持たないが、大半はいくつかのエキソン(イントロンにより分離される)を持ち、一部は数百個のエキソンまたは数千個のエキソンを持つ。エキソンは一般に数百ヌクレオチドの長さであるが、単一のヌクレオチド程度に短いことがあり、または、数万もしくは数十万ヌクレオチド程度に長いことがある。イントロンは一般に数千ヌクレオチドの長さであり、一部は100万ヌクレオチドを超える。
遺伝子は、伝令RNA(mRNA)または他のタイプのRNAへとRNAポリメラーゼ酵素によって転写され得る。即刻のRNA転写産物は、DNAのチミン(T)塩基がRNAのウラシル(U)塩基へと転写されることを除き、遺伝子の一本鎖のコピーである。しかし、このコピーが産生された直後に、イントロンのコピーが普通はスプライソソームによって切り出され、エキソンのコピーが「スプライス部位」において一緒に連結されたままになる(スプライス部位はこの後には直接明らかではない)。RNAスプライシングは常に同じ方法で行われるのではない。1つまたは複数のエキソンが切り出されることがあり、スプライス部位が最も一般的なイントロン/エキソンの境界に当たらないことがある。したがって、単一の遺伝子が、複数の異なる転写されたRNAセグメントを産生することがあり、これは代替スプライシングとして知られていることがあるプロセスである。
スプライシングされたmRNAは、(真核生物では)細胞核から出てリボソームへと輸送され、リボソームがmRNAをタンパク質へと復号し、3つのRNAヌクレオチドの各グループ(コドン)が1つのアミノ酸をコーディングする。このようにして、DNAの中の遺伝子は、タンパク質の製造のための元の命令として機能する。
RNAスプライシングは、一貫したエキソン/イントロンの境界において発生する傾向があり、これは、特にイントロンの終点の近くの、典型的な配列内容により特徴付けられる。具体的には、イントロンモチーフと呼ばれるイントロンの最初の2つまたは最後の2つの塩基は、大半の場合(およそ99.9%)、「標準」イントロンモチーフであるわずか3つの配列のうちの1つに従う。最も一般的な標準イントロンモチーフは「GT/AG」であり、これはイントロンの最初の2つの塩基が「G」、「T」であり、最後の2つの塩基が「A」、「G」であることを意味している。GT/AGモチーフは、およそ98.8%の場合に発生する。他の標準イントロンモチーフは、およそ1.0%の場合に発生するGC/AG、およびおよそ0.1%の場合に発生するAT/ACである。これらの標準モチーフおよびそれらの出現率は、複数の種にわたって適度に一貫しているが、普遍的ではないことがある。
すべての遺伝子が転写されるのではなく、転写される遺伝子は異なる頻度で転写され得る。所与の遺伝子がRNAに転写されるかどうか、およびどれだけ頻繁に転写されるかには、多くの要因が影響し得る。これらの要因の一部は遺伝性であり、一部は組織ごとに細胞の専門性によって異なり、一部は環境条件または疾病により経時的に変化する。したがって、厳密に同じDNAを有する2つの細胞が、かなり異なるタイプおよび量のタンパク質と機能するRNAとを産生することがある。これにより、1つまたは複数の細胞に存在するRNAをシーケンシングする(読み取る)ことは、DNAをシーケンシングすることとは異なる情報を与える。細胞の条件および活動のより完全な描写は、DNAシーケンシングとRNAシーケンシングを組み合わせることによって与えられる。
トランスクリプトーム全体のRNAシーケンシングは一般に、まずタンパク質をコーディングするRNAなどの標的RNAを選択し、次いで逆転写酵素を使用してRNAセグメントを相補的DNA(cDNA)の鎖へと戻すように変換することによって、実行される。このDNAは、ポリメラーゼ連鎖反応(PCR)を用いて増幅することができ、かつ/または、所望の分布の配列の長さへと断片化することができる。次いで、DNA断片が、「ショットガン」次世代シーケンサなどのDNAシーケンサを用いてシーケンシングされる。
得られるDNAリードは、「U」がやはり「T」で置き換えられていることを除き、元のRNA鎖の逆相補鎖変換されたコピーまたは順方向のコピーのいずれかである。何らかのライブラリの準備およびシーケンシングプロトコルでは、元のRNAに対するシーケンシングされたDNA鎖の相対的な方向が維持され、またはフラグを立てられ得るが、一般的なプロトコルでは、シーケンシングされたDNAの約50%が、方向を直接示すものを伴わずに(ただし間接的に示すものはある)、元のRNAに対して逆相補鎖変換される。
RNA-seqプロトコルからのDNAリードは、他の方法のゲノム全体のまたはエキソン全体のDNAシーケンシングとは異なる。第1に、汚染は別として、転写されるRNAのみがシーケンシングされるので、非コーディングDNAおよび不活性遺伝子が一般に現れない。第2に、様々な遺伝子に対応するシーケンシングされたリードの量が、それらの遺伝子の生物学的な転写率に関連する。第3に、イントロンのスプライシングにより、RNA-seqリードが遺伝子内のイントロン(非コーディング)セグメントをスキップする傾向にある。
RNA-seqリードは普通、DNAリードとはかなり異なるように処理される。両方のタイプのリードが通常は基準ゲノムにマッピングされアライメントされるが、DNAおよびRNAのマッピングとアライメントの技法は異なる(次のセクションを参照されたい)。マッピングおよびアライメントの後で、リードは一般に、DNAとRNAの両方に対して、それらのマッピングされた基準場所によってソートされる。DNA処理について任意選択である重複マーキングは、RNA-seqデータに対して一般に使用されない。
この後で、DNAリードは、サンプリングされたDNAと基準ゲノムとの差異を特定するために、バリアントコーラによって一般に処理される。RNA-seqリードは一般にはバリアントコールのために使用されないが、これは時々行われる。より一般的には、アライメントされソートされたRNAリードは、どの遺伝子がどのような相対的な量で発現されたか、または、様々な代替的にスプライシングされる転写産物のうちのいずれがどのような相対的な量で産生されたかを決定するために、アライメントされソートされたRNAリードが分析される。この分析は一般に、どれだけのリードが様々な遺伝子、エキソンなどにアライメントするかをカウントすることを伴い、より長いRNA転写産物がどのようにDNAからスプライシングされた可能性が高いかを相対的に短いRNA-seqリードから推測するための転写産物アセンブリ(基準ベースまたはde novo)も伴い得る。
遺伝子、エキソン、または転写産物の発現分析はしばしば、差次的な発現分析に拡張され、差次的な発現分析において、複数の試料からの、しばしば2つ以上の異なるクラス(亜集団または表現型)からのRNA-seqデータが、遺伝子、エキソン、または転写産物が異なるクラスにおいてどの程度異なるように発現されたかを定量化するために比較される。これは、異なるクラスにおいて対応する発現レベルが同じであったことの「帰無仮説」の尤度を計算すること、ならびに、試料間での発現における「フォールディングの変化」、たとえば8個以上または10個以上のフォールディングの差異を推定することを含み得る。
DNAまたはRNAシーケンシングの多くの適用例では、早期の処理段階はリードを基準ゲノムにマッピングしてアライメントすることである。普通は、RNA-seqが通常はシーケンシングの前にcDNAへの逆転写を伴うことを特に考慮して、「T」はあるが「U」のない、DNA指向の基準ゲノムがDNAシーケンシングとRNAシーケンシングの両方に使用される。さらに言えばエキソーム全体のシーケンシングのようなRNA-seqの場合、基準ゲノムは、既知のコーディング領域に、またはコーディングDNAの近くの領域におそらく制約され得る。しかしながら、サンプリングされた有機体の基準ゲノム全体にマッピングしてアライメントすることは、一般的に行われることである。
RNA対応マッパ/アライナにおいて必要とされる最も大きな差異は、スプライス部位を扱う能力である。RNA-seqのリードは転写およびスプライシングされたRNAのセグメントに対応するので、一般に、リードは1つまたは複数のスプライス部位にわたる。DNA指向の基準ゲノムに関して、これは、リードの第1の部分が第1のエキソンから来たものであり、それにマッピングするはずであること、リードの第2の部分が第2のエキソンにマッピングするはずであることなどを意味する。たとえば、100塩基のリードにおいて、最初の40塩基が3番染色体のオフセット2,34,5000にあるエキソンから来ることがあり、残りの60塩基が染色体のオフセット2,445,040で開始する100,000塩基離れた別のエキソンから来ることがある。そのようなリードのためのアライメントは、マッピング場所Chr3:2345000、およびアライメントCIGAR文字列「40M100000N60M」で表すことができ、ここで、「40M」および「60M」はそれぞれのエキソンにアライメントされる部分を表し、「100000N」は100,000塩基のイントロンを表し、これらの100,000基準塩基はリードアライメントによってスキップされる(抽象的には、このCIGAR文字列は「40M100000D60M」と等価であるものとして見ることができ、ここで「100000D」は基準からの100,000塩基の欠失を表すが、習慣的に、想定される切り出されたイントロンを「N」で表し、それに対して、想定される変異またはシーケンシングエラーによる欠失を「D」で表す)。
「N」(イントロン)と「D」(欠失)のCIGAR事象の実際上の差異は、それらの典型的な長さに関する。欠失事象は50塩基より長いことが稀であるので、Smith-Watermanまたは同様の配列アライメントアルゴリズムを使用して、有用に発見され正確に配置される。イントロンはしばしば、長さが何千塩基、また100万塩基以上ですらあり、そのような長いアライメントギャップを検出するためにSmith-Waterman型のアライナを使用するのは現実的ではない。したがって、スプライス部位の最初の発見は、「アライメント」よりも「マッピング」の領域である。
マッピングの問題は、各リードが未知の境界にあるエキソンセグメントへと区分されることがあり、様々なエキソンセグメントが、個々に発見される必要がある広く分かれたゲノム位置にマッピングする可能性が高いということである。エキソンセグメントを対応する基準位置にマッピングするための技法は、リード全体を1つの基準セグメントにマッピングするための技法と同様であり得るが、スプライシングされたマッピング(前者)がより困難であり、それは、各エキソンがリード全体よりもはるかに短いことがあり、したがってマッパを誘導するためのはるかに少ない情報を含むからである。実際に、単一のエキソンは「G」などの1塩基程度に短いことがあり、追加の情報がないと、その単一の塩基が100万塩基の潜在的なイントロン範囲の中でどこにマッピングすべきかを決定するのは現実的ではない。
リードの2つの連続的なエキソンセグメントのマッピングを発見することに加えて、少なくともいくつかの適用例では、それらの間のスプライス部位を正確に位置決めする必要がある。100塩基のリードの初めのおよそ40塩基および後のおよそ60塩基が、3番染色体において厳密に100,000塩基離れた位置にマッピングすることが明らかであり得るとしても、どれだけのリード塩基がこれらの2つの位置の各々に厳密にマッピングするか、または、スプライス部位、すなわち2つのエキソンセグメントの間の境界が厳密にリードの中でどこに該当するかは、はるかに明確ではないことが多い。正しいCIGARは、ただの「40M100000N60M」ではないことがもっともらしく(plausibly)、たとえば、「39M100000N61M」または「42M100000N58M」であり得る。スプライス部位の正確な位置決めは、「マッピング」というよりは「アライメント」動作である。
RNA対応マッパはまた、2つのDNA鎖のいずれからリード配列が転写されたかを有用に推測することができる。典型的な非指向性のRNA-seqプロトコルでは、所与のリードは基準に対して(スプライス部位ありで、またはなしで)相補鎖変換と逆相補鎖変換のいずれかが行われてアライメントし得る。ペアエンドのRNA-seqプロトコルでは、一般に2つのメイトリードが「FR」(順方向/逆方向)を向くので、基準ゲノムにおいてより早いメイトマッピングは順方向を向き、他のメイトは逆相補鎖変換される。しかし、典型的な非指向性のRNA-seqプロトコルでは、これらのマッピング方向は、このリードのRNAの転写元の遺伝子をどのDNA鎖が持っていたかを決定せず、それは一部には、cDNAがPCRによって増幅されるときに両方の方向が産生されるからである。
最後に、RNA対応マッパは、「アノテーションされた」既知のスプライス部位の入力データベースを有用に活用することができる。すべての一般的なヒトの遺伝子は詳細に研究されており、たとえば、最も一般的なおよび一般的ではないRNA転写産物のスプライス部位がゲノムデータベースにおいてアノテーションされている。この情報は100%網羅的ではない。あらゆる個人の試料が、データベースに記録されていない何らかの「新しい」スプライシングを示す可能性が高い。それでも、アノテーションされたスプライス部位は、RNA-seqのマッピングおよびアライメントの精度を上げるための有用な指針として機能することができる。アノテーションされたスプライス部位のある、またはないRNA-seqのリードをマッピング/アライメントした後で、高度な方法は、アライメントされたリードにおいて観察されるスプライス部位のセットを、スプライス部位をカバーするアライメントの最小の数などの何らかの基準により検出し、RNAマッピング/アライメントの2回目のパスのために、アノテーションされたスプライス部位として、経験的に検出されたスプライス部位のこのセットを使用することである。これは、他のリードのマッピングを誘導するためにいくつかのリードにおいて見出されるスプライス部位を使用することによって、感度を上げることができる。
RNA-seqリードのための初期のシードマッピングは、DNAリードに対して同様に進行する。一次シード長Kが選ばれ、これは理想的には、ヒトゲノムの基準全体に対してシードを十分固有にマッピングさせるために、基準ゲノムサイズの4を底とする対数よりいくらか長く、たとえばK=18またはK=21である。ハッシュテーブルが構築され、ハッシュテーブルに基準ゲノムからの一部またはすべてのシードが格納され、各々の格納されたシードのためのハッシュテーブルの中のハッシュレコードは、基準におけるシードの場所および方向を示す。ハッシュテーブルは、マッパエンジンハードウェアをインスタンス化するFPGA上のピンに配線されたFPGA基板上のDRAMモジュールなどの、マッパエンジンハードウェアがアクセス可能なメモリへとロードされる。
マッパエンジンは、RNAまたはDNAシーケンサから出てくるRNAリード(シーケンシングの前にcDNAへと逆転写されていることが多い)を受け取る。各リードから、マッパは長さKのシードを抽出し、これは理想的には、各塩基場所、または各々の偶数番目の場所などにおいて開始する、何らかのパターンとともに選ばれた複数の重複するK塩基のシードの移動する区間である。マッパは、各シードのためにメモリの中のハッシュテーブルにアクセスし、シードが一致する基準ゲノムの中の0個、1個、またはより多くの場所のリストを得る。DNAマッピングのように、シードを動的に伸長することができ、一致する場所の大きなセットを16個以下の一致などの妥当に小さいセットへと縮小するのに必要なとき、連続的により長いシードを用いてハッシュテーブルに繰り返しアクセスする。シードの一致はシード連鎖へと集約され、シード連鎖は、同様のアライメント対角線に沿った同じ方向で一致するシード(基準に関して相補鎖変換または逆相補鎖変換された)を備える。
RNA-seqリードに対して、短い固定シードマッピングで最初のシードマッピングを改良するためのマッパエンジンによる追加のステップが、有利であることがある。たとえば、図1に関して分かるように、RNAリードはしばしば1つまたは複数のスプライス部位と交差し、リードのスプライス部位と交差するシードは普通、基準の中の真のイメージが2つの位置に分割されるのでマッピングに失敗する。リードが初期のシード長Kより短いエキソンを含むとき、またはリードがKより少ない塩基の分だけより長いエキソンと重複するとき、シードのマッピングは、そのエキソンのための対応する基準場所を位置特定することに失敗することがある。全体のまたは部分的なエキソンがK個の塩基よりいくらか長いが、リード全体より短いときであっても、基準に対する試料の変異またはシーケンシングエラーによる、一塩基多型(SNP)または挿入もしくは欠失(インデル)などの、基準からの少なくとも1つの編集(差異)をリードが含むとき、シードマッピングの失敗が生じやすいことがある。たとえば、図1に関して分かるように、すべてのエキソンセグメントを長い(K塩基)シードでマッピングすることに失敗する例が示されている。この理由で、良好なシードマッピングの感度のために、短いエキソンもしくはエキソンの短いオーバーハングに、または編集と編集の間に収まり得る、より短いシードをクエリするのが望ましい。
より短いシードは非常に多数の位置と一致する傾向があるので、基準ゲノムサイズの4を底とする対数に関する最小の長さよりはるかに短いシードに対して、ゲノム全体のハッシュテーブルをクエリするのは、いくらか非現実的であることがある。たとえば、約31億塩基のサイズのヒトゲノムの基準全体について、4を底とする対数は約15.8であり、クエリすべき最短の現実的なシード長はK=16または18であることがあり、場合によってはK=21が望ましい設定である。K=11の塩基シードをクエリするのは現実的ではなく、それは、各々の11塩基のパターンが平均で700個を超える基準位置と一致するからである。
しかしながら、たとえばK=21の塩基シードを用いた最初のシードマッピングの後で、L=11塩基などのより短い長さの固定シードを用いてシードマッピングを改良することは可能である。固定シードマッピングのために、固定シードハッシュテーブル(これは一次ハッシュテーブルと同じであることがあり、または別のものであることがある)に基準からのL塩基のシードが格納され、これは216=65,536塩基などの何らかのサイズのビンなどの、特定の基準の領域と連動している。各基準領域またはビンは、基準ゲノムにおける開始場所をビンのサイズによって除算したものなどの、固有のIDを与えられる。各基準ビン内のL塩基のシードは、L個のシード塩基およびビンIDから形成されるハッシュ鍵を使用して、固定シードハッシュテーブルへと格納される。
マッパエンジンは、任意の所与のビン内の任意の所与のL塩基のシードに対して、L個のシード塩基およびビンIDと同じ方式で形成されるクエリハッシュ鍵を使用して、固定シードハッシュテーブルをクエリすることができる。その特定の基準ビン内でのL塩基のシードの一致のみが、このクエリによって位置特定される。ビンは基準ゲノム全体よりはるかに小さいので、短いL塩基のシードはある程度の頻度で固有にマッピングするのに十分な情報を有する。たとえば、ビンのサイズ65,536の4を底とする対数は8であるので、L=11(または10、12など)は、格納してクエリするのに現実的な固定シード長である。図2に関して分かるように、短い(L塩基)シードは、短いエキソン、短いエキソンオーバーハング、または、SNPなどの編集によって切断されるエキソンセグメントに容易に収まる。
固定シードマッピングを機能させるための鍵は、固定シードハッシュテーブルへのマッパエンジンのクエリが、最初のシードマッピングの結果によって誘導されることである。たとえば、K=21塩基のシードを伴う最初の一致は、リードのすべてのエキソンセグメントにマッピングするのに成功しないことがあるが、それらは、各リードの、またはそのペアエンドメイトリードの少なくとも1つのエキソンセグメントをマッピングする可能性が非常に高い。RNAリードまたはそのメイトの中の少なくとも1つのエキソンセグメント内での少なくとも1つのK塩基の一致を仮定すると、K塩基のシードによってマッピングが成功しなかったリードの中の任意の他のエキソンセグメントが、基準ゲノムにおいて比較的近くで一致する可能性が非常に高い。
たとえば、ヒトのイントロンのおよそ99%は65,536塩基より短いので、1つのエキソンセグメントがK塩基のシードを用いて所与の基準場所にマッピングする場合、他のマッピングされていないエキソンセグメントは、同じ65,536塩基の基準ビンまたは隣接するビン内で一致する可能性が高い。図3に関して分かるように、探索範囲、たとえば、ビンのサイズ、またはビンのサイズの1/2もしくは1/4、またはビンのサイズの2倍を定義することができ、L塩基のシードを使用して固定シードハッシュテーブルにおいて、マッピングが成功したK塩基のシードの探索範囲内の1つまたは複数の基準ビンをクエリすることができる。したがって、K塩基のシードの一致は、より短いL塩基のシードを用いた局所探索のためのアンカーとして機能する。これは、リードの以前はマッピングされていなかったエキソンセグメントへの追加の一致を見つける可能性が高い。このようにして、RNAリードに対するシードマッピングの感度が改善する。
加えて、マッパエンジンが短い固定シードマッピングを利用できる、様々な方法がある。一実施形態では、マッパがハッシュテーブルの中のK塩基の初期シードをクエリし、一致をシード連鎖へと集約した後で、マッパは次いで、リードからL塩基のシードを抽出し、より短いL塩基のシードに対する追加の一致を見つけるために(現在のシード連鎖の選択された探索半径内にある)近くの基準ビンにおいてこれらをクエリし、このマッパエンジンは次いで、追加のシード連鎖へと集約し、または同様のアライメント対角線を用いて既存のシード連鎖に追加する。そのような実施形態では、固定シードハッシュテーブルが一次ハッシュテーブルと同じであることが有利であり、または、別個の一次ハッシュテーブルと固定シードハッシュテーブルが、アクセス可能なメモリの中に同時に存在することが有利である。いずれの場合でも、K塩基のシードとL塩基のシードの両方を伴うハッシュテーブルをメモリに収めるために、DRAMの32GBではなくDRAMの64GBなどの、およそ2倍のメモリを使用することができ、または代替的に、100%格納されたシード密度ではなく50%格納されたシード密度などの、各長さの基準シードの数のおよそ半分を格納することができる。必要とされる固定シードハッシュテーブルのクエリの数を制限するために、より見込みのある初期シード連鎖のみをアンカーとして使用することができ、かつ/または、K塩基のシードがマッピングに成功しなかった領域などのある領域だけからのリードから、L塩基のシードを抽出することができる。
別の実施形態では、リードのあるセットのためのマッピングおよび/またはアライメントを、K塩基のシードのみを使用した第1のパスの完了に向けて行うことができる。次いで、短い固定シードを使用した改良されたマッピングをどのリードが必要としているかを決定するために、マッパエンジンの外部のソフトウェアなどによって、各リードに対するこのマッピング/アライメントの結果を調査することができる。固定シードの改良を誘引し得る1つの指示は、第1のパスのアライメントがクリッピングされている、特に短いシード長Lの近くまたはそれより大きいクリッピングを用いてクリッピングされているということである。固定シードの改良を誘引する別の指示は、第1のパスのアライメント内で観察されるかなりの量の不一致であり得る。固定シードの改良を誘引する別の指示は、ペアエンドメイトが両方ともマッピングに成功しなかったこと、または互いに遠く離れてマッピングしたこと、または予想しない相対的な方向でマッピングしたことであり得る。有利には、短いシードの改良のためにあるリードが選択される場合、そのペアエンドメイトも選択される。有利には、15%または30%などの、第1のパスのアライメントの一部分のみが、短いシードの改良を必要とし得る。
短いシードの改良を利用するサブセットの中の各リードに対して、リードおよび/またはそのメイトに対する第1のパスのアライメント結果の周りのある探索半径と重複するビンなどの(図3参照)、探索すべき1つまたは複数の基準ビンを選択することができる。次いで、第2のマッピング/アライメントのパスが、改良のために選ばれたリードのサブセットにわたって行われ得る。第2のパスにおいて、各リードからのL塩基のシードを、固定シードハッシュテーブルにおいてクエリし、各リードのための1つまたは複数の選択された基準ビンに連動させることができる。通常は、第2のパスのために選択されたリードの少なくともいくつかに対して、より高いアライメントスコアなどを伴う、改善されたマッピング/アライメント結果が生じ、第2のパスの結果は、それらが改善された場合に得ることができ、または他の場合には第1のパスの結果が得られる。任意選択で、一次ハッシュテーブルが、第1のマッピングのパスの前に、エンジンがアクセス可能なメモリにロードされることがあり、固定シードハッシュテーブルが、第2のマッピングのパスの前にロードされることがあり、両方のハッシュテーブル(または単一の合成されたハッシュテーブル)を一度にメモリに収める必要がなくなり(ただし両方が同時にロードされることはある)、または両方が一度に収まるように基準シードの格納密度を下げる必要がなくなる。
いくつかの実施形態では、基準ビンは構成可能なサイズを有し、探索半径は構成可能であり、初期シード長(K)と固定シード長(L)の両方が構成可能である。他の実施形態では、基準ビンのサイズは2のべき乗である。ヒトのトランスクリプトーム全体のRNA-seq処理のための例示的な好ましい設定は、K=21、L=11、基準ビンサイズ2^16=65,536、および探索半径2^14=16,384である。
アノテーションされたスプライス部位がマッパエンジンに提供される場合、それらはマッピング感度を改善するために活用され得る。アノテーションされた部位のリストは、マッパエンジンによってアクセス可能なメモリにロードされる。有利には、アノテーションされた部位は、基準の各々の、たとえば1024塩基のビンに対するエントリーを伴うテーブルなどの、マッパエンジンによって容易にアクセスされるテーブルへとフォーマットされることがあり、このエントリーは、そのビンの中の少なくとも1つの終点を伴うイントロンについての情報を含むか、または複数のイントロン記述子のリスト(初期テーブルの後で割り振られた空間の中の)を指すかのいずれかである。各イントロン記述子は、関連するイントロンの両方の終点の基準場所を示し、また、イントロンの遺伝子がどのDNA鎖にあるか、イントロンのモチーフ、およびスプライス部位がどの程度頻繁に発生するかの尺度などの、追加の情報を持っていることがある。
シードマッピング(初期シードおよび/または短い固定シード)およびシード連鎖の形成の後で、各シード連鎖がわたる基準領域または長いシード連鎖の終点の近くの領域に対応する行において、アノテーション部位テーブルにアクセスする。近くに少なくとも1つの終点を伴うイントロンのリストが得られ、アクセスが行われた少なくともシード連鎖と比較される。シード連鎖からの潜在的なまたは可能性の高いスプライス部位ではない場合、各イントロンは廃棄される。具体的には、基準の中のイントロン終点の位置を基準およびリードの中のシード連鎖の終点と比較することによって、リードの中でのスプライス部位の実質的な位置が計算される。この実質的な位置がリードの境界の外側である場合、またはシード連鎖とかなり重複している(たとえば、シード連鎖の終点の内部でmaxSpliceOlap=16を超える)場合、またはリードの中のシード連鎖の範囲の外側にありすぎる(たとえば、シード連鎖の外側のmaxSpliceGap=150を超える塩基)場合、アノテーション部位は関連がある可能性が低いものとして廃棄される。
各々の残りのイントロン記述子は、関連するシード連鎖の一端からの潜在的なスプライス部位と考えられる。この情報は2つの方法で利用される。まず、基準の中のイントロンの他端が、リードの隣接部分がマッピングすべき可能性の高い位置として、その位置がシードマッピングによって発見されなかった場合でも用いられる。実際に、イントロンの他端における最も可能性の高いアライメント対角線は、現在のシード連鎖の対応する端部においてアライメント対角線からイントロンの長さを(方向に応じて)加算または減算することによって、厳密に計算される。基準位置およびアライメント対角線がいずれの既存のシード連鎖とも一貫しない場合、イントロンの他端における基準位置において開始し、計算されたアライメント対角線によって示唆される対応する場所においてリードの中で開始する、新しい(擬似)シード連鎖が製作される。このようにして、リードのエキソンセグメントの可能性の高いマッピング位置が、既存のシード連鎖からイントロン全体のエキソンセグメントの位置を推測することによって、エキソンセグメントの内部のシードマッピングなしで発見される。
第2に、アノテーションされたイントロン情報が、リードの中の隣接するエキソンセグメントを表す2つのシード連鎖の間で既知のリンクを確立するために使用される。リンク情報は、1つまたは両方のシード連鎖記述子において記録され、この記述子は、アノテーションされたスプライス部位を介してシード連鎖がつながる他の連鎖を特定する。さらに、スプライス部位の正確な場所が、(アノテーション部位が正しいと仮定して)知られ、アノテーションされたイントロンの終点とシード連鎖のアライメント対角線との差異によって計算される。この正確なスプライス部位の位置決めは、1つまたは両方のシード連鎖記述子にも記録されている。
同じシード連鎖からつながる複数のアノテーションされたスプライス部位が発見される場合、つながりおよびスプライス部位の場所情報を様々な方法で記録することができる。たとえば、2つの連鎖の間の各つながりが、2つの連鎖のうちの1つのみにおいて記録されることがあるので、たとえば、つながりの「行先」側で常に記録される場合、衝突はないことがある。1つのシード連鎖記述子が複数のつながりを記憶するための空間を有することがあり、またはつながりの情報のための動的な空間を有することがある。加えて、既存のシード連鎖記述子のコピーは、代替的なつながり情報を保持するようになされることがある。
有利には、アノテーションされたスプライス部位のルックアップは繰り返され得る。たとえば、リードの最初の1/3をカバーする1つのシード連鎖から始まって、これまで検出されていない基準位置につながる、アノテーションされたスプライス部位を発見することができ、この基準位置は新しいシード連鎖へと組み立てられる。新しく組み立てられたシード連鎖のために、アノテーション部位テーブルに再びアクセスすることができ、場合によってはリードの2番目の1/3の後で、別の発見されていない基準位置への別の既知の分岐点があることを発見する。有利なことに、アノテーション部位テーブルのエントリーは、同じ遺伝子の転写産物内で、または一般に、他の最も近いアノテーション部位に達するまでの(アノテーションされる部位と同じ方向に続く)距離を示すことができる。リードの中の計算されたスプライス部位の位置の後から測定されるこの距離がリードの終点を超えて延びるとき、何も見つからないのでアノテーション部位テーブルに再びアクセスする必要はない。
マッパエンジン内で、シードは同じ方向で一致し(基準に関する相補鎖または逆相補鎖)、単一のギャップなしまたはギャップありのアライメント動作が後で各シード連鎖に対するリードと基準とのアライメントを調査してスコアリングできるようにする目的で、類似するアライメント対角線がシード連鎖へと集約される。アライメント対角線は、一方の軸上にリード配列を伴い他方の軸上に基準配列を伴って形成されるアライメント長方形において、一致するシードによってカバーされる対角方向のアライメント経路として想像することができる。整数としての1つの表現が、順方向のアライメントではリードにおけるシードの場所を基準におけるシードの場所から差し引くことによって、逆相補鎖変換されたアライメントではリードにおけるシードの場所を基準におけるシードの場所に加算することによって、計算され得る。
リードの中の場所0から100が基準の中の場所1,200,000から1,200,100と一致するなど、リードが基準のセグメントと厳密に一致するとき、すべてのシードが普通は同じ対角線上で一致し、たとえば1,200,000-0=1,200,100-100=1,200,000である。リードの中の塩基30から50までの特定の21個の塩基は、基準の中の塩基1,200,030から1,200,050に一致し、また同じ対角線上にあり1,200,030-30=1,200,000である。シードは同じ方向で一致し、対角線は普通は同じシード連鎖に含まれるが、その対角線がせいぜい20または50しか違わない、または何らかのより複雑なルールにより異なるシードなどの、わずかに異なるアライメント対角線上のシードも同じシード連鎖に含まれることがある。対角線の差異に何らかのそのような寛容さを認めることは有用であり、それは、リードが基準に関してインデル(挿入または欠失)を含むことがあり、せいぜい50塩基の挿入または欠失など、インデルが大きすぎない限りは、アライナエンジンにおけるSmith-Watermanアライメントなどのギャップ付きアライメントが、単一のシード連鎖に対してそのようなインデルを解決してスコアリングできるからである。
しかし、RNA-seqリードはしばしばスプライス部位と交差し、そこにおいて、あるリード塩基から次のリード塩基へのステップが、数千塩基の長さ、または100万塩基を超える長さですらあり得る、基準の中のイントロン全体をスキップする。そのような場合、リードの中のスプライス部位の一方からのシードは、スプライス部位の他方のシードからの大きく異なるアライメント対角線に関して基準にマッピングし、対角方向の整数の差分はスキップされたイントロンの長さに等しく、場合によっては数千または100万以上である。そのようなシードは、ギャップ付きのアライナが基準の中のそのような長いギャップを直接解決できないので、同じシード連鎖に入ることを許されないことがある。
よって、RNAマッピングでは、DNAの場合とは異なり、所与のリードの真のアライメントが複数のシード連鎖を備えることがあり、各シード連鎖がリードの中の異なるエキソンセグメントに対応することが予想される。したがって、各アライメント候補は、いくつかのシード連鎖の配列を備え得る。マッパエンジンの次の段階は、ここではスキャフォールドとして知られている、シード連鎖のそのような候補配列を決定することである。
1つまたは複数のシード連鎖の配列としての各スキャフォールドには、基準ゲノムの中の対応するエキソンセグメントへのリードの連続的なエキソンセグメントの断片ごとのアライメントとしての物理的な解釈がある。したがって、1つのスキャフォールドにおける各シード連鎖は通常、リードの一部分のみをカバーするはずであり、これらの部分は、リードの最初からシード連鎖の配列に沿ってリードの最後に向かって処理し、シード連鎖の対応する基準セグメントは、基準を通って固定された方向に進行するはずであり、介在するギャップは予想されるイントロンの長さに対応する。各スキャフォールドは、正確なアライメントを解決してそれらをスコアリングし、最も可能性の高い候補を選択するために、アライナエンジンに渡される。しかし、シード連鎖の生のリストからスキャフォールドのリストを得るのは困難である。
実際には、単一のRNA-seqリードのためのシードマッピングは、少数のシード連鎖から、数十個または100個を超えるシード連鎖を生み出し得る。100個を超えるシード連鎖を仮定すると、潜在的なシード連鎖配列の数は天文学的である。したがって、マッパエンジンを低速にしないために、アライナエンジンにおいて検討するのに妥当に短いスキャフォールドのリストを得ることと、妥当な長さの時間でシード連鎖の所与のリストからスキャフォールドのそのリストを決定することとの両方の問題がある。これを効率的に行うために、再帰的な方法が提示される。
まず、リードにおけるシード連鎖の開始場所の昇順などで、リードにおけるシード連鎖のカバーされる場所の順序でシード連鎖をソートするのが非常に有用である。シード連鎖は、リードの最初から最後までハッシュテーブルの中のシードを順番にクエリし、それらをそのような順序でシード連鎖へと形成することによって、そのような順序で自然に構築され得る。しかし、これが当てはまらない場合、または、固定シードマッピングもしくはアノテーションされたスプライス部位のルックアップを用いてシード連鎖のリストを後で変更することによって順序が乱される場合、シード連鎖は、「クイックソート」または他のソートアルゴリズムなどを使用して、スキャフォールドの前にソートされるべきである。
次に、あるシード連鎖(B)が同じスキャフォールドの中の別のシード連鎖(A)の直後に来ることが許容されるというルールが確立され、AからBへのシード連鎖のリンクを確立する。良好に機能し得るルールにはかなりの柔軟性があるが、ルールは、真のアライメントのスキャフォールドにおいて可能性の高いシード連鎖リンクを許容しながら、できるだけ多くの可能性の低いシード連鎖リンクを除外しなければならない。様々な名称のパラメータおよび良好なデフォルト値とともに、よく機能するルールのセットをここに示す。
スキャフォールドにおいてシード連鎖Bがシード連鎖Aの後に来るための条件
AとBが同じ方向である
[リードにおけるAとBの間のギャップ]=:gap≦maxSpliceGap=150
[リードにおけるAとBの重複]=:olap≦maxSpliceOlap=16
[リードにおけるAの始点とBの始点の間のギャップ]=:head≧olap+(olapAdj=4)
[リードにおけるAの終点とBの終点の間のギャップ]=:tail≧olap+(olapAdj=4)
[A/B基準ギャップ-A/Bリードギャップ]=:intronLen≧minIntronLen=20
[A/B基準ギャップ-A/Bリードギャップ]=:intronLen≦maxIntronLen=1,000,000
アノテーションされたスプライス部位が使用され、アノテーションされたリンクがシード連鎖AとBの間で記録されているとき、それらは常に互いの後に来ることが許容される。
複数のスキャフォールドを形成するための再帰的アルゴリズムをここに示す。
必要であれば、リードにおける開始場所によってN個のシード連鎖をソートする
Loop c0=0からN-1
いずれかのスキャフォールドの内部ですでに使用されている場合c0をスキップする
last=0、scaf[0]=c0、start=c0+1、stack[0]=1、stack[1]=0、stackPos=0に初期化する
Loop while last≧0
Loop c=startからN-1
If chain cがchain scaf[last]の後に来ることができる:
scaf[++last]=c
stack[last]=0 if stack[last]=c
Else if last>stackPosかつchain cがchain scaf[last-1]の後に来ることができる:
stack[last]=c
scafflod scaf[0..last]を出力する
stackPos=stack[stackPos]>0である(0..last)における最大値に設定する
start=scaf[stackPos]+1に設定する
last=stackPos-1に設定する
アルゴリズムにおける用語および変数の意味:
「chain」:シード連鎖のインデックス0..N-1
scaf[]=構築中のスキャフォールド、各スロットが連鎖0..N-1を得る
c0=スキャフォールドにおける最初の連鎖(スロット0)
last=スキャフォールドにおける(その時点での)最後のスロット番号
start=探索ループにおける最初の連鎖
stack[i]=scaf[i]に対する最高の番号の代替的な連鎖、または存在しない場合は0。これは、再帰的なバックアップの後のscaf[i]に対する代替物の探索の終点を表す。
stackPos=再帰的なバックアップを介して置き換えるべき標的スキャフォールドスロット。バックアップが発生するとき、stack[stackPos]が組み込まれており、クリアされるまで更新されないことが観察される。
この再帰的な探索は、マッパエンジン内の物理的な論理回路において実施される。ハードウェア並列処理の標準的な方法を使用して、エンジンを大幅に低速にすることなくこのアルゴリズムを実行するために利用可能な時間があり得る。具体的には、所与のリードに対するシード連鎖の束は、シードマッピングおよび連鎖論理回路が次のリードを処理するのと並列にスキャフォールド論理回路が処理パイプラインにおいて下流で処理するために、バッファリングされ得る。
実際には、時々再帰が過剰になることがあるので、再帰を制限することが必要である。産生されるスキャフォールドのセットも制限しながら再帰を制限する有用な方法は、スキャフォールドが産生されるにつれて劣ったスキャフォールドを除去することである。有用なスキャフォールド除去方法が提示される。各スキャフォールドに対して、リードのスキャフォールドのネットカバレッジを、スキャフォールドの中の1つまたは複数のシード連鎖によってカバーされるリード塩基の数として計算する。より高いカバレッジのスキャフォールドは、真のアライメントを表す可能性がより高い。具体的には、(これまでに)形成されたすべてのスキャフォールドの中で最大のリードカバレッジが探知される場合、その最大のカバレッジよりも大きくカバレッジが劣後しているスキャフォールドは、真のアライメントを表す可能性がより低い。
また、各スキャフォールドに対して、基準ゲノムにおけるスキャフォールドのネットスパン、すなわち、スキャフォールドの中の最初のシード連鎖の基準における一番外側の塩基と最後のシード連鎖の基準における一番外側の塩基との間の距離を計算する。基準のスパンが非常に大きいスキャフォールドは、真のアライメントを表す可能性がより低い。これらの2つの測定結果を、filter_metric=(max_coverage-coverage)+floor(25*(log2(ref_span+213)-13))のように組み合わせることが、スキャフォールドの除去に特に強力である。定数25および13は設定可能なパラメータであるべきであり、rna-filt-ratio=25、rna-span-log-min=13である。この尺度が設定可能な閾値、たとえばrna-max-covg-gap=150を超えるすべてのマルチ連鎖スキャフォールドを除去する。200という閾値ではフィルタはかなり緩くなり、100ではかなり厳しくなる。
このフィルタは、すべてのスキャフォールドの中で最大のカバレッジを探知または計算し、スキャフォールドのリストをスキャンし、filter_metric>rna-max-covg-gapであるものを廃棄することによって、所与のリードに対するシード連鎖のリストから産生される完成したスキャフォールドの完全なまたは不完全なセットに適用され得る。
そのようなフィルタはまた、スキャフォールドの形成の途中で再帰刈込みとして適用され得る。各々の新しいシード連鎖がスキャフォールドに追加されるにつれて、更新された基準スパンが記録され、このシード連鎖の中およびそれより前にあるカバレッジギャップをリード長から差し引くことによって計算される、潜在的カバレッジも記録される。この部分的なスパンおよび潜在的なカバレッジを使用して、尺度が除去を誘引する場合、現在の部分的なスキャフォールドをプレフィックスとして使用するあらゆるより長いスキャフォールドが同様に除去され、それは、基準のスパンは増大するだけであり、潜在的なカバレッジは減少するだけであるからである。したがって、現在の部分的なスキャフォールドをプレフィックスとして保持するすべての再帰をスキップすることができる。このようにしてスキャフォールドフィルタを用いて再帰を刈り取ることは、シード連鎖の長いリストからスキャフォールドのセットを形成するための再帰の長さを大幅に減らすことができる。
再帰的なスキャフォールド探索の実行も最適化することができる。再帰的なループは繰り返し、シード連鎖のリストの複数の部分をスキャンするので、アルゴリズムの速さは、シード連鎖のリストがより短いときよりもはるかに良好である。しかし、一部のシード連鎖が他のシード連鎖とスキャフォールドを形成できない可能性があるとき、シード連鎖のリスト全体に対して再帰的アルゴリズムを実行することは実際には必要ではない。最適化するための1つの方法は、基準の中のいずれの他のシード連鎖からもmaxIntronLen(たとえば、1,000,000塩基)より遠く離れて位置する、「孤立した」シード連鎖を検出することである。孤立したシード連鎖は、単一連鎖のスキャフォールドとして自動的に放出され、さらなるスキャフォールドの前にシード連鎖のリストから除去され得るので、再帰の間にスキャンされるシード連鎖のリストを短くする。同様に、各染色体内のサブセット、または基準の中でmaxIntronLenよりも長く離れたサブセットなどの、シード連鎖のよく離れたサブセットを検出することができ、再帰的スキャフォールドアルゴリズムを各々のそのようなサブセットに対して別々に実行でき、総実行時間の大きな短縮がもたらされる。
各スキャフォールドのための第1のアライナエンジンステップは、各スプライス部位、すなわち2つのエキソンセグメント(スキャフォールドの中の2つの対応するシード連鎖によって表される)の間の境界を正確に位置決めすることである。これは、エキソンセグメントを一緒に「縫合する」、またはスプライス部位を縫合すると呼ばれる。より正確な縫合がシードのマッピングおよびスキャフォールド形成の後でも必要であり、それは、2つの連続するシード連鎖自体が、それらの間の真の境界がどこにあるかを明らかにしないことがあるからである。たとえば、連続的なシード連鎖は、シードがスプライス部位の一方または両方の側に直ちにマッピングすることが可能ではなかった場合、リードにおいて何らかの距離だけ離れていることがあり、または、あるエキソンの終点のリード配列が次のエキソンの始点の配列と一致する場合に特に、連続的シード連鎖がリードにおいて互いに重複することがある。連続的なシード連鎖がギャップまたは重複なしで接する場合であっても、それらの間の境界がスプライス部位の真の場所にあることは保証されない。
したがって、スプライス部位の縫合は主に、最も可能性の高いスプライス部位の場所に対応する、リードの中の連続するエキソンセグメント間の最良の縫合場所を選択するための分析である。2つの要因がこれを決定するのに有用である。第1の要因は、基準ゲノムの中の2つのエキソンセグメントマッピング位置にある左側基準配列および右側基準配列とのリード配列の比較である。所与の縫合場所は、縫合の左側のリード塩基が左側基準領域にマッピングし、縫合の右側のリード塩基が右側基準領域にマッピングすることを示唆する。潜在的な縫合場所がリードにおいて左から右に動くにつれて、リード塩基は、それらのマッピングを、交差するにつれて右側基準領域から左側基準領域に切り替える。
図4に関して分かるように、真のスプライス部位の場所は、リードの左側部分と左側基準領域との間に、およびリードの右側部分と右側基準領域との間に、良好な一致がある可能性が高い。不一致(またはSNP)の総数を、対応する基準領域との比較によって、潜在的な縫合場所の両側で数えることができ、よりSNPのカウントが小さい縫合場所が、より真である可能性が高い。各縫合場所の左および右のリード部分の比較が図4に示されている。
このSNPのカウントは、最大で48塩基などの何らかの距離にある2つのシード連鎖の各々を重複させることなどの、リードの中の可能性のある場所の区間全体で縫合場所をスキャンすることによって、効率的にモデル化される。このスキャンは、たとえばクロック周期当たり1つの場所の速さで、ハードウェアアライナエンジンにおいて行われる。スキャンが左から右などに1ステップ進むたびに、1つのリード塩基だけが、そのマッピングを右側基準領域から左側基準領域に切り替える。したがって、左側配列の比較は、1SNP増えるか同じままであるかのいずれかであり、右側配列の比較は1SNP減るか同じままであるかのいずれかであるので、ネットのSNPカウントは-1、0、または+1変化する。各ステップに対するこの付加的なSNPカウントの変化は、1つのリード塩基(縫合場所のステップが交差する塩基)を2つの基準塩基と比較することによって計算され得る。この付加的なSNPカウントの変化が、ステップが左から右に進むにつれて加算される場合、現在の合計を相対的なスコアとして用いることができ、ここで最小のスコアが最良である。等価的に、各々の一致する塩基に正の一致スコアを与えることができ、各々の一致しない塩基に負の不一致ペナルティを与えることができ、最良の縫合場所では付加的なスコアの変化の合計が最大になるはずである。
別の要因は、各縫合場所によって示唆されるイントロンモチーフである。イントロンモチーフは、スキップされた基準セグメント、すなわちイントロンの最初の2つの塩基および最後の2つの塩基として定義される。等価的に、あらゆる潜在的な縫合場所に対するモチーフが、図4に示されるように、左側基準領域の後の最初の2つの塩基および右側基準領域の前の最後の2つの塩基から形成される。この示唆されるイントロンモチーフは、縫合場所に依存し、普通は潜在的な縫合場所の区間にわたって縫合場所がスキャンするにつれて変化する。自然のRNAスプライシングにおいては、いくつかの「標準」イントロンモチーフが、他のものよりはるかによく発生する。標準イントロンモチーフに対応する縫合場所は、それがより一般的な標準モチーフの1つである場合には特に、真のスプライス部位の場所である可能性がより高い。
ヒトRNAにおける3つの標準イントロンモチーフの表が、TABLE I(表1)に示されている。各モチーフに対して、その逆相補鎖も示されており、それは、大半のRNA-seqプロトコルでは、リードが転写された遺伝子鎖に関して相補鎖変換または逆相補鎖変換されていることがあるので、「順方向の」標準モチーフしか元の転写された遺伝子鎖の中になくても、その逆相補鎖もRNA-seqリードに現れ得るからである。各標準モチーフに対する、および非標準モチーフの残りのクラスに対する、ヒトRNAスプライシングにおけるおよその頻度が、使用され得る試料スコアのペナルティとともに示されており、たとえば、塩基の一致には+1のスコアが与えられ塩基の不一致には-4のスコアが与えられる。
スプライス縫合モジュールはそれに従って、左から右などに、潜在的な縫合位置の区間にわたって潜在的な縫合場所をスキャンし、塩基がどちらの基準領域にマッピングするかが切り替わることによる付加的なスコアの変化を加算し、また、左側基準領域のすぐ後および右側基準領域のすぐ前で観察されるイントロンモチーフに従ってイントロンモチーフペナルティを各々の潜在的な縫合場所において差し引き、縫合すべき最高のスコアの場所を選ぶ。
加えて、いくつかの特別な結果を検討してスコアリングすることができる。潜在的な縫合場所の区間の左端または右端において縫合することは、縫合の失敗であると考えられることがあり、アノテーションされたスプライス部位が前にあったがこのリードに対しては真ではないことが判明したときなどの、2つの基準領域の1つがリードエキソンセグメントの真のマッピング場所ではないときに生じる可能性が高い。左端または右端の縫合は有利なことに、同じ例示的なスコアの基準において25などの、スコアボーナスを与えられ得るので、真のスプライス部位の重要な証拠が縫合の成功のために現れなければならない。
縫合されている2つのシード連鎖をつなぐ、アノテーションされたスプライス部位が特定された場合、アノテーション部位は潜在的な縫合場所の区間内の既知の場所である。1つの選択肢として、縫合動作をスキップして、アノテーション部位の既知の場所を単に受け入れることができる。別の選択肢として、縫合動作を実行することができるが、アノテーション部位の既知の場所がスコアボーナスを与えられることがあり、かつ/または、最良のあり得るイントロンモチーフペナルティ、または0のペナルティを自動的に与えられることがある。別の選択肢として、イントロンモチーフペナルティの代わりに、アノテーション部位の既知の場所は、アノテーションデータベースに記録されているようなそのスプライス部位の観察された共通性もしくは希少性と関連付けられるスコアボーナスまたはペナルティを与えられ得る。アノテーションされたスプライス部位の既知の場所が縫合のために選択される場合、アノテーション部位と一致するものとして縫合された部位に印をつけることができるので、このスプライス部位がリードの出力アライメントに現れる場合、この事実を報告することができる。
選択された縫合場所は、様々な方式でスキャフォールドへとアノテーションされ得る。好ましい実施形態では、スキャフォールドの構成要素のシード連鎖は、選択された縫合場所のすぐ隣で開始し終了するように編集される。
加えて、アライナエンジンが縫合の結果に基づいていくつかの状況でより大きなスキャフォールドの編集を行うことが有利である。縫合が失敗する場合、スキャフォールドを切り捨てて短くすることができ、または失敗した点で2つのスキャフォールドへと分割することができる。また、単一のシード連鎖をスキップするなど、スキャフォールドの中の隣接していないシード連鎖の間で縫合を試みることができる。たとえば、シード連鎖1、2、3、および4を含むスキャフォールドに対して、スプライス部位の縫合は自然に、連鎖のペア(1,2)、(2,3)、および(3,4)の間で実行され得るが、加えて、縫合は連鎖のペア(1,3)と(2,4)の間で試行され得る。1から3への縫合のスコアが、1から2に縫合して続いて2から3に縫合することよりも良い場合、シード連鎖2をスキャフォールドから除外することができる。
縫合によってスキャフォールド候補の中の正確なスプライス部位の場所を決定したので、対応する完全なアライメントおよびアライメントスコアを、ギャップなしアライナまたはギャップ付きアライナ(Smith-Watermanなど)モジュールの使用によって、各スキャフォールドに対して決定することができる。単一のシード連鎖しか持たないスキャフォールドに対しては、これはDNAリードのためのアライメントとは大きくは異ならず、同じハードウェアモジュールおよび方法を使用することができる。複数のシード連鎖を持つスキャフォールドに対しては、完全な、場合によってはスプライシングされた(イントロン動作を含む)アライメントを得るために、何らかのさらなる方法が必要とされる。
完全にスプライシングされたアライメントを決定できる1つの方法は、スキャフォールドの中の各シード連鎖に対応するリードの各エキソンセグメントを、ギャップなしアライナおよび/またはギャップ付きアライナでその対応する基準セグメントに別々にアライメントすることである。これは、ローカル(場合によってはクリッピングされた)アライメントが望ましいときには不利である。個々のエキソンセグメントのアライメントがクリッピングなしで産生される場合、それらは完全なスプライシングされたアライメントへと一緒に容易には組み立てられない。個々のエキソンセグメントのアライメントがクリッピングなしで産生される場合、それらのアライメントスコアを調査して、最良の全体的なローカルアライメントが1つまたは複数のエキソンセグメント全体をクリッピングするかどうかを決定することができるが、エキソンセグメント内の任意の位置における適切なクリッピングは容易には決定されない。したがって、各エキソンセグメントアライメントのクリッピングされたバージョンおよびクリッピングされていないバージョンの両方を産生してこれらの課題を解決するのは、高価であることがある。
複数の連鎖のスキャフォールドのための完全なスプライシングされたアライメントを決定するための1つの方法は、アライメントの前にエキソンセグメントを一緒に連結することを伴う。ギャップなしまたはギャップ付きの各アライナモジュールは、アライメントすべき2つのヌクレオチド配列、すなわちクエリ(リード)配列および基準配列を供給され得る。連結されたクエリ配列は単にリード全体であることがあり、これはリードのエキソンセグメントの連結であり、最初のまたは最後のエキソンセグメントがリードの始点または終点まで延びない場合、リードの始点または終点の任意選択のクリッピングがある。
連結された基準配列は、各エキソンセグメントのシード連鎖のマッピングされたイメージである基準ゲノムセグメントをフェッチし、これらの基準セグメントを一緒に連結することによって得られる。シード連鎖の中の一番左のシードが一番右のシードとはいくらか異なるアライメント対角線上に来る場合、所与のエキソンセグメント(シード連鎖)に対して、その基準セグメントはリードのそのセグメントとは異なる長さであることがあり、たとえばシード連鎖の中のシードがインデルの存在を示唆する。そのような場合、ギャップ付きのアライナが使用されるべきである。
さらに、ギャップ付きのアライメントでは、基準配列の最初および最後のエキソンセグメントを外側に伸ばし、たとえば、50個の先行する基準塩基で最初のエキソンセグメントを伸ばし、50個の後続する基準塩基で最後のエキソンセグメントを伸ばして、最初および最後のエキソンセグメント内での欠失のための空間を提供することができる。
リードおよび基準からのスキャフォールドのエキソンセグメントを連結することによって、単一の連結されたクエリ配列および単一の連結された基準配列をアライナモジュールに供給することができ、アライナモジュールはしたがって、スプライシングされたRNAアライメントの場合に、スプライシングされていない(RNAまたはDNA)アライメントの場合とほとんど同じ方式で機能することができる。しかしながら、何らかのさらなる修正が有利である。まず、任意のエキソンセグメント内の任意の場所におけるローカルアライメントの適切なクリッピングを決定するために、スコアペナルティ(またはボーナス)を、アライメントが交差する各スプライス部位に適用することができる。一実施形態では、各スプライス部位のスコアペナルティは、そのイントロンモチーフおよびアノテーションされたスプライス部位のステータスに関連し、スプライス部位の縫合に使用されるものと同じスコアペナルティであり得る。
したがって、稀なまたは非標準のイントロンモチーフを持つアノテーションされていないスプライス部位は大きな関連するスコアペナルティを有することがあり、1つまたは複数のエキソンセグメント全体が、そのような可能性の低いスプライス部位を除外するために、スプライシングされたアライメントからクリッピングされる可能性が高くなり、これは、十分な配列の一致がスプライス部位の両側で発生して、スコアペナルティを乗り越えることによって、スプライス部位が本当に存在することの説得力のある証拠とならない限り、当てはまる。好ましい実施形態では、連結されたクエリ配列および基準配列は各々、連続的なエキソンセグメントの間に挿入されたダミー塩基を有し、各スプライス部位の適切なスコアペナルティは、対応するダミー塩基に与えられる。これは、スプライス部位のスコアペナルティが特別な論理なしで含まれることを可能にし、スプライス部位のダミー塩基の両側での潜在的なアライメントクリッピングのための空間を提供する。
加えて、様々な事例では、Smith-Watermanなどのギャップ付きのアライメントでは、アライメント経路が所定のスプライス部位を通るようにすることが有利であり得る。言い換えると、あるクエリエキソンセグメントから次のクエリエキソンセグメントへのアライメント経路の横断は、対応する基準エキソンセグメントから次の基準エキソンセグメントへの横断が同時にない限り、起こるべきではない。この制約の1つの理由は、スプライス部位の縫合の間に決定されたイントロンモチーフに基づいて、適切に同期されたスプライス部位のみが適切なスコアを得るためである。
別の理由は、連結された基準配列が、各スプライス部位の選択された縫合場所に対応する正確な基準エキソンセグメントの境界を使用して形成されているので、ギャップ付きのアライナがスプライス部位を自由に調整するための追加の基準塩基がないからである。さらに、解釈が難しいアライメント(「N」動作の隣に「I」または「D」動作を伴うCIGAR文字列など)を避けるために、各々の含まれるスプライス部位の前の少なくとも1つのクエリ塩基および基準塩基が「対角方向に」アライメントされること(CIGAR「M」動作などにおける、基準塩基にアライメントされるクエリ塩基)、および各々の含まれるスプライス部位の後の少なくとも1つのクエリ塩基および基準塩基が「対角方向に」アライメントされることを要求するのが望ましい。
これらの制約を実施するために、連結された基準配列およびクエリ配列が、整数値などの識別子またはゾーンIDを割り当てられるゾーンへと分割される。一実施形態では、1つのゾーンIDがエキソンセグメント間の各ダミー塩基に割り当てられ、別のゾーンIDがスプライス部位に先行する各エキソンセグメントの最後の塩基に割り当てられ(しかし連結された配列の最後の塩基には割り当てられない)、別のゾーンIDが各エキソンセグメントのすべての残りの塩基に割り当てられる。
たとえば、各々が20塩基の長さの3つのエキソンセグメント(シード連鎖)を伴うスキャフォールドでは、第1のエキソンセグメントの塩基1~19に対するゾーン1、第1のエキソンセグメントの塩基20に対するゾーン2、第1のエキソンセグメントと第2のエキソンセグメントとの間のダミー塩基に対するゾーン3、第2のエキソンセグメントの塩基1~19に対するゾーン4、第2のエキソンセグメントの塩基20に対するゾーン5、第2のエキソンセグメントと第3のエキソンセグメントとの間のダミー塩基に対するゾーン6、および第3のエキソンセグメントの塩基1~20に対するゾーン7という、4つのゾーンIDがあり得る。同じゾーンマッピングが連結されたクエリ配列と連結された基準配列の両方に適用され、同じゾーンIDを伴う対応する複数塩基のクエリゾーンおよび基準ゾーンは、シード連鎖の中のインデルが原因で異なる長さを有し得ることに留意する。そして、ギャップなしのアライナでは、複数の同一のゾーンIDの間の交差点、すなわちクエリゾーンIDが基準ゾーンIDと一致する場所にだけ、有効なアライメントスコアを許容するようにスコアリングセルが修正される。
したがって、様々な事例において、本開示は、DNAおよび/またはRNAの両方のマッピングおよびアライメントのための、デバイスおよびそのデバイスを利用するための方法を対象とする。したがって、特定の事例では、ハードワイヤードデジタル論理回路、たとえば集積回路が提供され、ここで、ICは、DNAおよび/またはRNAのマッピングおよび/またはアライメント動作において1つまたは複数のステップを実行するために適合される、ハードワイヤード構成および/または事前に構成された構成などの、ある構成を含む。より具体的には、本明細書で開示されるデバイスは、1つまたは複数のハードワイヤード処理エンジンまたはそのサブセットによって実行されるRNA分析などの、RNAに対して様々な分析を実行するために構成され得る。
たとえば、いくつかの実施形態では、RNAから導出されるゲノムデータのリードなどの、DNAおよび/またはRNA配列データにDNAおよび/または配列分析パイプラインを実行するためのデバイスおよび/またはシステムが提供される。そのような事例では、システムは、DNAおよび/またはRNA基準配列、たとえばRNAで導出されるゲノム基準データ、1つまたは複数のDNAおよび/またはRNA基準配列のインデックス、ならびに、DNAおよび/またはRNA基準配列の各々と配列データの複数のリードがヌクレオチドの配列を含む場合などのゲノムデータの複数のリードのうちの1つまたは複数を記憶することなどのためのメモリと、本明細書で開示されるような集積回路との、1つまたは複数を含み得る。具体的には、集積回路は、複数の物理的な電気インターコネクトによって相互接続され得るハードワイヤードデジタル論理回路のセットで形成され得る。そのような事例では、複数の物理的な電気インターコネクトの1つまたは複数は、メモリにアクセスするために集積回路のためのメモリインターフェースを含み得る。さらに、ハードワイヤードデジタル論理回路は、処理エンジンのセットとして構成されることがあり、たとえば処理エンジンの1つまたは複数がハードワイヤードデジタル論理回路のサブセットで形成され、配列データの複数のリードに対してDNAおよび/またはRNAゲノム配列分析パイプラインにおける少なくとも1つのステップを実行するように構成される。様々な事例において、RNAで導出されるゲノムデータのリードは、試料RNAを直接シーケンシングすることによって、または、逆転写されたcDNAなどの試料RNAから導出された何らかのさらなる産物をシーケンシングすることによって得られたリードを示すことがあり、得られるRNAデータのソースに関して一般性を含む、「RNAリード」または「RNAデータのリード」として本明細書において言及されることがある。
より具体的には、処理エンジンのセットは、DNAおよび/またはRNAマッピングモジュール、アライメントモジュール、ソートモジュール、および/またはバリアントコールモジュールを含むことがあり、バリアントコールモジュールはHMMモジュールおよび/またはSmith-Waterman(SW)モジュールを含むことがある。たとえば、第1の構成では、本明細書で開示されるようなハードワイヤードデジタル論理回路は、メモリインターフェースを介して、複数のリードのうちの選択されたリードの中のヌクレオチドのDNAおよび/またはRNA配列の少なくともいくつかと、1つまたは複数のDNAおよび/またはRNA基準配列のインデックスとに、メモリにおいてアクセスし、マッピングされたリードを産生するためにインデックスに基づいて1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントに選択されたRNAおよび/またはDNAリードをマッピングするように構成され得る。RNAマッピングなどに関する特定の事例において、RNAマッピングモジュールは、短い固定シードマッピング、アノテーションされたスプライス部位のルックアップ、および/またはシード連鎖のスキャフォールド形成などのうちの1つまたは複数を、RNAマッピングステップに関して実行するために構成され得る。
同様に、ハードワイヤードデジタル論理回路の第2の構成では、アライメントモジュールが提供されることがあり、アライメントモジュールは、たとえばマッピングモジュールからのマッピングされたDNAおよび/またはRNAリードを1つまたは複数のDNAおよび/またはRNA基準配列の1つまたは複数のセグメントの中の1つまたは複数の場所にアライメントしてアライメントされたリードを産生するために、メモリインターフェースを介してメモリから1つまたは複数のDNAおよび/またはRNA基準配列にアクセスするために構成される。RNAアライメントなどに関する特定の事例では、RNAアライメントモジュールは、スプライス部位の縫合、および/またはスプライシングされたリードのアライメントなどのうちの1つまたは複数を、RNAアライメントステップに関して実行するために構成され得る。
したがって、様々な事例において、ハードワイヤードデジタル論理回路が提供されることがあり、デジタル論理回路またはそのサブセットは、RNA分析パイプラインにおいて1つまたは複数のステップを実行するための構成された、たとえば事前に構成された処理エンジンのセットを含むように適合され得る、マッピングおよび/またはアライメントモジュールを含み、たとえば、上記の1つまたは複数のステップは、短い固定シードマッピング、アノテーションされたスプライス部位のルックアップ、シード連鎖のスキャフォールド形成、スプライス部位の縫合、スプライシングされたリードのアライメント、ならびに/または、遺伝子分析パイプラインなどにおける、マッピング動作および/もしくはアライメント動作を実行することについての1つまたは複数の他の関連するステップを含むことがある。
加えて、いくつかの事例では、バリアントコールモジュールが提供されることがあり、バリアントコール(VC)モジュールは、ハードワイヤードデジタル論理回路の第3の構成などにおいて、アライメントされたDNAおよび/またはRNAリードと基準配列の少なくとも1つとにアクセスし、下記のステップの1つまたは複数を実行するように構成される。たとえば、VCモジュールは、アライメントされたDNA/RNAリードにおけるヌクレオチドの配列と、少なくとも1つの遺伝子基準配列の中のヌクレオチドのDNA/RNA配列との間の1つまたは複数の差異を決定し、1つまたは複数の差異を表す1つまたは複数のバリアントコールを生成するために、アライメントされたDNAおよび/またはRNAリードの中のヌクレオチドの配列を、少なくとも1つの遺伝子基準配列のヌクレオチドの配列と比較するように構成され得る。さらに、開示されたICに関して、複数の物理的な電気インターコネクトの1つまたは複数はまた、マッピングモジュールおよび/またはアライメントモジュールおよび/またはバリアントコールモジュールからの結果データを伝えるための、集積回路からの出力を含み得る。
より具体的には、本開示の集積回路は、DNAおよび/またはRNA配列分析パイプラインにおいて1つまたは複数の別々のステップを実行するための1つまたは複数の処理エンジンとして構成される、構成された、たとえば事前に構成されたハードワイヤードデジタル論理回路の、第1の、第2の、第3の、またはさらなるサブセットを含むものなどの、ハードワイヤードデジタル論理回路の1つまたは複数のセットおよび/またはそのサブセットを含み得る。たとえば、ハードワイヤードデジタル論理回路は、1つまたは複数の物理的な電気インターコネクトを介してDNAおよび/またはRNAデータのリードを受け取るために、処理エンジンとして構成されるデジタル論理回路の第1のサブセットを含み得る。加えて、ハードワイヤードデジタル論理回路の第2のサブセットが提供されることがあり、このサブセットは、DNAまたはRNAリードの一部分を抽出してシードを生成するための処理エンジンとして構成され、たとえば、このシードは、短い固定シードマッピングの1つまたは複数を実行することなどのための、リードによって表されるDNAまたはRNAヌクレオチドの配列のサブセットを表す。アノテーションされたスプライス部位のルックアップのための、かつ/またはシード連鎖のマッピングを実行するための処理エンジンなどの、デジタル論理回路の1つまたは複数の追加のサブセットが含まれることがある。さらに、スプライス部位の縫合動作および/またはスプライシングされたリードのアライメントを実行するためのデジタル論理回路のサブセットを含む、デジタル論理回路のサブセットが、RNAデータに対して1つまたは複数のアライメント機能を実行することなどのために、処理エンジンとして含まれ構成され得る。
したがって、本開示の集積回路は、短い固定シードマッピングにおいて1つまたは複数のステップを実行するための、1つまたは複数のデジタル論理回路またはそのサブセットを含み得る。本明細書で詳細に説明されるように、より短いシードで局所的な探索を誘導するためにアンカーとしてより長いシードの一致を使用することなどによって、短いシードマッピング、たとえばハッシュテーブルベースのシードマッピングが、データベースの感度を改善するために実行され得る。ハッシュテーブルベースのマッピングがRNAリードに対してよく機能するようにすることは有用であるが、DNAマッピングに関して感度を向上させることも有用である。具体的には、最初のシードマッピングは、基準DNAおよび/またはRNAゲノムの第1のインデックス、たとえばハッシュテーブルベースのインデックスをクエリするために、ゲノムDNAおよび/またはRNAデータのリードから導出された1つまたは複数のK塩基のシードを使用し得る。そのような事例では、後続の短い固定シードマッピングは、複数の基準ビンの第2のハッシュテーブルベースのインデックスをクエリするために、L塩基のシード(L<K)を使用することなどによって実行されることがあり、たとえば、ここで複数の基準ビンの各々が基準ゲノムの完全なまたは不完全なサブセットであることがある。これも、複数の基準ビンから選択された1つまたは複数のアンカービンの各々を標的にするために、各々のK塩基および/またはL塩基のシードが第1および/または第2のインデックス、たとえばハッシュテーブルベースのインデックスを別々にクエリするために使用される場合には有用であることがある。
そのような事例では、1つまたは複数のデータ構造、たとえば単一のまたは複数のデータ構造が提供されることがあり、ここで、データ構造は、第1のインデックス、たとえばハッシュテーブルベースのインデックスを含むことがあり、さらに第2のインデックス、たとえば第2のハッシュテーブルベースのインデックスを含むことがある。加えて、1つまたは複数のアンカービンが提供される場合、1つまたは複数のアンカービンの標的決定が、プロセスにおいてステップとして含まれることがある。その結果、そのような標的決定は、第1および/または第2のハッシュテーブルベースのインデックスをクエリするために使用されるハッシュ鍵などの、ハッシュ鍵に各アンカービンの識別子を含めることを伴い得る。いくつかの事例では、L塩基のシードクエリなどのための1つまたは複数のアンカービンを、K塩基のシードクエリによって発見された一致に基づいて、たとえばマッピングエンジンの内部で選択することができる。したがって、マッピングエンジンは、一致の位置を出力する前または後で短い固定シードマッピング動作を実行するために構成されることがあり、たとえば、L塩基のシードクエリのためのアンカービンの1つまたは複数は、マッピングエンジンによって出力された一致の位置に基づいてマッピングエンジンの内側または外側で選択される。いくつかの事例では、マッピングエンジンは短い固定シードマッピングを実行することができ、二次マッピング手順は入力されたリードの少なくともサブセットを無視することができる。
加えて、アライメントを実行することに関して、K塩基またはL塩基のシードクエリのための1つまたは複数のアンカービンは、マッピングエンジンの内側または外側で選択されることがあり、ソフトウェアまたはハードウェアのいずれかでアライメントモジュールによって出力されるアライメントに基づくことがあり、たとえば、アライメントエンジンはマッピングエンジンから一致の位置を受け取る。そのような事例では、入力されたリードのサブセットが、アライメントが十分にクリッピングされているリードを含めるために、または除外するために選択され得る。いくつかの事例では、入力されたリードのサブセットが、アライメントのスコアが十分に低いリードを含めるために、または除外するために選択され得る。様々な他の事例において、入力されたリードはペアエンドのリードであることがあり、入力されたリードのサブセットが、適切なペアの構成においてアライメントを欠いているリードのペアを含めるために、または除外するために選択され得る。
さらに、RNA配列分析を実行するためのマッピングモジュールは、1つまたは複数のアノテーションされたスプライス部位のルックアップを実行するために構成される1つまたは複数の処理エンジンを含み得る。スプライス部位のルックアップは、RNA固有のリードのマッピングの感度を改善するために利用され得る。たとえば、ハッシュテーブルベースのインデックスであることもないこともある、RNA基準インデックスを使用してRNAリードの部分をマッピングした後で、基準および/または基準のインデックスと同じメモリなどの中で、「データベース」または任意の他の適切な形式のデータ構造が、生成および/またはクエリされ得る。具体的には、「データベース」は、被験者の種に対して既知のおよび/または決定されているRNAスプライス部位に基づいて生成されることがあり、マッピングされた場所に基づいてアクセスされることがある。各々の既知のスプライス部位は、基準の中の場合によっては長い「イントロン」(最長で1Mbp以上)セグメントを表すことがあり、たとえば、リードのアライメントは一般にイントロンの一方の終点から他方の終点に「ジャンプする」ことに留意されたい。
したがって、データベースは、すでにマッピングされているリードの部分に沿った基準セグメントの各々の中またはその近くに1つの終点を有するが近くのイントロンの終点を超えて延びるリードの別の部分を有し得る、既知のスプライス部位を取り出すような方式でアクセスされ得る。そのような事例では、リードのこの他方の部分は次いで、イントロンを超えてジャンプした後で基準に一致し続けるものとして、以前のマッピング作業がその領域においてそのような一致を何ら検出しなかった可能性があるとしても、暫定的に仮定され得る。より後でスプライシングされるアライメントおよびスコアが次いで、このスプライス部位にまたがるアライメントが実際にどれだけリードとよく一致するかの尺度になり得る。したがって、この方法は、短いエキソン、短いエキソンのオーバーハング、および/または中程度の長さのエキソンセグメントにおいて一致を妨げる編集(SNPなど)などの障害にもかかわらず、リードのスプライシングされた可能性の高いマッピングを検出するための集積回路の能力を向上させることができる。
その結果、集積回路に接続可能なメモリが提供されることがあり、このメモリは、基準ゲノムのインデックスと、その基準ゲノム内のアノテーションされたスプライス部位のリストとを格納する。したがって、マッピングエンジンは、リードの第1の部分を使用して基準のインデックスにアクセスすることなどによって、基準ゲノムの中の一致する位置にRNAで導出されたゲノムデータのリードの第1の部分をマッピングすることができる。マッピングエンジンは次いで、アノテーションされたスプライス部位のリストにアクセスし、イントロン記述子を取り出すことができ、たとえば、イントロン記述子は基準ゲノムの中の第1の終点および第2の終点を含み、たとえば、第1の終点は基準ゲノムの中の一致する位置から限られた距離の中にある。
マッピングエンジンは次いで、基準ゲノムの中の推測される位置にRNAで導出されるゲノムデータのリードの第2の部分をマッピングすることができ、たとえば、基準ゲノムの中の推測される位置はイントロン記述子の基準ゲノムの中の第2の終点に隣接していることがある。マッパは次いで、RNAで導出されたゲノムデータのリードのマッピングされた位置を出力し、たとえば、マッピングされたRNAで導出されたゲノムデータは、基準ゲノムにおける一致する位置および基準ゲノムにおける推測される位置を少なくとも含む。したがって、様々な事例では、アノテーションされたスプライス部位のリストが提供されることがあり、このリストは、複数の基準ビンのうちの1つまたは複数、たとえば各々のためのエントリーを格納するテーブルとして編成され、それにより、基準ゲノムの一区分を形成し得る。アノテーションされたスプライス部位のこのリストは次いで、基準ゲノムの中の一致する位置から限られた距離内の少なくとも1つの基準ビンを決定することと、少なくとも1つの基準ビンに対応するテーブルのエントリーにアクセスすることとを伴う方式で、アクセスされ得る。
そのような事例では、リードの中の実質的なスプライス部位の位置は、基準ゲノムの中のイントロン記述子の第1の終点および第2の終点を使用することによって、リードの第1の部分を使用すること、たとえば基準ゲノムの中の位置を照合することなどによって決定され得る。さらに、いくつかの事例では、リードの中の実質的なスプライス部位の位置がリードの境界の外側にないことを少なくとも要求するために、限られた距離が決定され得る。したがって、たとえば、RNAで導出されたゲノムデータのリードの少なくとも第1の部分を使用し、基準ゲノムの中の一致する位置を使用して、第1のシード連鎖を決定することができる。第2のシード連鎖は、RNAで導出されたゲノムデータのリードの少なくとも第2の部分および基準ゲノムの中の推測される位置を使用することなどによって、決定することができる。第1のシード連鎖と第2のシード連鎖との間のリンクを次いで確立することができ、第1のシード連鎖、第2のシード連鎖、およびそれらの間のリンクの記述子を含む、RNAで導出されたゲノムデータのリードの位置に出力をマッピングすることができる。
またさらに、RNA配列分析を実行するためのマッピングモジュールは、シード連鎖のスキャフォールド形成動作を実行するために構成される1つまたは複数の処理エンジンを含み得る。しかしながら、「シード」連鎖が明細書で言及されるが、そのような「シード」連鎖はハッシュテーブルベースのシードマッピングの文脈に限定されず、この概念は、基準ゲノムのセグメントへのリードの一部分の任意のマッピングに拡張され得ることに留意されたい。そのようなスキャフォールド形成動作は、スキャフォールドのリストへとシード連鎖のリストを変換するのに有用であり、たとえば、各スキャフォールドは、リードの妥当に見えるスプライシングされたアライメントを表す1つまたは複数のシード連鎖の配列である。
様々な事例において、リードの連続的な部分は、基準の単一の染色体の連続的なセグメントに、たとえば一貫した方向および順序でマッピングすることがある。したがって、スキャフォールドのセットを形成する方法は選択的であることがあり、それは、シード連鎖の実質的なリストに対して、それらのシード連鎖の想起可能な配列の数が非常に多いことがあるからである。したがって、スキャフォールドのリストは、あまりにも多くの偽のスキャフォールドを生成することなどがなく、高い信頼度でリードの真のスプライシングされたアライメントを含むのに十分網羅的となるように生成され得る。そのような事例では、各スキャフォールドは、たとえばスプライシングされたアライメントによって後でスコアリングされ得る。
したがって、本開示のマッピングエンジンは、シード連鎖のリストを決定するように構成されることがあり、ここで、シード連鎖のリストの各シード連鎖は、RNAで導出されたゲノムデータのリードの対応する部分と基準ゲノムの対応するセグメントとの間の一致を表す。シード連鎖のリストの調査によって、マッパは次いでスキャフォールドのリストを産生することができ、たとえば、各スキャフォールドは、シード連鎖のリストからの1つまたは複数の別個のシード連鎖の配列を含むことがあり、かつ/または、スキャフォールドは、RNAで導出されたゲノムデータのリードの1つまたは複数の対応する部分の対応するリード部分の配列を示唆する。そのような事例では、リード部分配列は、RNAで導出されたゲノムデータのリード全体で一様な方向に進み得る。同様に、スキャフォールドはさらに、基準ゲノムの1つまたは複数の対応するセグメントの対応する基準セグメント配列を示唆することがあり、基準セグメント配列は基準ゲノム全体で一様な方向に進む。
さらに、スキャフォールドのリストの産生は加えて、基準ゲノムの対応するセグメントの昇順または降順でシード連鎖のリストをソートすることを伴うことがあり、たとえば、スキャフォールドのリストはルールのセットに適合して産生され、ルールのセットは、あるシード連鎖がスキャフォールド内で別のシード連鎖の後にいつ来ることができるかを決定する。ルールのそのようなセットは、リード部分配列の中の連続するリード部分とリード部分の間に、最小および/もしくは最大の許容されるギャップ、ならびに/または、最小および/もしくは最大の許容される重複を含み得る。いくつかの事例では、リード部分配列および基準セグメント配列は、計算されたアライメント対角線のイントロン長の配列が、各リード部分および対応する基準セグメントから次のリード部分にシフトすることを示唆し得る。またさらに、ルールのセットは、イントロン長の配列のための最小の許容されるイントロン長および最大の許容されるイントロン長を含み得る。
さらに、様々な事例において、スキャフォールドのリストの産生は、1つまたは複数の別個のシード連鎖の部分的な配列を有する初期スキャフォールド部分の産生を伴うことがあり、加えて、スキャフォールドのリストの中で少なくとも2つの別個のスキャフォールドを産生することを含むことがあり、少なくとも2つの別個のスキャフォールドのうちの1つまたはすべてが、より長いスキャフォールドへの初期スキャフォールド部分の延長であり得る。スキャフォールドのリストのそのような産生は、RNAで導出されたゲノムデータのリードの各スキャフォールドのネットカバレッジ、および/またはRNAで導出されたゲノムデータのリードの最大のネットカバレッジの間の差異を使用して計算されるフィルタリング尺度などの、計算されたフィルタリング尺度などに従って劣っているスキャフォールドを除去することを伴うことがあり、たとえば最大のネットカバレッジはスキャフォールドのリストにわたって計算される。いくつかの事例では、フィルタリング尺度は、基準ゲノムにおける各スキャフォールドのネットスパンを使用して計算され得る。
示されるように、様々な事例において、ハードワイヤードデジタル論理回路が提供されることがあり、このデジタル論理回路または論理回路のサブセットは、RNA分析パイプラインにおいて1つまたは複数のアライメントステップを実行するための処理エンジンのセットを含むように適合され得るアライメントモジュールを含み、たとえば、1つまたは複数のステップはスプライス部位の縫合および/またはスプライシングされたリードのアライメントを含み得る。具体的には、RNA配列分析を実行するためのアライメントモジュールは、1つまたは複数のスプライス部位縫合動作および/または1つまたは複数のスプライシングされたリードのアライメントを実行するために構成される、1つまたは複数の処理エンジンを含み得る。
具体的には、様々な事例において、部分的なマッピングのペア、たとえば、RNAリードのためのスキャフォールドの中の2つの連続的なシード連鎖などのシード連鎖のペアが、生成および/または別様に提供され得る。様々な事例において、部分的にマッピングされるシード連鎖は、基準の中の潜在的なイントロンをスキップするスプライシングされたマッピングの候補の、2つのエキソンセグメントを表し得る。そのような事例では、アライメントモジュールの処理エンジンは、イントロンがジャンプされた最も可能性の高いリードの中の場所を正確に(accurately)、たとえば高精度に(precisely)に、おおよそ高精度に決定するために適合されるスプライス部位縫合動作を実行するために構成され得る。この結果は、リードの2つの塩基の間に縫合場所があるので、縫合点の左側の塩基が第1のエキソンセグメントにアライメントし、縫合点の右側の塩基が第2のエキソンセグメントにアライメントするというものである。これは、1)多数の潜在的な縫合場所を試験すること、および2)試験結果をスコアリングすることによって行われ得る。そのようなスコアリングは、観察される塩基の不一致の数、および/または、たとえば所与の縫合場所に対応する、基準の中の示唆されるイントロンスパンの2つの端部において観察される標準イントロンモチーフの不在もしくは存在およびタイプなどの、いくつかの異なる基準に基づき得る。
このスプライス縫合動作は、すべての潜在的な縫合場所を考慮するような方式で実行されなければならない場合には実施がリソース集約的かつ/または高価になるであろう、スプライシングされたアライメントのための前処理手順として構成され得る。したがって、アライナエンジンは、RNAで導出されたゲノムデータのリードのためのスプライシングされたマッピングを受け取ることができ、スプライシングされたマッピングは、RNAで導出されたゲノムデータのリードの少なくとも第1の部分および第2の部分と、基準ゲノムの少なくとも第1のセグメントおよび第2のセグメントとを含む。
さらに、アライナエンジンは、RNAで導出されたゲノムデータのリード内の最良の縫合場所を決定するような方式で、スプライス縫合動作を実行するために構成され得る。そのような最良の縫合場所は、各々の検討される縫合場所に関する複数の縫合因子を最適化することによって実行され得る。縫合因子は、たとえば検討される縫合場所の端部に対して長さが調整されるリードの第1の部分と、同じように長さが調整される基準ゲノムの第1のセグメントとの間の、一致の程度を含み得る。縫合因子はさらに、検討される縫合場所において開始するように長さが調整されるリードの第2の部分と、同じように長さが調整される基準ゲノムの第2のセグメントとの間の、一致の程度を含み得る。この事例では、縫合因子はさらに、イントロンモチーフが検討される縫合場所に対応することの尤度を含むことがあり、たとえば、イントロンモチーフは、長さが調整された基準の第1のセグメントに隣接する少なくとも2つの基準塩基と、長さが調整された基準の第2のセグメントに隣接する少なくとも2つの基準塩基とを含む。
様々な事例において、縫合因子をスコアへと組み合わせることができ、数値的に最良のスコアを有する検討される縫合場所を最良の縫合場所として決定することができる。いくつかの事例では、RNAで導出されたゲノムデータのリードの中の少なくとも1つの介在するヌクレオチドにまたがる、第1の検討される縫合場所から第2の検討される縫合場所への遷移が行われ得る。そのような事例では、第2の検討される縫合場所のスコアは、一部には、少なくとも1つの介在するヌクレオチドが基準ゲノムの第1のセグメントにどれだけよく一致するかということと、少なくとも1つの介在するヌクレオチドが基準ゲノムの第2のセグメントにどれだけよく一致するかということとのあらゆる差を考慮するように、第1の検討される縫合場所のスコアを調整することによって計算され得る。いくつかの事例では、最良の縫合場所はギャップなしアライメントモジュールに伝えられることがあり、ギャップなしアライメントモジュールは、基準ゲノムの少なくとも2つの長さが調整されたセグメントの連結への、RNAで導出されたゲノムデータのリードの最良のギャップなしアライメントを決定するように構成され得る。最良の縫合場所は次いで、ギャップ付きアライメントモジュールに伝えられることがあり、ギャップ付きアライメントモジュールは次いで、基準ゲノムの少なくとも2つの長さが調整されたセグメントの連結への、RNAで導出されたゲノムデータのリードの最良のギャップ付きアライメントまたはギャップなしアライメントを決定することができる。
アライナモジュールはさらに、スプライシングされたリードのアライメントを実行するために構成されるエンジンを含み得る。たとえば、スプライシングされたリードのアライメントを実行する際、RNAリードのための複数の部分的なマッピングの配列、たとえば、スキャフォールドの中の連続的なシード連鎖などのシード連鎖を生成することができる。複数の部分的なマッピングは、スプライシングされたマッピングの候補の複数のエキソンセグメントを表すことができ、これらの候補は基準配列の中の1つまたは複数の潜在的なイントロンをスキップすることがある(各イントロンのためのスプライス部位の縫合を受けているなど)。そのような事例では、スプライシングされたアライメント動作は、基準の中の複数のエキソンセグメントの連結に対してリードをアライメントすることによって実行され得る。
具体的には、アライナエンジンが提供され、RNAで導出されたゲノムデータの1つまたは複数のリードのためのスプライシングされたマッピングを受け取るように構成され得る。スプライシングされたマッピングは、RNAで導出されたゲノムデータのリードと、基準ゲノムの1つまたはより多くの、たとえば複数のセグメントを有する1つまたは複数の対応する配列との間の、複数の隣接する部分の配列を決定することを含み得る。アライナエンジンは次いで、これらの配列に対してスプライシングされたアライメント動作を実行して、基準ゲノムの複数のセグメントの配列に対するRNAで導出されたゲノムデータのリードの最良のスプライシングされたアライメントを決定することができる。たとえば、スプライシングされたアライメント動作は、連結部位において接合される基準ゲノムの複数のセグメントの各々を有する集約基準配列へと、基準ゲノムの複数のセグメントを連結することを含み得る。さらに、RNAで導出されたゲノムデータのリードの少なくとも複数の隣接する部分を有するリード配列は、そのような連結部位において生成され接合され得る。
リード配列の最良の配列アライメントは、集約基準配列に関して計算されることがあり、たとえば、最良の配列アライメントは、リード配列の中の連結部位が集約基準配列の中の対応する連結部位にアライメントするように制約される。配列アライメントはスプライシングされたアライメントへと編集されることがあり、この編集は、連結部位に対応するアライメント場所にイントロン記述子を挿入することを含むことがあり、たとえば、イントロン記述子は、基準ゲノムのセグメント間の対応する距離に等しいことがあるイントロン長を符号化する。次いで、アライナエンジンがスプライシングされたアライメントを出力し得る。
そのような事例では、最良の配列アライメントは、すべてのアライメント候補に対する計算されたスコアの中で数値的に最良のスコアを伴うアライメントとして決定されることがあり、各アライメント候補のスコアは、集約基準配列のアライメントされたヌクレオチドに一致しないリード配列の各ヌクレオチドに対する不一致ペナルティを含むように計算される。アライメント候補のスコアはさらに、アライメント候補における各々の挿入もしくは欠失に対するインデルペナルティ、および/またはアライメント候補に含まれる各連結部位に対するスプライシングペナルティなどの、1つまたは複数の他のペナルティを含むように計算されることがあり、たとえば、スプライシングペナルティは、基準ゲノムの隣接しているセグメントと関連付けられるイントロンモチーフに従って少なくとも一部決定される。様々な事例において、集約基準配列は、連結部位などにダミー塩基を含むように構成されることがあり、このダミー塩基は、関連するスプライシングペナルティ値を伝えるために利用されることがある。
これらの事例では、最良の配列アライメントの計算は、スコアリングセルの2次元行列のセルスコアを計算するための動的なプログラミングを伴うことがあり、これらの2つの次元はリード配列および集約基準配列に対応する。そのような事例ではリードの複数の隣接している部分の各々がゾーンIDを割り当てられることがあり、加えて、基準ゲノムの複数のセグメントの各々もゾーンIDを割り当てられることがある。そのようなゾーンIDは、リードの各々の対応する部分および基準のセグメントに対して等しくなるように構成されることがあり、たとえば、スコアリングセルのマトリクスの中の各スコアリングセルは、リードの対応する部分のゾーンIDに等しいセルリードゾーンIDを有する。加えて、セル基準ゾーンIDは、基準の対応するセグメントのゾーンIDに等しくなるように構成されることがあり、最良の配列アライメントは、セルリードゾーンIDがセル基準ゾーンIDに等しいようなスコアリングセルだけを通るように制約され得る。
図5は、垂直軸上の連結されたクエリ配列および水平軸上の連結された基準配列を伴う、抽象的なアライメント長方形を示す。各々の連結された配列のダミー塩基は影付きである(ゾーン3および6)。各軸上のゾーンの境界を示すために、格子がアライメント長方形に重畳している。一致するゾーンIDを伴うサブ長方形が有効なアライメント領域であり、他の(影付きの)サブ長方形は無効なアライメント領域である。有効な例示的なアライメントが示されており、これは、クエリ配列において端から端までであり、第2のエキソンセグメント(ゾーン4)に挿入(垂直方向のセグメント)を、第3のエキソンセグメント(ゾーン7)に欠失(水平方向のセグメント)を含む。有効なアライメントは、スプライス部位を対角方向に通過する(ゾーン3および6)。
連結されたクエリ配列および基準配列を使用したギャップなしまたはギャップ付きのアライメントは正しいアライメントスコアを生み出すが、アライメント追跡(たとえば、CIGAR文字列)は編集を必要とし、それは、まだイントロン(「N」)操作を含まないからである。たとえば、インデルのない100塩基のリードのスプライシングされたアライメントは、CIGARが「101M」であるアライメントから出現することがあり、これは101塩基がインデルなしで対角方向にアライメントされることを意味する。このCIGARにおいて必要とされる調整が2つある。第1に、エキソンセグメント間のダミー塩基がCIGARにおいてカウントされるが、されるべきではない。第2に、イントロン操作、たとえば895塩基の長さが、ダミー塩基の場所に挿入される必要がある。たとえば、正しいCIGARは「40M895N60M」であり得る。
エキソンセグメントの終点を縫合されているものとして定義するシード連鎖を備えるスキャフォールド仮定すると、CIGARの中の各スプライス部位の場所を特定し、ダミー塩基のための「1M」を除去し、適切な長さのイントロン操作でダミー塩基を置き換えることは、簡単な計算である。ローカルアライメントでは、このプロセスは、1つまたは複数のエキソンセグメント全体がアライメントからクリッピングされた可能性を考慮しなければならない。同じ計算のプロセスは、基準ゲノムの中のアライメントの正しい開始場所および終了場所を計算することができる。
アライメントスコア、開始および終了場所、ならびに各々のアライメントされたスキャフォールドのためのCIGAR文字列を取得すると、最良のスプライシングされた可能性のあるアライメントを選択して出力するための処理は、DNA処理と類似している。ペアエンドのアライメント候補が、適切に配置および配向されているアライメントペアを見つけるために調査される。適切なペアではない候補を含むアライメント候補ペアが、ペアになっていないこと、または経験上あり得ないような挿入の長さを有することに対して、スコアペナルティを与えられ、ペアスコアが、各メイトからのアライメントスコアとペアリングペナルティを組み合わせる(加算するなど)ことによって形成され、アライメントの最良のスコアリングペアが選ばれてアライナエンジンから出力される。
2つのメイトリードのアライメントによってカバーされる基準の中のスパンとして普通は測定される、見かけ上の挿入の長さは、一方または両方のメイト内のイントロンにより、または、メイト間のギャップの中の観察されないイントロンにより、極めて長く見えることがある(物理的な挿入ははるかに短い可能性があり、シーケンシングされたRNAまたはcDNA分子の長さであり、ここでイントロンは切り出されている)。したがって、はるかに長い見かけ上の挿入の長さは、適切なペアであると見なされ、0または小さいペアリングペナルティを与えられなければならない。これは、サンプリングされた種における既知のイントロン長の分布、および/または処理されているRNA-seqデータにおける観察される見かけ上の挿入の分布に従って行われ得る。
一実施形態では、処理される各リードに対して、アライメントスコア、開始場所、および符号化されたCIGAR文字列がアライナモジュールから出力される。加えて、別の実施形態では、アライメントの中の各スプライス部位に対して、そのイントロンモチーフおよびアノテーションステータスが出力される。phredスケール「MAPQ」パラメータなどの、マッピング品質または信頼性も、推定され出力され得る。ある好ましい実施形態では、MAPQは、現在のリードに対する異なるアライメントについての、最良のペアスコアと2番目に良いペアスコアとの差異に主に比例して推定される。定義または設定されたスコア差分の閾値内にスコアがある他の限られた数の候補などの、追加のアライメント候補、または二次的なアライメントも、各リードに対して出力されることがある。
上記を参照するなどして、マッピング機能がいくつかの事例では、マッパなどを参照して説明されることがあり、かつ/または、アライメント機能がいくつかの事例では、アライナなどを参照して説明されることがあるが、これらの異なる機能は、アライナと当技術分野では一般に呼ばれている、同じアーキテクチャによって順番に実行され得ることを理解されたい。したがって、様々な事例において、アライメント機能を実行するためにマッピング機能が最初に実行される必要がある事例では特に、本明細書で説明されるようなマッピング機能とアライメント機能の両方が、アライナであるものとして理解され得る共通のアーキテクチャによって実行され得る。
アライメントモジュールからの出力は、マッピング品質スコア(MAPQ)とともに、SAM(テキスト)またはBAM(たとえば、SAMのバイナリバージョン)ファイルであり、この品質スコアは、基準に対するリードの予測されアライメントされる位置が、実際にリードが導出される場所であることの、信頼性を反映する。したがって、各リードがマッピングされると決定され、さらに、各リードがどこでアライメントされるかが決定されると、たとえば、各々の関連するリードが、ある場所と、その場所が正しいアライメントである確率を反映する品質スコアとを与えられ、その結果、被験者のDNAのヌクレオチド配列、ならびに被験者のDNAが基準のDNAとどのように違うかが知られる(たとえば、CIGAR文字列が決定される)と、被験者のゲノム核酸配列を表す様々なリードが染色体の位置によってソートされ得るので、染色体上でのリードの厳密な位置が決定され得る。その結果、いくつかの態様では、本開示は、ソートモジュールによって実行され得るようなソート機能を対象とし、このソートモジュールは、個人からのゲノム試料などからの、生の配列リードデータをとること、ならびに後でソートされ得るそのデータをマッピングおよび/またはアライメントすることを目的とするパイプラインなどの、モジュールのパイプラインの一部であり得る。
より具体的には、リードがどの染色体に属するか、および/またはその染色体の始点からのリードのオフセットを特定することを含み得る、基準ゲノムに対する相対的な場所などの場所がリードに割り当てられることが行われると、リードは場所によってソートされ得る。ソートは下流の分析などにおいて有用であることがあり、これにより、ゲノムの中の所与の場所と重複するリードのすべてが、ソートモジュールを通じて処理された後などに、互いに隣接するようにパイルアップへと形成されることがあり、これにより、リードの大多数が基準値と一致するかどうかを容易に決定することができる。したがって、リードの大多数が基準値と一致しない場合、バリアントコールのフラグを立てることができる。したがって、ソートは、同じ位置をカバーするすべてのリードが物理的に一緒にグループ化されるように、パイルアップを産生するために、同じ染色体の場所などの相対的に同じ場所にアライメントするリードをソートすることを伴うことがあり、基準ゲノムと比較された場合のゲノムの中の本当のバリアントをリードがどこで示し得るかを決定するためにパイルアップのリードを分析することをさらに伴うことがあり、このバリアントは、リードの少数により示され得る機械の読取りエラーまたはシーケンシング方法のエラーなどのエラーから、パイルアップのコンセンサスなどによって区別可能であり得る。
データが取得されると、データをクリーンアップするために実行され得る1つまたは複数の他のモジュールがある。たとえば、個人のゲノム配列を決定することなどのための、配列分析パイプラインに含まれ得る1つのモジュールは、ローカルリアライメントモジュールであり得る。たとえば、リードの端部で発生する挿入および欠失を決定することは難しいことが多い。これは、Smith-Watermanまたは等価なアライメントプロセスが、インデルの存在をスコアリングで検出することを可能にするのに十分な、インデルを超える文脈を欠いているからである。その結果、本当のインデルが1つまたは複数のSNPとして報告されることがある。そのような事例では、任意の所与のリードに対する予測される位置の正確さは、マッピングおよび/またはアライメントおよび/またはソートされたリードデータに対するローカルリアライメントを実行することによって向上することができる。
そのような事例では、適切なアライメントを明らかにするのを助けるために、パイルアップを使用することができ、たとえば、問題の場所が任意の所与のリードの端部にある場合、その場所はパイルアップの中の何らかの他のリードの中央にある可能性が高い。したがって、ローカルリアライメントを実行する際、パイルアップの中の様々なリードは、パイルアップの中のリードの一部が、他のリードがインデルを含まずまたはむしろ置換を含む所与の場所において、挿入または検出がなかったことを示すかどうかを決定するために分析されることがあり、その場所において、次いで、インデルが存在しない場合、基準などへとインデルが挿入されることがあり、その領域と重複するローカルのパイルアップの中のリードが、挿入および/または欠失がなかったときより全体的に良いスコアが得られるかどうかを確かめるためにリアライメントされ得る。したがって、改善がある場合、パイルアップの中のリードの全体のセットを見直すことができ、全体のセットのスコアが改善している場合、その場所に本当にインデルがあったというコールを行うことに疑問はない。このような方式では、任意の個々のリードに対して、染色体の端部においてリードをより正確にアライメントするための十分な文脈がないという事実を、補償することができる。したがって、ローカルリアライメントを実行するとき、1つまたは複数のインデルが位置し得る1つまたは複数のパイルアップが調査され、任意の所与の場所においてインデルを追加することによって、全体的なアライメントスコアが向上し得るかどうかが決定される。
たとえば、個人のゲノム配列を決定することなどのための、配列分析パイプラインに含まれ得る別のモジュールは、重複マーキングモジュールであり得る。たとえば、重複マーキング機能は、シーケンシング段階の間に発生し得る化学的なエラーを補償するために実行され得る。たとえば、上で説明されたように、何らかのシーケンシング手順の間に、核酸配列が、ビーズに付着され、標識されたヌクレオチド塩基を使用してそこから築かれる。理想的には、ビーズごとに1つだけのリードがある。しかしながら、時々、複数のリードが単一のビーズに付着するようになり、これは、付着されたリードの過剰な数のコピーをもたらす。この現象はリード重複として知られている。
そのようなリード重複は、統計を混乱させて統計的なバイアスを作り出すことがあり、それは、すべてのリードが等しく現れるのではなく、2つ以上のビーズに付着された重複テンプレート配列が過剰に現れることなどにより、様々なリードが重複しているからである。したがって、厳密に同じ場所にアライメントし、厳密に同じ長さを有するあらゆるリードが重複である可能性が高いので、リード重複が決定され得る。これがシステムによって特定されると、1つのリードだけがさらなる処理を受けることが必要であり、他のものは重複としてマークされることがあり、したがって廃棄または無視され得る。これが発生する典型的な状況は、一番最初から処理すべき十分な遺伝物質がなく、システムがそれを過剰に補償しようとしている場合である。
たとえば、個人のゲノム配列を決定することなどのための、配列分析パイプラインに含まれ得る別のモジュールは、塩基品質スコア再較正器であり得る。たとえば、1つ1つのリードの1つの1つの塩基が、その場所におけるコールされた塩基が正しくないことの確率を示す、Phredスコアを有する。たとえば、任意の塩基に対するPhredスコアは、その塩基の前の塩基の性質に一部依存し、エラープロファイルは問題の塩基の前にどの塩基が来るかによって異なる。さらに、リードの端部において発生するエラーはより確率が高く、たとえば、リードの端部では、化学的処理が性能を失い始める。塩基品質スコア再較正は、遡ることができる共変分析であり、塩基品質スコアの経験的な品質を、スコアの変化の原因となるもののすべての関数として測定する。
様々な事例において、これは2つのパスを伴い、第1のパスは、すべての実際の経験的な測定されるデータと、すべての変数の関数として観察されるエラーレートについての統計とを集め、第2のパスは、データセットの中で実際に経験的に測定されたものが何であったかに基づいて、変数の関数として1つ1つの単一の塩基の品質スコアを変更するフィルタにすべてのリードを通すことによる、スコアの実際の再較正を伴う。これは、様々な変数が原因のデータのすべての差異を補償し、そのデータおよびスコアをクリーンアップする。すべてのこのクリーンアップの目的は、最良のあり得るバリアントコールが達成されることを確実にすることである。多くのバリアントコーラは、ゲノムの中の各場所でパイルアップするヌクレオチドの各々の報告される品質に一部基づいて、判断を行う。品質スコアが正確ではない場合、誤ったコールが容易に生じ得る。
個人のゲノム配列を決定することなどのための、たとえば配列分析パイプラインに含まれ得る別のモジュールは、圧縮機能を実行する圧縮モジュールであり得る。上で示されたように、何らかの点において、生成および処理されたデータをとり、それをクラウドなどのリモート位置に送信するのが有用であることがあるので、データは処理のある特定の段階において圧縮される必要があることがあり、それにより、データは、圧縮されると、たとえばバリアントコールモジュールの実行のために、クラウドなどに、または、サーバファームなどに、送信および/もしくは別様にアップロードされ得る。一度得られた結果は次いで、電子健康データベースおよび/または研究データベースなどのクラウド上のデータベース上で、解凍され、かつ/またはメモリに記憶されることがあり、これは次いで、三次処理などに利用可能にされ得る。
具体的には、たとえば、被験者からの遺伝子配列データが1つまたは複数の基準配列とどのように異なるかを決定するために、1つまたは複数のバリアントコールファイルを産生することなどのために、マッピング、アライメント、および/またはソートなどが行われることによって、たとえば1つまたは複数の一次および/または二次処理プロトコルにおいて、遺伝子データが生成および/または処理されると、本開示のさらなる態様は、さらなる処理、たとえば三次処理などのための、生成および/または処理された遺伝子データに対して1つまたは複数の他の分析機能を実行することを対象とし得る。たとえば、システムは、本明細書で開示されるデバイスおよび方法などによって、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイントゲノタイピング、MuTect2パイプライン、または他の三次処理パイプラインのうちの1つまたは複数などの1つまたは複数の三次処理パイプラインを通じてシステムを走らせることなどによって、生成されたデータおよび/または二次的に処理されたデータのさらなる処理のために構成されることがある。たとえば、様々な事例において、NIPT、NICU、癌、LDT、AgBio、ならびに、本開示の一次パイプラインおよび/または二次パイプラインおよび/または三次パイプラインのうちの1つまたは複数によって生成されるデータを利用する、他のそのような疾病診断、予防、および/または治療などを含む、疾病診断、治療処置、および/または予防などのために、処理の追加の層が設けられることがある。したがって、本明細書で開示されるデバイスおよび方法は、遺伝子配列データを生成するために使用されることがあり、このデータは次いで、1つまたは複数のバリアントコールファイルおよび/または他の関連するデータを生成するために使用されることがあり、バリアントコールファイルおよび/または他の関連するデータはさらに、特定のおよび/または一般的な疾病診断、ならびに、予防処置および/または治療処置および/または発達療法などのための、本明細書で開示されるデバイスおよび方法に従った他の三次処理パイプラインの実行の対象であることがある。
したがって、本明細書において上に記載されたように、様々な態様において、本開示は、様々な事例において、ハードウェア処理プラットフォームで実装されるものなどの集積回路上で遺伝子データを分析するための1つまたは複数の機能を実行することなどのために、ゲノミクスおよび/またはバイオインフォマティクスプロトコルを実施するための、システム、装置、および方法を対象とする。たとえば、一態様では、バイオインフォマティクスシステムが提供され、システムは、ハードウェア実装形態においてより高速に、かつ/またはより正確に実行されるように最適化されている、様々な生物学的分析機能の実行を伴い得る。したがって、様々な事例において、本明細書で説明される方法およびシステムは、これらの機能を実行するための1つまたは複数のアルゴリズムの実行を含むことがあり、たとえばこのアルゴリズムは、1つまたは複数のハードワイヤードデジタル論理回路で形成される集積回路によって実装されるように最適化されているなど、アルゴリズムはハードウェアの解決法で実装される。そのような事例では、ハードワイヤードデジタル論理回路は、1つまたは複数の物理的な電気インターコネクトなどによって相互接続されることがあり、1つまたは複数の処理エンジンとして機能するように並べられることがある。様々な事例において、複数のハードワイヤードデジタル論理回路が提供され、このハードワイヤードデジタル論理回路は処理エンジンのセットとして構成され、各処理エンジンは、バイオインフォマティクス遺伝子分析プロトコルにおいて1つまたは複数のステップを実行することが可能である。
より具体的には、一事例では、遺伝子配列データなどに対して配列分析パイプラインを実行するためのシステムが提供される。システムは、電子データソース、メモリ、および集積回路のうちの1つまたは複数を含み得る。たとえば、一実施形態では、電子データソースが含まれ、この電子データソースは、遺伝子データの1つまたは複数のリードを表すデジタル信号などの1つまたは複数のデジタル信号を提供するために構成されることがあり、たとえば、ゲノムデータの各リードはヌクレオチドの配列を含む。さらに、メモリは、1つまたは複数の遺伝子基準配列を記憶するために構成されることがあり、さらに、1つまたは複数の遺伝子基準配列のインデックスなどのインデックスを記憶するために構成されることがある。
またさらに、様々な事例において、複数の物理的な電気インターコネクトのうちの1つまたは複数は、集積回路などへの入力を含むことがあり、さらに、ゲノムデータの1つまたは複数のリードを受け取ることが可能となるように、電子データソースと接続されることがある。様々な実施形態において、ハードワイヤードデジタル論理回路は、処理エンジンのセットとして並べられることがあり、たとえば、各処理エンジンは、ハードワイヤードデジタル論理回路のサブセットで形成され、たとえばゲノムデータの複数のリードに対して、デジタル化された遺伝子データなどに対して配列分析パイプラインにおける1つまたは複数のステップを実行するように構成される。そのような事例では、ハードワイヤードデジタル論理回路の各サブセットは、配列分析パイプラインにおける1つまたは複数のステップを実行するようにワイヤード構成であることがあり、たとえば、1つまたは複数のステップは、デジタル化された遺伝子データなどに対するベースコールおよび/もしくはエラー訂正動作のうちの1つまたは複数を実行することを含むことがあり、かつ/または、遺伝子データに対するマッピング、アライメント、および/もしくはソート機能のうちの1つまたは複数を実行することを含むことがある。いくつかの事例では、パイプラインは、リアライメント、重複解消、塩基品質スコア再較正、縮小および/もしくは圧縮、ならびに/または解凍のうちの1つまたは複数を、デジタル化された遺伝子データに対して実行することを含み得る。いくつかの事例では、パイプラインは、遺伝子データに対してバリアントコール動作を実行することを含み得る。
したがって、様々な実施形態において、本明細書で説明されるようなゲノミクスおよび/またはバイオインフォマティクスプロトコルを実施するための、システム、装置、および方法は、典型的にはソフトウェア上で実行されていることがある処理を行うことと、たとえば回路基板105の一部としてチップ100などに、集積回路へとそれらの機能を埋め込むこととを伴うことがあり、たとえば、機能はチップ上での性能を高めるように最適化されている。したがって、一実施形態では、図6および図7に関して分かるように、チップ100が提供され、チップ100は、パイプラインの機能を効率的に実行するように設計されている。様々な特定の実施形態では、チップ100は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、またはストラクチャード特定用途向け集積回路(sASIC)などであり得る。
たとえば、これらのアルゴリズムの1つまたは複数の機能は、FPGAまたはASICまたはストラクチャードASICチップなどへと、チップに埋め込まれることがあり、そのようなハードウェアにおける実装によりさらに効率的に実行するように最適化されることがある。したがって、一実施形態では、FPGAチップが提供され、このチップは、本明細書で詳述される様々なゲノム機能を実行することに関する所与のユーザの需要を満たすことにより適合可能となるように、構成可能であり、たとえばそのプログラミングを変更することができる。そのような事例では、ユーザは、追加の機能を与えること、またはチップ上で最初に提示されたものを交換すること、たとえば異なるアルゴリズムを利用するためにチップを再構成することなどのために、システム全体で強調されることが望まれる重要なパラメータに応じて利用されるアルゴリズムを変更および/または修正することができる。
さらに、別の実施形態では、FPGAまたはストラクチャードASICチップが提供され、このチップは、本明細書で詳述される様々なゲノム機能を実行することに関する所与のユーザの需要を満たすのにより適合可能となるように、たとえば完全に、または限られた程度、構成可能であり、たとえばそのプログラミングの一部を変更することができる。別の実施形態によれば、ASICが提供され、たとえば、FPGAまたはsASICはASICチップに変換され、その機能はチップへと固定され得る。そのような事例では、たとえば、様々なモジュールがどのように機能すると考えられるかを支配する、本明細書に記載されるアルゴリズムの1つまたは複数の機能に関する様々なパラメータなどの様々なパラメータが、ユーザにより選択され得るが、それらのモジュールが実際に機能する方法は固定されている。
様々な実施形態において、図6および図7に関して見られるように、チップ100は、拡張カード104、たとえばPCIeカードを含むperipheral component interconnect(PCI)カードの一部などの、回路基板の一部であることがあり、様々な実施形態において、拡張カードは、自動シーケンサデバイスに通信可能に結合され、たとえば電気的に接続されるなど、自動シーケンサデバイスと関連付けられて、シーケンサとともに重要部分として機能することができ、たとえば、シーケンサによって生成されるデータファイル、たとえばFASTQファイルは、FASTQファイル生成および/または一次処理の直後、たとえばシーケンシング機能が実行された直後などに、二次ゲノム処理などのためにチップへ直接転送される。
したがって、いくつかの事例では、PCIカード104が提供され、PCIカードはPCIeバス105を伴うチップを含むことがあり、カード102および/またはチップ100は、構成制御装置(Cent-Com)などの構成マネージャ、直接メモリアクセスエンジン(たとえば、ドライバ)、API、クライアントレベルインターフェース(CLI)、ライブラリ、ランダムアクセスメモリ(RAM)もしくはダイナミックランダムアクセスメモリ(DRAM)などのメモリ、および/またはDDR3などのチップレベル相互接続のうちの1つまたは複数を含み得る。たとえば、様々な事例において、構成マネージャが含まれることがあり、構成マネージャはパラメータファイルなどによって駆動される。そのような事例では、構成マネージャは、パイプラインの様々なモジュールを構成するように適合され得る。様々な事例において、構成マネージャはユーザが編集可能であり得るので、ユーザが、パイプラインのどのモジュールが使用されることになるかを、たとえばモジュールすべてから、FASTQファイルの特定のセットなどの特定のデータセットなどのためのモジュールのすべてよりも少ないサブセットへと、決定することが可能になり得る。
たとえば、様々な実施形態において、パイプラインの機能は高度に構成可能であるので、チップへと構造化されるものなどのモジュールの1つまたは複数は、望み通りに実行されることもされないこともある。さらに、使用されている各モジュールはまた、1つまたは複数の事前に選択されたパラメータに従って実行するように構成されることがあり、ユーザは、モジュールがどのように実行して振る舞うことになるかということなどに関して、それらのパラメータを制御することができる。したがって、システムの基本的な動作を全体として制御してユーザから隠され得る構成ファイルのセット、ならびに、ユーザによって操作されることが可能であり、それによりチップ100および/またはPCIカード104のサブシステム、たとえばモジュールのうちの1つまたは複数が実行される際の様々なパラメータをユーザが選択することを可能にする構成ファイルの別のセットなどの、2つの異なる構成ファイルのセットがあり得る。
したがって、上で説明されたモジュールのうちの様々なものが、チップへとハードワイヤリングされることがあり、またはチップの外部であるがPCI基板104上などのチップと結合関係にある場所に置かれることがあり、または異なるPCI基板上などのチップから離れた場所に、もしくはクラウド30を介してアクセスされ得るサーバなどの異なるサーバにも置かれることがある。たとえば、いくつかの実装形態では、上で説明されたモジュールの1つまたは複数はチップ100上にハードワイヤリングされることがあり、このチップはスタンドアロンデバイス300の回路基板104に搭載され、またはシーケンサに結合され、それにより、ユーザは、固有の事前に選択されたパラメータに従って、自分で直接システムを構成して実行する。代替的に、本明細書で示されるように、上で説明されたモジュールの1つまたは複数は、クラウド30を介してアクセス可能なシステム上に存在することがあり、パイプライン、および/またはそのモジュールの機能の指示は、ユーザがサーバ、たとえばリモートサーバにログインし、リモートサーバとの間でデータを送信し、それによりデータセットに対してどのモジュールが実行されるべきかを選択することを含み得る。いくつかの事例では、モジュールの1つまたは複数は、クラウドアクセスサーバなどを介してリモートで実行されることがある。
様々な事例において、システムを構成する際、チップ、たとえばPCIカードなどの拡張カード104上のチップ100が、サーバ300に含まれることがあり、これにより、サーバはシステムの様々なアプリケーションを実行する。いくつかの事例では、サーバ300はそれに接続可能な端末を有することがあり、これにより、windowsインターフェースがユーザに提示可能になり得るので、ユーザは、ボックスのメニューからあるボックスを選択することなどによって、実行されるべきモジュールと、そのモジュールが実行される際に用いるべきパラメータとを選択することができる。しかしながら、他の事例では、パラメータファイルは、どのモジュールがどのパラメータに従って実行されるかを選択するために、ユーザが次いで編集することができるファイル名のもとでモジュールによってカテゴリを詳述するテキストファイルであり得る。たとえば、様々な実施形態において、各チップは、ベースコール、エラー訂正、マッピング、アライメント、ソート、ローカルリアライメント、重複マーキング、再較正、バリアントコール、圧縮、および/または解凍モジュールのうちの1つまたは複数などの、モジュールのすべてまたは選抜を含むことがあり、このことにより、ユーザは、個々のモジュールが動作する背後のアルゴリズムの機能を変更することなく、どのモジュールが実行するか、いつ実行するか、およびどのように様々な程度まで実行するかを選択することができる。
加えて、様々な事例において、チップの中の直接メモリアクセス(DMA)エンジン、およびDMAドライバが含まれることがあり、DMAドライバは、カーネルにおいて実行するコードを含む。したがって、DMAドライバは、オペレーティングシステム全体の基盤であり得る。たとえば、カーネルがリテラルアドレッシング空間において実行する場合、その上に階層化されるのは仮想ユーザ空間であり得る。したがって、このオペレーティングシステムのソフトウェアは、仮想空間から物理空間へのマッピングを管理するこれらのレイヤの間で動作する。より具体的には、カーネルは、チップ100が結合されるPCI104、たとえばPCIeバス105へのプラットフォームアクセスを与えるコードの最低のレベルを表す。したがって、様々な実施形態において、チップ100はPCIe拡張バス105を伴う拡張カード104として構成され得るので、この拡張カード104は、シーケンサなどのデバイスの様々なハードウェアに結合されることがあり、DMAドライバは、シーケンサのハードウェアと通信するように機能することがあり、さらに、チップ100の中のDMAエンジンとも通信するためにCPU100上でカーネルレベルで実行するために構成されることがあり、かつ/または、ユーザからの命令を受け取るために仮想ユーザ空間において動作するために構成されることがある。
チップ内で、および/またはチップと1つまたは複数のカードとの間でこの通信を容易にするために、モジュールの1つ1つの単一の設定可能なパラメータがレジスタアドレスに割り当てられ得る。そのような事例では、カードは固有のアドレス空間を有することがあり、このアドレス空間は、メモリの64ギガバイトなどの1つまたは複数のメモリのためのアドレス空間とは異なることがあり、かつ/または、加えて、1つ1つのモジュールが、レジスタと、レジスタに関連付けられるローカルメモリとを有することがあり、ローカルメモリの各々が固有のアドレス空間を伴う。したがって、ドライバは、すべてのものがどこにあるか、すなわちすべてのアドレスを知っており、チップ100、PCIカード104、および/またはサーバのハードウェアの間でどのように通信すべきかを知っている。さらに、すべてのアドレスがどこにあるかを知っており、APIと通信するので、ドライバは、ユーザが生成するパラメータファイルを読み取ることができ、ファイルが実際にホストコンピュータシステムにおいてどこに位置するかをそのパラメータについてルックアップすることができ、ファイルにおいてその値を読み取って解釈し、チップの中の正しい位置にある正しいレジスタにその値を送達する。したがって、ドライバは、様々なユーザにより選択された構成などに関して、選択されたパラメータ命令を送達することを扱うことができ、処理機能のいずれかを構成するためにDMAエンジンを介してそのデータをチップに送る。
具体的には、たとえば、被験者からの遺伝子配列データが1つまたは複数の基準配列とどのように異なるかを決定するために、1つまたは複数のバリアントコールファイルを産生することなどのために、マッピングされ、アライメントされ、かつ/またはソートされることなどによって、たとえば、1つまたは複数の一次および/または二次処理プロトコルにおいて、遺伝子データが生成および/または処理されると、本開示のさらなる態様は、さらなる処理、たとえば三次処理などのために、生成および/または処理された遺伝子データに対して1つまたは複数の他の分析機能を実行することを対象とし得る。たとえば、図8~図11に提示されるようなシステムは、生成されたおよび/または二次的に処理されたデータのさらなる処理、たとえば、本明細書で開示されるデバイスおよび方法などによる、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイントゲノタイピング、MuTect2パイプライン、または他の三次処理パイプラインのうちの1つまたは複数などの、1つまたは複数の三次処理パイプライン700にデータを通すことによるさらなる処理のために、構成され得る。たとえば、様々な事例において、NIPT、NICU、癌、LDT、AgBio、ならびに、本発明の一次および/または二次および/または三次パイプラインのうちの1つまたは複数によって生成されるデータを利用する、他のそのような疾病診断、予防、および/または治療などを含む、疾病診断、治療処置、および/または予防などのための、追加の処理のレイヤ122が提供され得る。
したがって、本明細書で開示されるデバイスおよび方法は遺伝子配列データを生成するために使用されることがあり、このデータは次いで、1つまたは複数のバリアントコールファイルおよび/または他の関連するデータを生成するために使用されることがあり、バリアントコールファイルおよび/または他の関連するデータは、さらに、特定のおよび/または一般的な疾病診断、ならびに、予防処置および/または治療処置および/または発達療法などのための、本明細書で開示されるデバイスおよび方法に従った他の三次処理パイプラインの実行の対象であることがある。
さらに、様々な事例において、APIが含まれることがあり、APIは、システムを構成して操作するために、ユーザが行うことができるファンクションコールのリストを含むように構成される。たとえば、APIはヘッダファイルにおいて定義されることがあり、ヘッダファイルは、機能を記述し、渡されるパラメータ、入力および出力、入ってくるもの、出ていくもの、および返されるものなどの、機能をどのように呼び出すかを決定する。たとえば、様々な実施形態において、パイプラインの要素の1つまたは複数は、ユーザによって入力される命令および/または1つまたは複数のサードパーティアプリケーションなどによって構成可能であり得る。これらの命令は、ドライバと通信するAPIを介してチップに伝えられることがあり、事前に選択されたパラメータ構成のもとで、チップのどの部分が、たとえばどのモジュールが、いつ、どのような順序でアクティブにされるべきかについて、ドライバに命令する。
上で示されたように、DMAドライバは、カーネルレベルで実行し、ハードウェアへのアクセスを提供して適切なレジスタおよびモジュールにアクセスするように機能する固有の非常に低水準の基本APIを有する。このレイヤの上には、サービス機能の仮想レイヤが構築され、これは、カーネルまでファイルを送って結果を得る複数の機能のために使用される基本要素を形成し、より高水準の機能をさらに実行する。そのレイヤの上には、それらのサービス機能を使用する追加のレイヤがあり、これは、ユーザがインターフェースするAPIレベルであり、主に、構成、ファイルのダウンロード、および結果のアップロードのために機能する。そのような構成は、レジスタと通信することと、また、ファンクションコールを実行することとを含み得る。
たとえば、本明細書において上で説明されたように、1つのファンクションコールは、ハッシュアルゴリズムを介してハッシュテーブルを生成するためのものであり得る。具体的には、いくつかの実施形態は、この機能は基準ゲノムに基づくものであり得るので、1つ1つの基準ゲノムに対して1回、基準に基づいてマッパにおいて使用されるハッシュテーブルを構築する必要があることがあり、したがって、この機能を実行するファンクションコールがあり、このファンクションコールは、基準ファイルが記憶される場所のファイル名を受け入れ、次いで、ハッシュテーブルおよび基準を格納する1つまたは複数のデータファイルを生成する。別のファンクションコールは、ハッシュアルゴリズムを介して生成されたハッシュテーブルをロードして、ハッシュテーブルをチップ100上のメモリまで転送し、かつ/または、ハッシュテーブルが存在するとハードウェアが予測する正しい場所にハッシュテーブルを置くことであり得る。当然、アライメント機能の実行のためにも、基準自体がチップ100へとダウンロードされる必要があり、構成マネージャは、チップ100のモジュールがそれらの機能を実行するためにそこになければならないものすべてを、チップ上のメモリまたはチップ100に取り付けられるメモリへとロードすることなどによって、その機能を実行することができる。
加えて、APIは、たとえばFASTQシーケンシングファイルが生成されるとすぐに、シーケンサからFASTQシーケンシングファイルを直接受け取るために、シーケンサの回路基板がチップ100とともに含まれるときにチップ100がその回路基板とインターフェースすることを可能にするように構成されることがあり、APIは次いでその情報を構成マネージャに転送し、構成マネージャは次いで、ハードウェア100の中の適切なメモリバンクにその情報を送り、それによりハードウェアの関連するモジュールがその情報を利用可能になるので、それらのモジュールが、塩基をコールすること、基準ゲノムに関して試料DNAをマッピングすること、アライメントすること、ソートすることなどを行うために、その情報に対する指定された機能を実行することができる。
またさらに、クライアントレベルインターフェース(CLI)が含まれることがあり、CLIは、ユーザがこれらの機能の1つまたは複数を直接コールすることを可能にし得る。様々な実施形態において、CLIは、ハードウェアの使用法を構成するように適合されるソフトウェアアプリケーションであり得る。したがって、CLIは、命令、たとえば引数を受け入れるプログラムであることがあり、単にアプリケーションプログラムをコールすることによって機能を利用可能にする。上で示されたように、CLIは、コマンドラインベースまたはGUI(グラフィカルユーザインターフェース)ベースであり得る。ラインベースのコマンドは、GUIより下のレベルで発生し、ここでGUIは、どのモジュールが使用されるか、およびモジュールが使用するパラメータを、機能ボックスへのクリックを用いて描写する、windowsベースのファイルマネージャを含む。たとえば、動作において、命令される場合、CLIは基準を位置特定し、ハッシュテーブルおよび/またはインデックスが生成される必要があるかどうかを判定し、または、すでに生成されている場合はそれがどこに記憶されているかを位置特定し、生成されたハッシュテーブルおよび/またはインデックスなどのアップロードを指示する。これらのタイプの命令は、ユーザが実行すべきチップを選択できる、GUIにおけるユーザオプションとして現れ得る。
さらに、ライブラリが含まれることがあり、このライブラリは、たとえば祖先分析、または疾病診断、または薬物発見、またはタンパク質のプロファイリングなどのために、ゲノム分析の一部または全体などに関して、ハードウェアの典型的なユーザにより選択される機能向けのファイルなどの、既存の編集可能な構成ファイルを含み得る。そのような分析を実行することなどのための、これらのタイプの事前に設定されるパラメータが、ライブラリに記憶され得る。たとえば、本明細書で説明されるプラットフォームが、腫瘍学の研究などのために利用される場合、事前に設定されたパラメータは、プラットフォームが単に系統を研究することを対象としている場合とは異なるように設定され得る。
より具体的には、腫瘍学では、精度が重要な因子であり得るので、システムのパラメータは、場合によっては速度の低下と引き換えに、精度の向上を確実にするように設定され得る。しかしながら、他のゲノミクスの適用形態では、速度が主要な決定要因であることがあるので、システムのパラメータは速度を最大にするように設定されることがあり、しかしこれはある程度精度を犠牲にすることがある。したがって、様々な実施形態において、様々なタスクを実行するためのしばしば使用されるパラメータ設定が、使用を簡単にするためにライブラリへとプリセットされることがある。そのようなパラメータ設定はまた、システムを実行する際に利用される必要なソフトウェアアプリケーションを含み得る。たとえば、ライブラリは、APIを実行するコードを格納することがあり、さらに、試料ファイル、スクリプト、およびシステムを実行するのに必要な任意の他の付随する情報を含むことがある。したがって、ライブラリは、APIを実行するためのソフトウェアならびに様々な実行可能ファイルをコンパイルするために構成され得る。
様々な事例において、PCI104および/またはチップ100はまた、本明細書で説明される様々なモジュール、たとえばマッパ、アライナ、および/またはソータの実行を支援するために使用され得るメモリなどの、たとえばDDR3インターフェースを伴うランダムアクセスメモリ(RAM)またはダイナミック高速アクセスメモリなどの、メモリを含み得る。たとえば、DRAMは、基準、ハッシュテーブル、および/またはハッシュテーブルインデックス、および/またはリードが記憶され得る場所であり得る。さらに、図9に関して見られるように、メモリは、本明細書で説明される様々な他のモジュール、たとえば114、たとえば、重複解消器、ローカルリアライナ、塩基品質スコア再較正器、バリアントコーラ、圧縮器、および/または解凍器の実行を支援するために使用され得る。たとえば、DRAMは、ソートされたリード、アノテーションされたリード、圧縮されたリード、および/またはバリアントコールが記憶され得る場所であり得る。さらに、メモリは、アライナおよび/または任意の他のモジュールによって利用される様々なメモリモジュールの各々のために別々のインターフェースを含むように構成されることがあり、たとえば、各メモリはファイルレイヤおよび論理レイヤを含むことがある。上で示されたように、複数のメモリおよび/または複数のモジュールがあり得るので、チップレベルの相互接続が、チップ100を通じた通信を支援するために含まれることがある。
したがって、様々な事例において、本開示の装置はチップ100を含むことがあり、このチップは、1つまたは複数の物理的な電気インターコネクトによって相互接続され得るハードワイヤードデジタル論理回路のセットで形成される集積回路を含む。様々な実施形態において、1つまたは複数の物理的な電気インターコネクトは、データを受け取るために電子データソースに接続され得る集積回路への入力を含む。さらに、いくつかの実施形態では、ハードワイヤードデジタル論理回路は処理エンジンのセットとして並べられることがあり、たとえば、各処理エンジンは、ハードワイヤードデジタル論理回路のサブセットで形成されることがあり、ハードワイヤードデジタル論理回路のサブセットは、配列分析パイプラインにおけるステップの1つまたは複数を実行するように構成される。より具体的には、ハードワイヤードデジタル論理回路の各サブセットは、配列分析パイプラインにおける1つまたは複数のステップを実行するようにワイヤード構成であり得る。
様々な事例において、処理エンジンのセットは、マッピングモジュール112、アライメントモジュール113、および/またはソートモジュール114aのうちの1つまたは複数を含むことがあり、たとえば、これらのモジュールの1つまたは複数がワイヤード構成である。たとえば、マッピングモジュールが含まれることがあり、ワイヤード構成である場合、マッピングモジュールは、1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントに複数のリードをマッピングするために、複数の物理的な電気インターコネクトの1つまたは複数などを介して、たとえばメモリから、1つまたは複数の遺伝子基準配列などのインデックスにアクセスし得る。さらに、様々な事例において、アライメントモジュールが含まれることがあり、ワイヤード構成である場合、アライメントモジュールは、1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントに複数のリードをアライメントするために、複数の物理的な電気インターコネクトの1つまたは複数などを介して、たとえばメモリから、1つまたは複数の遺伝子基準配列にアクセスし得る。またさらに、様々な事例において、ソートモジュールが含まれることがあり、ワイヤード構成である場合、ソートモジュールは、1つまたは複数の遺伝子基準配列などから、複数のリードを染色体にソートするために、複数の物理的な電気インターコネクトの1つまたは複数などを介して、たとえばメモリから、1つまたは複数のアライメントされた配列にアクセスし得る。同様の方式で、様々な事例において、ローカルリアライメントモジュール、重複マーキングモジュール、塩基品質スコア再較正モジュール、および/またはバリアントコールモジュールのうちの1つまたは複数が、それぞれの機能を実行するために、上で説明されたモジュールと調和するワイヤード構成などで、チップに含まれ得る。
上で示されたように、様々な事例において、本開示の1つまたは複数の集積回路は、ASIC、FPGA、および/またはストラクチャードASICチップのうちの1つまたは複数などの、1つまたは複数のチップとして構成され得る。たとえば、集積回路は特徴として、シリコンなどの半導体材料の小さなウェハまたは「チップ」上の電気回路のセットである。通常、集積回路は、分離不可能に関連付けられ電気的に相互接続され得る回路素子を含む。プロトタイプのデジタル集積回路は、論理ゲート、フリップフロップ、マルチプレクサ、および、たとえば本開示の動作の1つまたは複数の実行における「0」および「1」の信号のバイナリ処理などのための、マイクロプロセッサまたは他のマイクロコントローラなどの、回路において機能するように構成されるかつ/もしくは構成可能である他の様々な回路素子のうちの1つまたは複数などの、様々な回路素子を含む。
より具体的には、1つまたは複数のマスクプログラマブル論理ゲートが、単一の論理出力を産生するために、1つまたは複数の論理入力に対して、ブーリアン関数を実装することなどの論理演算を実行することのために、構成またはプログラムされ得る。そのような論理ゲートは、ゲートが電気的なスイッチとして動作するような方式で、1つまたは複数のダイオードまたはトランジスタを使用して構成され得る。様々な事例において、論理ゲートは、ブーリアン関数が構成され得るのと類似した方式で直列接続することができ、それにより、ブーリアン論理のすべての物理モデルの構築を可能にし、したがって、本明細書で説明されるものなどの、ブーリアン論理とともに説明され得るアルゴリズムおよび数学的処理のすべてを、本開示の集積回路の論理ゲートにおいて実装することができる。様々な実施形態において、ゲートの集合体が、ゲートアレイ回路などのゲートアレイを形成するような方式で、ウェハ上に存在し得る。
様々な事例において、集積回路は1つまたは複数のフリップフロップも含み得る。フリップフロップは、ラッチとして構成される回路、または少なくともその一部であり得る。通常、フリップフロップは2つの安定状態を有し、1つまたは複数の制御入力に印加される信号などによって一方から他方に変化することができるので、フリップフロップは1つまたは2つの出力を有する。使用において、フリップフロップは状態情報を記憶するために利用され、その結果、逐次論理演算などにおける基本的な記憶素子として展開され得る。集積回路はマルチプレクサも含み得る。マルチプレクサは、デジタル(またはアナログ)入力信号などのいくつかの入力信号のうちの1つを選択するために構成されることがあり、さらに、選択された入力を出力に転送するために構成されることがある。このようにして、マルチプレクサは、ある量の時間および帯域幅の中でネットワークを通じて送信できるデータの量を増やすために使用され得る。
いくつかの事例では、本明細書に列挙されるように、典型的な集積回路は、ここで開示された動作などの動作を実行するために構成されたそのような回路素子を1個から数百万個含むことがあり、様々な回路素子は、わずか数ミリ平方メートルの空間しか占有しない。これらの回路の小さなサイズは、高い速度、少ない電力消費、および製造コストの低減を可能にする。
そのような集積回路は、様々な異なる技術を使用して製作され得るが、一般に、モノリシック集積回路として普通は構築される。たとえば、典型的な集積回路、たとえば半導体は、露光、堆積、およびエッチングなどの約3つの主要なプロセスステップを含むレイヤプロセスなどの、レイヤプロセスにおいて製作され得る。様々な事例において、これらのプロセスステップの1つまたは複数は、ドーピング、洗浄などのさらなる加工ステップによって補足され得る。たとえば、典型的な製作手順では、単結晶シリコンウェハなどのウェハが、集積回路がその上に構築、たとえばプリントされるべき基板として使用するために設けられ得る。次いで、基板の異なるエリアをマークするために、フォトリソグラフィを利用してウェハ上でプリントすることができ、基板は次いで、アルミニウムなどの金属絶縁体などを用いた軌跡によりドーピングおよび/またはプリントされ得る。
通常、集積回路は1つまたは複数の重複する層から構成され、たとえば、各層はフォトリソグラフィによって画定される。一部の層は拡散層を形成することがあり、様々なドーパントが基板の中のどこに拡散したかをマークし、他の層は、追加のイオンがどこに注入され得るかを画定する。追加の層は、導体(たとえば、ポリシリコン、金属層など)、ならびに導通層と導通層の間の接続層を画定し得る。たとえば、ゲート層(ポリシリコンまたは金属)が拡散層と交差する場所ではどこでもトランジスタを形成することができ、様々な事例において、オンチップ抵抗を形成するために蛇行する縞模様を使用することができる。例示的な集積回路は、ASIC、FPGA、および/またはストラクチャードASICを含み得る。
しばしば、集積回路は一般的な用途のために製作される。しかしながら、本明細書で説明される事例のうちの一部などの様々な事例において、集積回路は、たとえば特定用途向け集積回路または「ASIC」を形成するために、カスタマイズされ得る。「スタンダードセルASIC」と一般に呼ばれるASICは、汎用の用途ではなく特定の用途にカスタマイズされている集積回路である。通常、ASICは、いくつかの事例などにおいては、1億ゲートを超える多数の論理ゲートを有することがあり、これらのゲートは、本明細書で開示される動作を実行することなどを目的とする、ROM、RAM、EEPROM、フラッシュメモリ、および他の大きな基本要素を含む、マイクロプロセッサおよび/またはメモリブロックとして構成されるなど、多数の異なる動作を実行するために構成され得る。ASICの固有の特徴は、特定の用途のセットを実行するために構築されるチップであるので、ゲートアレイ設計プロトコルを利用することなどによって、カスタマイズ可能な方式でチップを製作できるということである。
たとえば、ゲートアレイまたはuncommitted logic array(ULA)が、特定用途向け集積回路(ASIC)の設計および製造において使用され得る。そのような事例では、ASICは、ゲート、たとえばNANDゲートのような能動デバイスを有する事前に製作されたチップから製造されることがあり、これらの能動デバイスは、最初は接続されていないことがあるが、たとえば工場などにおいて金属層を追加することによって、ゲートアレイ設計プロトコルなどに従って、後で相互接続されることがある。したがって、ASICを生産することに関して、ゲートアレイ回路は、シリコンチップ回路上で事前に製作することができ、このシリコンチップ回路は、生産時には特定の機能を有しないが、トランジスタ、標準的なNANDまたはNOR論理ゲートのうちの1つまたは複数を含み、事前に定義された場所に配置されウェハ上で製造され得るさらなる他の能動デバイスを有することがあり、このウェハはこの事例では「マスタースライス」と呼ばれることがある。したがって、決定された指定された機能を有する回路の作成は、製造プロセスの後の方でマスタースライス上のチップに最後の表面層または金属配線の層を追加し、これらの素子を接合して、たとえば設計プロトコルに従って、チップの機能が望み通りにカスタマイズされることを可能にすることによって、成し遂げられ得る。
より具体的には、ゲートアレイ設計プロトコルは、上で説明されたものなどの様々な拡散層、たとえばトランジスタおよび他の能動回路素子が、汎用ウェハの上で事前に画定され構築されるが、様々な回路素子が接続されないままとなるようにメタライゼーションの前に保管されるような、製造方法を利用する。そのような事例では、チップは次いで、後の時点において、最終的なデバイスの配線を定義する物理設計プロセスなどによって、様々な特定用途のパラメータに従ってカスタマイズされ得る。たとえば、普通は、カスタマイズを待っているゲートアレイマスタースライスが、大量に事前に製作され貯蔵される。アプリケーション回路は、所望の機能を実行するのに十分なゲート、配線、および/またはI/Oピンを有するような方式で、ゲートアレイ上に構築されなければならない。
要件は変化することがあるので、ゲートアレイウェハはしばしば、より多くの、たとえばすべてのリソースを有するがそれに対応してより高価であるより大きな部材、および、リソースの選択が限られているがより安価でもあるいくらか小さな部材を含む、標準の群で現れる。正しいウェハ標準が、選択された機能を実行するために必要なリソースの数に基づいて選ばれなければならない。展開されるべきリソースの量は、どれだけのゲートおよびI/Oピンが必要かをカウントすることなどによってかなり容易に決定され得るが、必要なルーティングトラックの量は大きく変化することがあるので、注意深く選択されなければならない。しかしながら、マスタースライスはいくらか事前に製作されているので、個々の設計プロトコルの仕様に従って、設計および製造を、スタンダードセルまたはフルカスタム(FPGA)設計と比較してより短い時間で終えることができる。このような方式では、より少数のカスタムマスクしか生産する必要がないので、このゲートアレイ手法はマスクコストを減らす。加えて、テストツールを製造するリードタイムおよびコストも減り、それは、同じダイサイズで製造されるすべてのゲートアレイ製品に対して、同じ試験治具を使用できるからである。
そのような事例では、そのような標準的なセルチップ、たとえばASICの製造は、2個から9個、または10個、または12個、またはより多くの堆積層を含むことがあり、たとえば、後続の金属層の1つまたは複数、たとえばすべてが、その下にある層に対して垂直方向にある。そのような製造方法は、最後のメタライゼーションプロセスを高速に実行できることで比較的短い構築期間でいくらかカスタマイズされたチップ設計を実現するので、有用である。しかしながら、そのようなゲートアレイチップ、たとえばASICはしばしば、「在庫」のウェハへと所与の設計をマッピングすることは通常は100%の利用率を与えないので、妥協案である。ASICに関する別の欠点は、数百万ドルに達することがある非反復エンジニアリング(NRE)コストである。それでも、ASICのユニット当たりの生産コストは、比較的かなり低いことがある。
カスタマイズ可能なチップの生産のための、スタンダードセルASICに代わるものは、フィールドプログラマブルゲートアレイ、すなわち「FPGA」である。FPGAは、書き換え可能なプログラマブル論理ブロックおよび配線を利用することで、同じFPGAが、多くの異なる用途に使用されるように、または経時的に多数の異なる方法で同じ用途に使用されるように、設計され少なくとも部分的に再設計されることを可能にする。より具体的には、フィールドプログラマブルゲートアレイは、顧客または設計者などによって、たとえば製造の後に、1回または多くの回構成されるように設計される集積回路である。
典型的には、FPGAは、たとえば複雑なデジタル計算を実施するために構成され得る、論理ゲートおよび/またはメモリ、たとえばRAMのブロックの大量のリソースを有する。たとえば、FPGAは、「論理ブロック」と呼ばれるプログラマブル論理コンポーネント、ならびに、それらのブロックが「一緒に配線される」ことを可能にする多数の再構成可能な配線、たとえば再構成可能な配線の階層を含む。より具体的には、FPGAは、本明細書で詳述された動作を実行することに関するものなどの、多種多様な複雑な組合せの機能を実行するように構成され得る論理ブロックを形成するために、様々な異なる構成において相互に配線され得る多数の変更可能な論理ゲートを有し得る。様々な事例において、FPGAの論理ブロックは、単純なフリップフロップなどのメモリ素子、またはROMもしくはRAMなどのより完全なメモリブロックを含むように構成され得る。FPGAの設計は、非常に高速なI/Oおよび双方向データバスを利用するので、いくつかの事例では、セットアップおよびホールドタイム内に有効なデータの正しいタイミングを検証するのは難しいことがある。したがって、いくつかの事例では、適切なフロアプランにより、FPGA内でのリソース割振りがこれらの時間的な制約を満たすことが可能になり得る。したがって、FPGAは、スタンダードセルASICが実行できるあらゆる論理機能を実装するために使用され得る。しかしながら、出荷後に機能を更新する能力、設計の一部分の部分的な再構成、およびASIC設計に対して相対的に低い非反復エンジニアリングコスト(ユニット当たりのコストが全般的に高いにもかかわらず)は、多くの用途に対して利点を提供する。
いくつかの事例では、典型的なFPGA製作の粗粒度のアーキテクチャ手法が、完全な「プログラマブルチップ上のシステム」を形成するために、従来のFPGAの論理ブロックおよび配線を、組込みマイクロプロセッサおよび関連する周辺機器と組み合わせるような方式で、実行され得る。いくつかの事例では、本開示のFPGAは、「ランタイム」に再プログラムされる能力を有することがあり、本明細書で開示される方法によれば、再構成可能なコンピューティング、または再構成可能なシステム、たとえば本明細書で開示される動作に適合するように自身を再構成することができるCPUの生産を、可能にし得る。いくつかの事例では、ソフトウェア構成可能なマイクロプロセッサが、同じチップ上に存在し得るプロセッサコアおよびFPGA様のプログラマブルコアのアレイを提供するために利用され得る。
一般的なFPGAアーキテクチャは、構成可能な論理ブロック、I/Oパッド、および/または1つまたは複数のルーティングチャネルのアレイを含み得る。通常、論理ブロックは1つまたは複数の論理セルを含むことがあり、典型的なセルは、出力を産生するように機能する、4入力のLUT、全加算器(FA)、および/またはフリップフロップなどを含み得る。様々な事例において、出力は同期しているか同期していないかのいずれかであり得る。アプリケーション回路がFPGAへとマッピングされることがあり、含まれるべき論理ブロック、I/O、およびルーティングトラックの数は、設計から決定することができ、この数は変化することがある。未使用のルーティングトラックは、何も利益をもたらすことなくコストを上げて集積回路の性能を下げることがあるので、ルーティングトラックの数は、プロセスが過剰になることなくルーティングされるべきルックアップテーブル(LUT)およびI/Oに関して収まるのに十分であるべきであることに留意されたい。さらに、クロック信号は普通は特別な専用のルーティングネットワーク(たとえば、グローバルバッファ)を介してルーティングされるので、それらおよび他のそのような信号を別々に管理することができる。
本明細書で開示されるようなFPGAはまた、1つまたは複数の乗算器、汎用のDSPブロック、組込みプロセッサ、高速I/O論理、および/または組込みメモリなどの、シリコンに固定されたより高いレベルの機能を含み得る。シリコンウェハに埋め込まれるこれらの一般的な機能を含むことは、必要とされる面積を減らし、それらの機能により速い速度を与える。開示されるFPGAは、最終製品を代表し得るスタンダードセルASICまたはストラクチャードASICチップなどの、「使用のための」チップの生産の前に最終設計を検証することなどのために、プレシリコン検証、ポストシリコン検証、およびファームウェア開発を含む、システム検証のために使用され得ることに留意されたい。
本明細書で説明されるような必要な機能を有する、FPGAなどの例示的な集積回路の生産において、以下のステップの1つまたは複数を、任意の論理的な順序でたどることができる。まず、ハードウェア記述言語(HDL)またはスケマティック設計が与えられ得る。次いで、テクノロジーマッピングされたネットリストを生成するために、電子設計自動化ツール、たとえばCADを利用することができる。次いで、適切な配置配線(place-and-route)ソフトウェアに従って、配置配線と呼ばれるプロセスを使用することなどによって、ネットリストを実際のFPGAアーキテクチャに合わせることができる。設計および検証プロセスが完了すると、生成されるバイナリファイルが、FPGAを(再)構成するために使用され得る。
典型的な設計プロトコルのフローでは、設計は設計プロセス全体で複数の段階においてシミュレーションされ得る。最初に、VHDLまたはVerilogなどでのRTL記述が、システムをシミュレーションして結果を観察するためのテストベンチを作成することによって、シミュレーションされ得る。いくつかの事例では、合成エンジンが、提案された設計をネットリストにマッピングすることができ、合成エンジンが設計をネットリストにマッピングした後で、ネットリストはゲートレベルの記述に変換され得る。この段階において、たとえば再び、シミュレーションを実行して、合成がエラーなく進行したことを確認することができる。次いで、設計をFPGAにおいてレイアウトすることができ、この時点で伝播遅延を追加することができ、これらの値が、1つまたは複数のASICまたはストラクチャードASICベースのチップの生成などにおいて、最終的な検証およびさらなる製作の前などにネットリストへバックアノテーションされた状態で、たとえば再び、シミュレーションを実行することができる。
したがって、ASICとFPGAとのハイブリッドがストラクチャードASICであり、これはFPGAとASICの間にある。上で開示された従来の「スタンダードセルASIC」は通常は高価であり、たとえば極めて高価であり、開発に時間がかかる。たとえば、スタンダードセルASICを開発する際に、フォトリソグラフィマスクの大きなセットが、各スタンダードセルASIC設計に対して生産され得る。しかしながら、初期開発におけるこの先行投資が行われた後は、典型的な生産コストは非常に低くなり、電力、周波数、および論理容量に関する動作パラメータを容易に最適化することができる。
代替的に、スタンダードセルASICとは異なり、プログラム可能論理回路を含む典型的なFPGAおよび/またはCLPDは、開発が比較的高速かつ安価であり、それは主に、すでに存在するデバイスが電気的にプログラムされ、フォトリソグラフィマスクが必要とされないからである。しかしながら、電力、周波数、および論理容量などの動作パラメータに関して、これらがスタンダードセルASICと比較すると悪く、ユニット当たりのコストは、特に大容量のデバイスに対しては非常に高いことがある。
一方、ストラクチャードASICは、これらの2つの間の妥協案である。ゲートアレイと異なり、ストラクチャードASICは事前に定義されたまたは構成可能なメモリおよび/もしくはアナログブロックを含む傾向がある。したがって、開発コストはスタンダードセルよりはるかに低く、それは、構成可能な金属層などのために、少数のリソグラフィマスクしか各ストラクチャードASIC設計に対して生産されなくてよいからである。また、ユニット当たりの生産コストはスタンダードセルより大幅に高いが、それでもFPGAユニットのコストよりはるかに低い。電力および周波数に関して、これらはスタンダードセルとFPGAとの間の妥協案であるが、論理容量は最大のFPGAと同様である。したがって、多くの事例では、ストラクチャードASICは、新しいカスタム集積回路を開発するための先行のコストおよび時間を減らすことができる技術であり得る。
ストラクチャードASICの設計および製作に関して、一連のストラクチャードASICが開発され得る前に、まず、スタンダートセルASICの方法を使用することなどによって、「マスタースライス」を開発することができる。上で示されたように、マスタースライスは、1つまたは複数のトランジスタ、メモリまたはメモリセル、入力/出力セル、位相ロックループ、または他のクロック生成源などの、典型的な集積回路層の大半を含み得る。任意選択で、マスタースライスは、フリップフロップ、ラッチ、および/またはマルチトランジスタ組合せゲートを含み得る。コンポーネント間のローカルの配線のうちのいくらかの量がマスタースライスに含まれ得るが、完全な論理設計を実装するための配線の大半を、後で追加するなど、省略することができる。マスタースライスは理論的には、大きな複雑なモジュールを場合によっては含む、スタンダードセルASICに対して適切な任意の論理を含むように構築することができ、マスタースライス論理の動作パラメータ(電力、周波数、論理容量)は、スタンダードセルASICの場合のように最適である。フォトリソグラフィマスクはマスタースライスの内容のために生産されることがあり、マスクセットはスタンダードセルASICマスクセットと同様であり、またはいくらかより小さい。したがって、マスタースライスは、ある特定の方法で機能するようにハードワイヤリングされていることがある、またはまだハードワイヤリングされていないことがある、デジタル論理回路のセットを含む。
マスタースライスの構築に続いて、一連の1つまたは複数の完全なストラクチャードASICを、同じマスタースライス上に構築することなどによって、実装することができる。通常は、多くのストラクチャードASIC設計が、多数のプロジェクトにわたってマスタースライスのコストを償却するために、同じマスタースライスを利用する。各々の個々のストラクチャードASIC設計は、マスタースライスの中のコンポーネント(たとえば、トランジスタなど)の間で新しいワイヤード接続のセットを決定することによって実装することができ、このことは実質的に、マスタースライスのコンポーネントを、より高いレベルのゲート、フリップフロップ、ラッチ、メモリ、および大きく複雑な論理モジュールへと構築する。したがって、これらの決定されたワイヤード接続は、マスタースライスの頂部に製作される少数の追加の「構成可能な」金属層904Aおよび904Bにおいて、たとえばその構成可能な金属層の中の配線によって、金属パッド、またはビアをマスタースライスの中で接続することなどによって、実装され得る。これらの追加の金属層は、各々のストラクチャードASIC設計のプロジェクトにカスタマイズされ得るので「構成可能」と呼ばれるが、それらは製作時間が固定されており、実装される論理設計が提供する場合を除いて電気的に再配線することができない。任意の数の構成可能な金属層があり得る。
したがって、大半のあらゆる想起可能な論理設計は、すべての必要な論理設計要素を形成するのに十分な論理リソース(トランジスタ、メモリなど)をマスタースライスが含む限り、そのマスタースライスおよび適切な金属配線層を使用して実装することができる。構成可能な金属層の数は、ストラクチャードASIC設計のフローごとに異なるが、典型的には、1個から5個程度の構成可能な金属層の間にあり得る。構成可能な金属層に対応する、フォトリソグラフィマスクの小さな追加のセットを生産することができ、デバイス製作において、完全なストラクチャードASICダイのウェハを構築するために、完全なマスクのセット(マスタースライスマスクおよび構成可能な金属層マスク)を使用することができる。代替的に、マスタースライスウェハは、バルクとして事前に製作されることがあり、後の製作ステップにおいて、特定のストラクチャードASIC設計の完全なウェハに金属層が追加される。
有利には、ストラクチャードASICマスタースライスは、たとえば第1の設計者によってあるステップにおいて設計され得るが、そのマスタースライスに基づく特定のストラクチャードASIC論理設計は、ストラクチャードASICの設計者のサービスを利用する様々な他の設計者などによって、第2のステップにおいて設計され得る。具体的には、様々な関係者が通常、RTL(レジスタ転送論理)コード開発、シミュレーション、エミュレーション、回帰試験、デバッグなどの、所望の集積回路の機能に固有の「前工程の」論理設計を担うことがあるが、ストラクチャードASICの設計者は通常、合成、配置配線、静的なタイミング分析、試験論理の挿入、および/またはテープアウトを含む、「後工程の」設計フローを担うことがある。追加の関係者、たとえばファウンドリが、物理的なフォトリソグラフィマスクを生産し、ウェハを製作し、かつ/または、デバイスダイを試験および/もしくはパッケージングするために、利用され得る。様々な事例において、ストラクチャードASICの設計者はまた、特定の適用例の分類に対して、たとえばそのような適用例にカスタマイズされたタイプまたは量の論理リソースを含むように、カスタムマスタースライスを設計することができる。
したがって、事前に定義された金属層がある(よって製造時間が短くなる)こと、およびシリコンウェハ、たとえばマスタースライス上に何があるかが事前に特徴付けられている(よって設計サイクルタイムが短くなる)ことにより、ストラクチャードASICにおけるサイクルタイムおよび設計サイクルタイムを、典型的なASIC製造プロセスと比較して短くすることができる。たとえば、セルベースのASIC設計またはFPGA、たとえばゲートアレイの設計では、ユーザはしばしば、電力、クロック、および試験構造を自分で設計しなければならないことがある。しかしながら、ストラクチャードASICでは、これらは事前に定義されていることがあり、セルベースのまたはゲートアレイのプロファイルと比較して、生産の時間および費用を節約することができる。
具体的には、ストラクチャードASICのための設計タスクは、既知のセルの固定された構成へと回路をマッピングすることである。より具体的には、ストラクチャードASICの比較アーキテクチャは通常、ストラクチャード要素とストラクチャード要素のアレイとの両方などの、2つの主要レベルを含み得る。そのようなストラクチャード要素は、合成機能ブロックと逐次機能ブロックの両方を含むことがあり、これらは、論理要素または記憶要素のいずれかとして機能することができる。加えて、構造要素のアレイに関して、ストラクチャード要素の固定された構成などにおいて、均一なまたは不均一なアレイスタイルを利用することができる。
結果として、ストラクチャードASICの設計では、デバイスの論理マスク層を事前に定義することができる。そのような事例では、設計の差別化およびカスタマイズが、事前に定義されたより下層の論理要素の間でカスタムの接続を作り出すカスタムの金属層を作り出すことなどによって、達成され得る。同様に、ストラクチャードASICのために使用される設計ツールは、セルベースのツールが行う機能のすべてを実行する必要はないので、セルベースのツールを使用するよりもかなりコストが低く簡単(高速)であることがある。より具体的には、既存のスタンダードセルベースのCADツールが設計プロセスにおいて使用され得る。しかしながら、いくつかの事例では、ストラクチャードASICに対して固有に設計されたCADツールが使用され得る。製品固有の配置ツールも使用され得る。さらに、本明細書で開示されるように、ストラクチャードASICのモジュール性を活用し、よりクロックを意識した設計をさらに考慮するために、新しい改善されたアルゴリズムが開発されている。加えて、本明細書で開示される方法は、上で論じられたような、評価および分析プロセスを改良するために利用され得る。
これらの方式では、ストラクチャードASIC技術は、フィールドプログラマブルゲートアレイと標準的なASIC設計とのギャップを埋める橋として働き得る。より具体的には、少数のチップ層しかカスタムで生産される必要がないので、ストラクチャードASIC設計は、1つ1つの設計に対して完全なマスクセットが生産されることが必要な「スタンダードセル」または「フルカスタム」チップよりも、はるかに小さい非反復費用(NRE:non-recurring expenditure)を有し得る。したがって、ストラクチャードASICは、高い性能(典型的なASICの特性)、および低いNREコスト(FPGAの特性)を提供する。したがって、ストラクチャードASICの製作プロセスは、最終製品が市場へと迅速に導入されること、そのコストを低くすること、およびより簡単に設計されることを可能にするために、利用され得る。
しかしながら、いくつかの事例では、配線および論理ブロックが製作の後でプログラム可能であるという点で、FPGAが有利であることがある。FPGAは、設計の柔軟性が高く、プロトタイピングにおけるデバッグが容易である。しかしながら、大きな回路を実装するためのFPGAの容量は、サイズと速度の両方で限られていることがあり、これはいくつかの状況では、プログラム可能なルーティングの固有の複雑さ、および/または様々な含まれるプログラミング要素によって占有され得る大きな空間によるものであり得る。一方、ASICにも、1つ1つの異なる設計が通常は完全に異なるマスクのセットを必要とするという事実に一部よる、高価な設計フローなどのいくつかの欠点がある。したがって、ストラクチャードASICは、これらの2つの間にある解決法であり得る。ストラクチャードASICは基本的にFPGAと同じ構造を有し得るが、フィールドプログラマブルであるのではなく複数の金属層の間の層を介して1つまたはいくつかを構成することによって、ASICなどのようにマスクプログラマブルであり得る。たとえば、1つまたは複数の、たとえば各SRAM構成ビットは、ビアを含むか含まないかのいずれかの選択により、または、様々な金属コンタクト間の選択により、置き換えられ得る。
たとえば、ストラクチャードASICのアーキテクチャに関して、典型的なアーキテクチャはしばしば、細粒度であり、中粒度であり、かつ/または階層的であり得る。細粒度のアーキテクチャはストラクチャード要素の中および外に多くの接続を含み得るが、より高い粒度はストラクチャード要素への接続を減らし、また、サポートできる機能を減らし得る。各々の個々の設計は、様々な粒度において異なるように利益を得る。より具体的には、細粒度のアーキテクチャでは、アーキテクチャは、後で接続することができるトランジスタ、抵抗、および他の制御要素などの、接続されていない個別のコンポーネントを含むストラクチャード要素を含み得る。中粒度のアーキテクチャでは、ストラクチャード要素のアーキテクチャは、汎用論理回路、ならびにゲート、MUX、LUT、および/またはフリップフロップなどの記憶素子を含み得る。代替的に、階層的アーキテクチャでは、アーキテクチャは、たとえばゲート、MUX、およびLUTを含むが、フリップフロップのような記憶素子を通常は含まない、小型のストラクチャード要素を含み得る。他の事例では、この小型の要素はレジスタまたはフリップフロップと組み合わされ得る。
ストラクチャードASICを実装することに関して、様々な製作ステップは、レジスタ転送レベル(RTL)設計、RTLをストラクチャード要素へとマッピングするための論理合成、テスタビリティおよび故障検出率を改善するためのテスト挿入のための設計、各ストラクチャード要素をアレイ要素にマッピングし、各要素を固定された配列に置くための配置、レイアウトのタイミングを改善して各要素の配置を最適化するような方式の物理的な合成、クロックネットワークを分散させてクロックのスキューおよび遅延を最小限にするような方式のクロック合成、ならびに、様々な要素の間への配線のルーティングまたは別様の挿入のうちの1つまたは複数を含み得る。様々な事例において、これらのステップは、任意の論理的な順序で、かつ設計プロセスを論理合成などに関してより単純にするような方式で、ならびに、設計から具体的に実装され得るものを改良するより完全な標的ストラクチャードASICライブラリを構築するのを助けるような方式で、実行され得る。
さらに、プロセッサコアの一部の設計者が、顧客の固有のシリコンデバイスを組み込むために様々な顧客に対してプロセッサ設計を認めることが一般的になっている。そのような組込みコアは、汎用プロセッサのようなARM、PowerPC、Kraitなどを含むことがあり、グラフィクスプロセッサ(GPU)またはベクトルプロセッサなどのより専用のプロセッサも含むことがある。組込みプロセッサコアは、約1または2GHzから約3~6GHz以上などの、高い動作周波数で実行するようにパイプライン化された、大きく複雑な論理モジュールであり得る。そのような高い周波数を達成するために、注意深い物理的なレイアウトおよびルーティングが、プロセッサコアおよび関連するキャッシュメモリのために使用されることがあり、結果として、組込みプロセッサ技術はしばしば、特定のシリコン製作プロセスのために「ハードマクロ」(サブコンポーネントの正確な配置およびルーティングを定義することなどのための)として供給され得る。
しかしながら、そのような組込みプロセッサコアは、構成可能な金属層を使用したストラクチャードASICにおける実装に対して最適な候補ではないことがある。ハードマクロは一般に、ストラクチャードASIC構成可能層に適用されず、組込みプロセッサが、構成可能な金属層においてハードマクロに可能な限り近く実装された場合であっても、周波数が限られている可能性が高く(たとえば、名目の動作周波数の30%または50%)、利用可能なマスタースライスのリソースの非常に大きな部分を消費する可能性が高い。スタンダードセルと比較した、ストラクチャードASICファブリックのこの相対的な面積の非効率性により、組込みプロセッサははるかにより大きな物理的なシリコン面積をカバーするようになることがあり、動作周波数の低下と併せて、面積(またはコスト)に対する性能の比は、同じ組込みコアのスタンダードセルの実装形態よりもはるかに低いことがある。
しかしながら、ハードマクロの使用を含めて、本明細書で開示されるようなスタンダードセル設計方法を使用することなどによって、ストラクチャードASICマスタースライスにおいて効率的に1つまたは複数の組込みプロセッサコアを実装するのは現実的である。これらは、完全な動作周波数および性能を保持し、普通のシリコン面積しか消費しない。プロセッサコアならびに/またはキャッシュの入力および出力の配線は、組込みコアが各々の特定のストラクチャードASIC設計において実装される任意のインフラストラクチャおよび論理モジュールに接続されることを可能にするために、マスタースライスの中の他のリソースに接続され、または有利には、構成可能な金属層のルーティングを受けることがある。このような方式では、組込みプロセッサコアは、マスタースライスを使用して後で実装される多くの様々なストラクチャードASIC設計に対して利用可能なマスタースライスリソースになる。
ストラクチャードASICにおける組込みプロセッサコアは、コア上で実行されるソフトウェア(ファームウェア)が様々なメモリおよび他のリソースを共有してアクセスできるように、オンチップおよびオフチップで、かつ、チップ上の任意のもしくはすべての他の論理モジュールと通信するために、メモリを介して、かつ/または直接、論理インフラストラクチャに接続され得る。このようにして、プロセッサコアは、他の論理モジュールと並列に動作することができ、かつ/または、タスクが他のモジュールによって実行されることをプロセッサコアが要求すること、またはタスクがプロセッサコアによって実行されることを他のモジュールが要求すること、またはこれらの両方などによって、共同作業を完了するために他の論理モジュールと協力することができる。
Bio-ITアクセラレーションモジュール(本明細書で説明されるような、マッピング、アライメント、ソート、重複マーキング、塩基品質スコア再較正、ローカルリアライメント、バリアントコール、圧縮、解凍などを実行するための)が、組込みプロセッサコアとともにFPGAおよび/またはストラクチャードASICにおいて実装されるとき、得られるシステムオンチップ(SOC)は、特に速度と柔軟性の組合せにおいて、重要な利点を有する。ハードウェアアクセラレーションモジュールによって、極限の速度を達成することができ、プロセッサコアの完全なプログラム可能性によって、極限のフレキシビリティを達成することができる。プロセッサコアを再プログラムすることによって、実行されるbio-ITアルゴリズムを簡単に変更することができるが、これらのアルゴリズムは、従来のCPUよりも数桁速く実行することができ、それは、計算集約的な演算がハードウェアアクセラレータにオフロードされ得るからである。通信およびメモリの組織を、プロセッサとアクセラレータの協調的な作業のために最適化することができる。追加のソフトウェアアルゴリズムの加速は、プロセッサコアへの提示のために、パイルアップデータ構造へと基準ゲノムの位置を重複させるリードを編成することなどの、プロセッサコアによって使用されるデータを前処理または後処理することを行うように設計された追加のハードウェアモジュールによって得られ得る。いくつかのプロセッサアーキテクチャでは、命令セットは、接続されたハードウェアリソースを利用するために拡張することができ、Bio-IT SOC環境では、Bio-ITハードウェアアクセラレーション機能にアクセスするために、新しいプロセッサ命令を定義することができる。
下のTable II(表2)に要約されるように、したがって、ストラクチャードASICには、ASICまたはFPGAを上回るいくつかの既製の利点がある。たとえば、様々なコンポーネントを、たとえば様々な事前に定義された構成において、「ほとんど」接続することができ、複数のグローバルなクロックおよびローカルのクロックは作成済みであってよい。したがって、このことは、信号の整合性およびタイミングの問題を本質的が解決されるはずであることを意味する。加えて、少数の金属層しか製作に必要とされないことがある。さらに、標準的なFPGAと異なり、ストラクチャードASICは、スタンダードセルASICに近い容量、性能、および電力消費を有するはずである。このことは、スタンダードセルASICより簡単で高速な設計のプロセスと時間、ならびに、NREコストの低減を可能にするはずであり、ターンアラウンドタイムを大きく減らすはずである。またさらに、スキューの問題に対処する必要もないはずである。
したがって、ストラクチャードASICは、ASICなどよりも低いNREコスト、実装の技術的努力に対するより低い要件、低いマスクツールの費用のうちの1つまたは複数を含むいくつかの異なる有利な特性を、回路素子を配置するのに利用可能な前もって作られたセルブロック構成における、高い性能、少ない消費電力、より少ない製作層、より低い複雑さという追加の利点とともに有し、これらはともにより短い生産時間につながる。しかしながら、ストラクチャードASICにはいくつかの欠点があり、たとえば、適切な設計ツールがないことがあり、このツールおよび処理は高価であり、従来のASICツールから変更される必要があることがある。さらに、これらの新しいアーキテクチャはまだ、公的な評価および比較分析の対象である。そして、3入力、4入力、および5入力のLUTの間に、かつ/または分散されたRAMの複数のサイズの間で、トレードオフがあり得る。
したがって、上記のことに鑑みて、ASIC、FPGA、およびストラクチャードASICには利点と欠点の両方がある。たとえば、スタンダードセルASICは、設計が難しく、長い開発時間を必要とし、NREコストが高いことがある。しかしながら、ASICはまた、大きな設計をサポートし、複雑な設計をサポートし、低い電力消費で高い性能を有することがあるので、低い、またはより低いユニット当たりコスト(大量の場合)をもたらし得る。一方、FPGAは、設計が簡単であり、開発時間が短く、NREコストが低いことがある。しかしながら、FPGAは、設計サイズおよび/または複雑さが限られていることがあり、性能が限られており電力消費が多いことがあり、高い、またはより高いユニット当たりコストをもたらし得る。多くの事例では、ストラクチャードASICは、これらの利点を最大化してこれらの欠点を最小化するように設計され得る。たとえば、一般に、スタンダードセルASIC、ストラクチャードASIC、およびFPGAに対する所与の面積におけるゲートの数の比はそれぞれ約100:33:1であり、(クロック周波数に基づく)性能については100:75:15であり、電力については1:3:12であり得る。
上で示されたように、様々な事例において、本開示のチップ100は拡張カードとして構成されることがあり、たとえば、チップは、PCIeバスを含み、メモリによって囲まれる、メモリによって実質的に囲まれる、メモリによって完全に囲まれるなど、1つまたは複数のメモリと通信するように配置される。様々な実施形態において、チップは、高密度および/または高速なFPGAチップであることがあり、これは様々な事例では、ASICまたはsASICに変換可能であることがある。様々な事例において、チップは、ASICに変換可能なストラクチャードASICであり得る。いくつかの事例では、チップはASICであり得る。
上で示されたように、本明細書で開示されるモジュールは、その中にハードワイヤリングされるなどして、チップのハードウェアにおいて実装されることがあり、そのような事例では、実装形態は、ソフトウェアで実装されるときと比較してより高速に機能が行われ得るようなもの、たとえば、フェッチされ、読み取られ、かつ/または実行されるべき命令が最小限になるようなものであり得る。したがって、固有のハードウェア実装形態を仮定すると、本開示のモジュールは、命令をフェッチし、読み取り、かつ/または実行することなどが必要なく、動作パラメータに従って直接機能し得る。加えて、メモリ要件および処理時間を減らすことができ、たとえば、チップ内の通信はメモリにアクセスすることを通じたものではなくファイルを介したものである。当然、いくつかの事例では、チップおよび/またはカードは、並列処理能力を向上させるために、より多くのオンボードメモリなどのより多くのメモリを含むようなサイズであることがあり、これにより、さらに高速な処理速度をもたらす。たとえば、いくつかの実施形態では、本開示のチップは組込みDRAMを含むことがあるので、チップは外部メモリに依存しなくてもよく、したがって、様々な事例において外部の、たとえばホストメモリに依存し得るハッシュテーブルおよびハッシュ関数の代わりにBurrows-Wheelerアルゴリズムが利用され得る場合などに、処理速度のさらなる向上をもたらす。そのような事例では、パイプライン全体の実行は、たとえば開始から終了まで、6分以下で完遂することができる。
上で示されたように、図8に見られるように、任意の所与のモジュールがハードウェア上に配置され得る、または、クラウド上のアクセス可能なサーバ上などハードウェアから離れて配置され得るという、様々な異なる点がある。所与のモジュールがチップ上に配置される、たとえばチップへとハードワイヤリングされる場合、その機能はハードウェアによって実行され得るが、望まれる場合、モジュールはチップから離れて配置されることがあり、この地点において、プラットフォームは、クラウドを介してアクセス可能なサーバなどのリモート位置に関連するデータを送信するための必要な手段を含むことがあるので、特定のモジュールの機能は、ユーザにより選択された所望のプロトコルに従って、データのさらなる処理に関与することがある。したがって、プラットフォームの一部は、本明細書で開示されるモジュールの1つまたは複数の機能に従った1つまたは複数のタスクの実行のための、ウェブベースのインターフェースを含み得る。たとえば、マッピング112、アライメント113、および/またはソート114aが、チップ上に存在し得るすべてのモジュールであり、様々な事例において、ローカルリアライメント114d、重複マーキング114b、塩基品質コア再較正114c、および/またはバリアントコール115のうちの1つまたは複数が、クラウド上で行われ得る。
具体的には、たとえば、被験者からの遺伝子配列データが1つまたは複数の基準配列とどのように異なるかを決定するために、1つまたは複数のバリアントコールファイルを産生することなどのために、マッピング、アライメント、および/またはソートされることなどによって、たとえば1つまたは複数の一次および/または二次処理プロトコルで、遺伝子データが生成および/または処理されると、本開示のさらなる態様は、図8~図11に示されるように、さらなる処理、たとえば三次処理などのために、生成および/または処理された遺伝子データに対して1つまたは複数の他の分析機能を実行することを対象とし得る。たとえば、システムは、本明細書で開示されるデバイスおよび方法などによって、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイントゲノタイピング、MuTect2パイプライン、または他の三次処理パイプラインのうちの1つまたは複数などの1つまたは複数の三次処理パイプライン700および122を通じてシステムを走らせることなどによって、生成されたデータおよび/または二次的に処理されたデータのさらなる処理のために構成されることがある。たとえば、様々な事例において、NIPT、NICU、癌、LDT、AgBio、ならびに、本開示の一次パイプラインおよび/または二次パイプラインおよび/または三次パイプラインのうちの1つまたは複数によって生成されるデータを利用する、他のそのような疾病診断、予防、および/または治療などを含む、疾病診断、治療処置、および/または予防などのために、処理の追加の層800が設けられることがある。したがって、本明細書で開示されるデバイスおよび方法は、遺伝子配列データを生成するために使用されることがあり、このデータは次いで、1つまたは複数のバリアントコールファイルおよび/または他の関連するデータを生成するために使用されることがあり、バリアントコールファイルおよび/または他の関連するデータはさらに、特定のおよび/または一般的な疾病診断、ならびに、予防処置および/または治療処置および/または発達療法などのための、本明細書で開示されるデバイスおよび方法に従った他の三次処理パイプラインの実行の対象であることがある。
上で説明されたように、本明細書で提示されるシステム1は、本明細書で開示されるチップ技術のシーケンサなどによって、遺伝子配列データを生成すること、または別様に取得することを含むことがあり、たとえば、被験者からの遺伝子配列データが1つまたは複数の基準配列またはゲノムとどのように異なるかを決定するために、1つまたは複数のバリアントコールファイルを産生することなどのために、生成された遺伝子配列データのマッピング、アライメント、およびソートのうちの1つまたは複数を含むなど、1つまたは複数の二次処理プロトコルの実行を含むことがある。本開示のさらなる態様は、さらなる処理、たとえば三次処理などのために、生成および/または処理された遺伝子データに対して1つまたは複数の他の分析機能を実行することを対象とすることがあり、この処理は、前述のシーケンサ技術をホストするものと同じチップもしくはチップセット上で、またはそれらに関連して実行されることがある。
第1の事例では、図8に記載されるように、遺伝子配列データの生成、取得、および/または送信などに関して、そのようなデータは、ローカルもしくはリモートのいずれかで産生されることがあり、かつ/または、それらの結果が次いで、ローカルコンピューティングリソース100などによって直接処理されることがあり、または、さらなる処理のために、リモートコンピューティングリソース300などのリモート位置に送信されることがある。たとえば、生成された遺伝子配列データは、ローカルに、かつ直接処理されることがあり、たとえば、シーケンシングおよび二次処理機能は、同じチップセット上に、かつ/または同じデバイス内に収容される。同様に、生成される遺伝子配列データは、ローカルに、かつ間接的に処理されることがあり、たとえば、シーケンシングおよび二次処理機能は、同じ施設または位置を共有するが、ローカルネットワーク100などを介して通信可能に接続されているものの空間により離隔されていることがある、別個の装置によって別々に行われる。さらなる事例では、遺伝子配列データは、NGSなどによってリモートで導出されることがあり、得られるデータは、シーケンサから地理的に離れた位置などの、リモート位置にクラウドベースネットワーク50を通じて送信されることがある。
具体的には、図8~図11に示されるように、様々な実施形態において、ヌクレオチドシーケンサは、チップ上のシーケンサまたはNGSなどによって、オンサイトに設けられることがあり、シーケンサは、ローカルネットワーク接続10などによって、直接または間接的にローカルコンピューティングリソース100と関連付けられる。ローカルコンピューティングリソース100は、データ生成110機構および/もしくはデータ取得120機構のうちの1つまたは複数を含むことがあり、または別様にそれらと関連付けられることがある。そのような機構は、被験者の1つまたは複数の遺伝子配列または被験者のグループに関連する、アナログデータ、デジタルデータ、および/または電磁データなどのデータを、生成することおよび/または別様に取得することのいずれかのために構成される、任意の機構であり得る。
たとえば、そのようなデータ生成機構110は、NGSなどのシーケンサ、チップ上のシーケンサ、または遺伝子配列情報を生成するための他の同様の機構などの、一次プロセッサであり得る。さらに、そのようなデータ取得機構120は、生成された遺伝子配列情報などのデータを受け取るために構成された任意の機構、ならびに/または、これに、データ生成器110、および/もしくは、データを1つまたは複数の二次処理プロトコルにかけることが可能なコンピューティングリソース150を伴うものであることがあり、コンピューティングリソース150はたとえば、本明細書で説明されるような生成および/または取得された配列データに対して、マッパ、アライナ、ソータ、および/またはバリアントコーラプロトコルを走らせるために構成される二次処理パイプライン装置である。様々な事例において、データ生成装置110および/またはデータ取得装置120は、ローカルストレージ200などのために、ローカルネットワーク10などを通じて一緒にネットワーク化されることがあり、または、遺伝子配列情報の一次および/もしくは二次処理に関するデジタルデータなどのデータを、たとえば、リモート処理300および/もしくはストレージ400などのためにリモート位置30などとの間で、送信および/もしくは受信することなどのために、クラウドベースネットワーク30を通じて一緒にネットワーク化されることがある。様々な実施形態において、これらのコンポーネントの1つまたは複数は、本明細書で説明されるようなハイブリッドネットワークによって一緒に通信可能に結合され得る。
ローカルコンピューティングリソース100はまた、生成および/もしくは取得されたデータならびに/またはそれらと関連付けられるデータを編集するために構成される編集器130、ならびに、生成および/もしくは取得および/もしくは編集されたデータを処理し、かつ/または本明細書で説明されるようなシステム1およびそのコンポーネントを制御するために構成されるプロセッサ150などの、編集器130および/またはプロセッサ150を含むことがあり、または別様にそれらと関連付けられることがある。さらに、ローカルコンピューティングリソース100は、生成されたデータおよび/または取得された一次データおよび/または処理された二次データなどのデータを圧縮するために構成される圧縮器ユニット160を含むことがあり、このデータは、ローカルネットワーク10および/またはクラウドネットワーク30および/またはハイブリッドクラウドベースネットワーク50を通じた転送などの前に、圧縮され得る。
特定の事例では、図8および図11に関して分かるように、システム1は、ゲノムパイプライン、エピゲノムパイプライン、メタゲノムパイプライン、ジョイントゲノタイピング、MuTect2パイプライン、または他の三次処理パイプラインのうちの1つまたは複数などの、1つまたは複数の三次処理パイプラインを通じてシステム1を走らせることなどによって、たとえばローカルコンピューティングリソース100および/またはリモートコンピューティングリソース300を介して、生成されたデータおよび/または二次的に処理されたデータをさらなる処理にかけるために構成され得る。そのようなデータは次いで、ローカルに(200)圧縮および/もしくは記憶されることがあり、かつ/または、リモートに記憶されるために転送されることがある。
追加の事例では、システム1は、診断、疾病および/もしくは治療法の発見、ならびに/またはそれらの予防などのための、追加の処理を行うことなどのために構成される、処理モジュールのさらなる層を含み得る。たとえば、様々な事例において、NIPT、NICU、癌、LDT、AgBio、ならびに、本開示の一次パイプラインおよび/または二次パイプラインおよび/または三次パイプラインのうちの1つまたは複数によって生成されるデータを利用する、他のそのような疾病診断、予防、および/または治療などを含む、疾病診断、治療処置、および/または予防などのために、処理の追加の層が設けられることがある。
したがって、本明細書で提示されるのは、グローバルハイブリッドクラウドネットワーク50を生み出して使用するためのシステム1である。たとえば、現在、リモートストレージ位置400などにある、クラウド30が主にストレージに使用されている。そのような事例では、データのコンピューティングはローカルコンピューティングリソース150によってローカルで(100)実行され、ストレージの需要が膨大である場合、リモートストレージリソース400の使用などによって、ローカルコンピューティングリソース150によって生成されたデータを記憶するために、クラウド30にアクセスする。したがって、生成されるデータは通常、オンサイトでローカルに(100)完全に管理されているか、完全にオフサイト300でクラウド30上で管理されているかのいずれかである。
具体的には、バイオインフォマティクス分析プラットフォームの一般的な実装形態では、コンピューティング機能150および/またはストレージ機能200はオンサイトでローカルに維持され、ストレージの需要がローカルストレージの容量を超える場合、または記憶されたデータを他の遠隔のユーザに対して利用可能にする必要がある場合、そのようなデータは、リモートストレージ400のためにクラウドへとインターネット30を介して転送され得る。そのような事例では、コンピューティング機能の実行のために必要なコンピューティングリソース150が最小限であるが、ストレージの要件が膨大である場合、コンピューティング機能150をローカルに(100)維持することができ、一方、ストレージ機能400をリモートで維持することができ、完全に処理されたデータが、ローカル処理などのためだけの処理機能150と、処理されたデータのリモートストレージ400などのためのストレージ機能400との間で、往復して転送される。
たとえば、これは、典型的なNGSなどを用いたシーケンシング機能に関して例示することができ、ここで、コンピューティングリソース150は、遺伝子のシーケンシングされたデータ、たとえばリードを産生するために、遺伝物質のシーケンシングに必要な機能を実行するために構成され、このデータはオンサイトで産生される(100)。これらのリードは次いで、オンサイトのNGSなどによって生成されると、ストレージ施設400から離れた位置、たとえばローカルの位置における、二次および/または三次処理機能のうちの1つまたは複数の実行などのための、さらなる処理などに必要なとき、クラウド30から呼び戻されるような方式で、リモート位置300におけるストレージ400などのために、クラウドネットワーク30などを通じて転送され得る。そのような事例では、ローカルストレージリソース150は、リモートストレージ施設400との間などの、クラウド30との間での転送を待機している間にデータが置かれる、ストレージキャッシュとして機能するにすぎない。
同様に、データを処理するために1つまたは複数のリモートコンピュータクラスタコア300を必要とするなど、コンピューティング機能が膨大である場合、および、コンピューティングリソース300がデータを処理するために必要としたものと比較して、処理されたデータ200を記憶するためのストレージ需要が比較的最小限である場合、処理されるべきデータを、リモートコンピューティングリソース300により処理されるように、クラウド30などを通じて送信することができ、このリソースは、コンピューティングリソースの1つまたは複数のコアまたはクラスタ、たとえば1つまたは複数のスーパーコンピューティングリソースを含み得る。そのような事例では、データがクラウドベースのコンピュータコア300によって処理されると、処理されたデータは次いで、ローカルの分析および/または診断などのために、ローカルに(200)記憶されてローカルコンピューティングリソース150による使用が容易に可能になるように、クラウドネットワーク30を通じて転送され得る。
これは、典型的な二次処理機能に関して例示することができ、たとえば、ローカルに(200)記憶されている前処理されたシーケンシングされたデータ、たとえばリードデータが、ローカルコンピューティングリソース100などによってアクセスされ、処理された結果データを得るためにたとえば二次処理機能においてリモートコンピューティング施設300によりさらに処理されるように、リモートコンピューティング施設300へとクラウドインターネット30を通じて送信され、処理された結果データは次いで、ローカル施設100による記憶200のためにローカル施設100に戻されることがある。これは、ローカルの従事者が、ローカルデータ生成リソース100、たとえば自動シーケンサを使用して、シーケンシングされたリードデータを生成し、次いで、リモートコンピューティング施設300にネットワーク30を通じてそのデータを送信し、リモートコンピューティング施設300が次いで、その配列データに対してBurrows-Wheeler変換またはNeedleman-Wunschおよび/もしくはSmith-Watermanアライメント機能などを実行するなど、そのデータに対して1つまたは複数の機能を実行して結果データを生成し、この結果データが次いで、1つまたは複数のローカルの管理された処理プロトコルにおいてローカルコンピューティングリソース100によって調査され、かつ/またはローカルに(200)記憶されるように、インターネット30を通じてローカルコンピューティングリソース100に送信され得る場合に、当てはまり得る。
しかしながら、必要とされるのは、本明細書で提示されるハイブリッドクラウド(50)ベースのシステムのように、ローカルコンピュータ100の処理とリモートコンピュータ300の処理の、ならびにローカルストレージ200とリモートストレージ400の連動におけるシームレスな統合である。そのような事例では、ローカルコンピューティングリソース100とリモートコンピューティングリソース300が一緒にシームレスに実行するように構成されることで、それにより処理されることになるデータが、転送率および/または動作効率による大きなペナルティを受けることなく、ローカルコンピューティングリソース200またはリモートコンピューティングリソース300のいずれかにリアルタイムで割り振られ得るように、システムを構成することができる。これは、たとえば、コンピューティングリソースによってデプロイもしくは別様に実行されることになるソフトウェアおよび/またはハードウェアが、互いに対応するように構成され、かつ/または、同じである、もしくは機能的に類似している場合、たとえば、ハードウェアおよび/またはソフトウェアが、生成および/または受信されたデータに対して同じアルゴリズムを同じ方式で実行するように同じ方式で構成される場合に、当てはまり得る。
たとえば、図8~図9に関して分かるように、ローカルコンピューティングリソース100は、データを生成するために構成され得るので、たとえば、FASTQ配列ファイルを産生するために、一次データ生成および/または分析などのための、データ生成機構110を含み得る。このデータ生成機構110は、本明細書全体で説明されるように、1つまたは複数のソフトウェアアプリケーションを実行するように構成され得る、かつ/または、生成および/もしくは取得されたデータに対して、ワイヤード構成などである1つまたは複数のアルゴリズムを実行するためにハードワイヤリングされ得る、プロセッサを有するローカルコンピュータであり得る。たとえば、データ生成機構110は、シーケンシングデータ111などのデータを生成することのために構成されることがあり、このデータは、電圧、イオン濃度、電磁放射などの変化として検出可能なデータなどの、検知されるデータ111aであることがあり、かつ/または、データ生成機構110は、関連するヌクレオチドの配列または連鎖の中の1つまたは複数のヌクレオチド識別情報を表すデータなどの信号、たとえばアナログまたはデジタル信号データを、生成および/または処理するために構成されることがある。そのような事例では、データ生成機構110、たとえばシーケンサ111はさらに、配列識別情報データ、たとえばFASTQファイルを産生するために、データなどに対して1つまたは複数のベースコール動作111cを実行するために、生成されたデータを予備的に処理するために構成され得る。
この事例では、そのように生成されるデータ111は、ローカルデータ生成および/もしくはコンピューティングリソース150、たとえばチップ上のシーケンサなどによってローカルに生成されることがあり、または、データ111は、たとえば、リモートNGS300などのリモートコンピューティングリソースおよび/またはリモート生成リソースによって、リモートで生成されることがあるが、さらなるローカル処理150を待機している間などに、ローカルストレージリソース200におけるローカルコンピューティングリソース100による二次処理150および/または記憶などのために、クラウド30/50を通じてローカルコンピューティングリソース100に転送されることがあることに留意されたい。そのような事例では、データ生成リソース300がローカル処理リソース100および/またはローカルストレージリソース200から離れている場合、リモートストレージおよび/またはローカルストレージ、リモート処理およびローカル処理、ならびに/または各リソースにより利用される通信プロトコルが、たとえば、同一の、類似の、および/もしくは等価なソフトウェアを実行することによって、かつ/または、同一の、類似の、および/もしくは等価なハードウェア構成を有することによって、かつ/または、いくつかの事例では製造の時点もしくはその後で実装されている可能性がある同じ通信プロトコルおよび/もしくは転送プロトコルを利用することによって、互いに円滑に、かつ/またはシームレスに統合するように適合され得るように、対応するリソースを構成することができる。
具体的には、これらの機能はハードワイヤード構成で実装されることがあり、たとえば、シーケンシング機能および二次処理機能は、同じもしくは関連するチップまたはチップセット上で維持され、たとえば、本明細書で説明されるようにシーケンサおよび二次プロセッサがチップ上で直接相互接続され、または、シーケンシング機能および二次処理機能は、2つのリモートデバイスが互いにシームレスに通信することを可能にするように最適化されているソフトウェアを介して実装されることがある。本明細書で説明されるように、列挙される機能を実行するための最適化されたハードウェアおよびソフトウェアの実装形態の組合せも利用することができる。様々な実施形態において、シーケンサ111などのデータ生成リソースは、ソフトウェアで実装されるか、かつ/またはハードウェアで実装されるか、またはそれらの組合せで実装されるかにかかわらず、データ生成器111、たとえばシーケンサが、FASTQファイルフォーマット111dなどの生のリードデータへと生物学的情報を変換するのを助けるために、スケジューラ、様々な分析、比較器、記録器、放出器などの、プロセッサ500の初期の層を含むようにさらに構成され得る。
同様に、ローカルコンピューティングリソース100および/またはリモートコンピューティングリソース300によってデプロイされ得る他の機能の実行に関して、同じことが当てはまり得る。たとえば、ローカルコンピューティングリソース100は、処理およびその結果が互いにシームレスに共有され、かつ/またはそれにより記憶され得るような方式で、遺伝子配列データなどの、リモートおよび/またはローカルで生成されたデータに対して、処理機能112~115の1つまたは複数の二次の層700を実行するために構成されるハードウェアおよび/またはソフトウェアを含み得る。具体的には、ローカルコンピューティング機能100および/またはリモートコンピューティング機能300は、たとえばFASTQまたは他の同様のファイルフォーマットの、遺伝子配列データなどの一次データを生成および/または受信し、その生成および/または取得されたデータに対して1つまたは複数の二次処理プロトコル600を実行するために構成されることがあり、このプロトコルは、ソフトウェア、ハードウェア、または組合せのフォーマットで実装されることがある。たとえば、データ生成および/または処理リソース110は、取得または生成されたデータに対して、マッピング動作112、アライメント動作113、または他の関連する機能114のうちの1つまたは複数を実行するために構成されることがある。
より具体的には、データ生成リソース110は、本明細書で説明されるように、マッピングエンジン112を含むことがあり、またはそうでなければ、マッピングされた配列データを生成するために、遺伝子配列データに対してマッピングアルゴリズムを実行すること、たとえば、ハッシュシードマッピングなどのためにハッシュテーブルを構築し、かつ/または前記データにハッシュ関数112aを実行するための、Burrows-Wheeler変換および/または他のアルゴリズムを実行することのための、プログラミングを含むことがある。データ生成リソース110はまた、本明細書で説明されるようにアライメントエンジン113を含むことがあり、またはそうでなければ、アライメントされた配列データを生成するために、遺伝子配列データ、たとえばマッピングされたシーケンシングされたデータに対してアライメントアルゴリズムを実行すること、たとえば、前記データに対してギャップ付きならびに/またはギャップなしのSmith-Watermanアライメント、および/もしくはNeedleman-Wunsch、もしくは他の同様のスコアリングアルゴリズム113aを実行することのための、プログラミングを含むことがある。データ生成リソース110はまた、マッピングおよび/またはアライメントされた配列データなどの遺伝子配列データに対して1つまたは複数の他の処理機能を実行するように適合される1つまたは複数の他のモジュール114を含むように構成されることがあり、したがって、適切に構成されたエンジン114を含むことがあり、またはそうでなければ、本明細書で説明される方法に従った、ソート114a、重複解消114b、再較正114c、ローカルリアライメント114d、重複マーキング114f、塩基品質スコア再較正114gの機能、および/または圧縮機能(BAM、縮小BAM、ならびに/またはCRAM圧縮および/もしくは解凍ファイルを産生することのためなどの)114eなどの1つまたは複数の他の処理機能を実行するためのプログラミングを含むことがあり、これらの処理機能はシステム1の1つまたは複数のパイプラインとして構成されることがある。同様に、システム1は、ハードウェアおよび/またはソフトウェアベースの処理機能などにおいて、バリアントコールファイル116を産生することなどのために、データ、たとえばシーケンシングされ、マッピングされ、アライメントされ、かつ/またはソートされたデータをある方式で処理するために適合されるモジュール115を含むように構成され得る。より具体的には、システム1は、隠れマルコフモデル(HMM)および/またはGATK機能115aなどの1つまたは複数のバリアントコール機能を、たとえば、ワイヤード構成で、かつ/または、たとえばローカルもしくはリモートのいずれかで1つまたは複数のソフトウェアアプリケーションを介して、かつ/または115aのための変換器115bを介して、実行するためのバリアントコールモジュール115を含み得る。
具体的な実施形態では、図8および図10に記載されるように、システム1は、システム生成器110によって生成される、またはシステム取得機構120(以下で説明されるような)によって取得されるデータに対して1つまたは複数のさらなるコンピュータ処理機能を実行するための、コンピュータ処理リソース150を利用するために構成され得るローカルコンピューティング機能100を含むことがあり、このコンピュータ処理機能の実行は、たとえば、クラウド30またはハイブリッドクラウドネットワーク50などを介してたとえばサードパーティ121によって、データがコンピュータ処理リソース150に転送されることなどによって行われる。たとえば、サードパーティの分析器121は、遺伝子配列データなどのさらなる処理を必要とする関連するデータを生成するために、リモートコンピューティングリソース300を展開することがあり、このデータは、さらに処理されるようにネットワーク30/50を通じてシステム1に伝えられ得る。これは、たとえば、リモートコンピューティングリソース300が、生の生物学的データをとり、遺伝子配列データのリードを含む1つまたは複数のFASTQファイルの形式などのデジタル表現へとそのデータを変換するために構成される、NGSである場合、本明細書で説明されたように、個人の生成された配列が1つまたは複数の基準配列とどのように異なるかを決定することなどのためにさらなる処理が望まれる場合、および/または、その結果を、さらなる処理、たとえば三次処理にかけることが望ましい場合に、有用であり得る。
そのような事例では、システム1は、1つまたは複数の関係者、たとえば一次ユーザおよび/または二次ユーザおよび/またはサードパーティのユーザが、生成および/または取得されたデータに対して1つまたは複数の定性的および/または定量的な処理機能152を実行することを可能にするような方式で、関連するローカル処理リソース100、および/またはそれと関連付けられる適切に構成されたリモート処理リソース300にアクセスすることを可能にするように適合され得る。たとえば、一構成では、システム1は、たとえば、一次処理パイプライン600および/または二次処理パイプライン600に加えて、処理モジュールの第3の層700を含むことがあり、この処理モジュールは、生成および/または取得された、一次および/または二次の処理されたデータに対して、1つまたは複数の処理機能を実行するために構成され得る。
具体的には、一実施形態では、システム1は、バリアントコールファイル116を生成するために、リモートもしくはローカルのいずれかでマッピングされ(112)、アライメントされ(113)、ソートされ(114a)、かつ/またはさらに処理された(114)、処理された遺伝子配列データ111を生成および/または受信するために構成されることがあり、このバリアントコールファイルは次いで、セカンドパーティおよび/またはサードパーティの分析要求121などに応答して、システム1内などでのさらなる処理にかけられ得る。より具体的には、システム1は、サードパーティ121からの処理要求を受け取るように構成されることがあり、さらに、生成および/または取得されたデータに対してそのような要求された三次処理700を実行するために構成されることがある。具体的には、システム1は、遺伝子配列データ111を産生および/または取得するために構成されることがあり、その遺伝子配列データを受けて、それをマッピングし(112)、アライメントし(113)、および/またはソートして(114a)1つまたは複数のバリアントコールファイル(VCF)116を産生するために構成されることがあり、加えて、システム1は、たとえば1つまたは複数のVCFに関して、データに対して三次処理機能700を実行するために構成されることがある。システム1は、ジョイントゲノタイピング122d、GATK122e、および/またはMuTect2 122f分析パイプラインを含む、ゲノムデータ122a、エピゲノムデータ122b、メタゲノムデータ122cなどを生成することなどのために、生成および/または取得されたデータを1つまたは複数のパイプライン処理機能700にかけることなどによって、生成および/または取得されたデータに対して任意の形態の三次処理700を実行するように構成され得る。さらに、システム1は、非侵襲的出生前検査(NIPT)123a、N/P ICU123b、癌関連の診断および/または治療法123c、様々な自家調整検査法(LDT)123d、農業生物学的(Ag Bio)アプリケーション123e、または他のそのような医療関連の処理機能123fのうちの1つまたは複数などを含む、生成および/または処理されたデータに対する処理の追加の層を実行するために構成され得る。
したがって、様々な実施形態において、一次ユーザが、本明細書で提示されるような、ローカルコンピューティングリソース100などを通じて、システム1およびその様々なコンポーネントとの直接のアクセスなどを通じて、それらに直接アクセスし、かつ/またはそれらを直接構成できる場合、システム1はまた、二次の関係者によってアクセスされるように適合されてもよく、たとえば、ローカル環境内でシステム1を構成して実行するために、ローカルネットワークまたはイントラネット接続10を介してシステム1に接続される。加えて、いくつかの実施形態では、図2Bに提示されるように、システムは、1つまたは複数のグラフィカルユーザインターフェース(GUI)コンポーネントを通じてアクセス可能な、アプリケーションプログラムインターフェース(API)などを通じて、サードパーティ121をシステム1に接続する関連するハイブリッドクラウドネットワーク50などの上で、サードパーティ121によってアクセスおよび/または構成されるために適合され得る。そのようなGUIは、サードパーティのユーザがシステム1にアクセスすることを可能にするために構成されることがあり、APIを使用して、サードパーティにとって必要かつ/もしくは有用であるシステムコンポーネント、および/または、サードパーティにより実行されることが要求もしくは要望されているシステムコンポーネントのみを実行するように、システム、モジュール、関連するパイプライン、ならびに他の関連するデータ生成および/または処理機能の、様々なコンポーネントを構成する。
したがって、様々な事例において、本明細書で提示されるようなシステム1は、システムの一次、二次、または三次ユーザによって構成可能であるように適合され得る。そのような事例では、システム1は、たとえば一次ユーザ、二次ユーザ、またはサードパーティのユーザによって、生成され、取得され、またはそうでなければシステムに転送されるデータに対して実行されるべき、分析システムリソースのうちの1つ、すべて、または選択されたもの、たとえば152をデプロイするような方式で、ユーザがシステム1を構成してそれによりシステム1のコンポーネントを配置することを可能にするように適合されることがあり、この結果、システム1は、所望の結果を得るためにユーザにより要求された分析を実行するのに必要なまたは有用なシステムの部分だけを実行する。たとえば、これらの目的、および他のそのような目的で、APIはシステム1に含まれることがあり、APIは、システムおよびそのコンポーネントを望み通りに構成して操作するために、ユーザがそこから選択できる、かつ/または別様に行うことができる、システムファンクションコールの操作可能なメニューおよび/または関連するリストを含む、グラフィカルユーザインターフェース(GUI)を含むように、または別様に動作可能にGUIと関連付けられるように構成される。
そのような事例では、GUIメニューおよびシステムファンクションコールは、本明細書で説明される一次および/または二次処理機能などに関連した、本明細書の教示に従ったシーケンシング111、マッピング112、アライメント113、ソート114a、バリアントコール115、および/または他の関連する機能114を含む、動作600の第1の層の1つまたは複数のユーザ選択可能な操作を指示することができる。さらに、望まれる場合、GUIメニューおよび/またはシステムファンクションコールは、ゲノムパイプライン122a、エピゲノムパイプライン122b、メタゲノムパイプライン122c、ジョイントゲノタイピングパイプライン122d、GATK122e、および/またはMuTect2分析パイプライン122fを含む、動作700の第2の層の1つまたは複数の動作を指示することができる。さらに、望まれる場合、GUIメニューおよびシステムファンクションコールは、非侵襲的出生前検査(NIPT)123a、N/P ICU123b、癌関連の診断および/もしくは治療法123c、様々な自家調整検査法(LDT)123d、農業生物学的(Ag Bio)アプリケーション123e、または他のそのような医療関連の処理機能123fを含む、動作800の第3の層の1つまたは複数のユーザ選択可能な操作を指示することができる。
したがって、メニューおよびシステムファンクションコールは、ユーザにより選択され構成されるような1つまたは複数のデータ分析パイプラインを実行することなどに関してシステムおよび/またはそのコンポーネントの部分が構成されることを可能にするために、1つまたは複数の一次処理機能、二次処理機能、および/または三次処理機能を含み得る。そのような事例では、ローカルコンピューティングリソース100は、リモートコンピューティングリソース300に対応するように、および/もしくはそれを反映するように構成されることがあり、かつ/または、同様に、ローカルストレージリソース200は、リモートストレージリソース400に対応するように、および/もしくはそれを反映するように構成されることがあるので、システム1の使用によって選ばれたようなシームレスな分散した方式で、システムの様々なコンポーネントを実行することができ、かつ/またはそれにより生成されたデータをローカルとリモートのいずれかで記憶することができる。加えて、特定の実施形態では、システム1は、生成および/または処理されたデータの間で相関を見つけるように設計される人工知能インターフェースを通じて実行することなどによって、生成および/または処理されたデータに対してプロプライエタリな分析プロトコル121aを実行するために、サードパーティに対してアクセス可能にされることがある。
システム1は、生成および/または取得されたデータに対して、任意の形式の三次処理を実行するように構成され得る。したがって、様々な実施形態において、一次、二次、または三次ユーザが、システム1の任意のレベルおよびその様々なコンポーネントに、コンピューティングリソース100との直接のアクセスなどを通じて直接、または、適切な許可を有する適切に構成されたAPIなどを通じて、ローカルネットワーク接続10を介して、もしくはシステム1に関係者を接続する関連するハイブリッドクラウドネットワーク50上などで間接的に、アクセスし、かつ/またはそれらを構成することができる。そのような事例では、システムコンポーネントは、GUI選択可能なメニューなどのメニューとして提示されることがあり、ユーザは、ユーザに提示されるデータに対して実行されることが望まれる、すべての様々な処理および記憶の選択肢から選択することができる。さらに、様々な事例において、ユーザは、ユーザにより設計され選択される方式で様々なデータを処理するために、システムにより採用され実行されるように固有のシステムプロトコルをアップロードすることができる。そのような事例では、GUIおよび関連するAPIは、関係者にとって必要および/もしくは有用であるシステムコンポーネント、ならびに/または関係者により実行されることが要求もしくは要望されているシステムコンポーネントだけを実行するために、ユーザがシステム1にアクセスし、API追加を使用して、システムの様々なコンポーネント、モジュール、関連するパイプライン、ならびに他の関連するデータ生成および/もしくは処理機能を構成することを可能にする。
図8および図9に関する上記のことは、ローカルコンピューティングリソース150を利用する、ローカルデータ生成100などのデータ生成110を対象としているが、上で示されたように、図9に関して、上の画定されたモジュールの1つまたは複数、ならびにそれぞれの機能および/または関連するリソースは、リモートコンピューティングリソース300などによってリモートで実行されるために構成されることがあり、さらに、適切に構成されたデータ取得機構120などを介して、クラウドベースのインターネット接続30/50上でシームレスな転送プロトコルなどにおいて、システム1に送信されるように適合されることがある。
したがって、そのような事例では、ローカルコンピューティングリソース100は、そのような取得されたデータおよび/または関連する情報を、送信および/または受信することなどのために構成される、データ取得機構120を含み得る。たとえば、システム1は、クラウドまたはハイブリッドベースネットワーク30/50などを通じて、データの継続的な処理および/または記憶がシームレスかつ安定的に行われることを可能にするような方式で構成されるデータ取得機構120を含むことがあり、ここで、処理機能はローカル(100)および/またはリモート(300)の両方に分散され、同様に、そのような処理の結果の1つまたは複数はローカル(200)および/またはリモート(400)に記憶され得るので、システムは、リソースが物理的にどこに配置されているかにかかわらず、処理および/または記憶のためにどのローカルまたはリモートのリソースに所与のジョブが送られることになるかを、シームレスに割り振る。そのような分散型の処理、転送、および取得は、本明細書で説明されるように、シーケンシング111、マッピング112、アライメント113、ソート114a、重複マーキング114c、重複解消、再較正114d、ローカルリアライメント114e、塩基品質スコア再較正114fの機能、および/または圧縮機能114g、ならびにバリアントコール機能116のうちの1つまたは複数を含み得る。ローカル(200)またはリモート(400)で記憶される場合、処理されるデータは、それが処理においてどのような状態にあっても、再送信および/または再記憶の前のさらなる処理などのために、ローカル処理リソース100またはリモート処理リソース300のいずれかに利用可能にされ得る。
具体的には、システム1は、遺伝子配列データ111を産生および/または取得するために構成されることがあり、遺伝子配列データ111を受けてそれをローカルで(150)処理するために、または、適切に構成されたクラウドネットワーク30もしくはハイブリッドクラウドネットワーク50を通じて、リモート処理300のためにリモート処理施設などへデータを転送するために構成され得る。さらに、一度処理されると、システム1は、処理されたデータをリモートで(400)記憶するために、または処理されたデータをローカルストレージ200のために戻すために構成され得る。したがって、システム1は、データのローカルもしくはリモートの生成および/または処理のいずれかのために構成されることがあり、たとえば、生成および/または処理ステップは、一次および/または二次処理機能600の第1の層からのものであることがあり、この層は、1つまたは複数のバリアントコールファイル(VCF)116を産生するために、シーケンシング111、マッピング112、アライメント113、および/またはソート114aのうちの1つまたは複数を含み得る。同様に、システム1は、ローカルもしくはリモートのいずれかでのデータの生成および/または処理のために構成されることがあり、たとえば、生成および/または処理ステップは、三次処理機能700の第2の層からのものであることがあり、この層は、ゲノムパイプライン122a、エピゲノムパイプライン122b、メタゲノムパイプライン122c、ジョイントゲノタイピングパイプライン122d、GATK122e、および/またはMuTect2分析パイプライン122fに従って、データを生成および/または取得することのうちの1つまたは複数を含み得る。加えて、システム1は、ローカルもしくはリモートのいずれかでのデータの生成および/または処理のために構成されることがあり、たとえば、生成および/または処理ステップは、図11に示されるような三次処理機能の第3の層からのものであることがあり、この層は、非侵襲的出生前検査(NIPT)123a、N/P ICU123b、癌関連の診断および/または治療法123c、様々な自家調整検査法(LDT)123d、農業生物学的(Ag Bio)アプリケーション123e、または他のそのような医療関連の処理機能123fに関連する、およびそれらを含むデータを、生成および/または取得することのうちの1つまたは複数を含み得る。
特定の実施形態では、図8、図9、および図10に記載されるように、システム1はさらに、1つまたは複数の関係者がシステムにアクセスし、関連するローカル処理リソース100および/またはリモート処理リソース300との間で情報を転送し、ならびに、どの情報が処理されるかおよび/またはシステム1上のどこに記憶されるかをユーザが選べるような方式で、情報をローカル(200)またはリモート(400)のいずれかで記憶することを可能にするために構成され得る。そのような事例では、ユーザは、どの一次処理機能、二次処理機能、および/または三次処理機能が生成および/または取得されたデータに対して実行されるかだけではなく、それらのリソースがどのように展開されるか、および/またはそのような処理の結果がどこに記憶されるかも、決定することができる。たとえば、一構成では、ユーザは、データがローカルで生成されるか、リモートで生成されるか、またはそれらの組合せで生成されるか、データが二次処理にかけられるかどうか、かけられる場合、二次処理のどのモジュールにデータがかけられるか、および/またはどのリソースがそれらの処理のいずれを実行するかを選択することができ、さらに、生成または取得されたデータがさらに三次処理にかけられるかどうか、かけられる場合、三次処理700のどのモジュールおよび/もしくはどの層にデータがかけられるか、ならびに/またはどのリソースがそれらの処理のいずれを実行するか、また同様に、それらの処理の結果が動作の各ステップに対してどこに記憶されるかを決定することができる。
具体的には、一実施形態では、ユーザは、遺伝子配列データ111の生成がNGSなどによってリモートで行われるが、データの二次処理600がローカルで(100)行われるように、システム1を構成することができる。そのような事例では、ユーザは次いで、マッピング112、アライメント113、ソート111、および/またはVCF116の産生などの処理機能を、利用可能な処理の選択肢のメニューから選択することなどによって、二次処理機能のいずれがローカルで(100)行われるかを決定することができる。ユーザは次いで、ローカルで処理されたデータが三次処理にかけられるかどうか、かけられる場合、どのモジュールがデータをさらに処理するためにアクティブ化されるか、およびそのような三次処理がローカルで(100)行われるかリモートで(300)行われるかを選択することができる。同様に、ユーザは、三次処理の選択肢の様々な層に対する様々な選択肢を、ならびに、任意の生成および/または取得されたデータが、動作の任意の所与のステップまたは時間において、ローカル(200)とリモート(400)のいずれかでどこに記憶されるべきかを選択することができる。
より具体的には、一次ユーザは、サードパーティからの処理要求を受けるようにシステムを構成することができ、サードパーティは、生成および/または取得されたデータに対してそのような要求された一次、二次、および/または三次処理を実行するようにシステムを構成することができる。具体的には、ユーザまたはセカンドパーティまたはサードパーティは、ローカル(100)またはリモート(200)のいずれかで遺伝子配列データを産生および/または取得するためにシステム1を構成することができ、1つまたは複数のバリアントコールファイル(VCF)を産生するために、その遺伝子配列データを受けて、ローカルまたはリモートのいずれかでデータをマッピングし、アライメントし、かつ/またはソートするためにシステム1を構成することができ、追加で、ローカルまたはリモートのいずれかで、たとえば1つまたは複数のVCFに関して、データに対して三次処理機能を実行するためにシステムを構成することができる。さらにより具体的には、ユーザまたは他の関係者は、生成および/または取得されたデータに対して任意の形式の三次処理を実行するようにシステム1を構成することができ、その処理がシステムの中のどこで行われるべきかを構成することができる。したがって、様々な実施形態において、ファーストパーティ、セカンドパーティ、および/またはサードパーティ121のユーザは、1つまたは複数のグラフィカルユーザインターフェース(GUI)コンポーネントとしてアクセス可能なアプリケーションプログラムインターフェース(API)などを通じて、ローカルネットワーク接続10を介して、または関係者121をシステム1に接続する関連するハイブリッドクラウドネットワーク50上で、ローカルコンピューティング機能100に直接アクセスすることなどによって、システム1およびその様々なコンポーネントに直接アクセスし、かつ/またはそれらを構成することができる。そのような事例では、サードパーティのユーザは、サードパーティにとって必要および/もしくは有用であるシステムコンポーネント、ならびに/またはサードパーティによって実行されることが要求もしくは要望されているシステムコンポーネントだけを実行し、どのコンピューティングリソースが要求された処理を提供するか、および結果データがどこに記憶されるかをさら
に割り振るために、システムの様々なコンポーネント、モジュール、関連するパイプライン、ならびに他の関連するデータ生成および/または処理機能を構成するように、システム1にアクセスしてAPIを使用することができる。
したがって、様々な事例において、システム1は、ユーザが直接生成するか、システム1により生成されるようにするか、または、データ取得機構120などを介してシステム1と関連付けられるネットワークなどを通じてシステム1へ転送されるようにするかのいずれかであるデータに対して実行されるように、分析システムリソースのうちの1つ、すべて、または選択されたものをデプロイするような方式でシステム1のコンポーネントを並べるようにシステム1を構成できる、システムの一次ユーザ、二次ユーザ、または三次ユーザによって構成可能であり得る。そのような方式では、システム1は、要求している関係者によって所望および/または要求される分析に必要または有用であるシステムの部分だけを実行するように構成される。たとえば、これらおよび他のそのような目的で、APIが含まれることがあり、APIは、望み通りにシステムを構成し動作するためにユーザがそこから選択できる、GUI操作可能なメニューおよび/またはシステムファンクションコールの関連するリストを含むように構成される。加えて、特定の実施形態では、システム1は、米国食品医薬品局(FDA)70bなどの政府規制当局などのサードパーティにアクセス可能にされることがあり、または、電子医療記録(EMR)データベース70aを形成し、かつ/またはFDA for Drug Development Evaluationなどのシステムの政府によるアクセスおよび/もしくは監視を可能にするために、システム1によって導出され、または別様に取得および/もしくは編集される遺伝子情報のデータベースを、サードパーティが照合し、編集し、かつ/またはアクセスすることを可能にし得る。システム1はまた、データ70cを合成し、編集し、かつ/もしくはアノテーションするために、および/または、データ70cへの他の高いレベルのユーザアクセスを許容するために、セットアップされ得る。
したがって、様々な実施形態において、図13に関して見られるように、ハイブリッドクラウド50が提供され、ハイブリッドクラウドは、ローカルコンピューティングリソース100および/またはローカルストレージリソース200を、リモートコンピューティングリソース300および/またはリモートストレージリソース400と接続するために構成され、たとえば、ローカルリソースおよびリモートリソースは互いに遠位に、空間的に、地理的になど、離れている。そのような事例では、ローカルリソースおよび遠位のリソースは、デジタルデータなどの情報をそれらの2つの間でシームレスに共有するような方式で、互いに通信するために構成され得る。具体的には、ローカルリソースは、ハイブリッドネットワーク50にわたる送信の前などに、データに対して1つまたは複数のタイプの処理を実行するために構成されることがあり、リモートリソースは、1つまたは複数のタイプのデータのさらなる処理を実行するために構成されることがある。
たとえば、1つの特定の構成では、生成および/または分析機能152が、本明細書で説明されるように遺伝子配列データを生成および/または処理するために、一次および/または二次処理機能を実行することなどを目的に、ローカルコンピューティングリソースによってローカルに(100)実行されるために構成されるように、システム1を構成することができる。加えて、様々な実施形態において、ローカルリソースは、ゲノム分析、エキソーム分析、および/もしくはエピゲノム分析、または、癌の分析、マイクロビオーム分析、および/もしくは他のDNA/RNA処理分析のうちの1つまたは複数などの、データに対する1つまたは複数の三次処理機能を実行するために構成され得る。さらに、そのような処理されたデータが、リモートコンピューティングリソース300および/またはリモートストレージリソース400などに転送されることが意図される場合、データは適切に構成された変換器151などによって変換されることがあり、この変換器151は、ハイブリッドネットワーク50を通じた転送などの前に、データをインデクシングし、変換し、圧縮し、かつ/または暗号化するために構成され得る。
生成および処理されたデータがさらなる処理のためにリモートコンピューティングリソース300に転送される場合などの特定の事例では、そのような処理は、グローバルな性質であることがあり、複数のローカルコンピューティングリソース100からデータを受信することと、そのような複数のデータを照合することと、データをアノテーションすることと、データを解釈してデータの傾向を決定することなどのためにデータを比較することと、様々なバイオマーカーについてデータを分析することと、診断法、治療法、および/または予防法の開発を助けることとを含み得る。したがって、様々な事例において、リモートコンピューティングリソース300は、データ処理ハブとして構成されることがあり、たとえば、様々なソースからのデータは、ローカルコンピューティングリソース100によってアクセスされることなどによって、変換および/または転送されるのを待機している間に、転送され、処理され、および/または記憶され得る。より具体的には、リモート処理ハブ300は、複数のリソース100からデータを受け取り、データを処理し、研究者および/またはリソース100の間での協力を可能にするために処理されたデータを様々なローカルリソース100に分散させるために構成され得る。そのような協力は、様々なデータ共有プロトコルを含むことがあり、追加で、データが転送のためにどのように準備されるかを制御するためにシステム1のユーザが様々なセキュリティプロトコルおよび/またはプライバシー設定の中から選択することを可能にすることなどによって、転送されるべきデータを準備することを含み得る。
1つの特定の事例では、図11に提示されるように、ローカルコンピューティングリソース100および/またはローカルコンピューティングストレージ200が、ユーザの位置においてオンサイトなどで提供される。コンピューティングリソース100および/またはストレージリソース200は、直接接続またはイントラネット接続10などを通じて、本明細書で説明されるような、チップ上のNGSまたはシーケンサなどのデータ生成リソース121に結合されることがあり、シーケンサ121は、FASTQファイルなどの遺伝子シーケンシングデータを生成するために構成される。たとえば、シーケンサ121は、コンピューティングリソース100および/またはストレージユニット200との直接の通信可能かつ/もしくは動作可能な接続を有するように、コンピューティングリソース100および/もしくはストレージユニット200と同じ装置の一部であることがあり、かつ/または同じ装置に収容されることがある。または、シーケンサ121およびコンピューティングリソース100および/またはストレージリソース200は、互いとは別々の装置の一部であることがあるが、同じ施設に収容されることがあるので、ケーブル接続またはイントラネット接続10を通じて接続されることがある。いくつかの事例では、シーケンサ121は、コンピューティングリソース100および/またはストレージリソース200とは別個の施設に収容され得るので、インターネット30またはハイブリッドクラウド接続50を通じて接続され得る。
そのような事例では、遺伝子配列データは、適切に構成された変換器151によって変換される前にローカルで処理され(100)記憶される(200)ことがあり、または、生成された配列データは、ローカルで処理される前などに、上で説明されたように、適切に構成されたローカル接続10、イントラネット30、またはハイブリッドクラウド接続50などを通じて、変換器151および/または分析器152のうちの1つまたは複数に直接送信されることがある。具体的には、データ生成リソース121、変換器151、および/または分析器152は、コンピューティングリソース100および/またはストレージユニット200との直接の通信可能かつ/もしくは動作可能な接続を有するように、コンピューティングリソース100および/またはストレージユニット200と同じ装置の一部であることがあり、かつ/またはそこに収容されることがある。または、変換器151および/または分析器152ならびにコンピューティングリソース100および/またはストレージリソース200は、互いに別々の装置の一部であることがあるが、同じ施設に収容されることがあるので、ケーブル接続またはイントラネット接続10を通じて接続されることがある。いくつかの事例では、変換器151および/または分析器152は、コンピューティングリソース100および/またはストレージリソース200とは別個の施設に収容され得るので、インターネット30またはハイブリッドクラウド接続50を通じて接続され得る。
そのような事例では、図13に関して見られるように、変換器151は、適切に構成されたコンピューティングリソース100および/または分析器152などによって、分析前または分析後のいずれかに送信されるべきデータを準備するために構成され得る。たとえば、分析器152は、ゲノム特性および/またはエキソーム特性152a、そのエピゲノミックな特徴152b、興味深い任意の様々なDNAおよび/もしくはRNAマーカーならびに/または癌のインジケータ152c、および1つまたは複数のマイクロビオーム152dに対するその関係、ならびに、本明細書で説明されるような1つまたは複数の他の二次処理および/または三次処理を決定することに関して、生成された配列データを分析することなどのために、本明細書で説明されたように、データに対して二次処理機能および/または三次処理機能を実行することができる。示されるように、生成および/または処理されたデータは、システム1のあるコンポーネントから別のコンポーネントへの、直接接続、ローカル接続10、インターネット接続30、またはハイブリッドクラウド接続50などを通じた、システム1全体での送信の前などに、適切に構成された変換器151などによって変換され得る。そのような変換は、データがある形式から別の形式に変換などされる変換151d、認識不可能な形式のデータをコーディングし、復号し、かつ/もしくは別様に取得して、それを認識可能な形式に変換する、またはある認識可能な形式から別の認識可能な形式に変換することを含む、認識151c、1つまたは複数のリソースからの生成されたデータを編集し、かつ/もしくは照合して、生成されたインデックスなどを介してデータを位置特定可能および/もしくは検索可能にすることなどを含む、インデクシング151b、ならびに/または、インターネット30および/もしくはハイブリッドクラウド50を通じた送信の前などに、ロック可能なおよびロック不可能なパスワードで保護されたデータセットを作成することなどの、暗号化151aのうちの、1つまたは複数を含み得る。
したがって、これらおよび/または他のそのような事例では、ハイブリッドクラウド50は、システムのコンポーネント全体でのデータのシームレスかつ保護された送信を可能にするために構成されることがあり、たとえば、ハイブリッドクラウド50は、システムの様々なユーザが、ユーザの研究、診断、治療、および/もしくは予防についての発見ならびに/または開発の需要を満たすために、コンポーネントの部分および/またはシステム自体を構成することを可能にするように適合される。具体的には、ハイブリッドクラウド50および/またはシステム1の様々なコンポーネントは、望まれる方式で望まれるリソースをデプロイし、このことを、システムの要求および実行されている分析の詳細などに基づいて、セキュアな暗号化可能な環境で通信することを可能にしながら、ローカルで、リモートで、またはこれらの組合せでさらに行うために、システム1の様々なコンポーネントをユーザがリモートで構成することを可能にするように適合される、互換性のあるおよび/または対応するAPIインターフェースと動作可能に接続されることがある。本明細書で提示されるような、ハイブリッドクラウドシステムの別の例示的な実施形態が図12に示される。
たとえば、図10~図12に関して見られるように、かつより具体的には図15に関して、システム1は、1つまたは複数のFASTQファイルなどとして遺伝子配列データを産生するために一次処理段階400/500からの遺伝子情報を処理し、1つまたは複数のバリアントコールファイルを産生するために二次処理段階600へと遺伝子情報を処理し、1つまたは複数のバリアントコールファイルまたは他の関連する処理されたデータをさらに用いて、サードパーティ要求121および/またはサードパーティ121により出されたデータなどに応答して、データについて1つまたは複数の診断および/または予防および/または治療の手順を実行することなどを目的にデータに対して1つまたは複数の他の動作を実行するために、システマティックに、かつ/または同時に、かつ/または順番にデプロイされ得る1つまたは複数の処理パイプラインを各々有する処理ユニットの層を含む、複層のおよび/または多重化された生体分析処理プラットフォームであり得る。そのようなさらなる処理は、ゲノム分析、エピゲノム分析、メタゲノム分析、および/またはゲノタイピング分析を含む、1つまたは複数の被験者の決定された遺伝子バリエーションデータに対して1つの層などにおいて分析を実行するように構成されるものなどの、様々なパイプラインプロトコル700、ならびに/または、NIPTの適用例、NICUの適用例、癌への適用例、LDTの適用例、生物学的な適用例、AgBioの適用例などのうちの1つまたは複数を含み得る、様々な疾病診断および/もしくは研究プロトコル800を含み得る。具体的には、システム1はさらに、電子医療記録(EMR)データ、米国食品医薬品局の試験および/または構造化データ、アノテーションに関連するデータなどの、本明細書の手順および処理に関する様々なデータ900を受信および/または送信するために、適合され得る。そのようなデータは、システム1の使用を通じて開発された、かつ/またはシステム1の使用によりアクセス可能にされた、生成された医療法、診断法、治療法、および/もしくは予防法をユーザが作ること、ならびに/またはそれらへアクセスを可能にするために、有用であることがある。
したがって、これらの機能の1つまたは複数、たとえばすべてが、したがってローカルに、たとえばオンサイトで(10)、クラウド30上で、またはハイブリッドクラウド50を通じた制御されたアクセスを介して実行され得る。そのような事例では、ユーザが自身の個人的な需要を満たすようにシステムの機能を制御すること、および/または、同じもしくは同様の結果を探している他者に対してシステムへのアクセスを許容することを可能にする、開発者環境が作成される。その結果、システムの様々なコンポーネント、処理、手順、ツール、層、および階層が、関連するデータと、ローカルでもリモートでもシステム全体でセキュアに通信され得るデータ間の接続とを生成するために、ユーザにより決定される望みおよびプロトコルに従って、どのコンポーネントがどのような順序でどのような時間にどのデータに対して実行されるべきかをユーザが選択することを可能にする、GUIインターフェースなどを介して構成可能であり得る。示されるように、これらのコンポーネントは、その利用により様々なユーザが様々な手順を同様の方式で実行するように様々なコンポーネントを構成することが可能になる、システム全体に分散した対応するAPIインターフェースを利用することなどによって、同じまたは同様の処理を同じまたは同様の方式で実行するように構成可能であることなどによって、位置および/またはどのように接続されているかとは無関係に、一緒にシームレスに通信するようになされ得る。
たとえば、APIは、システム1の各々の特定のコンポーネントによって実行されるべき処理に関してヘッダファイルにおいて定義されることがあり、このヘッダは、渡されるパラメータ、受信される入力および送信される出力、ならびに、これが行われる方式、何がどのように入ってくるか、何がどのように出ていくか、何が返ってくるか、およびどのような方式であるかなどの、機能性を記述し、機能をどのように呼び出すかを決定する。たとえば、様々な実施形態では、システムの1つまたは複数の層の1つまたは複数のパイプラインを形成し得る、コンポーネントおよび/またはコンポーネントの要素の1つまたは複数が、ユーザおよび/または1つまたは複数のセカンドパーティアプリケーションおよび/またはサードパーティアプリケーションによって入力された命令などによって構成可能であり得る。これらの命令は、ユーザにより選択可能なインターフェース、たとえばGUIによって決定され得る事前に選択されたパラメータ構成のもとで、システムのどの部分、たとえば、システムのどのモジュールおよび/またはプロセスが、いつどのような順序でアクティブ化されるべきかについてドライバに命令する、システムの様々なドライバの1つまたは複数と通信する対応するAPIを介してシステムに伝えられ得る。
上で説明されたように、システム1の1つまたは複数のDMAドライバは、各コンポーネントのカーネルレベルおよびシステム1全体などにおいて、対応する方式で実行するように構成され得る。そのような事例では、提供されるカーネルの1つまたは複数は、処理および処理がシステム1上で実行される方式を構成して指示するために適用可能なレジスタおよびモジュールにアクセスするために、システム1の様々なコンポーネントのハードウェアおよび機能へのアクセス権を与える、固有の非常に低水準の基本APIを有し得る。具体的には、この層の上に、サービス機能の仮想的な層が、カーネルまでファイルを送って結果を得て、符号化し、暗号化し、かつ/または関連するデータを送信してより高水準の機能をそこでさらに実行する、多数の機能のために使用される基本要素を形成するために、構築され得る。その層の上には、ユーザがインターフェースし得るAPIレベルであり得るそれらのサービス機能を使用する、追加の層が構築されることがあり、サービス機能は、主にシステム1の構成のために、全体またはコンポーネント部分として機能し、ファイルをダウンロードし、結果をアップロードするように適合されることがあり、これらのファイルおよび/または結果は、ローカルまたはグローバルにシステム全体で送信されることがある。
そのような構成は、レジスタと通信すること、また、ファンクションコールを実行することを含み得る。たとえば、本明細書において上で説明されたように、マッピングおよび/もしくはアライメントおよび/もしくはソートおよび/もしくはバリアントコール、または、本明細書で説明されるような他の二次機能および/もしくは三次機能を実行するために、ステップをたとえば順番に実行するのに必要および/または有用である1つまたは複数のファンクションコールは、必要な処理を生成して要求されるステップを実行するために、ハードウェア動作および/または関連するアルゴリズムに従って実施され得る。
具体的には、いくつかの実施形態では、これらの動作の1つまたは複数は1つまたは複数の構造に基づき得るので、これらの動作を実施するために必要な様々な構造が構築される必要があり得る。したがって、この機能を実行するファンクションコールがあり、このファンクションコールは、必須の構造が動作の実行のために構築されるようにして、このコールにより、構造パラメータファイルが記憶される場所のファイル名を受け入れ、必須の構造を格納および/または構成する1つまたは複数のデータファイルを次いで生成する。別のファンクションコールは、それぞれのアルゴリズムを介して生成された構造をロードし、チップおよび/もしくはシステム1のメモリまでその構造を転送し、かつ/または、その構造が存在するものとハードウェアが期待する正しい場所にその構造を置くことであり得る。当然、システム1の様々な他の選択された機能の実行のためにも、様々なデータがチップへとダウンロードされる必要があり、かつ/または、システム生成器へと別様に転送される必要があり、構成マネージャは、チップおよび/またはシステム全体のプラットフォームの層のパイプラインのモジュールがそれらの機能を実行するためにそこになければならないすべてのものを、チップおよび/またはシステムの上の、それらに取り付けられた、もしくは別様にそれらと関連付けられるメモリへとロードすることなどによって、これらの機能を実行することができる。
加えて、図16に関して分かるように、APIは、FASTQならびに/または他の生成および/もしくは処理された遺伝子シーケンシングファイルをシーケンサまたは他の処理コンポーネントから直接、たとえばそれらが生成および/または処理されると直ちに受信し、次いでその情報を構成マネージャに転送するために、システム1の1つまたは複数のチップが、シーケンサ121、コンピューティングリソース100/300、変換器151、分析器152、解釈器310、協調器320、またはシステムに含まれるときには他のシステムコンポーネントの回路基板とインターフェースすることを可能にするように構成されることがあり、構成マネージャは次いで、その情報をハードウェアおよび/またはソフトウェアの中の適切なメモリバンクに向け、このことは、ハードウェア、ソフトウェア、および/またはシステム全体の関連するモジュールに対してその情報を利用可能にするので、それらが、基準ゲノムに関して試料DNA/RNAのベースコール、マッピング、アライメント、ソートなどを行うために、かつ/または、関連する二次および/もしくは三次処理動作をその上で実行するために、その情報に対して指定された機能を実行することができる。
したがって、様々な実施形態では、クライアントレベルインターフェース(CLI)が含まれることがあり、CLIは、これらの機能の1つまたは複数をユーザが直接呼び出すことを可能にし得る。様々な実施形態では、CLIは、システムのハードウェアおよび/もしくは様々な他のソフトウェアアプリケーションのアクセシビリティならびに/または使用法を構成するように適合される、たとえばGUIを有するソフトウェアアプリケーションであり得る。したがって、CLIは、命令、たとえば引数を受け入れるプログラムであってよく、アプリケーションプログラムを単純に呼び出すことによって機能を利用可能にする。上で示されたように、CLIはコマンドラインベースまたはGUI(グラフィカルユーザインターフェース)ベースであり得る。ラインベースのコマンドはGUIの下のレベルで発生し、GUIは、どのプラットフォームのどのモジュール、どのパイプライン、どの層が使用されるか、およびそれらが使用するパラメータを、機能ボックスへのクリックを用いて描写する、windowsベースのファイルマネージャを含む。たとえば、動作において、命令される場合、CLIは基準を位置特定し、ハッシュテーブルおよび/またはインデックスが生成される必要があるかどうかを判定し、またはすでに生成されている場合、どこに記憶されるかを位置特定し、生成されたハッシュテーブルおよび/またはインデックスのアップロードなどを指示する。これらのタイプの命令は、ユーザが実行すべき関連するチップ/システム1を選択できるGUIにおいて、ユーザオプションとして現れ得る。
さらに、ライブラリが含まれることがあり、ライブラリは、たとえば、個人の医療履歴および祖先分析、または疾病診断、または薬物発見、治療法、および/または他の分析の1つまたは複数などの、様々な分析のために、ゲノムの一部分もしくは全体および/またはタンパク質の分析などに関して、ハードウェアおよび/または関連するソフトウェアの典型的なユーザにより選択される機能に向けられたファイルなどの、既存の編集可能な構成ファイルを含み得る。これらのタイプのパラメータは、そのような分析を実行することなどのためにプリセットされていることがあり、ライブラリに記憶されていることがある。たとえば、本明細書で説明されるプラットフォームが、NIPT、NICU、癌、LDT、AgBio、および集合的なレベルの関連する研究などのために利用される場合、プリセットされたパラメータは、プラットフォームが単に、個人レベルなどの、ゲノムおよび/または系統学ベースの研究を対象としている場合とは異なるように構成され得る。たとえば、図11を参照されたい。
より具体的には、個人の明確な診断のために、精度が重要な因子であり得るので、システムのパラメータは、場合によっては速度の低下と引き換えに、精度の向上を確実にするように設定され得る。しかしながら、他のゲノミクスの適用形態では、速度が主要な決定要因であることがあるので、システムのパラメータは速度を最大にするように設定されることがあり、しかしこれはある程度精度を犠牲にすることがある。したがって、様々な実施形態において、様々なタスクを実行するためのしばしば使用されるパラメータ設定が、使用を簡単にするためにライブラリへとプリセットされることがある。そのようなパラメータ設定はまた、システム1を実行する際に利用される必要なソフトウェアアプリケーションおよび/またはハードウェア構成を含み得る。たとえば、ライブラリは、APIを実行するコードを格納することがあり、さらに、試料ファイル、スクリプト、およびシステム1を実行するのに必要な任意の他の付随する情報を含むことがある。したがって、ライブラリは、APIを実行するためのソフトウェアならびに様々な実行可能ファイルをコンパイルするために構成され得る。
加えて、図12~図14に関して分かるように、システムは、システムコンポーネントの1つまたは複数がリモートで実行され得るように構成されることがあり、たとえば、システムコンポーネントは、解釈機能310および/または協力機能320などの、データに対する1つまたは複数の比較機能を実行するように適合される。たとえば、解釈プロトコルがデータに対して利用される場合、解釈プロトコル312は、データについての結論を分析して導き、かつ/またはそれに関する様々な関係を決定するように構成されることがあり、1つまたは複数の他の分析プロトコルも実行されることがあり、1つまたは複数の他の分析プロトコルは、1つまたは複数のバイオマーカー314の存在または不在を決定するために、データ311をアノテーションすること、データに対して診断313を実行すること、および/またはデータを分析することを含むことがある。加えて、協調プロトコルが実行される場合、システム1は、データ共有321が行われ得る電子掲示板を提供するために構成されることがあり、このデータ共有プロトコルは、データが暗号化されることおよび/またはパスワードで保護されることを可能にする、ユーザが選択可能なセキュリティ324および/またはプライバシー322の設定を含み得るので、データの識別情報およびソースがシステム1のユーザから隠され得る。特定の事例では、システム1は、サードパーティの分析器121がデータに対して仮想的なシミュレーションを実行することを可能にするように構成され得る。さらに、生成されると、解釈されたデータおよび/または1つまたは複数の協調的な分析にかけられたデータは、さらなる処理および/または分析などのために、リモートコンピューティングリソース300またはローカルコンピューティングリソース100に対して利用可能にされるように、リモートで(400)またはローカルで(200)記憶され得る。
したがって、本明細書の開示に鑑みて、一態様では、ゲノミクス配列分析動作を実行する際に多数の動作の1つまたは複数を実行するためのデバイスが提供される。いくつかの事例では、デバイスは、それ自体がコンピューティングデバイスへと挿入され、それにより1つまたは複数の内部CPU、GPU、および/または関連するメモリと関連付けられ得る、PCIeカードと関連付けられるチップセットを有する、「ワークベンチ」コンピューティング解決策であり得る。具体的には、本明細書で開示されるFPGA/ASICチップセットの1つまたは複数を有する、コンピューティングデバイス、処理ユニット、関連するメモリ、および/または関連するPCIeカードは互いに通信しており、当技術分野において典型的な方式でボックスセットなどの中のハウジング内に設けられることがあり、このボックスセットは、ワークベンチの用途のために構成され、かつ/または、サーバラック内に設けられ、および/もしくはサーバラック内で使用可能であることがある。他の実施形態では、チップセットおよび/または関連する相互接続エクスプレスカードが、次世代シーケンシングデバイスと1つのユニットを形成するように、次世代シーケンシングデバイス内で関連付けられ得る。
しかしながら、様々な事例において、本明細書で開示される集積回路の1つまたは複数は、図12~図15に関して提供されるものなどの、クラウドベースのインターフェースを介してアクセスされるために、提供され構成され得る。いくつかの事例では、ボックスセットはリモートでアクセスされるために構成されることがあり、たとえば、ボックスセット構成はクラウドに移動可能なように作られる。しかしながら、他の事例では、本明細書で開示される集積回路の1つまたは複数はサーバラックの一部であることがあり、たとえば、サーバアクセス可能なシステムが、クラウドなどを介して特にリモートでアクセスされるために構成される。
たとえば、一実施形態では、CPUコアおよび/またはGPUコアの1つ以上、たとえば多数と、関連するメモリとを有するサーバが、本明細書で開示されるFPGA/ASICの1つまたは複数と連携して設けられ得る。具体的には、一実装形態では、SSDを有する18~24個のCPUコアボックスセット/サーバ、128×8RAM、および1つまたは複数のBioIT FPGA/ASICシステムが、リモートでアクセス可能であるような方式で設けられ得る。そのような事例では、1つまたは複数のFPGAは、ゲノム分析パイプラインの様々なステップの1つまたは複数の間で部分的に再構成されるなど、再構成されるために、適合され得る。他の事例では、サーバシステムは、最大で約36個のCPU/GPUコアおよび約972GBのRAMを含むことがあり、これらは、約8個のFPGAと関連付けられることがあり、本明細書で説明されるように構成可能であることがある。
より具体的には、提供されるFPGAは、BioITパイプラインにおいて1つまたは複数の計算集約的な動作を実行することに専用であるように構成されることがあり、たとえば、あるFPGAがマッピング動作を実行するために設けられそのことに専用であり、別のFPGAがアライメント動作を実行するために設けられそのことに構成されるが、いくつかの事例では、単一のFPGAが設けられ、マッピング動作とアライメント動作の両方を実行するように少なくとも部分的に再構成されるために構成されることがある。専用のFPGAによって実行され得るパイプラインの中の他の動作は、HMM動作、ローカルリアライメント、たとえばSmith-Waterman動作、および/または様々な他のバリアントコール動作を実行することを含み得る。同様に、様々なパイプライン動作は、システムの関連するCPU/GPUの1つまたは複数によって実行されるために構成され得る。そのような動作は、ソート、重複解消、および他のバリアントコール動作を実行することなどのための、パイプラインの1つまたは複数のより計算集約的ではない動作であり得る。したがって、システムは、CPUによる動作部分とハードウェアによる部分の組合せを、システムのFPGA/ASICなどによって実行するために構成され得る。
したがって、システムの様々な実装形態において、様々なCPUおよびハードワイヤード集積回路のインスタンスが、本明細書で提供されるゲノムパイプライン分析の専用機能を実行するために提供され得る。たとえば、マッピングを実行するためのあるFPGAのインスタンス、アライメントを実行するための別のインスタンス、ローカルリアライメントおよび/または他のSmith-Waterman動作を実行するための別のインスタンス、HMM動作を実行するための別のインスタンスなどの様々なFPGAのインスタンスが、専用のゲノム分析動作を実行するために提供され得る。同様に、ソート、重複解消、圧縮、様々なバリアントコール動作などを実行するためのCPU/GPUのインスタンスなどの、様々なCPU/GPUのインスタンスが、専用のゲノム分析動作を実行するために提供され得る。そのような事例では、パイプラインの様々な計算ステップと計算ステップの間に、結果データが計算され、編集され、様々なCPUおよび/またはFPGAのインスタンスの間などのシステム全体で処理されるにつれて、結果データを受け取るために、1つまたは複数の関連するメモリが設けられ得る。さらに、様々なCPUおよび/またはFPGAのインスタンスのサイズは、システムの計算上の需要に応じて変化することがあり、小から、中、大、および特大にまでわたることがあり、CPU/GPUおよびFPGA/ASICのインスタンスの数は同様に変化することがあることに留意されたい。
したがって、システムはさらに、システムを通ってあるインスタンスから別のインスタンスに、あるメモリから別のメモリに出ていくデータの動きをスケジューリングおよび指示するために構成される、ワークフローマネージャを含み得る。いくつかの事例では、メモリはインスタンス固有の専用メモリであることがあり、他の事例では、メモリはフレキシブルであるように、したがって、あるインスタンスからエラスティックブロックストレージメモリなどの別のインスタンスに切り替えられることが可能であるように構成され得る。さらに他の事例では、メモリはインスタンス固有ではなく、したがって、エラスティックファイルストレージなどのために、複数のインスタンスに通信可能に結合されることが可能であり得る。
加えて、ワークフローマネージャは、どのようなジョブが実行される必要があるか、およびそれらのジョブの実行においていつどのようなリソースが利用されるかを決定すること、ならびに、ジョブを待ち行列に入れてそれらをリソース間で振り向けることのために、専用であり、かつ/または構成される、CPU/GPUコアなどの専用インスタンスであり得る。ワークフローマネージャは、負荷推定器を含み、もしくは別様にそれとして構成されることがあり、かつ/または、プロセッサ、たとえばC4 CPUコアによって実行され得る、もしくは多数のコアなしで実行され得る専用のインスタンスであるエラスティックな制御ノードを形成することがある。様々な事例において、ワークフローマネージャには、データベースが接続されていることがあり、このデータベースは、処理される必要がある、処理されている、または処理されたすべてのジョブを管理するために構成され得る。したがって、マネージャは、データがシステム全体でどのように流れるかを検出および管理し、システムリソースをどのように割り振るか、およびいつより多くのリソースをオンラインにするかを決定するために、構成され得る。
上で示されたように、いくつかの事例では、ワークベンチ解決策が提供されることがあり、ここで、システムは、サイズがZであるFPGAに供給を行う複数のX個のCPUコアサーバを含み、X、Y、およびZはシステムの処理の需要に応じて変化し得る数であるが、最適化されるように選択され、かつ/または別様に構成されるべきである。たとえば、典型的なシステム構成は、本明細書で説明されるシステムのBioIT動作を実行するのに最適ではない。具体的には、いくつかのシステム構成は、様々なCPU/GPUインスタンスからFPGAなどのシステムの様々な集積回路へのデータの流れを最大化するように最適化されていない。より具体的には、システムアーキテクチャは、CPU/FPGAハードウェアが両方のインスタンスのプラットフォームをすべての実行時間の間ビジーに保つように最適に効率的な方式で実行されるような方式で、構成され得る。
したがって、FPGA容量が大きいのは一般的に良いことであるが、システムに供給されている処理される必要があるデータが十分ではない場合には、データを処理するための大きな能力を有することは効率的ではないことがある。たとえば、様々な事例において、4つのCPUコアが、中程度に大きな、たとえば2.5XのFPGAにデータを供給するように構成され得る。しかしながら、CPUがFPGAをビジーにかつ/または完全に利用されたままに保つのに十分な作業を生成しない場合、この構成は理想的ではない。CPUインスタンスが利用可能なFPGAをビジーに保つのに十分な作業を生み出さないような構成。したがって、本明細書で提供されるのは、CPU/FPGAソフトウェア/ハードウェアが、すべての実行時間の間両方のインスタンスのプラットフォームをビジーに保つような方式で、利用可能なFPGAに現在のCPUが最適に供給を行うことを確実にするために効率的に実行されるような方式で、システムが実行されるように構成される、アーキテクチャおよびアーキテクチャを実装する方式である。したがって、そのようなシステムがクラウドからアクセス可能であるようにすることは、ワークフローマネージャによって待ち行列に入れられ、最適に効率的な方式でデータを受信し処理するように構成されそのことが可能な特定のCPU/FPGAリソースに向けられることを確実にするために、複数のデータがシステムに提供されることを確実にし、たとえば、CPUはより計算集約的ではないデータを実行し、FPGAは計算集約的なタスクを扱い、メモリは手順の様々なステップとステップの間に、かつ/または様々な異なるインスタンスタイプとインスタンスタイプの間およびインスタンスとインスタンスの間に、データの記憶を行い、それによりインスタンスのレイテンシの期間を避ける。具体的には、マッピングおよびアライメントの間に、計算の集約的な性質により、CPUのごく一部しか利用されず、これらのタスクはハードウェア実装形態によって実行されるために構成される。同様に、バリアントコールの間、タスクは、CPU/FPGAインスタンスの間でそれらのインスタンスのタスクにかなり粗く分散するような方式で分割されることがあり、たとえば、HMMおよびSmith-Waterman動作はハードウェアによって実行されることがあり、様
々な他の動作は1つまたは複数のCPU/GPUインスタンス上で実行されるソフトウェアによって実行されることがある。
したがって、本明細書に記載されるアーキテクチャパラメータは、ワンセットのアーキテクチャに必ずしも限定されず、むしろシステムは、その実装形態を編成するために、および、どのインスタンスがいつ、どのように、どれだけの長さアクティブであるかを決定するためにワークフローマネージャを利用し、どの計算がどのインスタンスで実行されるかを指示するために、より大きなフレキシビリティを有するように構成される。具体的には、添付の図面において提供されるものなどの、本明細書に記載されるクラウドベースのアーキテクチャは、以前のアーキテクチャの提案における様々な既知の欠点が非効率性をもたらし得ることを示し、この非効率性は、より多くのCPU/GPUコアインスタンスがたとえばFPGAの様々な異なるハードウェアインスタンスにアクセスすることをフレキシブルに可能にすることによって克服することができ、これらの様々な異なるハードウェアインスタンスは、正しいインスタンスを適切な機能を実行することに専念させて、そのフォーマットで実装されることによって最適化されることが可能であるように、より意図的な方式で編成されているので、利用可能なCPUインスタンスの大部分がすべての時間ビジーであることがあり、選択されたFPGAインスタンスをすべての時間ビジーに保つために利用可能なFPGAインスタンスへと最適に供給され得る結果データを産生する。したがって、可能な限り効率的で、すべての時間ビジーである、構造化されたアーキテクチャを提供するのが望ましい。あまりにも少ないCPUがあまりにも多くのFPGAに供給を行う結果、FPGAの1つまたは複数が過少に利用されているような構成は、効率的ではなく回避されるべきであることに留意されたい。
一実装形態では、アーキテクチャは、X個、たとえば4個から約30個のCPUコアを有する第1の層などのいくつかの異なる層と、1個から12個のFPGAインスタンスを有する第2のレベルとを実質的に含むように構成されることがあり、このサイズは小から中、大などにわたり得る。CPUコアの第3のレベルおよび/またはさらなるFPGAの第4のレベルなども含まれ得る。したがって、クラウドの中に多くの利用可能なインスタンスがあるので、本明細書で説明される1つまたは複数のレベルなどにおいて、CPUもしくはGPUおよび/またはFPGAおよび/またはそれらの組合せを単純に含むインスタンスなど。したがって、このような方式では、アーキテクチャを、より集約的な固有のコンピューティング機能がハードウェアのインスタンスによって実行されるように編成することができ、CPUを通じて実行され得る機能は、一般的な処理の目的で適切なレベルにおいて適切なCPUに向けられる。
たとえば、アーキテクチャは、様々な異なる仮想的なレベルの様々なインスタンスを組み合わせることによって、効率を最大にしてレイテンシを減らすように構成され得る。具体的には、複数の、たとえば大部分および/またはすべての、レベル1 CPUのインスタンスが、マッピング、アライメント、Smith-Waterman、HMM、バリアントコールなどの特定の機能を実行するように特別に構成されている、様々なレベル2の、たとえばF12X FPGAインスタンスへと供給を行うように構成され得る。したがって、レベル1 CPUは、一般的な処理ステップを実行してパイプライン分析のためにデータを待ち行列に入れて準備することのために、ゲノミクス分析パイプラインの第1のレベルを形成することに関与することができ、このデータは、1つまたは多数のCPUによって処理されると、レベル2の専用の、たとえばF12X FPGAインスタンスに供給されることが可能であり、たとえば、F12X FPGAインスタンスは、マッピングおよび/またはアライメント機能などの集約的なコンピューティング機能を実行するために構成される。
この方式では、ある特定の実装形態では、パイプラインの中のCPUインスタンスは、準備ができると、データを1つまたは2つのマッピングおよびアライメントを行うFPGAインスタンスにルーティングする。マッピングが実行されると、結果データをメモリに記憶し、かつ/または次いでアライメントインスタンスに供給することができ、そこで、アライメントを、たとえば少なくとも1つの専用のレベル2 FPGAインスタンスによって実行することができる。同様に、処理されたマッピングおよびアライメントされたデータを次いで、メモリに記憶し、かつ/またはさらなる処理のためにレベル3 CPUインスタンスに向けることができ、レベル3 CPUインスタンスは、ソート機能を実行することなどのための、より処理集約的ではないゲノミクス分析機能を実行することなどのための、同じレベル1インスタンスまたは異なるインスタンスであり得る。加えて、レベル3 CPUが処理を実行すると、結果データを次いで、たとえばSW専用FPGAインスタンスにおいてSmith-Waterman処理機能を実行することなどのための、さらなるゲノミクスの処理集約的な機能などのために、FPGAの他のレベル2インスタンスまたはレベル4 FPGAインスタンスのいずれかに戻すように転送することができる。同様に、SW分析が、SW専用F12X FPGAなどによって実行されると、CPU処理コアの専用FPGAおよび/またはさらなる層などにおける、HMMおよび/またはバリアントコール分析を実行することなどのために、処理されたデータを、1つまたは複数の関連するメモリへ、かつ/または、別のCPUおよび/もしくはFPGAインスタンス、たとえば処理パイプラインの下流のレベル4または5、もしくは上流のレベル1もしくは3などへさらに送ることができる。
このような方式では、レイテンシおよび効率性の問題は、ゲノミクス処理のためのパイプラインプラットフォームを提供するために、1つまたは複数の異なるレベルで、様々な異なるインスタンスを組み合わせることによって克服することができる。そのような構成は、インスタンスをスケーリングすることおよび/または組み合わせることを超えるものを伴うことがあり、インスタンスは、専用の機能を実行することに特化するように構成されることがある。そのような事例では、単一のインスタンスがパイプラインの端から端の処理を実行するのではなく、マッピングFPGAインスタンスはマッピングだけを実行し、同様に、アライメントFPGAはアライメントだけを実行し、以下同様である。しかし、他の構成では、FPGAの1つまたは複数は、複数のパイプラインのタスクを実行することの間などで、少なくとも部分的に再構成され得る。
したがって、パイプラインマネージャは、レベルI CPUインスタンスによって編成されているゲノム処理要求の待ち行列を、個別のジョブへと分解され、集約され、マッピングおよび/またはアライメントなどの処理のために適切なジョブ固有のCPU/F1インスタンスへとルーティングされるように管理するように機能することができ、このF1データは処理されると、バリアントコールモジュールにおける様々なステップの実行のなどのために、結果データのCPU/FPGA処理の次のレベルへと後方または前方に送られ得る。たとえば、バリアントコール機能は複数の動作へと分割することができ、これらは、ソフトウェアにおいて実行され、次いで1つまたは複数のFPGAハードウェアインスタンスにおけるHMM処理に転送され、次いで継続的なバリアントコール動作のためにCPUに送られることがあり、たとえば、プラットフォーム全体がエラスティックなサイズであり、高価なFPGAインスタンスのコストを最小限にしながら、利用率を最大にし、レイテンシを最小限にすることで、動作を最適化するように実装される。したがって、この方式では、純粋な処理能力およびハードワイヤードの特異性により、より少ないハードウェアインスタンスしか必要ではなく、CPUの数に対するFPGAの数を最小限にすることができ、それらの、たとえばFPGAの使用を最大限にすることができるので、システムはすべてのインスタンスをすべての時間ビジーに保つように最適化される。そのような構成は、ゲノミクス処理分析のために、特にマッピング、アライメント、およびバリアントコールのために、最適に設計される。
本明細書で開示される、パイプラインアーキテクチャに、たとえばアタッチメントとして追加することができる追加の構造要素は、1つまたは複数のエラスティックなメモリモジュールであり、これらは、データ、たとえば結果データのブロックストレージを、データがパイプライン全体で遷移するにつれて実現するように機能するように構成され得る。したがって、1つまたは複数のエラスティックブロックデータストレージ(EBDS)モジュールは、処理レベルの1つまたは複数の間に、たとえば、異なるインスタンスとインスタンスの間に、および/または異なるインスタンスレベルとインスタンスレベルの間に、挿入することができるので、データが処理され結果が得られるにつれて、処理された結果は、専用のFPGA処理モジュールなどによる、処理の次のレベルにルーティングされる前に、記憶のためにEBDSデバイスに向けられ得る。すべてのインスタンス、もしくはインスタンスレベルにわたって同じEBDSを利用することができ、または、結果データの記憶すること、および/または編集すること、および/またはそれを待ち行列に入れることなどのために、様々なインスタンスおよび/またはインスタンスレベルの間で、多数のEBDSを利用することができる。
この構成では、あるインスタンスおよび/またはある処理のレベルから別のものに直接データを送る前に、データを、記憶のためにEBDSまたは他のメモリデバイスもしくは構造にルーティングし、その後、適切なハードワイヤード処理モジュールにルーティングすることができる。具体的には、ブロックストレージモジュールは、メモリストレージのためのノードに取り付けられることがあり、ここで1つのレベルにおける記憶のためにデータをBSDに書き込むことができ、BSDは、記憶されているデータを次の処理レベルにルーティングするために別のノードに切り替えられることがある。この方式では、1つ以上の、たとえば複数のBDSモジュールが、パイプラインに含まれ、パイプライン全体のデータの遷移に参加するためにあるノードから別のノードに切り替えられるように構成され得る。さらに、上で示されたように、あるインスタンスから他のインスタンスに切り替えられる必要などがなく、1つまたは複数のインスタンスに同時に結合されることが可能なデバイスなどの、よりフレキシブルなファイルストレージデバイスが利用され得る。
したがって、処理パイプラインにおいて、たとえばその付随するノードにおいて次のような多くのステップがある。データが処理、たとえば前処理のために準備され、このデータは準備されると、結果データが生成され得る少なくとも1つのレベルにおける適切な処理インスタンスに向けられ、次いで、結果データが、たとえばEDSデバイスに記憶され、待ち行列に入れられ、インスタンスの次のノードに切り替えられることによって処理の次の段階のために準備され、FPGAおよび/またはCPU処理インスタンスの次の順序による処理のために次のインスタンスにルーティングされることがあり、ここで、さらなる結果データが生成されることがあり、生成されると再び、結果データは、処理の次の段階に進む前に記憶のために、EDSの同じレベルへと後方に向けられるか、次のレベルへと前方に向けられるかのいずれであり得る。
具体的には、1つの特定の実装形態では、パイプラインを通る流れは、以下のように見えることがある。CPU:データが準備される(待ち行列に入れられるおよび/または記憶される);FPGA:マッピング、一時記憶、FPGA:アライメント、一時記憶、CPU:ソート、一時記憶、CPU:重複解消、一時記憶、FPGA:HMM、一時記憶、CPU:バリアントコール1、一時記憶、FPGA:Smith-Waterman、一時記憶、CPU:バリアントコール2、一時記憶、CPU:VCGF、一時記憶など。これらのステップの1つまたは複数は、任意の論理的な順序で実行されることがあり、様々な異なる組合せで、ソフトウェアおよび/またはハードウェアで実装されるなど、任意の適切に構成されたリソースによって実装されることがあることに留意されたい。さらに、1つまたは複数のEDSまたは他の適切に構成されたデータおよび/またはファイルストレージデバイスは、様々な異なる処理ステップと処理ステップの間の一時記憶などのための、たとえば様々なインスタンスのレベルとレベルの間で、様々なノードの1つまたは複数に取り付けられ得る。したがって、このような方式では、処理インスタンスの各レベルが、1つまたはいくつかのゲノムを処理することなどのために、異なるノードの各々の間または異なるレベルのノードの各々の間などで、必要に応じてエラスティックにスケーリングされ得る。
別の態様では、図16に関して分かるように、1つまたは複数の二次および/または三次処理プロトコルが実行され得る1つまたは複数のデータファイルを生成するためにシステムを使用するための方法が提供される。たとえば、方法は、オンサイトの、クラウドベースの、ならびに/またはハイブリッドの、ゲノムならびに/またはバイオインフォマティクスに関する生成および/もしくは処理および/もしくは分析のうちの1つまたは複数などのための、ゲノムインフラストラクチャを提供することを含み得る。
そのような事例では、ゲノムインフラストラクチャは、関心のあるゲノム配列またはそれに関連する処理された結果データを含むデータなどの、データに対して1つまたは複数の分析処理機能を実行することが可能となるようにシステムを構成するための、1つまたは複数の構成可能な処理構造を記憶するように構成される1つまたは複数のメモリを有するバイオインフォマティクス処理プラットフォームを含み得る。メモリは、処理されるべき関心のあるゲノム配列を含むことがあり、たとえば生成および/または取得されると、1つまたは複数の遺伝子基準配列を含むことがあり、かつ/または、1つまたは複数の遺伝子基準配列のインデックスおよび/もしくはそれに関連するスプライス部位のリストを追加で含むことがある。システムはまた、システムのどの処理機能がデータに対して、たとえば関心のある前処理または処理されるゲノム配列に対して実行されるかを選択することなどによって、システムを構成することなどのための、構成可能な処理構造の1つまたは複数を選択肢のリストから選択するための、プラットフォームアプリケーションプログラミングインターフェース(API)を有する入力を含み得る。ユーザがデータに対して利用可能な選択肢のうちのいずれが実行されることを望むかをユーザが選択できるようなメニューを提示するために、APIと動作可能に関連付けられるものなどの、グラフィカルユーザインターフェース(GUI)も存在することがある。
システムは、複数の物理的な電気インターコネクトによって相互接続され得る、構成可能な、たとえば事前に構成された、かつ/またはハードワイヤリングされたデジタル論理回路の、1つまたは複数のセットで形成され得る1つまたは複数の集積回路上で実装され得る。そのような事例では、集積回路は、たとえばメモリから、1つまたは複数の構成可能な構造プロトコルを受け取るための、メモリインターフェースなどの入力を有することがあり、構成可能な処理構造プロトコルに従って、集積回路上で1つまたは複数の構造を実装するためにさらに適合されることがある。入力のメモリインターフェースはまた、ゲノム配列データを受け取るために構成されることがあり、これはゲノムデータの複数のリードの形式であり得る。インターフェースはまた、1つまたは複数の遺伝子基準配列およびインデックスにアクセスするために適合され得る。
様々な事例において、デジタル論理回路は、デジタル論理回路のサブセットで各々形成される処理エンジンのセットとして並べられ得る。デジタル論理回路および/または処理エンジンは、ゲノム配列データの複数のリードを生成するために、かつ/または、遺伝子基準配列もしくは他の遺伝子配列から導出される情報などに従って、ゲノムデータの複数のリードを処理するために、一次、二次、および/または三次処理プロトコルの1つまたは複数の事前に構成可能なステップを実行するように構成され得る。集積回路はさらに、プラットフォームアプリケーションプログラミングインターフェース(API)などに従って、一次、二次、および/または三次処理から結果データを出力するために、出力を有し得る。
具体的には、様々な実施形態において、デジタル論理回路および/または処理エンジンのセットは、複数のゲノム処理パイプラインを形成することがあり、たとえば、各パイプラインは、バイオインフォマティクス処理プラットフォームによる一次および/または二次処理から結果データを受け取るために、および、1つまたは複数の分析処理を入力に対して実行して結果データを産生するために、プラットフォームアプリケーションプログラミングインターフェースに従って定義される入力を有し得る。加えて、複数のゲノム処理パイプラインは、一次および/または二次処理されたデータからの結果データに対して実行されるべき、二次および/または三次処理動作を定義する、共通のパイプラインAPIを有することがあり、たとえば、複数のゲノム処理パイプラインの各々が、二次および/または三次処理動作のサブセットを実行して、パイプラインAPIに従って二次および/または三次処理の結果データを出力するように構成される。
そのような事例では、複数のゲノム分析アプリケーションが、メモリおよび/または関連する検索可能なアプリケーションリポジトリに記憶されることがあり、たとえば、複数のゲノム分析アプリケーションの各々が、複数のゲノム処理パイプラインの1つまたは複数などによって、一次、二次、および/または三次処理の結果データから前処理または後処理されたゲノムデータの標的を絞った分析を実行するために、コンピュータプロセッサによる実行などのために、コンピュータによって電子媒体を介してアクセス可能である。特定の事例では、複数のゲノム分析アプリケーションの各々が、APIによって定義されることがあり、一次、二次、および/もしくは三次処理の結果データを受け取るために、かつ/または、前処理もしくは後処理されたゲノムデータの標的を絞った分析を実行し、1つまたは複数のゲノムデータベースのうちの1つに標的を絞った分析からの結果データを出力するために、構成され得る。
方法は加えて、たとえばGUIのメニューから、システムの複数の利用可能なゲノム処理パイプラインから1つまたは複数のゲノム処理パイプラインを選択するステップと、アプリケーションリポジトリに記憶されている複数のゲノム分析アプリケーションから1つまたは複数のゲノム分析アプリケーションを選択するステップと、コンピュータプロセッサを使用して、1つまたは複数の選択されたゲノム分析アプリケーションを実行して、一次、二次、および/または三次処理の結果データからゲノムデータの標的を絞った分析を実行するステップとを含み得る。
加えて、様々な実施形態において、マッピング、アライメント、およびソートのすべてがチップ上で行われることがあり、ローカルリアライメント、重複マーキング、塩基品質スコア再較正、ならびに/または、様々な実施形態では、三次処理プロトコルおよび/もしくはパイプラインのうちの1つまたは複数も、チップ上で行われることがあり、様々な事例では、BAMおよびCRAMなどの様々な圧縮プロトコルもチップ上で行われることがある。しかしながら、一次、二次、および/または三次処理されたデータが産生されると、それらのデータは、解釈および/または協調分析プロトコルなどを含む、バリアントコールモジュール、二次処理プラットフォーム、三次処理プラットフォーム、および/または他の処理プラットフォームの実行などのために、システム全体などにわたって送られる、クラウドへ送られるなど、送信される前などに、圧縮され得る。これは、三次処理を含めてバリアントコールが移動する標的であり得るという事実、たとえば業界が使用する1つの標準的な合意されたアルゴリズムがないという事実を考慮すると、特に有用であり得る。
したがって、異なるタイプの結果を望み通りに達成するために、リモートユーザなどが異なるアルゴリズムを利用することができるので、この機能の実行のためにクラウドベースのモジュールを有することは、どのアルゴリズムが任意の特定の所与の瞬間に有用であるかを選択するためのフレキシビリティを可能にするために、また、直接処理および/もしくは並列処理のためにも有用であり得る。したがって、本明細書で開示されるモジュールの任意の1つは、たとえばチップ上でハードウェアとして、またはたとえばクラウド上でソフトウェアとして実装され得るが、いくつかの実施形態では、モジュールのすべてが、それらの機能がチップ上で実行され得るように構成されることがあり、またはモジュールのすべてが、それらの機能がクラウド上などのリモートで実行され得るように構成されることがあり、または、一部が1つまたは複数のチップ上に配置され、一部がクラウド上に配置されるような、モジュールの混合物がある。さらに、示されるように、様々な実施形態において、チップ自体が、チップ上のNGSおよび/またはシーケンサなどの遺伝子シーケンサと連携して、かついくつかの実施形態では、それとともに即刻の動作において機能するように構成され得る。
より具体的には、様々な実施形態において、本開示の装置は、データ分析モジュールのパイプラインを利用することなどによって、ゲノムデータを処理するために構成されるチップなどの、チップであり得る。したがって、図17~図19に関して分かるように、ゲノムパイプラインプロセッサチップ100が、ゲノムパイプラインプロセッサシステム10の関連するハードウェアとともに提供される。チップ100は、たとえば、外部メモリ102への1つまたは複数の接続(「DDR3メモリコントローラ」における)、およびホストコンピュータ106などの外界への接続104(たとえば、「PCIeインターフェース」)を有する。クロスバー108(たとえば、スイッチ)は、メモリインターフェースへのアクセスを様々な要求者に提供する。DMAエンジン110は、ホストとプロセッサチップ100の外部メモリ102との間で(クロスバー108を介して)、かつ/またはホストと中央コントローラ112との間で、高速にデータを転送する。中央コントローラ112はチップの動作を制御し、特に、複数の処理エンジンの試みを協調させる。処理エンジンは、物理的な電気インターコネクトによって相互接続されるハードワイヤードデジタル論理回路のセットで形成され、エンジンクラスタ114へと編成される。いくつかの実装形態では、1つのクラスタの中のエンジンは、アービタを介して1つのクロスバーポートを共有する。中央コントローラ112は、エンジンクラスタの各々への接続を有する。各エンジンクラスタ114は、マッパ120(またはマッピングモジュール)、アライナ122(アライメントモジュール)、およびソータ124(またはソートモジュール)を含む、ゲノムデータを処理するためのいくつかの処理エンジンを有する。エンジンクラスタ114は、他のエンジンまたはモジュールも含み得る。
本明細書で説明される実装形態と一貫する1つのデータフローモデルによればホストは、DMAエンジン110を介してコマンドおよびデータを中央コントローラ112に送り、中央コントローラ112は処理エンジンに対するデータの負荷のバランスをとる。処理エンジンは処理されたデータを中央コントローラ112に返し、中央コントローラ112はDMAエンジン110を介してそのデータをホストへと戻すようにストリーミングする。このデータフローのモデルは、マッピングおよびアライメントに適している。
本明細書で説明される実装形態と一貫した代替的なデータフローモデルによれば、ホストは、DMAエンジン110およびクロスバー108を介して直接、または中央コントローラ112を介して、データを外部メモリへとストリーミングする。ホストはコマンドを中央コントローラ112に送り、中央コントローラ112はコマンドを処理エンジンに送り、コマンドはどのデータを処理すべきかを処理エンジンに指示する。処理エンジンは外部メモリからの入力データにアクセスし、それを処理し、結果を外部メモリに書き込み、ステータスを中央コントローラ112に報告する。中央コントローラ112は、結果データを外部メモリからホストにストリーミングするか、または、DMAエンジン110を介して結果データ自体をフェッチするようにホストに通知するかのいずれかである。
図17および図18は、エンジンクラスタ114/214の内側の処理エンジンの完全な補足物を示す、ゲノムパイプラインプロセッサシステムを示す。パイプラインプロセッサシステムは、1つまたは複数のエンジンクラスタ114/214を含み得る。いくつかの実装形態では、パイプラインプロセッサシステム20は、4つ以上のエンジンクラスタ114/214を含む。処理エンジンまたは処理エンジンタイプは、限定はされないが、マッパ、アライナ、ソータ、ローカルリアライナ、塩基品質再較正器、重複マーカー、バリアントコーラ、圧縮器、および/または解凍器を含み得る。いくつかの実装形態では、各エンジンクラスタ114/214は、各処理エンジンタイプのうちの1つを有する。したがって、同じタイプのすべての処理エンジンは、異なるクロスバーポートを通じて同時にクロスバー108にアクセスすることができ、それは、それらの処理エンジンが各々異なるエンジンクラスタ114/214の中にあるからである。あらゆる処理エンジンタイプがあらゆるエンジンクラスタ114/214の中に形成される必要があるとは限らない。マッパ(および取り付けられたアライナ)およびソータなどの、大量の並列処理またはメモリ帯域幅を必要とする処理エンジンタイプを必要とする処理エンジンタイプは、パイプラインプロセッサシステムのあらゆるエンジンクラスタの中に存在し得る。他のエンジンタイプは、エンジンクラスタの性能要件またはパイプラインプロセッサシステムの性能要件を満たすために必要に応じて、エンジンクラスタ114/214のうちの1つまたはいくつかのみに存在し得る。
図19は、上で説明されたエンジンクラスタに加えて、1つまたは複数の組込み中央処理装置(CPU)202を示す、ゲノムパイプラインプロセッサシステムを示す。そのような組込みCPUの例には、Snapdragon(登録商標)および標準的なARM(登録商標)コアがある。これらのCPUは、進化したバリアントコールなどの、完全にプログラム可能なbio-ITアルゴリズムを実行する。そのような処理は、エンジンクラスタにおける計算機能によって加速され、これは必要に応じてCPUコア202によって呼び出され得る。さらに、マッピングおよびアライメントなどのエンジン中心の処理も、CPUコア202によって管理することができ、それらの処理に高いプログラム可能性を与える。
図20は、ゲノムパイプラインプロセッサシステムおよび方法のための処理フローを示す。いくつかの好ましい実装形態では、データに対する3つのパスがある。第1のパスはマッピング402およびアライメント404を含み、リードの完全なセットがエンジンを通じてストリーミングされる。第2のパスはソート406を含み、ソートされるべき1つの大きなブロック(たとえば、単一の染色体に以前にマッピングされたリードのかなりの部分またはすべて)がメモリにロードされ、処理エンジンによってソートされ、ホストに返される。第3のパスは、下流の段階(ローカルリアライメント408、重複マーキング410、塩基品質スコア再較正(BQSR)412、BAM出力414、縮小されたBAM出力416、および/またはCRAM圧縮418)を含む。第3のパスのステップおよび機能は、任意の組合せまたは部分的組合せで、任意の順序で、単一のパスで行われ得る。上で説明されたものなどの仮想パイプラインアーキテクチャは、処理エンジンを次々に順番に通じて、メモリの中の循環バッファへとホストからのリードをストリーミングし、次いでホストへと戻るようにストリーミングするために使用される。いくつかの実装形態では、CRAM解凍は別個のストリーミング機能であり得る。いくつかの実装形態では、BAM出力414、縮小されたBAM出力416、および/またはCRAM圧縮418は、バリアントコール、圧縮および解凍により置き換えられ得る。
様々な事例において、配列分析パイプラインのハードウェア実装形態が説明される。図21は、本開示の実装形態の一般的なブロック図を示す。ブロック1において、配列分析パイプラインのハードウェア実装形態が説明される。これは、FPGAまたはASICまたはストラクチャードASICの実装形態などの、いくつかの異なる方法で行われ得る。FPGAまたはASICまたはストラクチャードASICによって実装される機能ブロックが、図6および図7に示されている。図6および図7は、配列分析を行うためのいくつかのブロックまたはモジュールを含む。ハードウェアによる実現への入力はFASTQファイルであり得るが、このフォーマットには限定されない。FASTQファイルに加えて、FPGAまたはASICまたはストラクチャードASICへの入力は、Ion Torrentなどの技術からのFlow Space Informationなどの、サイド情報からなる。図21のブロックまたはモジュールは、エラー制御、マッピング、アライメント、ソート、ローカルリアライメント、重複マーキング、塩基品質再較正、BAMおよびサイド情報の低減、ならびにバリアントコールというブロックを示す。
これらのブロックまたはモジュールがハードウェアの内部に存在し、またはハードウェアによって実装され得るが、これらのブロックの一部は、配列分析パイプラインを実現する目的を達成するために、省略されることがあり、または他のブロックが追加されることがある。ブロック2および3は、配列分析パイプラインプラットフォームの2つの代替形態を表す。配列分析パイプラインプラットフォームは、FPGAまたはASICまたはストラクチャードASICと、クラウドおよび/またはクラスタストレージを伴うホスト(すなわち、PC、サーバ、クラスタまたはクラウドコンピューティング)によって支援されるソフトウェアとを備える。ブロック4~7は、配列分析パイプラインが有し得る異なるインターフェースを表す。ブロック4および6において、インターフェースはPCIeインターフェースであり得るが、PCIeインターフェースに限定されない。ブロック5および7において、ハードウェア(FPGAまたはASICまたはストラクチャードASIC)は、シーケンシングマシンに直接統合され得る。ブロック8および9は、PC、サーバクラスタ、またはシーケンサなどのホストシステムに統合される、ハードウェア配列分析パイプラインの統合を表す。ハードウェアFPGAまたはASICまたはストラクチャードASICを囲んでいるのは、多数のDDR3メモリ要素およびPCIeインターフェースである。FPGA/ASIC/sASICを伴う基板がホストコンピュータに接続し、ホストコンピュータは、ARM(登録商標)、Snapdragon(登録商標)などの低電力CPU、または任意の他のプロセッサのいずれかであり得る、ホストCPUからなる。ブロック10は、三次分析を実行するためにサードパーティアプリケーションによってアクセスされ得るハードウェア配列分析パイプラインAPIを示す。
したがって、様々な実施形態において、本開示の装置は、図6および図7に見られるようなFPGAまたはシリコン特定用途向け集積回路(ASIC)100に組み込まれるものなどの、コンピューティングアーキテクチャを含み得る。集積回路100は、コンピューティングプラットフォームに差し込むことができるPeripheral Component Interface-Express(PCIe)カードなどの、プリント回路基板(PCB)104へと統合され得る。様々な事例において、図6に示されるように、PCIeカード104は単一のFPGAまたはASIC100を含むことがあり、この集積回路はローカルメモリ105によって囲まれることがあるが、様々な実施形態において、図7に関して見られるように、PCIeカード104は、複数のFPGAならびに/またはASIC100A、100B、および100Cを含み得る。様々な事例において、PCIカードはPCIeバスも含み得る。このPCIeカード104は、極端に大きなデータセットに対してアルゴリズムを実行するために、コンピューティングプラットフォームに追加され得る。したがって、様々な事例において、集積回路が関与するゲノムシーケンシングの全体的なワークフローは、試料調製、アライメント(マッピングおよびアライメントを含む)、バリアント分析、生物学的解釈、および/または固有の適用形態を含み得る。
したがって、様々な実施形態において、本開示の装置は、極端に大きなデータセットに対して動作するマッピングおよびアライメントアルゴリズムなどのアルゴリズムの高性能な実行を、そのデータセットが低い参照の局所性(LOR)を示す場合などに達成する、コンピューティングアーキテクチャを含み得る。これらのアルゴリズムは、現代のいわゆる次世代シーケンサからの、数百万個の短いリード配列からゲノム全体を再構築するように設計され、ランダムにアクセスされる数ギガバイトのデータ構造を必要とする。再構築が達成されると、本明細書において上で説明されたように、あるゲノムを他のゲノムのライブラリと比較すること、遺伝子機能の分析を行うことなどのために、同様の特性を有するさらなるアルゴリズムが使用される。
現在、汎用マルチコアCPUおよび汎用グラフィック処理装置(GPGPU)という、2つの主要な手法が使用されている。そのような事例では、マルチコアシステムの中のach CPUは古典的なキャッシュベースのアーキテクチャを有することがあり、命令およびデータは、小さいが極めてアクセスが高速であるレベル1キャッシュ(L1キャッシュ)からフェッチされる。複数のL1キャッシュが、より大きいが遅い共有されるL2キャッシュに接続され得る。L2キャッシュは、大きいがより遅いDRAM(ダイナミックランダムアクセスメモリ)システムメモリに接続されることがあり、または、次いでDRAMに接続されることがあるさらに大きいが遅いL3キャッシュに接続されることがある。この構成の利点は、プログラムおよびデータが参照の局所性を示す適用形態がほとんど、DRAMと同じくらい大きいがL1キャッシュと同じくらい高速な単一のメモリを伴うコンピュータ上で実行されているかのように振る舞うことであり得る。フルカスタムの、高度に最適化されたCPUは、非常に高いクロックレート、たとえば2~4GHzで動作するので、このアーキテクチャは、良好な性能を達成するのに不可欠であり得る。
さらに、GPGPUは、各々が固有の小さいL1キャッシュを伴う非常に多数の小さなCPUを実装することなどによって、このアーキテクチャを拡張するために利用されることがあり、各CPUがデータの異なるサブセットに対して同じ命令を実行する。これはいわゆるSIMD(単一命令ストリーム、複数データストリーム)アーキテクチャである。多数のCPUにわたって命令フェッチ論理と復号論理を共有することで、経済性が得られる。各キャッシュは、配線ネットワークを介して、複数の大きな外部DRAMへのアクセス権を有する。実行されるべき計算が高度に並列化可能であると仮定すると、GPGPUは、多数のコンピューティングリソースを有することにより、汎用CPUを上回る大きな利点を有する。それでも、GPGPUはまだキャッシングアーキテクチャを有しており、それらの性能は参照の局所性の程度が十分に高くないアプリケーションにより損なわれる。これにより、キャッシュミスレートが高くなり、プロセッサが外部DRAMからデータが到達するのを待機している間にアイドル状態になる。
たとえば、様々な事例において、ダイナミックRAMはシステムメモリのために使用されることがあり、それは、それらがスタティックRAM(SRAM)より経済的であるからである。かつての経験則では、DRAMは同じコストでSRAMの4倍の容量を有していた。しかしながら、DRAMが好まれてSRAMの需要が低下していることにより、この差は、需要の大きなDRAMに有利に働く規模の経済によってかなり増大している。コストとは無関係に、DRAMは、同じシリコン面積においてレイアウトされるSRAMの4倍の密度であり、それは、SRAMのフリップフロップを実装するのにビット当たり4つのトランジスタを必要とするのに対して、DRAMはビット当たり1つのトランジスタとキャパシタしか必要としないからである。DRAMは、キャパシタ上の電荷の存在または不在として情報の単一のビットを表す。この構成の問題は、電荷が時間とともに減るので、定期的にリフレッシュされなければならないということである。これを行わなければいけないことで、要求当たりメモリの複数のワードを送達する独立のブロックおよびアクセス機構へとメモリを編成するアーキテクチャができた。これは、所与のブロックがリフレッシュされている間に利用不可能である時間を補償する。考え方は、所与のブロックが利用可能である間に多くのデータを移動することである。これは、メモリの中の任意の位置がある一定の時間内の単一のアクセスにおいて利用可能であるSRAMとは対照的である。この特性は、メモリアクセスが、ブロック指向ではなく単一ワード指向となることを可能にする。DRAMはキャッシングアーキテクチャにおいて良好に動作し、それは、各キャッシュミスにより、メモリのブロックがDRAMから読み取られるようになるからである。参照の局所性の理論は、ワードNにアクセスしたばかりである場合、おそらくワードN+1、N+2、N+3などにアクセスすることになるというものである。
図7は、多数のチップ100A、100B、100Cを有する、図6の代替的な実施形態を表し、各チップは、本明細書で開示されるように、たとえば例示的なパイプライン分析装置の、様々なゲノムおよび/またはバイオインフォマティクス処理モジュールのうちの1つまたは複数を含み得る。
図17は、遺伝子配列データに対して配列分析パイプラインを実行するためのシステム100を示す。システム100は、コンピューティングシステムを含む構成マネージャ102を含む。構成マネージャ102のコンピューティングシステムは、パーソナルコンピュータもしくは他のコンピュータワークステーションを含むことがあり、または、一連のネットワーク化されたコンピュータによって実装されることがある。構成マネージャ102はさらに、1つまたは複数のAPIによってコンピューティングシステムと接続される1つまたは複数のサードパーティアプリケーションを含むことがあり、これらは、1つまたは複数のプロプライエタリアプリケーションを用いて、シーケンサまたは他のゲノムデータソースからのゲノムデータを処理するための構成を生成する。構成マネージャ102はさらに、構成をゲノムパイプラインプロセッサシステム10にロードするドライバを含む。ゲノムパイプラインプロセッサシステム10は、電子医療記録200または他の知識データベース400への結果データの記憶のために、Web50もしくは他のネットワークに結果データを出力することが可能であり、またはそれらを介してアクセスされることが可能である。
本明細書において上のいくつかのペースにおいて論じられるように、ゲノムパイプラインプロセッサを実装するチップは、シーケンサに接続または統合され得る。チップはまた、拡張カード、たとえばPCIeに接続または統合されることがあり、拡張カードは、シーケンサに接続または統合されることがある。他の実装形態では、チップは、ゲノムリードをシーケンサからサーバに転送するために、シーケンサに接続されるサーバコンピュータに接続または統合され得る。さらに他の実装形態では、チップは、コンピュータおよびサーバのクラウドコンピューティングクラスタの中のサーバに接続または統合され得る。システムは、チップを含むサーバに(たとえば、イーサネット(登録商標)を介して)接続される1つまたは複数のシーケンサを含むことがあり、ゲノムリードが、複数のシーケンサによって生成され、サーバに送信され、次いで、チップにおいてマッピングおよびアライメントされる。
たとえば、一般的な次世代DNAシーケンサ(NGS)データパイプラインでは、主要な分析段階の処理は一般に、所与のシーケンシング技術に特有である。この主要な分析段階は、シーケンサの内部で検出された物理信号を、関連する品質(信頼性)スコアを伴うヌクレオチド配列の「リード」、たとえば、FASTQフォーマットファイル、または、配列および通常は品質情報を含む他のフォーマットに変換するように機能する。そのようなフォーマットが達成された後で、本明細書で説明されるように、二次分析が、基準ゲノムへのリードのマッピングおよびアライメント、ソート、重複マーキング、塩基品質スコア再較正、ローカルリアライメント、ならびにバリアントコールなどによって、シーケンシングされた試料DNA(またはRNAなど)の内容を決定するために進行する。次いで、決定されたDNAの内容から医学的または研究上の示唆を抽出するために、三次分析が後に続き得る。
しかしながら、上で言及されたように、一次分析はしばしば、利用されるシーケンシング技術に対して本質的にかなり特有である。様々なシーケンサにおいて、ヌクレオチドは、電荷、電流、または放射光を検知することによって検出される。一部の一次分析パイプラインはしばしば、センサ出力を増幅し、フィルタリングし、分離し、測定するための信号処理、量子化、デシメーション、平均化、変換などによるデータの縮小、意味のある信号を特定して増幅し、それらを特定のリードおよびヌクレオチドと関連付けるための、画像処理または数値処理(たとえば、画像オフセット計算、クラスタ特定)、シーケンシング技術のアーティファクトを補償するためのアルゴリズム処理およびヒューリスティック(たとえば、フェージング推定、クロストークマトリクス)、ベイズ確率計算、隠れマルコフモデル、ベースコール(配列の各場所における最も可能性の高いヌクレオチドを選択すること)、ベースコール品質(信頼性)推定などを含む。
一次分析は、場合によっては二次分析と同じくらい、極めて可換に集約的であり得る。たとえば、既存のシーケンシング技術では、一次分析はしばしば、CPU能力を超えて処理を加速するために、FPGAおよび/またはGPUを利用する。しかし、これらの加速された機能は、本明細書で説明されるものなどの、カスタムの集積回路においてはるかにより効率的に実行することができる。たとえば、加速された機能は、構成可能な金属層を使用してストラクチャードASICにおいて実装することができ、それは、組込みプロセッサコアほど物理的なレイアウトの精度を必要としないからである。しかしながら、大きなFPGAおよびGPUにおいて実施される大規模並列計算は、構成可能なストラクチャードASICリソースに収まるのが難しいことがある。代替形態は、ストラクチャードASICのマスタースライスにおいて一次処理アクセラレーション論理を実装し、マスタースライスにおけるスタンダードセルの空間効率性を利用することである。
二次処理機能がストラクチャードASICの構成可能な金属層において実装され得る理由は、二次ゲノムデータ処理アルゴリズムがまだ活動的な研究により進化しているということである。したがって、最新のアルゴリズムを利用するために、定期的に、たとえば毎年または2年に1回、新規に更新されたストラクチャードASIC設計を安価に生み出せることが有益であり得る。対照的に、現在利用されている一次分析アルゴリズムはより成熟しており、必要な処理がそれぞれのシーケンサ製造業者により研究され定義されている。このアルゴリズムは、まだ変化を受けているがその変化の範囲を考慮しても、二次分析の場合よりも汎用的な信号および数値処理であるので、一次処理アクセラレーションモジュールの適切な構成可能性およびマイクロコーディングが、重大な変化に対応するのにそのアルゴリズムを十分フレキシブルにし得る。組込みプロセッサコアが存在する場合、これがフレキシビリティをさらに上げる。これらの理由により、本明細書で説明されるように、一次処理アクセラレーション方法をFPGAおよび/またはストラクチャードASICのマスタースライスへと設計することが妥当である。
単一の集積回路FPGAまたはASIC(スタンダードセルまたはストラクチャードASIC)に、組込みプロセッサありで、またはなしで、一次処理アクセラレーションおよび二次処理アクセラレーションを統合することも有利である。これは、シーケンサが一次分析と二次分析の両方を必要とするデータを産生するので有益であることがあり、それらを単一のデバイスに統合することが、コスト、空間、電力、およびリソースの共有の観点で最も効率的である。組込みプロセッサも存在する場合、それらは、一次処理と二次処理の両方の速度とフレキシビリティを上げるために活用され得る。
これらの3つのコンポーネント、すなわち一次アクセラレータ、二次アクセラレータ、および組込みプロセッサは、FPGAもしくはストラクチャードASICのマスタースライスに、かつ/または構成可能な金属層を使用して、任意の組合せで実装され得る。3つすべてがマスタースライスの中にあることがあり、または3つすべてが構成可能な金属層を使用することがあり、またはそれらのうちの任意の1つまたは2つがマスタースライスの中にあることがあり、他のものが構成可能な金属層を使用する。これらの構成のいずれにおいても、3つすべてが、直接、かつ/またはメモリを介して、任意の組合せで互いに通信することができ、共通のタスクにおいて協力することができる。1つの有利な構成は、マスタースライスにおいて一次アクセラレーションおよび組込みプロセッサを実装し、構成可能な金属層を使用して二次アクセラレーションを実装することである。
加えて、上で示されたように、チップは、ASICとして実装されるか、FPGAとして実装されるか、またはストラクチャードASICとして実装されるかにかかわらず、1つまたは複数のメモリアーキテクチャを含むことがあり、またはそれと別様に関連付けられることがある。たとえば、メモリアーキテクチャは、ASICなどのチップとインターフェースするM個のメモリモジュールからなり得る。ASICは、FPGA(フィールドプログラマブルゲートアレイ)またはストラクチャードASIC、スタンダードセル、またはフルカスタムロジックを含む、多くの異なる技術を使用して実装され得る。ASIC内には、メモリサブシステム(MSS)および機能処理ユニット(FPU)がある。MSSは、メモリモジュールに対するM個のメモリコントローラ(MC)と、FPUに対するN個のシステムメモリインターフェース(SMI)と、任意のSMIが任意のMCにアクセスすることを可能にするN×Mのクロスバーとを含む。コンテンションの場合に、調停が行われる。
AMM個のビットワードによってアドレス指定され、DMM個のビット幅のデータ転送をサポートするDRAMチップから、各メモリモジュールが構築される。メモリは
個のアドレス位置を有する。DRAMの重要な特性は、供給されたアドレスをベースアドレスBとして使用し、位置B+1、B+2、...、B+W-1もフェッチまたは記憶して、Wワードのバーストにおいて読取り/書込みを実行するということである。Wの典型的な値は8である。
ASICのMSSにおいて、各メモリコントローラは、要求された制御信号を供給し、システムのワード幅DSYSとメモリのワード幅DMMとの間で任意の必要な多重化/逆多重化、ならびに、読取り/書込みバーストのための要件を扱うことを実行する。それは、複数のメモリ要求がスループットを最大にするようにパイプライン化された方式で待ち行列に入れられ処理され得るように、余剰のバッファリングを含み得る。このことは、アドレスの提示とメモリ動作(読取りおよび書込み)の完了との間の、複数のクロック周期のレイテンシを補償する。
MCは、メモリモジュールの中の取り付けられたDRAMの速度で動作し得る。メモリモジュールのクロックレートをCMMと仮定する。これは、ASICの中の論理回路の大半が動作するコアの速度CSYSより数倍速いことが多い。したがって、多重化/逆多重化論理回路が、信号の距離を最短にするように、関連するインターフェースピンの近くに配置される。逆多重化は入ってくるデータに対して実行される最初の動作であり、多重化は出ていくデータに対して実行される最後の動作である。MSSの残りは、DMMより広い幅DSYSのデータに対して動作し、より遅いクロック速度CSYSの使用を可能にする。
MSSの中の各システムメモリインターフェースは、ASYSビットのアドレスバスおよびDSYSビットのデータバスを、任意の取り付けられたFPUに提示する。SMIは、取り付けられたFPUには、SMIが単一の大きな高速メモリへのランダムなアクセス権を有するように見えるように、設計される。FPUは、別個のメモリモジュールの存在を認識していない。ASYSは、任意の取り付けられたメモリモジュールの中の任意のメモリ位置へのアクセスを可能にするのに十分大きい。システムアドレス空間からメモリモジュールアドレス空間へのマッピングが、以下で説明される。
N個のシステムメモリインターフェースが、N×Mのクロスバーを介してM個のメモリモジュールに相互接続される。クロスバーは、SMIとMCとの間でmin(M,N)個の同時接続を提供し、競合に対する調停を行い、メモリモジュールアドレス空間へのシステムアドレス空間の変換を容易にする。
FPUの編成は高度にフレキシブルである。1つまたは複数のFPUが同じシステムメモリインターフェースを共有することができる。性能を最大化するために、同時に動作しないFPUはSMIを共有すべきである。同時に動作するものは、異なるSMIに取り付けられるべきである。DSYSより大きなデータ構造に対して動作するFPUは、単一のメモリ動作においてデータ構造全体にアクセスするために複数のSMIを使用することができる。したがって、このメモリアーキテクチャは、広範囲の計算アーキテクチャをサポートする。各FPUは同一であり得るので、それらのアレイが2次元構造で実装され得る。これが図示されており、FPU(i,j)はSMI iに取り付けられたj番目のユニットであり、0≦i<N、0≦j<kiである。この場合、すべてのkiは同じサイズであり、kiは1と同じくらい小さいことがある。これは、FPUが同じまたは個別の命令メモリからの命令をフェッチするかどうかに応じて、SIMD(単一命令ストリーム、複数データストリーム)およびMIMDアーキテクチャ(複数命令ストリーム、複数データストリーム)をサポートする。
1つの特定の態様では、本開示は、遺伝子配列データに対して配列分析パイプラインを実行するためのシステムなどの、システムを対象とする。様々な事例において、システムは、デジタル信号、たとえばゲノムデータの複数のリードを表すデジタル信号を提供するデータソースなどの、電子データソースを含むことがあり、ゲノムデータの複数のリードの各々はヌクレオチドの配列を含む。システムは、1つまたは複数の遺伝子基準配列および/もしくは1つまたは複数の遺伝子基準配列のインデックスを記憶するメモリなどの、メモリの1つまたは複数を含むことがあり、かつ/または、システムは、ASIC、FPGA、もしくはsASICなどのチップを含むことがある。
より具体的には、様々な特定の実施形態では、システムはストラクチャード特定用途向け集積回路(ASIC)を含むことがあり、たとえば、チップは、複数の物理的な電気インターコネクトによって相互接続され得るマスクプログラム可能なハードワイヤードデジタル論理回路のセットで形成される。様々な事例において、複数の物理的な電気インターコネクトの1つまたは複数は、ゲノムデータの複数のリードを受け取ることなどのための、電子データソースに接続されたストラクチャードASICへの入力を含む。そのような事例では、複数の物理的な電気インターコネクトの1つまたは複数は、ストラクチャードASICがメモリにアクセスするためのメモリインターフェースを含み得る。したがって、ハードワイヤードデジタル論理回路は、処理エンジンのセットとして並べられることがあり、たとえば、各処理エンジンは、ゲノムデータの複数のリードに対して配列分析パイプラインにおける1つまたは複数のステップを実行するために、ハードワイヤードデジタル論理回路のサブセットで形成されることがある。様々な実施形態では、ハードワイヤードデジタル論理回路の1つまたは複数の、たとえば各々のサブセットは、配列分析パイプラインにおける1つまたは複数のステップを実行することなどのために、ワイヤード構成であり得る。たとえば、処理エンジンのセットは、マッピングモジュール、アライメントモジュール、および/またはソートモジュールのうちの1つまたは複数を含むように構成され得る。
たとえば、処理エンジンのセットは、ワイヤード構成であるマッピングモジュールを含むことがあり、複数のリードのうちのあるリードのヌクレオチドの配列の少なくともいくつかに従って、メモリインターフェースを介してメモリから1つまたは複数の遺伝子基準配列のインデックスにアクセスし、インデックスに基づいて1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントにリードをマッピングするように構成される。たとえば、いくつかの実施形態では、1つまたは複数の遺伝子基準配列のインデックスはハッシュテーブルを含むことがあり、かつ/または、マッピングモジュールは、インデックスのハッシュテーブルにアクセスするために、ハッシュ関数をヌクレオチドの配列の少なくともいくつかに適用することがある。
処理エンジンはさらに、または代替的に、ワイヤード構成であるアライメントモジュールを含むことがあり、このアライメントモジュールは、マッピングモジュールから取得されるものなどの、1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントの中の1つまたは複数の場所にリードをアライメントするために、たとえばメモリインターフェースを介して、メモリからの1つまたは複数の遺伝子基準配列にアクセスするように構成される。処理エンジンはさらに、または代替的に、ワイヤード構成であるソートモジュールを含むことがあり、アライメントモジュールから取得されるものなどの、遺伝子基準配列の中の1つまたは複数の場所、たとえば染色体の場所にリードをソートするために、たとえばメモリインターフェースを介して、メモリからの1つまたは複数のアライメントされたリードにアクセスするように構成される。
様々な事例において、ストラクチャードASICは、ハードワイヤードデジタル論理回路の少なくともいくつかを組み込むマスタースライスを含むことがあり、いくつかの事例では、マスタースライス上に形成される1つまたは複数の構成可能な金属層を含むことがあり、たとえば、1つまたは複数の構成可能な金属層の各々が、処理エンジンのセットを形成するためにハードワイヤードデジタル論理回路の少なくともいくつか相互接続する、複数の物理的な電気インターコネクトの少なくともいくつかを有することがある。いくつかの実施形態では、複数の物理的な電気インターコネクトの1つまたは複数は、マッピングモジュールおよび/またはアライメントモジュールおよび/またはソートモジュールから結果データを通信することなどのために、ストラクチャードASICからの出力を含み得る。
様々な事例において、ストラクチャードASICは、配列分析パイプラインにおける1つまたは複数のステップを実行するために、ハードワイヤードデジタル論理回路の各サブセットのためのワイヤード構成を確立するためのマスターコントローラを含み得る。様々な実施形態において、ワイヤード構成は、集積回路の製造に際して確立され、不揮発性である。いくつかの実施形態では、ストラクチャードASICおよび/またはメモリは、peripheral component interconnect(PCI)カードなどの拡張カードに収容される。上で示されたように、様々な実施形態において、システムはシーケンサを含むことがあり、たとえば、シーケンサは、ゲノムデータの複数のリードを表すデジタル信号を提供する電子データソースを含む。そのような事例では、拡張カードはシーケンサと物理的に統合され得る。
加えて、様々な実施形態において、ストラクチャード特定用途向け集積回路(ASIC)が、遺伝子配列データを分析することなどのために提供されることがあり、たとえば、遺伝子配列データは、ゲノムデータと関連付けられる1つまたは複数の遺伝子基準配列および/または1つまたは複数の遺伝子基準配列のインデックスを記憶するメモリなどの、メモリに記憶される。そのような事例では、ストラクチャードASICは、デジタル論理回路のセットをさらに含むマスタースライスを含むことがあり、マスタースライス上で形成される1つまたは複数の構成可能な金属層を追加で含むことがあり、たとえば、1つまたは複数の構成可能な金属層の各々は、処理エンジンのセットを形成するためにデジタル論理回路のサブセットを相互接続するように並べられたワイヤード接続のセットを有し得る。そのような事例では、処理エンジンのセットは、マッピングエンジン、アライメントエンジン、および/またはソートエンジンを含み得る。様々な事例において、マスタースライスの中のデジタル論理回路のセットの一部分は、ベースコールエンジンとしてハードワイヤリングされる。
たとえば、処理エンジンのセットは、たとえば複数のリードのうちのあるリードの中のヌクレオチドの配列の少なくともいくつかに従って、メモリに記憶されている1つまたは複数の遺伝子基準配列のインデックスにアクセスして、たとえばインデックスに基づいて、1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントにリードをマッピングするための、マッピングエンジンを含み得る。加えて、または代替的に、処理エンジンのセットは、たとえばメモリインターフェースを介して、メモリからの1つまたは複数の遺伝子基準配列にアクセスして、マッピングモジュールからの1つまたは複数の遺伝子基準配列の1つまたは複数のセグメントの中の1つまたは複数の場所にリードをアライメントすることなどのための、アライメントエンジンを含み得る。加えて、または代替的に、処理エンジンのセットは、1つまたは複数の遺伝子基準配列の中の1つまたは複数の場所に従って、各々のアライメントされたリードをソートするための、ソートエンジンを含み得る。
一実施形態では、遺伝子配列データに対して配列分析パイプラインを実行するためのシステムが提供され、このシステムは、ゲノムデータの複数のリードを表すデジタル信号を提供する電子データソースを含み、たとえば、ゲノムデータの複数のリードの各々がヌクレオチドの配列を含む。システムは、たとえば、1つまたは複数の遺伝子基準配列および/または1つまたは複数の遺伝子基準配列のインデックスを記憶するためのメモリの1つまたは複数を含むことがあり、かつ/または、システムは、デジタル論理回路のセットを定義するフォトリソグラフィマスクによって形成されるマスタースライスなどのマスタースライスを有する集積回路を含むことがある。そのような事例では、マスタースライスは、本明細書において上で説明されたものなどの1つまたは複数の機能が組み込まれるように構成され得る。たとえば、マスタースライスは1つまたは複数の構成可能な金属層を有することがあり、たとえば、1つまたは複数の構成可能な金属層の各々は、前述の機能を実行するためにワイヤード構成のデジタル論理回路のセットのサブセットを接続する、1つまたは複数の導電性のインターコネクトを有する。
様々な態様において、遺伝子配列データを分析するためのストラクチャード特定用途向け集積回路(ASIC)を作成するための方法が提供される。いくつかの実施形態では、方法は、マスタースライスのデジタル論理回路のセットを定義するマスクなどの、複数のフォトリソグラフィマスクを提供するステップ、マスタースライスを形成するために複数のフォトリソグラフィマスクを使用することなどによってデジタル論理回路のセットを形成するステップ、処理エンジンのセットを実装するために対応する2つ以上のデジタル論理回路を定義するマスクなどの、設計固有の構成可能な金属層のマスクの2つ以上の異なるセットを提供するステップ、設計固有の構成可能な金属層のマスクの2つ以上の異なるセットを使用することなどの、2つ以上の構成可能な金属層を形成するステップであって、たとえば、2つ以上の構成可能な金属層の各々が、たとえば、処理エンジンのセットを形成するためにデジタル論理回路のサブセットを相互接続するために、構成可能な金属層のマスクの設計に従って並べられ得るワイヤード接続のセットを有する、ステップ、および/または、処理エンジンのセットを形成するために2つ以上の構成可能な金属層をマスタースライス上に提供するステップのうちの1つまたは複数を含む。
本明細書で説明される主題の1つまたは複数の態様または特徴は、デジタル電子回路、集積回路、特別に設計された特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはストラクチャードASICコンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せにおいて実現され得る。
これらの様々な態様または特徴は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間で、データと命令を受信および送信するために結合される、専用または汎用であり得る少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または解釈可能である、1つまたは複数のコンピュータプログラムにおける実装形態を含み得る。プログラム可能システムまたはコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に、互いに離れており、典型的には通信ネットワークを通じて相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行されるコンピュータプログラムにより、および互いにクライアント-サーバの関係を有することにより、発生する。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポーネント、またはコードとも呼ばれ得るこれらのコンピュータプログラムは、プログラム可能プロセッサのための機械命令を含み、高水準手続き型言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書では、「機械可読媒体」という用語は、たとえば磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイス(PLD)などの、機械可読信号として機械命令を受け取る機械可読媒体を含めて、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイスを指す。「機械可読信号」という用語は、プログラム可能プロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。機械可読媒体は、たとえば非一時的ソリッドステートメモリまたは磁気ハードドライブまたは任意の等価な記憶媒体などのように、そのような機械命令を非一時的に記憶することができる。機械可読媒体は、代わりに、または加えて、たとえば、1つまたは複数の物理プロセッサコアと関連付けられるプロセッサキャッシュまたは他のランダムアクセスメモリのように、そのような機械命令を一時的に記憶することができる。
ユーザとの対話を行うために、本明細書で説明される主題の1つまたは複数の態様または特徴は、たとえば、情報をユーザに表示するための陰極線管(CRT)、液晶ディスプレイ(LCD)、または発光ダイオード(LED)モニタなどのディスプレイデバイスと、キーボードと、たとえば、ユーザがそれを用いて入力をコンピュータに与えることができるマウスまたはトラックボールなどのポインティングデバイスとを有する、コンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を行うために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚的なフィードバック、音響的なフィードバック、または触覚のフィードバックなどの、任意の形態の感覚的なフィードバックであってよく、ユーザからの入力は、限定はされないが、音響的な入力、発話の入力、または触覚の入力を含む、任意の形式で受け取られ得る。他の可能な入力デバイスは、限定はされないが、シングルポイントまたはマルチポイントの抵抗性もしくは容量性トラックパッドなどの、タッチスクリーンまたは他のタッチ検知デバイス、音声認識ハードウェアおよびソフトウェア、光学スキャナ、光学ポインタ、デジタル画像キャプチャデバイス、ならびに関連する解釈ソフトウェアなどを含む。
本明細書で説明される主題は、所望の構成に応じて、システム、装置、方法、および/または物品において具現化され得る。前述の説明において記載される実装形態は、本明細書で説明される主題と一貫したすべての実装形態を表すものではない。代わりに、それらは、説明される主題に関する態様と一貫するいくつかの例にすぎない。少数の変形が上で詳細に説明されたが、他の変更および追加が可能である。具体的には、さらなる特徴および/または変形が、本明細書に記載されたものに加えて提供され得る。たとえば、上で説明された実装形態は、開示された特徴の様々な組合せおよび部分組合せ、ならびに/または、上で開示されたいくつかのさらなる特徴の組合せおよび部分組合せを対象とし得る。加えて、添付の図面において示され、かつ/または本明細書において説明される論理フローは、望ましい結果を達成するために、示されている特定の順序または一連の順序を必ずしも必要とはしない。他の実装形態が以下の特許請求の範囲の中にあり得る。