2019 6/10 インストール追記
2019 6/11 sparsehashインストール追記
次世代シーケンシング(NGS)技術の出現により、生物圏のすべての生物を事実上 シーケンシングでききるようになった[論文より ref.1]。 NGS技術は、非常に高いデータ生産量を特徴としており、あらゆる生物で高いカバレッジのデータを手に入れることができる。
多くのゲノムのための高いシーケンシングカバレッジを生み出す能力は、多数のde novoアセンブリプロジェクトへの道を開いた[ref.2,3]。これにもかかわらず、ショートリードでのデノボアセンブリは、サンガーのロングリードでのデノボアセンブリよりも難しいと一般に認められている[ref.4]。(一部略)
最近、異なるデータセットでのアセンブラのパフォーマンスをランク付けしようとするいくつかの評価が提示されている。Assemblathon [ref.9]とGAGE [ref.10]は最も重要なものの1つである。副産物としてこれらのコンペティションは最良のアセンブラを確立することが非常に困難であることを示した。各データセットは異なる特性によって特徴付けられ、単一のアセンブラによって実装されたヒューリスティックは、通常、部分的にしか問題を解決できない。
De novoアセンブリを改善する興味深い戦略が提案され、 assembly reconciliation という名前で呼ばれている[ref.11,12]。assembly reconciliation の目的は、可能性のある誤ったアセンブリを検出し、問題のある領域を分離しながら、さまざまなツールで作成されたアセンブリをマージすることである。このような戦略はサンガーシーケンス時代に既に提案されており、この論文の目標の1つはNGSデータへの適応を研究することである。
Zimin et al [ref.11]はReconciliatorを提案した。これはエラーの識別と訂正の繰り返しに基づいている。いわゆるCE統計[11]を使用して、アセンブリ内のエラーを含む可能性のある領域を特定する。その後、2つのアセンブリ間のグローバルアライメントが実行される。リピートの問題を回避するために、アラインメントはリファレンス配列およびクエリ配列の両方においてユニークなシードを用いて行われる。問題があるとマークされた領域は、より良いCE統計を持つアセンブラを使用して解決され、アセンブリ内の可能なギャップが埋められる。最後のステップは、結合されたアセンブリの検証である。
Casagrandeら[12]は、Reconciliatorと同様のツールであるGAM(GAM-NGSの祖先)を提案したが、こちらはグローバルアラインメントのステップを回避することができる。同様の配列を同定するために、同じリードによってアセンブリされた領域を探す。続いて、「ブロック」という概念を導入して局所的アライメントを評価し、2つのアセンブリ間のグローバルな関係を記述するためのグラフを作成する。問題のある領域(グラフ内のループや分岐など)に直面すると、GAMはアセンブリの1つをガイドとして使う。
ReconciliatorとGAMの両方には長所と短所がある(GAMはグローバルアライメントが必要ないが、GAMでは誤ったアセンブリを検出して修正できない)。それにもかかわらず、両方のツールは、Sangerベースのアセンブラに合わせた制限を共有している。一例として、両方とも、それが使用された(ユニークな)各位置について記述するレイアウトファイル(通常はafgファイル)を必要とする。 NGSアセンブラでは、そのようなレイアウトファイルは、少数のツール(例えば、Velvet、RayおよびSUTTA)によって提供される。さらに、両方のツールの別の限界は、2つの入力アセンブリが同じリードセットを使用して生成されていなければならないという事実である。
最近、GAA [ref.13]とZORRO [ref.14]のようなNGSのようなデータセットを使用してアセンブリの調整の問題に取り組む2つの新しいツールが登場した。前者は、2つのアセンブリ間でグローバルアライメントを実行する(BLATを使用)。アラインメントは、アセンブリをマージするために、いわゆるアコーダンスグラフを構築するために使用される。マージフェーズでは、正しいアセンブリを出力するため、不一致の可能性のあるリンクを解決するリードが使用される。後者のZORRO [ref.14]は、元のコンティグで最初にエラー訂正フェーズを実行し、その後、nucmerを使用してグローバルアライメントを実行する。このアラインメントでは、コンティグを配列してコンセンサス配列が出力される。 GAAとZORROの主な欠点は、アセンブリ間の必須のグローバルアラインメントフェーズであり、これは計算コストの高いステップであるだけでなく、オルソログシーケンスとパラログシーケンスが存在すると、マージパフォーマンスに影響を与える多数の誤ったリンクを生成する可能性がある。 Moroa、GAAは、誤ったアセンブリの導入を回避することに焦点を当てているが、ZORROは短いゲノムのために明示的に設計されている(サイズが大きくなるにつれてマージは不可能になる)。
(一段落省略)
これらを念頭に置いて、GAM-NGS(Genomic Assemblies Merger for Next Generation Sequencing)を開発した。その目的は、連続性と正確性を高めるために2つのアセンブリを結合することである。 GAM-NGSはコンティグ間のグローバルアライメントを必要としない。リードのアライメントは、同じリードで再構築された領域の同定を可能にし、したがって、同一のゲノム座を表す自然の候補単離に導く。 GAM-NGSのマージフェーズは、Assemblies Graph(AG)によって導かれる。 AGは重み付けされたグラフであり、これは著者らのツールのもう一つの特徴である。重みは、リンクが正しいパスの一部である可能性を示している。 AGは、GAM-NGSが、アセンブリが互いに矛盾するゲノム領域(ループ、分岐など)を同定することを可能にする。これらのすべての状況において、AGの情報が与えられれば、最も信頼性の高いシーケンスを出力するために、重みが局所的に使用される。
6つのデータセットでGAM-NGSをテストした。 GAM-NGSを評価し、他のアセンブリ調整ツール(GAAとZORRO)と比較するために、3つのGAGEデータセット[ref.10]を使用した。(以下省略)
GAM-NGSに関するツイート。
インストール
cent os6でテストした。
依存
- bwa: this example has been tested with version 0.7.5a-r405
- samtools: this example has been tested with version 0.1.19-44428cd
#sparsehash (apt で導入できない場合)
git clone https://github.com/sparsehash/sparsehash.git
cd sparsehash/
./configure
make -j 12
make install
本体 Github
https://github.com/vice87/gam-ngs
git clone https://github.com/vice87/gam-ngs.git
cd gam-ngs
mkdir build
cd build
cmake ..
make -j 12
cd ../bin/
./gam-create #動作確認
> gam-create
user$ ./gam-create --help
GAM-NGS v1.1b: gam-create executable for building blocks, given two alignments. Allowed options:
--help produce this help message
--master-bam arg coordinate-sorted PE alignments of the master assembly
--slave-bam arg coordinate-sorted PE alignments of the slave assembly
--min-block-size arg minimum number of reads needed to build a block
(optional) [default=50]
--no-mult-filter force all reads to be processed as if they had unique
mapping (optional)
--output arg output-file's prefix (optional) [default=out]
Updated sources and documentation can be found at http://github.com/vice87/gam-ngs
> gam-merge
user$ gam-merge --help
GAM-NGS v1.1b: gam-merge executable for merging two assemblies. Allowed options:
--help produce this help message
--master-bam arg coordinate-sorted PE alignments of the master assembly
--slave-bam arg coordinate-sorted PE alignments of the slave assembly
--master-mp-bam arg coordinate sorted MP alignments of the master assembly.
(optional) Warning: MP reads are expected to be aligned
(as PE reads) in forward-reverse orientation.
--slave-mp-bam arg coordinate sorted MP alignments of the slave assembly.
(optional) Warning: MP reads are expected to be aligned
(as PE reads) in forward-reverse orientation
--blocks-file arg .blocks file created with gam-create command
--master-fasta arg fasta file of the master assembly
--slave-fasta arg fasta file of the slave assembly
--min-block-size arg minimum number of reads of blocks to be loaded
(optional) [default=5]
--threads arg number of threads (optional) [default=1]
--coverage-filter arg coverage filter threshold (optional) [default=0.75]
--no-mult-filter force all reads to be processed as if they had unique
mapping (optional)
--output-graphs output graphs in gam_graphs sub-folder (debug)
--output arg output-files' prefix (optional) [default=out]
Updated sources and documentation can be found at http://github.com/vice87/gam-ngs
パスを通しておく。
テストラン
テストデータのラン(Allpaths-LGとMSR-CA)。ラン前にbin/にパスを通しておく。
cd example/
chmod +x ./download_dataset.sh
./download_dataset.sh #4つのデータがダウンロードされる
chmod +x ./gam-ngs_pipeline.sh
./gam-ngs_pipeline.sh
引用
GAM-NGS: genomic assemblies merger for next generation sequencing.
Vicedomini R, Vezzi F, Scalabrin S, Arvestad L, Policriti A.
BMC Bioinformatics. 2013;14 Suppl 7:S6.