初次記錄時間:2021.2.5
3.12更新說明:ML建樹對與模型的替代選擇比較敏感捶码,因此增加了第四部分推測最佳模型的方法:jModeltest和ProtTest羽氮。
3.16更新說明:增加了第五部分內容,IQtree可以幫助用戶選擇最佳的進化模型惫恼,速度也較快档押,有文獻報道準確度比傳統(tǒng)的RAxML高。
3.20更新說明:意外又看到一個推測最佳建樹模型的軟件:modeltest-ng祈纯。目前用不到汇荐,就暫時不用它了。另外盆繁,為啥我用IQtree建樹,那么慢QS桶骸!
1. 系統(tǒng)發(fā)生樹
1.1 簡述
????系統(tǒng)發(fā)生樹(Phylogenetic tree)是從分子層面研究物種進化的手段倾贰,是通過構建分子樹來推斷物種樹冕碟,并不一定是絕對的真實情況。隨著越來越多物種的基因序列的獲得匆浙,是一種快捷安寺、準確的研究物種間關系的方法。構建好的系統(tǒng)發(fā)生樹由四部分組成:根首尼、枝挑庶、節(jié)言秸、葉
1.2 特點
- 由系統(tǒng)發(fā)育樹推斷出的進化關系,并不一定是物種間絕對的進化關系迎捺。
- 系統(tǒng)發(fā)育樹的分支聚類情況举畸,在一定程度上反映了物種間的親緣關系。
- 系統(tǒng)發(fā)育樹分支繞節(jié)點轉動不會改變物種間的親緣關系凳枝。
FastTree和RAxML均是用最大似然法構建系統(tǒng)發(fā)育樹的工具抄沮,前者速度快,后者準確度高岖瑰。
2. FastTtree
????FastTtree采用的是SH檢驗來判斷每個節(jié)點的可信度叛买。該值的范圍在0~1之間,與一般用的bootstrap值高度相關蹋订。
2.1 安裝
conda install fasttree
2.2 使用
2.2.1 核酸建樹
fasttree -nt <nucleotide_alignment_file> > <tree_file>
注:核酸建樹默認
JC+CAT
模型率挣,可以用參數(shù)-gtr -nt
切換成GTR+CAT
模型
2.2.2 蛋白建樹
fasttree <protein_alignment_file> > <tree_file>
注:蛋白建樹默認
JTT+CAT
模型,還可以用參數(shù)-wag
或者-lg
切換成LG+CAT
或者WAG+CAT
模型
3. RAxML-NG
3.1 安裝
conda install -c bioconda raxml-ng
3.2 使用
第一步:檢查比對后的序列MSA是否可以讀雀ū纭(MSA可以使用FASTA
难礼、PHYLIP
格式)
raxml-ng --check --msa prim.phy --model GTR --prefix T1
注:這一步驟還會給出哪些序列是相同序列(推薦執(zhí)行)
第二步:構建核苷酸樹(模型GTR
,1000次自檢值抽樣)
raxml-ng --all --msa prim.phy --model GTR --prefix T15 --threads 10 --bs-trees 1000
注:蛋白樹可用
LG
模型
4. 模型的選擇
????目前常用的構建系統(tǒng)發(fā)育樹的方法有:鄰位歸并法(Neighbor joining, NJ)玫锋、最大似然法(Maximum likelihood method, ML) 以及貝葉斯法(BI)蛾茉。綜合速度和準確度,ML用得較多撩鹿。
????ML對替代模型非常敏感谦炬,因此利用ML法構建系統(tǒng)發(fā)育樹之前,選擇合適的替代模型是必不可少的過程节沦。(如果序列的相似度較高键思,每種方法和模型構建的系統(tǒng)發(fā)育樹差別不大)
4.1 jModeltest
????jModeltest用于核苷酸最佳替代模型的計算,一共有88種模型甫贯。
4.1.1 安裝
????從github上下載最新版本(jModelTest v2.1.10)吼鳞。
4.1.2 使用
tar -zxvf jmodeltest-2.1.10.tar.gz
cd jmodeltest-2.1.10
java -jar jModelTest.jar -d <輸入文件.fa> -f -i -g 4 -s 11 -BIC -AIC -v -a -tr 40 -o <輸出結果.txt>
注:輸入文件為比對之后的fasta格式文件
4.2 ProtTest
????ProTest用于最佳氨基酸替代模型的計算,一共有120中模型叫搁。
4.2.1 安裝
????從github下載最新版本(ProtTest 3.4.2)
4.2.2 使用
1. 查看幫助信息
tar -zxvf prottest-3.4.2-20160508.tar.gz
cd prottest-3.4.2
java -jar prottest-3.4.2.jar -h
2. 模型預測
java -jar prottest-3.4.jar -i <輸入蛋白序列.phy> -all-distributions -F -AIC -BIC -tc 0.5 -threads 24 -o <輸出結果>
5. IQtree
5.1 安裝
conda install iqtree
5.2 使用
1. 只選擇合適的模型并輸出最佳的模型(類似于jModelTest)
iqtree -s example.phy -m MF -mtree -T AUTO
mtree:會檢查所有的模型赔桌,會占用很多的電腦資源。
2. 使用GTR+I+G模型建系統(tǒng)發(fā)育樹
iqtree -s example.phy -m GTR+I+G
3. 選擇合適的模型渴逻,并直接構建系統(tǒng)發(fā)育樹(常用)
- 普通數(shù)量和序列大小建樹(用標準的bootstraps進行檢驗):
iqtree -s example.phy -m MFP -b 1000 -T AUTO
- 數(shù)量較多或序列較長(用UFBoot進行檢驗):
iqtree -s example.phy -m MFP -B 1000 --bnni -T AUTO
常用參數(shù)說明:
1. -s:指定輸入比對后的序列文件名
2. -m:選擇模型(設置MFP會自動檢測最佳模型并建樹疾党,從v1.54版本開始,MFP已經(jīng)是默認的參數(shù)了)
2. -b:bootstrap次數(shù)
3. -B:超快速bootstrap次數(shù)惨奕,大于等于1000
4. --bnni:使用NNI優(yōu)化超快速bootstrap的樹雪位,搭配-B使用
5. -T:程序運行使用的核數(shù),可設置具體數(shù)字或者AUTO(推薦)梨撞,默認是1
6. -cmax:默認是10雹洗,如果序列很長香罐,可以適當增加該數(shù)值
7. -alrt 1000:進行SH-aLRT檢驗。
注意事項:
- ultrafast bootstrap(UFBoot)和一般的bootstrap值的區(qū)別是队伟,前者更加公正 (unbiased)穴吹。同時,兩者表示的意義也有區(qū)別嗜侮。UFBoot=95%港令,表示的是該分支的真實性是95%。一般來說锈颗,一個分支的BS(bootstrap)>80%顷霹,或者UFBoot>95%為可信的。
- 為了進一步增加可信度击吱,還在建樹的過程中可以增加SH-aLRT檢驗淋淀,(添加參數(shù):
-alrt 1000
)。SH-aLRT ≥ 80%覆醇,且UFBoot ≥ 95%時為可信的朵纷。