ProtTest 3の使い方
系統樹編集ソフト iTOLの使い方まとめ
ProtTest 3は塩基・アミノ酸の置換モデルを推定してくれる無料ツールです。
最尤法(ML)やベイズ法(Bayesian)によって系統樹を作成する際、使用する配列に応じてLG+I+Fなどと最適な置換モデルを選択する必要があります。
しかし、初めてどうやってモデルを選んだらいいかよく分からない方が多いと思います。
ProtTestは、最適なモデルの推定を行うためのプログラムです。
2017年の春頃まではProtTest 2がウェブ上で使えたのですが、最近ProtTest 3に更新されたのと同時に、ウェブ上では解析できなくなりました。その代わり、ソフトを自分のパソコンにダウンロードして、自分で動かす必要があります。
このページでは、ProtTest 3を使って、モデル推定のやり方を簡単に説明していきます。
Macユーザーようです。Windowsでも使えますし、やり方はほとんど同じだと思います。
※僕はインフォマティクスの専門ではないので、勘違いや不十分な理解のため、間違っていることを書いている可能性は否定できません。ウェブ上の情報は鵜呑みにせず、自分の研究に使う場合はきちんと勉強しましょう。このページを取っ掛かりとして、これから解析を始める方の一助になれば幸いです。間違いなどを見つけられましたらご指摘いただけますと助かります。
ProtTest 3とは
2017.8.10 作成
ProtTest 3 ダウンロード
スペインのVIgo大学のPhylogenomics Labのホームページにあります。
プログラム自体はGitHubで共有されていますのでそこからダウンロードしてください。
https://github.com/ddarriba/prottest3
zip形式でダウンロードできたと思います。
これを適当なディレクトリに移してください。そこが作業ディレクトリになります。
ファイルの解凍はダブルクリックでもできますが、その後はコマンドを使うことになるので、ここからはターミナルを使用します。
ターミナルの起動
macに標準で入っているのでどこかからダウンロードする必要はありません。
うえのタスクバーの虫眼鏡マーク(spotlight)を使って「ターミナル」を検索してください。
もしくはLaunchpad(トラックパッド上で親指と3本指でピンチ)の「その他」の中に入っています。
Last login: Wed Aug 9 19:33:13 on ttys000
My-MacBook:~ mymacbook$
このようなウィンドウが出てくると思います。
$の後ろにコマンドを入れて return キーを押して実行します。
macの基本なのでググれば詳しい使い方はたくさん出てきます。
10秒調べただけですが、例えば基本コマンドはここがわかりやすいかも
パスpathの概念の理解にはこことか見とけばいいかと思います。
実際に入力するコマンドは $の後に書いていきます。また$が出るまではコンピューターが前のコマンドの処理をしているので、待ちましょう。
ProtTest 3 環境設定
では、Zip fileの解凍とセットアップを始めましょう。
ターミナル上で "cd" コマンドを使って、zip fileがあるディレクトリに移動し、以下のコマンドを入力してください。
ファイル名は自分のに合わせてください。
次にPATHを通します。(お気に入り登録とかショートカット的なもの)
"ls" コマンド でディレクトリの中身を見て2個のディレクトリと9個のファイルができて入れば成功です。
この中の "prottest-3.4.2.jar" が実行するために必要なファイルです。
.jarを動かすためにはjavaのJREが必要なので、ver. 1.6以降のJREをインストールしてください。
ここからダウンロードできます。(http://java.sun.com/javase/)
$ tar zvxf prottest-3.4.2-yyyymmdd.tar.gz
$ export PROTTEST_HOME=$PWD/prottest3
置換モデルの推定
準備は整ったのでとりあえず動かして見ましょう。
自分のアラインメントファイル(myalignment.fasta)をprottestのディレクトリにコピーして、次のコマンドを実行します。
$ cd $PROTTEST_HOME
$ java -jar prottest-3.4.2.jar -i myalignment.fasta -all-distributions -F -AIC -BIC -tc 0.5
正常に作動して入れば、下のようにわーーっと文字が出てきます。
$ cd $PROTTEST_HOME
$ java -jar prottest-3.4.2.jar -i myalignment.fasta -all-distributions -F -AIC -BIC -tc 0.5
----------------------------------------------------------------------------------------------
ProtTest 3.4.2 Fast selection of the best-fit models of protein evolution
(c) 2009-2016 Diego Darriba (1,2), Guillermo Taboada (2), Ramón Doallo (2), David Posada (1)
(1) Facultad de Biologia, Universidad de Vigo, 36200 Vigo, Spain
(2) Facultade de Informática, Universidade da Coruña, 15071 A Coruña, Spain
----------------------------------------------------------------------------------------------
Manual: http://darwin.uvigo.es/download/prottest_manual.pdf
Homepage: http://github.com/ddarriba/prottest3
Discussion group: https://groups.google.com/group/prottest
Contact: ddarriba@h-its.org, dposada@uvigo.es
----------------------------------------------------------------------------------------------
Version: 3.4.2 : 8th May 2016
Date: Wed Aug 09 22:47:23 JST 2017
以下省略
配列の数や長さなどデータの大きさによりますが、数十分から数時間で結果が出ると思います。
結果はターミナル上でも表示されますが、prottestのlogディレクトリに"prottest3_20170809xxxxxxxxxx.log"というように出力されます。
logにはそれぞれのモデルを使った梅の計算結果が出ているのですが、結局我々が知りたいベストモデルは
というように書かれていると思います。
つまり、系統樹推定の際に用いる置換モデルはLG+I+G+Fを使うことになりました。
***************************************************************************
Best model according to BIC: LG+I+G+F
Confidence Interval: 100.0
***************************************************************************
パラメーターの意味
上の例ではとりあえず実行しましたが、いくつかのオプションが用意されていてます。
そんなに多くないのでここで解説しましょう。
ちなみにREADME.txtに書いてあることです。
These are the parameters of the sequential execution:
-i alignment_filename
解析するためのアラインメントファイル (必須)
-t tree_filename
ガイド樹がある場合に使います。 [default: NJ tree]
-o output_filename
出力されるファイル名 [default: standard output]
-log enabled/disabled
ログを残すかどうか。enabledにして残しましょう。
-[matrix]
使う置換モデルの行列の選択 (アミノ酸配列の場合) = JTT LG DCMut MtREV MtMam MtArt Dayhoff WAG
RtREV CpREV Blosum62 VT HIVb HIVw FLU
特に指定しなければ全ての行列を使います。
-I
不変座位率を考慮したモデルを含める
-G
離散型ガンマ分布に基づいたモデルを含める
-IG
上記の+I と +G の両方を含める。
-all-distributions
全ての分布モデルを考慮する。(基本はこれでいいじゃないでしょうか)
-ncat number_of_categories
+Gを使う場合にカテゴリーの数を指定する [default: 4]
-F
実際のデータから推定された置換頻度行列モデル(empirical frequency estimation)を含める
-AIC
Akaike Information Criterion (AIC)を基準として結果を順位付け
-BIC
Bayesian Information Criterion (BIC)を基準として結果を順位付け
-AICC
Corrected Akaike Information Criterion (AICc)を基準として結果を順位付け
-DT
Decision Theory Criterionを基準として結果を順位付け
-all
7つの枠組みで比較したテーブルを表示
-S optimization_strategy
最適化の方法の選択: [default: 0]
0: Fixed BIONJ JTT
1: BIONJ Tree
2: Maximum Likelihood tree
3: User defined topology
-s moves
ML樹形の探索方法の選択:
NNI (fastest), SPR (slowest), BEST (best of NNI and SPR) [default: NNI]
-t1
最適な樹形をnewick形式で表示 [default: false]
-t2
最適な樹形をASCII形式で表示 [default: false]
-tc consensus_threshold
コンセンサスの樹形を表示する際に、分岐を表示する際の域値(ブートストラップ値の低い分岐をまとめるイメージ)
[0.5 = majority rule consensus ; 1.0 = strict consensus]
-threads number_or_threads
計算に使うCPUの数を指定 [default: 1]
-verbose
冗長性モード [default: false]
optionは色々あるようですが、基本は上でやったコマンドが割と網羅されていて使いやすいのかと思います。
強いて言えば、計算結果を早く知りたいので、使うCPUを増やすために -threads 4 とかのoptionを増やすぐらいですかね。
以上がProtTest3の使い方でした。
皆さんの研究の一助になればと思います。
何か間違いやアドバイスなどありましたらよろしくお願いします。
それでは