系統樹推定
ETE Toolkitを使った超簡便な分子系統樹作成法を紹介します。
(図: http://etetoolkit.org/documentation/ete-build/ より)
使用するツール
- BLAST (配列類似性検索)
- MAFFT (アライメント)
https://mafft.cbrc.jp/alignment/server/ - trimAl (アライメントの修正 for 系統樹構築), optional
http://trimal.cgenomics.org/ - RAxML (系統樹計算)
https://sco.h-its.org/exelixis/web/software/raxml/index.html - FigTree or iTOL (系統樹描画)
(通常の)大まかな流れ
- 近縁種との系統関係を見たい対象生物種の16S rRNA配列(?)を配列データベース (16S rRNA,RefSeqやnr等)に対してBLASTによる配列類似性検索を行い,その結果から対象種が所属する属とかの他の種の配列を取ってくる. ※勝手にバクテリア16S対象にしてますが自身の配列にしてください。
- 対象属じゃない奴の16S rRNA配列を取ってくる (系統樹のoutgroupにするため).
- ↑1.2.の配列全部をFASTAファイルにまとめ,MAFFT L-INS-iによるマルチプルアライメントを行う.
- アライメント結果をtrimAlを用いて系統樹構築用の調整をする (系統樹計算に際して,ギャップばかり等不向きな領域を取り除く).この段階はoptionalで,やらなくても良い。
- RAxMLを用いて最尤法系統樹を構築する.bootstrap値も計算する.
- 構築した系統樹をFigTreeに読み込ませて描画する. またはiTOLで描画する (webベースだけどこっちのほうが綺麗).
- たのしい (✿╹◡╹)v
キーワード
系統樹の種類:無根系統樹 (unrooted tree),有根系統樹 (rooted tree),
系統樹の計算手法:NJ法,最尤法,ベイズ法
裏ルート
ETE Toolkitを使って一瞬で系統樹を構築する方法。
楽すぎてホントにビビりました。本当は有料の情報商材としたかったのですが,正直,めちゃくちゃ悩みました。そしてほんまに真剣に、真剣に考えて気づいたんです。それを今回特別に公開したいと思います。
PythonとAnacondaは入ってる前提です。
入ってない/怪しい場合→
macOS: HomebrewのインストールからpyenvでPythonのAnaconda環境構築までメモ
Linux: Linux環境でのpyenvでPythonのAnaconda環境構築メモ
環境構築
$ pip install ete3 #ETE toolkitのインストール
$ conda install -c etetoolkit ete_toolchain #必要なツールのインストール
系統樹構築
文法は
$ ete3 build -w ワークフロー名 -n 入力配列ファイル(アライメント前) -o 出力先ディレクトリ名 --clearall
例:
$ ete3 build -w mafft_linsi-none-none-raxml_default -n input.fasta -o output_tree --clearall
これだけです!これだけで配列のマルチプルアライメントもギャップ多数領域のトリミングも系統推定も全部やってくれます!!
このワークフローの文法はハイフン区切りでaligner-trimmer-tester-builder
となっている。
例えば,ワークフローが
mafft_linsi-none-none-raxml_default
だったら,mafftのL-INS-iアルゴリズムでアライメントして,RAxMLで系統樹を構築する..となる。
もしラボのパイセン殿がアライメントはclustalを使うのじゃー!と仰るならclustalo_default-none-none-raxml_default
とすればclustal omega(clustal wの後継)を使ってアライメントしてくれる。
trimAl使った配列のギャップ領域トリミングの工程を入れたかったら,
mafft_linsi-trimal01-none-raxml_default
とすれば良い。
系統樹推定の際にbootstrap値の計算も入れたかったら
mafft_linsi-none-none-raxml_default_bootstrap
とする (少し時間はかかる)。
・たぶんmafft_linsi-none-none-raxml_default_bootstrap
とするのが安牌かな (ごめんなさいごめんなさい)
使えるツールは
$ ete3 build apps
とすれば表示してくれる。参考: Composing custom workflows
結果ファイル
上記例の系統樹構築コマンドを実行すると,
./output_tree/mafft_linsi-none-none-raxml_default
内に結果ファイルを色々と生成してくれる。
その中のファイルに色々あって,
・input.fasta.final_tree.png
→系統樹と,アライメントされた配列の模式図を合わせて表してくれるチャラい図
・input.fasta.final_tree.fa
→アライメントされたfastaファイル
・input.fasta.final_tree.nw
→推定された系統樹のファイル。これをFigTreeだったりiTOLに読み込ませると綺麗な図が出せる。