Phylogenetic Analysisに関するまとめ

TL;DR

Phylogenetic Analysis各種ステップのAlignment, Trim, Model selection, Tree Constructionに関する情報、ツールに関してまとめる。

すごくまとまってる日本語の総説があったので、そちらを読むことをおすすめします。

分子系統解析の最前線

Alignment

各種配列のMSAを取るステップ。

Mohamed et al., 2018で各種ツールのベンチマークがとられている。データセットとして、BALIBASE、スコアとして、SPscoreTCscoreが使われている。

大体まとめると以下のような結論になっている。詳細なスコアを知りたい場合は、論文を参照。

Tool NameMethodSeq typeAccuracyTime
CLUSTAL-OMEGAglobal/ ProgressiveProtein, DNA, RNALess accuracyLess time
MAFFTglobal/ IterativeProtein, DNA, RNAHigh alignment qualityHigher than KALIGN
KALIGNProgressiveProtein, DNA, RNALess accuracy as compared with PROBCONS and MAFFTLowest
MUSCLEProgressive Step1 and Step2 iterative Step 3ProteinMore accurate than CLUSTAL-OMEGALess time with a minimum number of iteration
RETALINGProgressive Cornercutting Multiple Sequence AlignmentProteinMore accurate than CLUSTAL-OMEGAHigher than KALIGN
PROBCONSProbabilistic Consistency-based Multiple Alignment of Amino Acid SequencesProteinThe highest alignment accuracyHighest

Modified from Mohamed et al., 2018 Table 1 and Table 5

読んだ感想としては、以下。論文とかでよく見るのは、MUSCLEMAFFTあたりが多い気がするので、クリティカルな印象はないが、上手くいかない場合は検討してみる価値はありそう。

  • PROBCONSがタンパク質のアラインメントを取る分には非常に正確、ただし遅い。
  • DNA/RNAはアラインメントの際はMAFFT
  • KALIGNは速くてMAFFTに近い正確性

この辺のツールは結構歴史が古いので、1900年代のツールが現役で使われる。makeするときなどに、g++ (4.3)とかが想定されてたりするので注意が必要。

m-coffee

上で挙げたようなツールでMSAをとったあと、それらのコンセンサスをうまく取ることでより良いMSAを作成するツール。PhylomeDBのパイプラインで使われている。試した見たところ、上で挙げたツールのバイナリを配布していたりしてすごく親切。

Trim

相同性の低い部分配列を削除するステップ。

Software一覧

  1. ClipKIT Steenwyk et al., 2020
  2. BMGE Criscuolo A et al., 2010
  3. Gblocks Talavera G et al., 2007
  4. Noisy Dress AW et al., 2008
  5. trimAl Capella-Gutierrez S et al., 2009
  6. Aliscore Kück et al., 2010
  7. Zorro Wu et al., 2012
  8. Guidance Penn et al., 2010

一応ClipKITの論文を読むと、1-5の中でClipKITが一番いいって書いてある(それはそう)。 ただ、ClipKITの論文でも触れられているが、Ge Tan et al., 2015とかでは、実際のデータセットではTrimをすることで結果が悪くなることも多い、ということが報告されている。また、どういった部分がそれに影響しているのかはいまいちよくわかってないらしい。

そのため、Trimを行わない選択も検討する必要がある。

Model選択

進化モデルを選択する。最尤法・ベイズ法の場合に必要なステップ。

進化モデルの選択は、パラメータが多いGTR + I + G選んどけばいいという説もある。ただ、branch-lengthの推定に関しては適切なモデル選択をするとGTR + I + Gより良くなる(Shiran Abadi et al., 2019)。時間のかかるステップでもないので、やっておいて損はないとは思う。

Software一覧

modeltest-ngは伝統的なLRTを使ってモデル選択を行う。一方、modeltellerはRandom Forestで選択している。modeltellerではbranch-lengthの最適化に焦点が置かれている。

modeltellerのweb siteはhttpsじゃなくて怖かったため貼ってないが、Web上でも試せるらしい。

Tree Construction

距離行列法や、最節約法などがあるが、基本的には最尤法・ベイズ法を使うのがよいと思われる。最尤法・ベイズ法は結果が割れることがあるので、比較が必要になる場合もある。多分最もよく使われているのは、iqtree, raxml, mrbayesあたりだと思う。あとは特殊ケースとして進化距離が大きすぎる場合はGraph Splitting法(gs2)、ドメインシャッフリングが起こっている場合は系統ネットワークを構築する方法(SplitsTree)を利用するといいらしい。

Software一覧

最尤法

ベイズ法

bayes法の実装のチュートリアルとかも参考になる。

進化モデル

基本的に、最尤法側ではモデル選択ツールが出してくれる形態で書いてあるのでそれほど困ることはない。MrBayesを使用する場合は、結構違うので注意が必要。詳細はManualを参照。Mrbayesでは使用できる進化モデルが少し少ないが、Manual的には、lset nst=mixedあたりを使ってMCMC samplingで決めるのがベイズ的って書いてる。

Visualization

個人的によく使うのは以下で、この2つであまり困ってない。iTOLは課金すると快適になる。

ライブラリとしては、ETE3 (Python)ggtree (R)あたりが有力。

この記事に関するIssueをGithubで作成する

Read Next