MUSCLE + trimal + RAxML-ng-mpiを使って最尤法で系統解析
TL;DR
遺伝子の機能や、進化を考察する上でタンパク質を用いた系統解析は重要な解析手法の一つとして知られている。系統樹を作成する上でよく行われるワークフローは以下のようなものである。
- Multiple Alignment
- 保存されていない配列の除去(任意)
- 系統樹作成
また、よく使われる系統樹の作成方法としては、最節約法、距離行列法、最尤法やベイズ法、最近だとGraph Splitting法などが挙げられる。最も使われているのは最尤法かベイズ法であり、ソフトウェアとしては最尤法ではPhyMLやRAxML、ベイズ法ではMrbayesなどが有名である。今回は、RAxMLを用いて最尤法によって系統解析を行う。
Workflow
1. Multiple Alignment by MUSCLE
公式サイトからバイナリをダウンロードして使用する。デフォルトが一番精度がいいらしいので(参考)、デフォルトパラメーターでアラインメントを作成した。afaという拡張子はalignment fastaの略でMUSCLEのサイトで使われていたので採用した。
muscle -in seqs.fa -out seqs.afa
2. 保存されていない配列の除去(trimal)
githubからcloneしてmakeする。 Dockerfileを作成した。
マニュアルによると、trimal -in seqs.afa -out seqs_trim.afa -automated1を使うのが最尤法に良いらしい。
3. RAxML-ngによる系統解析
RAxMLは最近新しくRAxML-ngというversionが公開されているので、これを使った。Dockerfileを以下のように作成した。mpiを使いたかったので、raxml-ng-mpiをダウンロードして使用している。githubのREADMEあたりにある。
raxml-ng-mpi --msa seqs_trim.afa --all --model LG+G+I --bs-trees 100 --threads 8
- --msa alignmentファイル
- --all ML search + bootstrapping
- --model マニュアルを見ると色々あるが今回はLGを選択。
- +G (discrete GAMMA with 4 categories, mean category rates, ML estimate of alpha)
- +I (ML estimate)
- --bs-tree Bootstapping num
Bootstrap付きのBestTreeはsupport拡張子のファイル(今回ならseqs_trim.afa.support)に保存されています。
Reference
Edgar, R.C. (2004) MUSCLE: multiple sequence alignment with high accuracy and high throughput Nucleic Acids Res. 32(5):1792-1797
trimAl: a tool for automated alignment trimming in large-scale phylogenetic analyses Salvador Capella-Gutiérrez, José M. Silla-Martínez and Toni Gabaldón∗ Bioinformatics. 2009 Aug 1;25(15):1972-3.
Alexey M. Kozlov, Diego Darriba, Tomáš Flouri, Benoit Morel, and Alexandros Stamatakis (2019) RAxML-NG: A fast, scalable, and user-friendly tool for maximum likelihood phylogenetic inference. Bioinformatics, btz305 doi:10.1093/bioinformatics/btz305