核心的技術

このページではFinishingツールの革新技術についてなぜショートリードだけで完全決定が可能なのか解説します。

GenoFinisherによるアセンブルの解析

GenoFinisher(GF)では、newblerの出力ファイルに基づいて、コンティググラフを描画することができ、アセンブル全体を俯瞰して評価することが可能です。また、スキャフォールド内のgapを埋める候補コンティグルートが出力されるので コンティググラフを描画して妥当なルートを選ぶことができます。選んだルートに付いて、配列の正確な配列決定に必要なAFVの入力とするコンテクストデータが出力されているので、正確な配列決定が容易です。

リピートコンティグのコンテクストをふまえた配列決定

newblerは、ゲノム中のリピートとリピートでない部分を境に切り分けたコンティグを出力します。このとき、リピートとリピートでないコンティグに両方にまたがっていたリードは両方のコンティグに帰属させられることになります。 newblerの出力ファイルの1つであるaceファイルには、各コンティグがどのようなリードで形成されているかが記述してありますが、このファイルに記述された内容を詳細に解析可能なのがAceFileViewer(AFV)です。

AFVはリードについて2つの観点から情報を整理します。1つは、2つ以上のコンティグに帰属するリードについて、どこにどのように帰属しているかについてです。 もう1つは、2つのペアとなるリードについて、お互いのペアがどのコンティグにどのように存在しているか(つまり位置と向き)についてです。

これらの情報が整理されていることにより、あるコンティグを形成するリードの1つ1つについて、そのリードがコンティグの末端に有る場合には、コンティグの外側でどのようになっているかを知ることができ、またそのペアリードがある場合にはそれがどのコンティグのどこに帰属しているかを、容易に知ることができます。

リピートコンティグのコンテクストをふまえた配列決定2

newblerが出力するリピートコンティグの配列は、ゲノム中に複数あるリピート配列のコンセンサス配列です。言い換えると、リピートの中に他と異なる塩基があった場合は、その違いを無視した配列がコンセンサス配列として出力されています。 つまりあるスキャフォールド中のgapにはまるコンティグ(リピートコンティグ)がどれだかわかったとしてもそのgapに、newblerから出力されたコンティグ配列をそのまま入れることはできません。もしそのまま入れてしまうと、ゲノム中のリピート配列が全て同じ配列になってしまいます。

AFVでは、リピートコンティグのコンテクストを指定して配列を正確に決定します。ここでコンテクストとは、例えば「コンティグ15と16に挟まれている」とか、そういったコンティグの置かれた状況のことです。 AFVでは向きもふまえて「コンティグ15の後ろ側、かつ、コンティグ16の前側」といったように細かくコンテクストを指定することもできます(このときこのコンテクストは15+ 16-と表します)。

実際の解析においては、コンティグの各塩基すべてについて通過する全リードを解析し、一定程度の割合以上でコンセンサスと異なる塩基を有するかどうかを判定します。 もしコンセンサスと異なるリードが一定程度あるならば、その塩基部分に付いて、指定したコンテクストと関連があるリードだけを集めてコンセンサスを取り直します。 ここで「関連があるリード」とは、例えば15+と関連があるのであれば、コンティグ15の後ろ側に向く向きで存在しているリードとペア関係にあるか、コンティグ15の3'端にも帰属しているリードを指します。

このようにして、AFVでは、リピートコンティグの配列をコンテクストをふまえて正確に決定することができます。

配列の張り合わせ

GFでは、コンティグと任意の配列を好きなように連結できます。連結方法は簡単なルールに従って指定します(表計算シートで編集します)。連結産物には任意の名前を付けることができ、これはさらに次の連結に使用することができます。

配列のチェック

GFに付属のFinishCheckerでは2通りの方法で完成配列をチェックできます。1つは、リードデータには存在しないのに、完成配列には存在するk-mer (kは整数例えば25 mer)を発見する方法です。そのようなk-merがどこに存在するのか容易にわかるようになっており、修正を容易にします。 もう1つはペアデータのマッピングによる方法です。ペアを完成配列にマップし、まずは局所的に異常にマップされていないかをチェックします。 次にゲノムの各点を通過するペアの末端感距離分布を調べ、これがゲノム全体にマップしたときの末端間距離分布と比べて、異常が見られるかを統計的にチェックします。

これらのチェックにより、配列の完成度をより高めることができます。