macでインフォマティクス

macでインフォマティクス

NGS関連のインフォマティクス情報についてまとめています。

Bandageを使ってアセンブリグラフからターゲットの配列を選抜する

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を使用している。

f:id:kazumaxneo:20200311213812p:plain

下の方のエッジがない孤立したノード(ノードはcontig)は、カバレッジの不足やDNAの物理的切断などによって、その先の接続情報が出なかった事を意味する。今回はリード数をクロモソームの平均カバレッジの5x(pSYSXでは10x以上)に抑えてアセンブリしているため、孤立ノードの多さはカバレッジ不足が原因である。(*2)

 

2、公開されているpSYSXの配列をクエリにしてblastnを実行する。

f:id:kazumaxneo:20200311215307p:plain

 

感度が高すぎる場合はパラメータを厳しくする。

f:id:kazumaxneo:20200311215727p:plain

 

 

3、初期はノードにランダムな色がアサインされていたが、blastnを実行するとクエリの配列と相同性があるノードだけ色が付いた。

f:id:kazumaxneo:20200311215248p:plain

色はヒットしたcontigの領域に対応して虹色になっている。色は重要な意味を持つ場合がある。例えば異なる2つのノードに同じ青がアサインされているなら、この2つのノードはクエリの同じ領域の配列がヒットしていることを示唆している。

 

4、blastヒットした大きなグラフをドラッグして囲んで選択した。囲んだ領域の全サイズが右端に表示される。トータルサイズが500-kbを超えており、また平均カバレッジが5.8xになっている。pSYSXのサイズは106-kbほどなので、このグラフにはクロモソーム配列のグラフも混ざっていると思われる。

f:id:kazumaxneo:20200311220213p:plain

 

 

5、不要なノードを消去する。不要なノードを囲ってremoe nodesを実行する。

Edit => Remove selection from graph

f:id:kazumaxneo:20200311220827p:plain

消えた。

f:id:kazumaxneo:20200311220911p:plain

 

今回はblastでヒットしたノード以外消したいので、別のアプローチを取る。左のメニューのScopeからaround BLAST hitsを選択、改めてDraw graphをクリック。

f:id:kazumaxneo:20200311221028p:plain

blastヒットしたgraphのみ視覚化された。

f:id:kazumaxneo:20200311221241p:plain

 

6、一旦出力して再読み込みする。

Output => save visible graph to GFA

f:id:kazumaxneo:20200311221601p:plain

File => Load graph

f:id:kazumaxneo:20200311221723p:plain

再描画する前にScopeをEntire graphに戻しておく。

 

7、blastヒットしたノードを含むグラフのみ再描画された。

f:id:kazumaxneo:20200311221949p:plain

 

8、今度はクロモソーム配列をクエリにしてblastn検索する。一部のノードが高い相同性を示している。どうやら先程はblastnの感度を上げすぎてしまい、部分的に似たクロモソーム配列も釣り上げてしまったらしい。明らかにchr由来と思われるノード全体に色がついたnodeを消す。色がついたnodeを選択し、Edit => Remove selection from graph

f:id:kazumaxneo:20200311222241p:plain

 

9、より細かい部分を修正していく。blastのウィンドウでpSYSXだけを選択。

f:id:kazumaxneo:20200311224008p:plain

blastウィンドウは閉じなくても良い。クエリを選択するだけで色は切り替わる。

pSYSX

f:id:kazumaxneo:20200311224150p:plain
chr

f:id:kazumaxneo:20200311224153p:plain

 

右上の方の先が切れたノードはchr由来配列であることが分かる。選択して消す。

f:id:kazumaxneo:20200311224815p:plain

消した後、random colorをアサインした。nodeの太さを倍にしている。トータルのサイズは100,593-bpでpSYSXの106-kbに近くなっている。

 

10、グラフをよく見ると分岐がないのにも関わらず切れているノードがある。これらを1つにまとめる。

f:id:kazumaxneo:20200311225802p:plain

Edit => Merge all possible nodes、またはMerge selected nodes(選択中のノードのみ)を実行(link1, link2)。

f:id:kazumaxneo:20200311225555p:plain

少しシンプルになった。

f:id:kazumaxneo:20200311230838p:plain

 

11、おまけ1。誤りを許容して、よりシンプルなグラフにすることもできる。分岐部分のノードそれぞれについて、片方のノードを選択。

f:id:kazumaxneo:20200311231601p:plain

Edit => Remove selection from graphで消す。

f:id:kazumaxneo:20200311231604p:plain

Merge all possible nodesでマージした。1つのグラフになった。

f:id:kazumaxneo:20200311231608p:plain

Output => save visible graph to GFAで出力する。

 

12、おまけ2。以下のdepthが25.4xのノード(画像中央)は右側のノードよりdepthが2.5倍ほど多い。

f:id:kazumaxneo:20200311232049p:plain

 

repetitiveな配列が1つの配列として表現されている可能性があるので、2つにduplicateする。

Edit => Duplicate selected nodes

f:id:kazumaxneo:20200311232318p:plain

 

2つになった。Depthも半分ずつになっている。

f:id:kazumaxneo:20200311232605p:plain

 

名前を変える。

Edit => Change node name

f:id:kazumaxneo:20200311232614p:plain

 

このように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

孤立ノードは低レベルの汚染があるアセンブリで良く見られる。