Mac でベイズ法の系統樹を作る:
MrBayes のインストールと使い方

UB3/informatics/bioinformatics/tree_make_mrbayse_mac


  1. Mac での MrBayse の使い方
    • インストールとデータの読み込み
    • モデルの決定
    • 解析の実行
    • 解析の終了
  2. 古い情報
    • MrBayse のインストール
    • BEAST に逃げる?

広告

Mac での MrBayse の使い方

2022 年 1 月に使ったときのまとめ。2018 年の古い情報も、消さずにページの下の方に残しておく。Mac OS Monterey, Mr. Bayes 3.2.7a。系統樹の基礎 のページも参照のこと。

インストールは homebrew で簡単にできた。BEAGLE なども dependency として自動でインストールされる。

brew install mrbayes

使い方の概要は以下の通り。

1. MrBayes の起動とデータ読み込み

ターミナル で起動、読み込みを行う。MrBayes を起動する前に、カレントディレクトリに nexus ファイルを準備しておく。

mb

を実行すると起動され、プロンプトが MrBayes > に変化する。ここで以下のように execute を利用してファイルを読み込む。

execute input.nexus

読み込みむのは nexus 形式のファイルで、拡張子は nexus, nxs など。このファイルを作る方法はいくつかある。

  • Clustal Omega のアウトプットを nexus にし、結果を右クリックでダウンロードすると clustalo-長い数字-.nxs というファイルがダウンロードされる。CIPRES ではこれをさらに変換しなければならなかったが、ローカルの MrBayes ではそのまま使える。

MUSCLE alignment の結果を MrBayse で解析するには、次のような手順が必要だった。唯一の方法ではないはずだが、メモしておく。

MrBayes で読み込む nexus file の冒頭には、このような記述が必要である。

#NEXUS
[TITLE: Written by EMBOSS 12/04/21]

begin data;
dimensions ntax=18 nchar=728;
format interleave datatype=protein missing=X gap=-;

matrix

この matrix の次の行から配列が始まる。

Human MAGTT... (50 文字とか)
Mouse MGAAT...

Human AAHHY... (改行後に続き)
Mouse MGAAT

のように並べられており、fasta のように Human の配列が終わってから Mouse の配列が始まる、という並びではない。

また、配列の比較が終わったあとに、

;

end;
begin assumptions;
options deftype=unord;
end;

という文字列がくる。つまり、この文字列を Muscle alignment に付け足せばよいわけである。

clustalo や web の Clustal omega でアウトプットを nexus にすると、これらの文字列が出てくる。まずこれをコピーする。

さらに、web の muscle でアラインメントする。この場合のアウトプットは ClustalW が良さそうだ。これで、Muscle のアラインメントが出力される。これに、Clustal omega からの文字列をペーストすれば OK。

dimensions ntax=18 nchar=728 の部分が、アラインメントに含まれる配列の数と、文字数を示している。ntax の方は同じはずだが、nchar の方が clustalo と muscle のアラインメントで異なる場合がある (ギャップの数もアラインメントに含まれるため。もともとの配列の長さが違っても、ギャップによって同じ長さに揃えられているので、ここの数字は 1 個である)。もともとの数字は clustal omega のアラインメントによって挿入されたギャップを含んだ数字なので、これを muscle の方に変えなければならない。これはマニュアルで数字を数えて記入する。1 行が 50 または 60 文字になっているので、簡単に数えられるはず。数が違えば、異なる基準でアラインメントされているということなので、むしろ安心である。

conda install -c bioconda seqmagick をインストールし、seqmagick で このページ に従い変換しようとしたが、うまくいかなかった。また、ウェブの conversion などを使ってみたが、MrBayes で読み込めるような nexus が得られたのは、Clustal Omega のアウトプットを nexus にした場合だけだった。

モデルの決定

MbWiki には、以下の例がクイックスタートの方法として載っている (1)。

lset nst=6 rates=invgamma

ここでは、2 つのパラメーターを設定している。lset では、likelihood model のパラメーターを設定する (2)。この例では、nst の 6 番 (general model of DNA substitution, the GTR) と、gamma-distributed rate variation accross sites に設定しているようだ。

選択できるモデルは多数ある。まずは、配列の種類を考える必要がある。 文献 3 などを参考に決定する。

  • タンパク質をコードしていない塩基配列: MrModeltest と PAUP を使ってモデルを決定する。
  • タンパク質をコードしている塩基配列: コドン内の位置によって異なる進化モデルを使うのが普通。
  • アミノ酸配列: Prottest で調べる。以下にはこの例が載っている。

私が使ったことのあるモデルを中心に、アミノ酸配列を解析する場合に選択できるものを表にまとめておく。網羅できていないと思われるので、公式サイトも参照のこと。

WAG, LG, etc.

基本は Prottest で決定されたモデルを使用。

prset aamodelpr=fixed(lg)

のように実行して設定する。成功すると Setting Aamodelpr to Fixed(LG) Successfully set prior model parameters のようなメッセージが出る。

( ) の中を WAG などに変えることで、違うモデルを指定可能。BLOSUM は blosum、JTT は jones を入れるようだ (3)。

Distribution model:
+G, +I, etc.

これも Prottest の結果に従う。以下のようなものがある。

  • G: gamma distribution. lset rates=gamma のようにして設定。
  • I
  • I + G: lset rates=invgamma
  • F

解析の実行

以下のようにすると、マルコフ連鎖モンテカルロ法による解析が始まる。この例では、10000 世代を指定している。

mcmc ngen=10000 samplefreq=10

細かい指定方法はバージョンによって異なるが、文献 3 にも書かれているように、正確な結果を得るために重要なポイントは以下の 2 点である。

  1. 連鎖が収束してからサンプリングすること。
  2. 十分なサンプル数を確保すること。

連鎖の収束は、Average standard deviation of split frequencies (ASDSF) で確認する。上記のコマンドで mcmc を開始すると、一定数ごとに以下のようなメッセージが出る。

Average standard deviation of split frequencies: 0.019298

マニュアルには、この値が 0.01 以下になれば収束したとして、次のステップに進んで良いと書かれている。どれくらい時間がかかるかは、配列やコンピューターの性能によるので何とも言えないが、普通の論文を書く用途なら iMac などで十分。数時間から一晩、最長で数日を見ておけば良いだろう。100 万 generation が必要なケースは稀。

数字は基本的に単調に減少するが、増える場合もある。グラフは、300 万 generations 回してみたときの変化。増減を繰り返しながら、徐々に下がっていく感じ。

MrBayes ASDSFの変化

解析の終了

0.01 以下になったら、

sump burnin=250

で結果を要約する。250 のところには、樹形数の 1/4 の数字 を入れる (3)。

mcmc ngen=10000 samplefreq=10 で解析を開始した場合、樹形のトータルが 10000, 10 につき 1 個を採用しているので、樹形数は 1000 である。その 1/4 なので、250 を入れることになる。Generation によって変更する必要があるので注意する。

この結果でチェックするのは、次の 2 点。

このようなグラフが出てくるので、ここに特定の増減傾向がないことを確認する。

MrBayesによる系統樹

また、グラフの下に出てくる表に PSRF+ という値があり、これが 0.9 - 1.1 程度に収まっていること (3)。1.0 に近いほど良いらしい。

以上を確認できたら、

sumt burnin=250

のようにして結果のファイルを出力する。数字の部分は sump と同じにする。つまり樹形数の 1/4 の数字を使う。sample.nexus.con.tre のような名前のファイルが、系統樹のファイルである。sample.nexus の部分には、読み込んだ nexus ファイルの名前が入る。

系統樹のファイルは、TreeView, FigTree のようなソフトや、IcyTree で可視化できる。


広告

古い情報

MrBayse のインストール

Mac は OS High Sierra、MrBayse は Mac version 3.2.6、インストールと系統樹作成は 2018 年 3 月。

インストールは以下のように行う。

公式ページ からダウンロード、解凍して現れたフォルダを所定のフォルダに移す。バージョンによって相性があるようである。 (日本語の参考ページ)

以下は、ダウンロードしたフォルダのマニュアルに書かれていたインストール方法に基づいている。

  1. Xcode, Homebrew が必要。
  2. bres install openmpi をターミナルで実行し、MPI 環境をインストール。これは問題なく成功。
  3. MPI 環境がインストールされたが、MrBayes のフォルダで mpirun -np 2 mb-mpi のようにコアの数を -np で指定しつつ実行すれば良いと書かれている。

しかし、3 を実行したところ以下のようなエラーが。

dyld: Library not loaded: /usr/local/lib/libhmsbeagle.1.dylib
  Referenced from: /Users/Taro/Documents/MrBayes/mb-mpi
  Reason: image not found

dyld: Library not loaded: /usr/local/lib/libhmsbeagle.1.dylib
  Referenced from: /Users/Taro/Documents/MrBayes/mb-mpi
  Reason: image not found


必要なライブラリがロードされていないというエラーのようである。これはマニュアルのトラブルシューティングに書かれていたので、/usr/bin で sudo ln -s libedit.2.dylib libedit.3.dylib を実行。

ln はシンボリックリンクを貼るコマンドである。

/usr/bin は一般に保護されたフォルダなので、Operation not permitted というエラーが出る。

しかし、これをトライしたあとに再び 3 を実行すると、エラーの内容が変わっていた...?

dyld: Library not loaded: /usr/local/lib/libhmsbeagle.1.dylib


MrBayes のフォルダで mpirun -np 2 mb-mpi を実行すれば、このエラーは出ないのか? エラーが刻々と移り変わってゆくので、ちょっとは前進しているのだろう。

次は、以下のパスにライブラリの 12 番がないというエラー。

dyld: Library not loaded: /usr/local/opt/open-mpi/lib/libmpi.12.dylib


brew reinstall -s lammps を実行。他のソフトに影響が出なければ良いが。しかし解決せず、実際にこのフォルダに行ってみると libmpi.12.dylib というファイルがそもそもない。

パーミッションの問題であることが多いのだが、これはこのファイルを入手しなければならないということ。

BEAST に逃げる?

この解決が難しそうなので、とりあえず MrBayes は諦め BEAST のインストールを試みた。

  • ここ から Beast をインストール。立ち上がるが、実行すると BEAGLE Library が必要というエラーが。
  • ここ に従って BEAGLE library をインストール。
  • 最初の brew のコマンドは動くが、その次の svn checkout http://beagle-lib.googlecode.com/svn/trunk/ beagle-lib が見つからない。
  • ググって ここ へ。Dropbox で怪しい感じだが、github なので信用する。.pkg がダウンロードできるので、これで BEAGLE-2.1.2 をインストール。MrBayes もこのライブラリを使うと書いてあるので実行してみたが、同じエラー。
  • だが、たぶん BEAST は動くようになった。

とここまでやったところで、BEAST には新しい BEAST2 というバージョンがあることがわかった。以降の操作は BEAST2 のページ にまとめた。


広告

References

  1. MbWiki Tutorial. Link: Last access 2022/01/08.
  2. Lset. Link: Last access 2022/01/08.
  3. MrBayes 3.1.2 を用いた系統解析. Link: Last access 2022/01/08.

コメント欄

各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。

禁止ワード: http, the, м (ロシア語のフォントです)


このページにコメント

Name:


Comment:



これまでに投稿されたコメント

Date Name Comment