CIPRES でベイズ系統樹を作る:
方法、パラメーター設定、描画など

UB3/informatics/bioinformatics/tree_cipres_mrbayes

このページの最終更新日: 2023/02/14

  1. CIPRES Gateway の使い方
  2. CIPRES REST API の使い方
    • パラメーター自動設定と run の方法
    • 各パラメーターの意味
  3. ベイズ系統樹の解釈
    • Bayesian posterior probability

広告

2022 年から、CIPRES はサブスクリプション制になってしまいました。このページも残しておきますが、私は MrBayes に移行しています。


概要: CIPRES Gateway の使い方

MEGA で neighbor-joining tree を作っていた頃は、系統樹作成は簡単な作業だったが、最近ではハードルが上がってきている。ベイズ法には MEGA のような簡単なプラットフォームがなく、MrBayes や BEAST を使うにはコマンドラインの知識が必要である。

こんな状況を打破しつつあるのが、オンラインプラットフォームの CIPRES だ。高性能サーバーに計算を任せられるので、基本的にはパラメーターを設定して配列を投げるだけで、長い計算も OK。

このページでは、CIPRES を使ってベイズ系統樹を作る方法をまとめる。とりあえずは系統樹を作れるようになるところまで。パラメーターなどの意味はあとから追加。

  1. アカウントを作る。
  2. nexus 形式の配列をアップロードする必要がある (参考: 塩基配列解析に使うファイルについて)。
    • fasta があれば、Clustal Omega でまず phylip にする。
    • phylip は このサイト で nexus に変換できる。
    • nexus には Normalized nexus というフォーマットもあるが、これは MrBayes には受け入れられないようである。上記のサイトは普通の nexus を出力するので問題なし。
  3. アップロードした nexus ファイルを選び、新しい task を作る。tool には MrBayes を選択。
  4. パラメーターが大量にあるが、とりあえずは塩基かタンパク質かのみを選択する。
  5. 無事に系統樹が計算されると、アウトプットに infile.nex.con.tre というファイルが現れる。これが系統樹のファイルである。
  6. .tre ファイルを開くのも一苦労だったが (Ref 1; FigTree が動かなかった)、IcyTree というウェブベースの描画ソフトで開くことができた。また、このページの下にあるように homebrew から Figtree をインストールできた。

配列の長さが同じなら、項目 2 のサイトで直接 fasta から nexus に変換できる。長さが違うときは、一旦アラインメントして gap を導入しないといけない。そのために Clustal Omega を経由して phylip でインポートしている。gap を含めた塩基数またはアミノ酸数が同じなら、同じ長さの配列として認識される。

CIPRES REST API の使い方

CIPRES gateway よりも少し高度なことをしたいときには、やはりコマンドラインを避けて通ることはできない。一度慣れると、ブラウザベースのものよりもずっと快適に使えるようになる。

CIPRES REST API (CRA) はコマンドベースの CIPRES で、Gateway とは別に専用のアカウントを作るところから始めなければいけない。

各種のパラメーターを設定し、CRA でベイズ系統樹を作る方法についてまとめておく。


パラメーター自動設定と run

ベイズ系統樹を作る際には、多くのパラメーターを設定する必要がある。ここでは、とりあえずパラメーターを API で自動設定して tree を得る方法を説明する。次の項目で、パラメーターの意味をまとめる。

Nexus file を Developer Documentation Index にある Tool Configuration Helper を使うと、最適なパラメーターのリストを作ってくれる。

パラメーターは 100 個以上あったりするので、いちいち手で入力するのは大変である。Tool Configuration Helper は、コピペすればいいような形でもパラメーターのリストを出力してくれるので、CRA からサブミットする形になる。

  1. まず CIPRES REST APT のページからアカウントを作り、ログインする。さらに Application を作ると、application ID がもらえる。User name, password, application ID および URL が必要。
  2. 次に、このページ を参考に curl コマンドを使った job submission に慣れる。
    • パスワード、Key、URL は export で設定しておくように説明されているが、もちろんコマンドに直接入力でも構わない。
    • Tool として MrBayes を使うときに nexus file で submit するのは CIPRES gateway と同じである。
    • nexus ファイルはカレントフォルダに置いておき、-F input.infile_=@'./sample1_in.nexus' とした。' ' がないとエラーになった。
  3. Submission が成功すると、NGBW-JOB-CLUSTALW-3957CC6EBF5E448095A5666B41EDDF90 のような長い job number がターミナル上に現れる。これを記録しておく。結果は、サーバー上の jobnumber/output というフォルダの中に保存される。
  4. 結果のダウンロードにも curl command を使う。まず、curl -u tom:$PASSWORD \ -H cipres-appkey:$KEY \ $URL/job/tom/NGBW-JOB-CLUSTALW-3957CC6EBF5E448095A5666B41EDDF90/output のようにして output フォルダの中を確認。
  5. 以下のような形で、infile.nex.con.tre というファイルが見つかるはずである。インデントは省略して書いている。

<jobfile>
<downloadUri>
<url>$URL/v1/job/tom/NGBW-JOB--5A5666B41EDDF90/output/1550</url>
<rel>fileDownload</rel>
<title>infile.nex.con.tre</title>
</downloadUri>
<jobHandle>NGBW-JOB--5A5666B41EDDF90</jobHandle>
<filename>infile.nex.con.tre</filename>
<length>1449</length>
<parameterName>aligfile</parameterName>
<outputDocumentId>1550</outputDocumentId>
</jobfile>

  1. これが tree のファイルなので、同じく curl コマンドに -O -J オプションをつけてダウンロードする。
    • 実際のコマンドは、やはり このページ に載っている。
    • ダウンロード時は、curl -u tom:$PASSWORD \ -H cipres-appkey:$KEY \ -O -J \ $URL/job/tom/NGBW-JOB-CLUSTALW-3957CC6EBF5E448095A5666B41EDDF90/output/1544 のように outputDocumentId で指定する ので注意。
    • ファイルネームで指定すると、HTTP 404 のエラーを含む infile.nex.con.tre がダウンロードされ、原因を探るのに少し時間を使ってしまった。

.tre ファイルは FigTree というソフトで描画するのが一般的である。2018 年 8 月に このページ からインストールしたが、High Sierra では立ち上がらなかった。

ここ を参考に Homebrew からインストールすると、Mac の種類によって立ち上がるものと立ち上がらないものがあった。セキュリティの設定が邪魔をしているような気がするが、まだ解決に至っていない。

まずは以下のコマンドで Homebrew をインストールする。すでにインストール済みならば飛ばしても良い。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null

FigTree をインストールするコマンドは以下。

brew cask install figtree


各パラメーターの意味

上記の Tool configuration helper を使うと、curl コマンドとそのオプションという形で、最適なパラメーターの一覧を出力してくれる。

-F vparam. のあとに続く形で指定されるようである。例えばこんな感じ。

-F vparam.nchainsval_='4' -F vparam.ngenval_='100000000' -F vparam.nocharsets_='0'

主要パラメーターを表にまとめる。Methods の書き方 のページに、ベイズ系統樹で記載すべきパラメーターがある。表 curl のオプションの部分では、vparam. 以降の部分のみを書いてある。


curl のオプション

パラメーターの意味

nchainsval_='4'

並行して使う CPU の数。4 がデフォルト。

ngenval_='1000000'

マルコフ連鎖における generation を指定。milllion とか ten million とかが普通のようである。

samplefreqval_='1000'

一定のインターバルで、ランダムに tree をサンプリングする。その間隔を設定。1000 や 100 が普通っぽい。

sumt_burninfrac_='0.25'

Posterior probability は初期値に影響を受け、その後定常状態になる。したがって最初の期間のデータは捨てたほうがよく、これを稼働検査期間という。英語では burn-in と呼ばれ、25% がデフォルト。

ベイズ系統樹の解釈

Posterior probability

ベイズ法の事後確率は、ブートストラップのような形で系統樹に表示される。どれぐらいなら OK なのかはもちろんケースバイケースであるが、一般に 0.9 以上ならば well-supported、0.7 ならば poor support と言ってよいようだ (2, 3)。


広告

References

  1. How to open a phylogenetic file with the end of ".Tre"? Link: Last access 2018/08/22.
  2. What is the recommended value of posterior probability in Mr. Bayes analysis in the phylogeny tree? Link: Last access 2018/09/08.
  3. How can I compute Bayesian posterior probability for a given phylogenetic tree? Link: Last access 2018/09/08.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。