{{category 系統解析}} *複数遺伝子領域を用いた系統解析のための塩基置換モデル選択  近年、系統解析に用いるデータの増加によって複数の遺伝子領域を用いた系統解析が頻繁に行われるようになってきていますが、モデル選択と解析ソフト側の設定が煩雑なため、全領域を連結しただけのデータを用いて塩基置換モデル選択と系統解析が行われていることがしばしばあります。しかし、実際にはそれぞれの領域毎にモデル選択を行って選ばれたモデルを適用すべきことが多いと思います。これはそのためのPerlスクリプトです。内部でReadSeqを呼び出してデータ変換を行う(PAUP*がある場合にNEXUS形式を入力した場合はPAUP*を用います)ことで、ReadSeqで読み込み可能なデータ形式ならほぼ全て扱うことができます。とりあえずFASTA・PHYLIP・GenBank・NEXUS形式では動作確認をしています(ただし配列が長い場合にGenBank形式以外では変換がうまくいかずにエラーになることがあります)。尤度計算には定評のあるPAUP*かPAMLを利用しています。PAUP*は有料のソフトウェアですが、PAMLは無料で、Windows版とMacOS X版にはこのスクリプトで利用するために改造したものを同梱してあり、この配布ファイルだけでモデル選択を実行可能です。 *License This script is distributed under GNU GPL. Note that included commands of PHYLIP and PAML are distributed under its own license. 本スクリプトは、GNU GPLに基づいて配布されています。ただし、同梱のPHYLIPのDNADIST・NEIGHBOR・DNAPARSとPAMLのbasemlコマンドはそれぞれのライセンスに従います。 *決まり文句  例によって例のごとく内容は無保証なので要注意。このページの情報に従って何らかの損害が出ても補償できませんのであしからず。要するに自己の責任において実行してちょうだいねということです。 *注意  これは複数遺伝子領域データを扱う際の一般的な注意点なのですが、各遺伝子領域単独での解析結果が明らかに異なる場合には、組み換えや遺伝子浸透などによりそれぞれの遺伝子が異なる系統に由来する可能性が高いと思います。そのような場合にはどれか、もしくは全体がそもそも系統解析には適していないと考えて下さい。また、単一の領域しか使わない場合は問題無いのかというとそうではなく、単一の領域しか使わない場合には検討のしようがないのでただ分からないだけです。複数領域分のデータがある場合にはこのスクリプトを使って「各遺伝子領域が明らかに異なる系統樹を支持するのか」の検定を補助することは可能です。 *必要なもの  WindowsおよびMacOS X用配布ファイルには必要なものは一式全て入っていますので配布ファイルだけで結構です。 *処理内容 +コマンドラインオプションが指定されていれば領域毎に配列を分割する +入力ファイルが複数ある場合はそれぞれを別の領域と見なして扱う +タンパクコード領域はコドン位置毎にさらに分割する(オプションで選択可) +未分割・分割・コドン位置分割のそれぞれでモデル選択(オプションで選択可) +結果を出力 +MrBayesとPAUP*用の設定ファイルを出力  MrBayesとPAUP*以外のソフト用の出力は今後実装していくつもりです。また、尤度計算は一度に複数のPAML/PAUP*を起動しての疑似マルチスレッド計算に対応していますので、マルチCPUマシンで高速化を図ることが可能です。 *スクリプト -http://www.fifthdimension.jp/products/kakusan/ からダウンロードして下さい。 *使用方法 **Windows / MacOS Xの場合  Windowsではスタートメニュー・デスクトップ・クイック起動バーのいずれかのショートカットから起動することができます。MacOS Xでは配布ファイルを展開してできるフォルダの中のkakusan2.commandをダブルクリックして起動してください。  起動すると、入力ファイルの名前を求められます。この際、普通に入力ファイル名を入力しても構いませんが、Windows / MacOS Xのどちらもファイルをウィンドウにドラッグアンドドロップすることでファイル名が入力されます。  ファイル名を入力してEnterキーを押すと、さらに入力ファイルを求められます。もし無ければ何も入力せずにEnterを押せばその後のモデル選択に関する質問がされますので適宜答えを入力していってください。入力ファイルに複数の領域を含んでいる場合は、予め別々のファイルに分割しておいて、別々に入力すれば別の領域として扱われます。また、分割が面倒な場合は、下記のコマンドラインから利用する方法で領域設定をオプションとして与えることでスクリプトに分割をさせることもできます。  入力ファイル名(拡張子は除く)は領域名として扱われます。また、領域名の末尾が「_P」の場合には、その領域はタンパクコード領域として扱います。そのため、タンパクコード領域のデータファイルは事前に「hogehoge_P.nex」などと名前を変えておいてください。  質問の意味がわからなかったり、デフォルト設定で構わない場合は、何も入力せずにEnterを押すことでデフォルト設定が適用されます。 **コマンドラインから利用する方法  WindowsやMacOS X以外では基本的にコマンドラインから利用します。Windows・MacOS Xでも、それぞれコマンドプロンプト・ターミナルからこの方法で利用することができます。  使い方は INSTALLDIR\kakusan --help (Win32 version) perl INSTALLDIR/kakusan.command --help (MacOS X version) perl INSTALLDIR/kakusan.pl --help でメッセージが出ますのでまずは読んで下さい。領域を指定しない場合は INSTALLDIR\kakusan input_file_name (Win32 version) perl INSTALLDIR/kakusan.command input_file_name (MacOS X version) perl INSTALLDIR/kakusan.pl input_file_name だけでデフォルトの設定で解析と結果の出力が行われます。入力ファイル名を指定せずに起動すると、WindowsやMacOS Xで利用している対話モードで起動します。また、 INSTALLDIR\kakusan --interactive input_file_name (Win32 version) perl INSTALLDIR/kakusan.command --interactive input_file_name (MacOS X version) perl INSTALLDIR/kakusan.pl --interactive input_file_name とすることで、入力ファイルをコマンドラインから与えつつ対話モードを利用することもできます。 ***領域の指定方法 INSTALLDIR\kakusan --partition=hoge1:1-300,hoge2:301-600 input_file_name (Win32 version) perl INSTALLDIR/kakusan.command --partition=hoge1:1-300,hoge2:301-600 input_file_name (MacOS X version) perl INSTALLDIR/kakusan.pl --partition=hoge1:1-300,hoge2:301-600 input_file_name のように指定して下さい。どこの領域にも含まれない座位が見つかれば止まります。また、複数の領域に重複して含まれる座位が見つかった場合もエラーになります。また、C版のReadSeqを使っている場合は仕様上OTU名にはアンダースコアやハイフンを用いることができません(ReadSeqで正常に変換できない)。どうしてもアンダースコアやハイフンを使う必要がある場合にはJava版のReadSeqを使ってみて下さい。  タンパクコード領域を含む場合は領域名に「_P」を付けます。 perl kakusan.pl --partition=hoge1:1-300,protein_P:301-600,hoge2:601-900 このように指定すると、その領域をタンパクコード領域として扱います。 **マルチCPUマシンでの高速化 INSTALLDIR\kakusan --numthreads=2 input_file_name (Win32 version) perl INSTALLDIR/kakusan.command --numthreads=2 input_file_name (MacOS X version) perl INSTALLDIR/kakusan.pl --numthreads=2 input_file_name などとコマンドラインオプションを指定して起動すると、尤度計算時にPAML/PAUP*を複数起動して一度に計算することでマルチCPUを生かした高速化が可能です。上記の例では最大起動数を2つまでにしています。Athlon 64 X2やCore Duo、Core 2 DuoなどのデュアルコアCPUでも高速化の恩恵を受けることができます。対話モードでも最後に質問されますのでその際に同時起動数を入力してください。この同時起動数に、スペックに見合わないあまりに大きな値を指定すると、かえって遅くなったり落ちたりすることがありますのでよくわからなければ1を指定してください(デフォルトは1です)。 *結果を利用した解析方法  実行すると、input_file_name.kakusanというディレクトリが生成されてその中に色々ファイルができます。MrBayes、PAUP*用の設定ファイルはそれぞれMrBayes、PAUPという名前のディレクトリの中に出力されますのでまずはカレントディレクトリを移動します。 cd datafile.kakusan cd MrBayes このディレクトリには「領域名_情報量基準_hogehoge.nex」などといった名前のファイルがあります。配列全体に一つの塩基置換モデルを当てはめる場合(single model)・各領域毎に異なる塩基置換モデルを当てはめた上で領域間の置換速度比を導入(枝長は領域間で共有)したモデルを当てはめる場合(proportional model)・各領域毎に異なる塩基置換モデルを当てはめた上で領域間で枝長も共有しないモデルを当てはめる場合(separate model)のそれぞれのためのファイルがありますので適当に選んで使って下さい。 mb MrBayes > Execute whole_BIC1_proportional_codonshared.nex AICc/BICの1〜6というのは、サンプルサイズに使う値が異なるため分けています。1が固定した樹形における最小置換数(最節約スコア)、2が各座位の最小置換数の和、3が各座位の形質状態の最小値の和、4が座位数、5が可変座位数、6が座位数×OTU数です。  このスクリプトでは、single・proportional・separate modelの比較は行っていませんのでご注意下さい。proportional・separate modelついて、詳しくは[Pupko et al. (2002)|http://mbe.oxfordjournals.org/cgi/content/abstract/19/12/2294]のIntroductionをご参照下さい(無料で全文読めます)。  現段階では特に出力される設定ファイルのテストが不十分なため、ファイルに問題がある可能性があります。ファイルの内容をよく読んで確認してご使用下さい。 *このスクリプトを利用した解析を論文にするときには  以下の論文を引用されることをお薦めします。 -Tanabe, A. S., 2007, "Kakusan: a computer program to automate the selection of a nucleotide substitution model and the configuration of a mixed model on multilocus data", Molecular Ecology Notes, doi:[10.1111/j.1471-8286.2007.01807.x|http://dx.doi.org/10.1111/j.1471-8286.2007.01807.x]. *履歴 -2007/07/05 2.0.2007.07.05 -2007/06/30 RC2.0.2007.06.30 -2007/06/26 RC2.0.2007.06.22 -2007/02/27 1.0.2007.02.27alpha -2007/02/19 1.0.2007.02.19 -2007/02/10 v1.0.2 -2006/11/08 v1.0.1 -2006/11/01 v1.0 -2006/10/29 RC2 -2006/10/26 RC1 *バグ報告・要望 トップページのメールアドレスまでお願いします。