macでインフォマティクス

macでインフォマティクス

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

最小スパニングツリーの計算と視覚化を行う GrapeTree

2020 6/5  誤字修正

2020 6/8 追記


 7つのハウスキーピング遺伝子に基づくレガシーMLST(multilocus sequence typing)は20年前に導入され(Maiden et al. 1998)、現在では多数の細菌病原体の特徴付けに日常的に使用されている(Jolley and Maiden 2014)。MLSTは、それぞれのユニークな配列(対立遺伝子)に明確な整数を割り当て、対立遺伝子のそれぞれのユニークな整数の組み合わせに配列型(ST)という明確な整数を割り当てる。無関係なSTは、対立遺伝子をほとんど共有しないか、または全く共有しない。対照的に、1つまたは2つの対立遺伝子以外のすべての対立遺伝子を共有するSTは、たとえ対立遺伝子が組み換えによって複数のSNPを含んでいたとしても、強く関連していると考えられる。最大のレガシーMLSTデータベースには、60,000以上の細菌株のデータが含まれている(https://pubmlst.org/databases.shtml)。

 伝播ネットワークの疫学的追跡と疾病管理をサポートするために、MLSTによって達成された分解能は、最近、7つ以上の遺伝子断片を包含するように拡張された。拡張されたMLSTスキームは、リボソームタンパク質をコードする53の遺伝子すべて(rMLST)(Jolley et al. 2012)、種または属のほとんどの分離株に存在する数千のコア遺伝子(コアゲノムMLST、cgMLST)(Mellmann et al. 2011; Maiden et al. 2013; Moura et al. 2016)、またはゲノム全体のすべての遺伝子(全ゲノムMLST、wgMLST)(Nadon et al. 2017)を含むことができる。本著者らは最近、選択された腸内病原体のジェノタイピングウェブサイトであるEnteroBase(https://enterobase.warwick.ac.uk)を開発した(Alikhan et al. 2018)。EnteroBaseは自動的にIlluminaショートリードをコンティグにアセンブルし、アセンブルした配列をレガシーMLSTからwgMLSTまでのすべてのレベルの分解能でMLST対立遺伝子とSTに割り当てる。EnteroBaseは、パブリックドメインにあるか、ユーザーによってアップロードされたショートリードに対してこれらの操作を行う。

 2018年4月には、EnteroBaseには約130,000のサルモネラゲノムと>65,000のEscherichiaゲノムが含まれており、パブリックドメインのIlluminaショートリードのセット数は急速に増加し続けている(Alikhan et al. 2018)。このような大規模なデータベースを開発する原動力は、異なる地理的情報源からの分離株間の疫学的および集団遺伝学的現象の理解を容易にすることであり、長期的な時間スケールでの理解を促進することである。当初、レガシーSTの遺伝的関係は、階層的クラスタリング法に基づく系統図によって表現されていたが、これは、より深い分岐構造を可視化するのに非常に有用なアプローチである。しかし、系統図は、複数の遺伝子型が同一であっても、各遺伝子型が固有の枝で表現されるため、多数の遺伝子型を表示する際に問題となる場合がある。この問題の一例は、3902のレガシーMLST STの99,722のSalmonella spp.株間の対立遺伝子の距離を可視化するときに生じた。セロウイルスと遺伝的クレード間の関連付けは、iTOLによるこの系統図のデフォルトの表示内では、解釈がやや困難だった(論文図1A; Letunic and Bork 2016)。他のプログラム(FigTree [v.1.4.3, http://tree.bio.ed.ac.uk/software/figtree/];Dendroscope [Huson and Scornavacca 2012])によって大規模なデータセットから生成されたデンドログラムもまた、解釈が困難だった。さらに、PHYLOViZ 2.0(Nascimento et al. 2017)、SplitsTree4(Huson and Bryant 2006)、EvolView(He et al. 2016)、Microreact(Argimon et al. 2016)、TreeDyn(Chevenet et al. 2006)、TreeView(Page 1996)、およびPhandango(Hadfield et al. 2018)を含む他のグラフィカルユーザーインターフェースは、このような大量の項目を描写することさえできなかった。同様に、5000以上のゲノムを扱うことは、de novo配列ベースのSNP比較に問題をもたらし(Mazariegos-Canellas et al. 2017)、系統樹アルゴリズムに基づくツリーは、多数のノードを含む場合には、理解が困難である(論文図1B,D)。 
 系統図に代わるものとして、最小スパニングツリーがあるが、これは、関連するノードのクラスタを2次元空間にマッピングするため、グラフィック要件が少ない(Francisco et al. 2012;Nascimento et al. 市販のソフトウェアプログラム(BioNumerics, Applied Maths)は、1990年代初頭に微生物学者に最小スパニングツリーの改良された可視化を導入したが、これは、同一のSTを持つ分離株を、直径が分離株の数を反映した単一のノード内にグループ化することで複雑さを軽減した。同様の可視化は、その後、非商用の PHYLOViZ ソフトウェアでも提供された(Francisco et al. GrapeTreeは、文字データから最小スパニングツリーと系統図を効率的に可視化するためのソフトウェアパッケージである。遺伝的関係の表現は、iTOL(図1A,B)とGrapeTree(図1C,D)によるレガシーMLSTデータを比較することで、その機能を知ることができる。

 レガシーMLSTから最小スパニングツリーを計算することは、レガシーMLSTが7つの遺伝子座にしか基づいておらず、7つの遺伝子座のそれぞれについての対立遺伝子の呼び出しがSTを呼び出すための前提条件であるため、迅速かつ効率的に行うことができる。その結果、論文図1CのGrapeTree可視化はわずか1.5分で終了した。しかしながら、サルモネラのcgMLSTは3002遺伝子座にまたがっており(Alikhan et al. 2018)、STは日常的に低レベルの欠落データを含んでいるが、これは、いくつかのcgMLST遺伝子が時折削除されたり、ショートリードからのゲノムのアセンブリにおける様々なバイオインフォマティクスの問題のために同定されなかったりするためである。その結果、EnteroBaseには、ほぼ同一のSTの複数のセットが存在し、それらは欠損データのために異なるだけであるが、それぞれのSTは、それにもかかわらず、その対立遺伝子の内容が他のSTのものとは異なるため、系統図の中でユニークなノードとなっている。以下に示すように、データの欠落は、BioNumericsとgoeBURST(Francisco et al. 2009)によって実装された古典的な最小スパニングツリーアプローチ(以下、MSTree)にとっても問題である。そこで著者らは、欠損データを含む文字セットから最小スパニングツリーを生成するための改良アルゴリズムであるMSTree V2を実装した。

 ここでは、複雑な最小スパニングツリーを効率的に再構築し、詳細なメタデータとともに可視化するWebブラウザアプリケーションであるGrapeTreeを紹介する。

 

wiki

https://bitbucket.org/enterobase/enterobase-web/wiki/GrapeTree

 

MLSTの結果を読み込むのであれば、MLSTの大規模データベースであるPubMLSTの中に組み込まれているweb版GrapeTreeを利用することもできる。下記リンクはArcobacterのものになる。

https://pubmlst.org/bigsdb?page=plugin&name=GrapeTree&db=pubmlst_arcobacter_isolates

 

ローカルマシンへのインストール

本体 Github

pip install grapetree

 

実行方法

データの準備

ここではwgMLSTかtraditonal MLSTを行って得たアレルプロファイルのファイルを使う。GrapeTreeが認識できるファイルフォーマットは、下の例のように、1行目が#で始まるヘッダ、2行目以降が株名とタイピング結果というフォーマットになっている必要がある。

f:id:kazumaxneo:20200605011833p:plain

左端のカラムは株の番号(PubMLSTのgrapetreeサービスはこの形式(Neisseria))。画像はwikiより転載。

もう1つ、メタデータファイルを用意しておく。様々なメタデータがあり得るが、公式では年度と国を記載したファイルとなっている。

f:id:kazumaxneo:20200605232225p:plain

PubMLSTで提供されているメタデータもこの形式と思われる。画像はwikiより転載。

 

 

ラン 

1、ツリー出力

GrapeTreeを使いnewick formatの最小スパンニングツリー(wiki)を出力。準備したアレルプロファイルを指定する。MLSTの結果以外に、マルチプルシーケンスアラインメント結果のalnファイル(つまり全て同じ長さになっている)も指定できる。

python grapetree.py -p input.profile --n_proc 8 -m MSTreeV2 > out.nwk

またはnewick formatのneighbor-joining ツリーを出力。

grapetree. -p input.profile --n_proc 8 -m NJ > out.nwk

または距離行列を出力。ツリーは出力されない。matrixはPHYLIP fomat。

python grapetree.py -p input.profile -m distance > out.matrix
  • --n_proc   Number of CPU processes in parallel use. [DEFAULT]: 5.
  • --method    "MSTreeV2" [DEFAULT]
    "MSTree"
    "NJ": FastME V2 NJ tree
    "RapidNJ": RapidNJ for very large datasets
    "distance": p-distance matrix in PHYLIP format.
  • --profile    An input filename of a file containing MLST or SNP character data,
    OR a fasta file containing aligned sequences.

コマンドで計算を行わず、GrapeTreeを立ち上げてブラウザ上で計算することも可能です。その場合、1をスキップして2に行って下さい。

 

2、視覚化

GrapeTreeはツリービューアとしても働く。GrapeTreeを使って結果を視覚化する。grapetreeを立ち上げる。

 

grapetree

 デフォルトブラウザに読み込まれる。左端のロードから得られたツリーを読み込んだ。

f:id:kazumaxneo:20200605224754p:plain

枝は エッジ(線)で表現される。、円はノード(頂点)。ノードの大きさは株の数によって変わる。分岐した枝の長さはノード間の距離によって変わる。

 

ツリーはインタラクティブに操作可能。詳細はチュートリアル参照。

f:id:kazumaxneo:20200606004047p:plain

 

再びLoad Fileボタンをクリックして、今度は用意したメタデータファイルを読み込む。

f:id:kazumaxneo:20200606004208p:plain

 

色をアサインする。メタデータのcountryを選択。

f:id:kazumaxneo:20200606004341p:plain

アサインされた。

f:id:kazumaxneo:20200606004318p:plain

判例も移動させる事ができる)

 

ラベルにはyearを選択した。

f:id:kazumaxneo:20200606004529p:plain

 

細かい部分が見たいのでマウスホイールで拡大、さらにBranch styleからスケーリングを増やした。

f:id:kazumaxneo:20200606004721p:plain

 

信頼性が低いノードをcollapseして丸め込んだ(=> Collapse Branchesゲージを増やす)。

f:id:kazumaxneo:20200606004838p:plain

ノードはパイチャートのように割合が色で表現される。

 

右クリックしてExpand allを選択、collapseしたノードを全て展開させた。

f:id:kazumaxneo:20200606005056p:plain

 

おかしくなってしまったらOriginal treeボタンをクリックして元に戻す。

f:id:kazumaxneo:20200606005244p:plain


Download SVGボタンをクリックして系統樹レンダリング画像を保存する。

f:id:kazumaxneo:20200606005510p:plain

 

log scale で差を小さくする。

f:id:kazumaxneo:20200608101354p:plain

 

show metadata tableを選択することで、メタデータをその場で追加・編集できる。

f:id:kazumaxneo:20200608101455p:plain

Add Columnsをクリックしてregionカラムを追加。

f:id:kazumaxneo:20200608101624p:plain

メタデータを記載していく。

f:id:kazumaxneo:20200608101708p:plain

 

 閉じるとセーブされる。regionが選べるようになった。

f:id:kazumaxneo:20200608101806p:plain

 

補足;
newick formatならMLST以外の一般のツリーファイル も読み込める。下記はPhylophlan3のチュートリアルの1つあるprocaryotesの系統再構成パイプラインの結果を読み込んだもの(paper link)。連結タンパク質のアラインメント結果をもとにした分類系統の推定になる。

f:id:kazumaxneo:20200605233551p:plain

設定はデフォルト。1万ノード近く表現されている。

引用

GrapeTree: visualization of core genomic relationships among 100,000 bacterial pathogens
Zhemin Zhou, Nabil-Fareed Alikhan, Martin J. Sergeant, Nina Luhmann, Cátia Vaz, Alexandre P. Francisco, João André Carriço, Mark Achtman

Genome Res. 2018 Sep; 28(9): 1395–1404

 

参考


関連