2020 3/12 写真差し替え、誤字修正、タイトル修正
De novoアセンブルして得たcontig配列から特定の配列を選抜するにはどうすれば良いだろうか?全ゲノムのショットガンシーケンシングを行なっていても、目的の配列はそのサブセットでしかないことは頻繁にある(e.g.プラスミド、オルガネラゲノム、環境サンプル(メタゲノム)中の特定のゲノム配列、抗生物質耐性遺伝子、HLA ...)。Ryan R. Wickらが開発したBandageは、アセンブリグラフを読み込んで視覚化し、グラフを分析するためのGUIツールである。Bandageを上手く使うと、任意のアセンブリ配列を素早く選抜することができる。簡単に流れを説明してみる。
Bandageは以前にも一度紹介しています。
選抜する流れ
0、アセンブリのグラフファイルを用意する。ここではSPAdesのアセンブリグラフを使う(*1)。ここで使うデータは、モデルシアノバクテリアの1つSynechocystis sp. PCC 6803(以後S.6803)のバルクのシーケンシングデータになる。このS.6803はクロモソームに加えて複数のプラスミドを持っているが、このプラスミドのうちの1つpSYSXの配列には、細菌としては非常に長い20-kb以上のrepetitive regionが2コピー存在している。また、pSYSXのrepetitive regionの一部はクロモソーム配列とも高い塩基配列相同性を示す。そのため、S.6803のショートリードシーケンシングから作成したアセンブリグラフは、pSYSXのノードとクロモソーム配列のノードが絡まった状態で出力される。このままでは、グラフのまま今後の解析を進めることが困難である。この状態からpSYSX由来グラフをラフに分離してみる。
1、De noboアセンブリして得たGFAファイルをBandageに読み込む。一番上の絡まった大きなグラフがクロモソームとプラスミド配列を含むグラフである。SPADes出力のassembly_graph_with_scaffolds.gfaを使用している。
下の方のエッジがない孤立したノード(ノードはcontig)は、カバレッジの不足やDNAの物理的切断などによって、その先の接続情報が出なかった事を意味する。今回はリード数をクロモソームの平均カバレッジの5x(pSYSXでは10x以上)に抑えてアセンブリしているため、孤立ノードの多さはカバレッジ不足が原因である。(*2)
2、公開されているpSYSXの配列をクエリにしてblastnを実行する。
感度が高すぎる場合はパラメータを厳しくする。
3、初期はノードにランダムな色がアサインされていたが、blastnを実行するとクエリの配列と相同性があるノードだけ色が付いた。
色はヒットしたcontigの領域に対応して虹色になっている。色は重要な意味を持つ場合がある。例えば異なる2つのノードに同じ青がアサインされているなら、この2つのノードはクエリの同じ領域の配列がヒットしていることを示唆している。
4、blastヒットした大きなグラフをドラッグして囲んで選択した。囲んだ領域の全サイズが右端に表示される。トータルサイズが500-kbを超えており、また平均カバレッジが5.8xになっている。pSYSXのサイズは106-kbほどなので、このグラフにはクロモソーム配列のグラフも混ざっていると思われる。
5、不要なノードを消去する。不要なノードを囲ってremoe nodesを実行する。
Edit => Remove selection from graph
消えた。
今回はblastでヒットしたノード以外消したいので、別のアプローチを取る。左のメニューのScopeからaround BLAST hitsを選択、改めてDraw graphをクリック。
blastヒットしたgraphのみ視覚化された。
6、一旦出力して再読み込みする。
Output => save visible graph to GFA
File => Load graph
再描画する前にScopeをEntire graphに戻しておく。
7、blastヒットしたノードを含むグラフのみ再描画された。
8、今度はクロモソーム配列をクエリにしてblastn検索する。一部のノードが高い相同性を示している。どうやら先程はblastnの感度を上げすぎてしまい、部分的に似たクロモソーム配列も釣り上げてしまったらしい。明らかにchr由来と思われるノード全体に色がついたnodeを消す。色がついたnodeを選択し、Edit => Remove selection from graph
9、より細かい部分を修正していく。blastのウィンドウでpSYSXだけを選択。
blastウィンドウは閉じなくても良い。クエリを選択するだけで色は切り替わる。
pSYSX
chr
右上の方の先が切れたノードはchr由来配列であることが分かる。選択して消す。
消した後、random colorをアサインした。nodeの太さを倍にしている。トータルのサイズは100,593-bpでpSYSXの106-kbに近くなっている。
10、グラフをよく見ると分岐がないのにも関わらず切れているノードがある。これらを1つにまとめる。
Edit => Merge all possible nodes、またはMerge selected nodes(選択中のノードのみ)を実行(link1, link2)。
少しシンプルになった。
11、おまけ1。誤りを許容して、よりシンプルなグラフにすることもできる。分岐部分のノードそれぞれについて、片方のノードを選択。
Edit => Remove selection from graphで消す。
Merge all possible nodesでマージした。1つのグラフになった。
Output => save visible graph to GFAで出力する。
12、おまけ2。以下のdepthが25.4xのノード(画像中央)は右側のノードよりdepthが2.5倍ほど多い。
repetitiveな配列が1つの配列として表現されている可能性があるので、2つにduplicateする。
Edit => Duplicate selected nodes
2つになった。Depthも半分ずつになっている。
名前を変える。
Edit => Change node name
このようにBandageを使って視覚化して進めることで、アセンブリ後のラフな処理が簡単に行えます。ぜひ使いこなしてください。
グラフ関連のツールは色々公開されています。今後も紹介していきます。
引用
Bandage: interactive visualization of de novo genome assemblies
Ryan R. Wick, Mark B. Schultz, Justin Zobel, Kathryn E. Holt
Bioinformatics, Volume 31, Issue 20, 15 October 2015, Pages 3350–3352
関連
http://kazumaxneo.hatenablog.com/entry/2019/03/25/073000
*1
アセンブリのグラフは通常GFA1、GFA2、FASTGなどの形式で記録されている。SPAdesはGFAとFASTGでグラフを出力する。
*2
孤立ノードは低レベルの汚染があるアセンブリで良く見られる。