CAFE5 — 遺伝子ファミリーの進化解析
CAFE のメジャーアップデート版。
- Github: https://github.com/hahnlab/CAFE5
- 論文: Mendes et al. 2020
ドキュメントが丁寧に書いてあるので基本的には読めば OK。
- https://github.com/hahnlab/CAFE5/blob/master/README.md
- https://github.com/hahnlab/CAFE5/blob/master/docs/tutorial/tutorial.md
新しい機能
- 各遺伝子ファミリーが異なる速度で進化することを仮定したパラメータ推定を行う。
- シェルスクリプトを書く必要がなくなった。
- エラーモデルの最適化やサマリーテーブルの出力が内部で行われるようになった。 (Python スクリプトが不要になった。)
インストール
Download
- https://github.com/hahnlab/CAFE5/releases から
- または、
git clone https://github.com/hahnlab/CAFE5.git
Compile
cd CAFE5
./configure
make
実行ファイルは CAFE5/bin/
にあるので、ここに PATH を通す。
macOS の場合
src/matrix_cache.cpp:2:10: fatal error: 'omp.h' file not found
などコンパイラが見つからない系のエラーが出る場合があるらしい。 gcc
を入れてシンボリックリンクを張る:
brew install gcc
find / -name omp.h
ln -sv path/to/omp.h /usr/local/include/
改めて、
make
遺伝研
apptainer
にあるものを使うのが楽:
ls /usr/local/biotools/c/cafe:5*
Quick Start
Input
基本的に必要なファイルは以前の CAFE と同じ。
種ごと、遺伝子ファミリーごとの遺伝子数のテーブル(タブ区切り)。 OrthoFinder とか OrthoMCL とかでつくる。
gene_families.txt
Description ID Chicken Lizard Mouse OG00001 OG00001 12 14 21 OG00002 OG00002 9 13 5 OG00003 OG00003 7 0 4
Newick 形式の系統樹。binary, rooted, ultrametric である必要がある。 (cf. Rパッケージ
ape::is.binary()
,ape::is.rooted()
,ape::is.ultrametric()
)species_tree.txt
(Mouse:319.00000000,(Lizard:281.10000000,Chicken:281.10000000):37.90000000);
CAFE5 の実行
想定するシナリオにより、いくつかの実行方法がある:
遺伝子ファミリー間で進化速度が一定であるという仮定の下で、遺伝子ファミリーの進化速度を推定:
cafe5 -i gene_families.txt -t species_tree.txt
遺伝子ファミリーごとの進化速度が異なるという仮定の下で、遺伝子ファミリーの進化速度を推定:
cafe5 -i gene_families.txt -t species_tree.txt -k 3
特定の系統で遺伝子ファミリーの進化速度が異なることを仮定する場合、 以前のバージョンと同じように \lambda 構造を規定した Newick ファイルを用意する:
lambda_structure.txt
(Mouse:1,(Lizard:1,Chicken:2):1); # Chickenの系統で進化速度が異なることを仮定。
cafe5 -i gene_families.txt -t species_tree.txt -y lambda_structure.txt
出力ファイル
-o
で出力先を指定。 指定しなくても実行ディレクトリに result/
ディレクトリが作られてその中に格納される。
model_asr.tre
- 各遺伝子ファミリーごとに再構成された系統樹が書かれている。
-
ノード名 +
_
に続く形でそのノードでの推定遺伝子数が書かれており、 有意な増減があったノードには*
がふってある。 model_family_results.txt
-
遺伝子ファミリー、P 値、変化が有意であるかどうか (
y/n
) がタブ区切りで記述されている。 model_clade_results.txt
- 各ノードごとに遺伝子数が増加/減少したファミリーの数が書いてある。
model_branch_probabilities.txt
- 各ノード、各遺伝子ファミリーにおける事後確率のタブ区切りリスト
- ガンマモデルの場合、有意な変化があったファミリーについてのみ書かれている。
model_family_likelihoods.txt
- Base モデルでは各ファミリーごとの尤度
- Gamma モデルではそれに加えて事後確率がタブ区切りで書かれている。
model_result.txt
- 選択されたモデルの名前、そのモデルの最終的な尤度、 遺伝子数の進化速度にあたる \lambda などが書かれている。
model_change.txt
- 各遺伝子ファミリーについて、各ノードにおける親ノードからの遺伝子数の変化量が書いてある。
model_count.txt
- 各遺伝子ファミリーについて、各ノードにおける推定遺伝子数
Rapidly evolving gene famillies
について
CAFE は確率的誕生-死亡モデルの下で、 ある \lambda 値 (単位時間当たりの遺伝子の増減) にしたがって インプットした系統樹上で遺伝子の増減をシミュレートする。
その結果各遺伝子ファミリーの実際の遺伝子数が得られる確率が P 値として得られる。 この P 値が事前に定めた有意水準 (例えば0.05) を下回ったものが rapidly expanded/contracted gene families
として得られる。
並列化
--cores
オプションで指定:
cafe5 -i gene_families.txt -t species_tree.txt --cores 5
トラブルシューティング
CAFE4 のトラブルシューティングも参照。
既知の問題
OG0000001 1 2 94 1 3 2 1
みたいに遺伝子数にとびぬけた値があると、計算が途中で止まる。 (CAFE4 のときは inf/-inf
で押し通していた。)
標準エラーでどの遺伝子ファミリーが原因か教えてくれるので、そのファミリーを除いて再解析する。