Pythonオーソログ推定プログラムのOrthoFinderですが、便利なことにオーソログ推定の結果予測されたシングルコピー遺伝子の情報を個別に抽出してディレクトリにまとめてくれます。シングルコピー遺伝子の系統樹は種の系統関係を反映している可能性が高いと考えられるため、シングルコピー遺伝子の配列を連結して系統樹を推定すればそれなりに信頼のできる種の系統樹を簡単に得ることができます。そんなわけで、系統関係を知りたい生物種の全遺伝子配列を入力としてOrthoFinderを実行し、その結果を基にシングルコピー遺伝子の連結系統樹推定まで全自動で実行するプログラムを作成したのでそのまとめです。同様のパイプラインをQiitaで公開されている方がおりましたが、OrthoFinderの実行まで全自動化したかった、アライメントと非保存領域のトリミングをマルチスレッド実行したかった、これら2点の理由と後学のために自分でも作ることにしました。コードは一番下に載せました。コピペで多分動くと思います。コードプログラム実行書式コマンドの書式は以下の通りです。解析対象生物ごとに全遺伝子情報が記載されたFASTAまたはGenBankファイルを用意しディレクトリにまとめておけば、シングルコピー遺伝子の連結系統樹推定まで実行可能です。3.4以降が必須です。species_tree.nwkspecies_tree.nwkが推定したシングルコピー遺伝子の連結系統樹です。外部ライブラリとしてpandas、biopythonに依存しています。pipでインストール可能です。pandasまた、OrthoFinder、MAFFT、trimAl、IQ-TREEが実行可能になっている必要があります。IQ-TREEはバージョン1.6以降をご使用ください。プログラム概要プログラムは6つのステップで実行されます。OrthoFinderの入力データ準備OrthoFinderの実行には解析対象生物の全遺伝子配列が記載されたFASTAファイルが必要になりますので準備します。FASTA形式でファイルを持っている場合は何もする必要がありませんが、GenBank形式で全遺伝子情報を入手している場合もあるためプログラム中でCDSの翻訳配列を抜き出すことで対応することにしました。ファイル形式の判別及びCDS配列の抽出はBiopythonを使いました。OrthoFinderによるオーソログ推定OrthoFinderでシングルコピー遺伝子を推定します。配列だけ入手できれば良いので、-ogオプションを使って解析を途中で止めています。内部で実行されるコマンドは次のとおりです。シングルコピー遺伝子配列の抽出及び連結系統樹推定のためのFASTAファイルのヘッダー書き換えこの後IQ-TREE中で各シングルコピー遺伝子についてモデル推定を行い連結系統樹推定を実行しますが、この際FASTAファイルのヘッダーが同一の配列が同じOTU由来として認識されるため、個々の生物種の遺伝子についてヘッダーを同一にしておく必要があります。OrthoFinderでは入力ファイルのファイル名が生物種名として認識されるのでそれで統一することにしました。OrthoFinderの結果として各オーソロググループのFASTAファイルの他に、各オーソロググループについて配列名と生物種名をまとめたTSVファイル(Orthogroups.tsv)とシングルコピー遺伝子のグループ番号をまとめたリスト(Orthogroups_SingleCopyOrthologues.txt)が出力されるため、これを利用してシングルコピー遺伝子配列ファイルの抽出とヘッダーの書き換えを行い、改めて別ディレクトリに配列ファイルを出力しています。tsvファイルの処理にpandasを利用しています。MAFFTによるマルチプルアライメントMAFFTでマルチプルアライメントを行います。MAFFTは並列実行にも対応していますが、再現性が無い点が少し気になったので、シングルコアで実行しています。それだけだと遅くなってしまうためmultiprocessingを利用して複数コアで同時に各配列のアライメントを行うことにしました。内部で実行されるコマンドは次の通りです。trimAlによる非保存領域の削除アライメントが不完全な領域を系統樹推定に用いることを防ぐためこれを取り除きます。トリミングにはtirmAlを用いました。オプションが多いプログラムですが、とりあえず最尤系統樹推定に適しているらしい-automated1オプションで実行しています。MAFFTと同様にtrimAlの実行はシングルスレッドですがmultiprocessingモジュールを利用して同時に複数ファイルについてトリミングを行っています。内部で実行されるコマンドは次の通りです。トリミング済みのシングルコピー遺伝子配列を基に、連結系統樹をIQ-TREEで推定します。IQ-TREEでは設定ファイルでパーティションを指定することにより、配列ごとに最適置換モデル推定を行うことができるためこれを利用しています。必要なパーティションファイルをプログラム中で自動生成して読み込ませています。内部で実行されるコマンドの書式は次の通りです。Toolkitでノードに通し番号を付ける他人に説明するときなどに、系統樹のノードに番号が付いている...2018-10-26FastTreeの使い方まとめFastTreeは近似最尤法による系統樹推定プログラムです。大規模...2018-10-21IQ-Treeの使い方まとめIQ-Treeは最尤法による系統樹作成プログラムです。»プロフィール取り留めのないブログですがお役に立てれば幸いです。(7)月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。