https://www.jianshu.com/p/df234ca0de71
IQ-TREE:最大似然法构建精确、快速、灵活、广泛的系统发育树
IQ-TREE自2011年就已经开发并开源,至今都有专业团队维护,其名字来源于IQPNNI和TREE-PUZZLE的前缀,IQ-TREE具有四大特征:
- 算法高效,通过最大似然法高速高效随机重建系统发育树,如RAxMl和PhyML相比类似计算时间具有较好的结果
- 超快的支持率,自检值(bootstrap)是RAxML的10-40倍,同时出现偏见支持率值更少
- 数据分析,支持成千上万条序列或比对位点的数据集分析
- 系统发育树测试,有SH-aLRT和aBayes测试进化枝,树拓扑结构近似无偏见测试(approximately unbiased)
此外,IQ-TREE提供大量的构建系统发育树模型供选择,包括四种:
- common models: 所有常见的DNA,蛋白质,密码子的替代模型,二元和形态数据之间的比率异质性和确定偏差校正,例如SNP数据。
- Partition models: 混合数据、不同基因位点、异质性等分开的模型选择
- Mixture models: 完全自定义模型和经验模型
- Polymorphism-aware models: 考虑物种不完整的谱系分类以推测物种树
简单测试
说明,现在软件已经更新到version2版本,我们默认使用iqtree调用(新版本为iqtree2),此外本文所述均是基于命令行操作,解释不同选项及对应参数作用,网页版使用过于简单,可点击跳转。
输入文件格式:phylip、fasta、nexus、clustalw
# 参数s为指定输入比对好的文件格式,为必备的,1.5.4版本默认 -m MFP自动寻找最适模型
iqtree -s example.phy
结果文件包括三个:
example.phy.iqtree:主要计算结果的报告文件,也包含最终构建系统发育树树的文本展示
example.phy.treefile:NEWICK格式的ML tree,该文件可用Figtree和iTOL查看
example.phy.log:整个运行过程的日志文件,记录报错等信息
注意:在运行的过程中,程序会定期将执行进程(结果)写入一个gzip压缩的example.phy.ckp.gz文件,该文件可以在出现程序运行终止或遇到较大文件而内存不足时,再次使用相同的命令运行IQ-TREE,程序将会从上次停止的地方继续运行。当然对运行完成的结果,再次运行会显示当前任务已经成功运行。
-redo
选项表示覆盖运行之前的结果,如
iqtree -s example.phy -redo
-pre
选项,自定义输出结果文件前缀,默认情况下所有输出文件的前缀与输入文件的名字一致,如指定myprefix为前缀:
iqtree -s example.phy -pre myprefix
如何选择最适合模型
IQ-TREE支持针对DNA、protein、codon等大量的模型可供选择,但是通常情况下,我们不知道哪个模型最适合我们的数据,而调用软件内置ModelFinder确定最合适的模型。
#for IQ-TREE version >= 1.5.4:
iqtree -s example.phy -m MFP # -m 指定模型选项,MFP表示ModelFinder Plus(自动默认)
#for IQ-TREE version <= 1.5.3:
iqtree -s example.phy -m TESTNEW
MFP为ModelFinder Plus的缩写,该参数使程序执行ModelFinder选择最适模型并完成建树分析。ModelFinder为许多不同的模型计算初始简约树的逻辑概率,并产生Akaike
information criterion (AIC),* corrected Akaike information criterion* (AICc), and* the Bayesian information criterion* (BIC)三个结果标准值,通常ModelFinder选择BIC分数最低的模型(当然也可以指定AIC和AICc通过指定选项-AIC
或者-AICc
)。
此时会增加一个额外输出结果文件:
example.phy.model:所有测试模型的对数概率值,它充当检查点文件,用于恢复中断的模型选择。
有时,我们仅仅只想知道数据分析的最适合模型并不想建树,那么可以分别指定MF或TESTNEWONLY参数
值得注意一下,我们这里选择ModelFinder而不调用jModelTest/ProTest,其优点如下:(如果仍然想用jModelFinder/ProTest,添加-m TEST
或者-m TESTONLY
)
如果序列比对文件特别长(考虑添加-cmax 15
,默认为10)
用超快的bootstrap近似评估分支支持值
为了克服非参数bootstrap所需的计算负担,IQTREE引入了ultrafast bootstrap approximation (UFBoot)提供相对公正的分支支持数值,选项为- bb
通常为百分比数值。
iqtree -s example.phy -m TIM2+I+G -bb 1000
与前面相比,又额外增加三个输出结果文件:
example.phy.contree:树支持值一致的树(consensus tree)的且分支长度在原始比对上优化过
example.phy.splits.nex:所有分割(双分区)的支持值的百分比,作为引导树中出现的频率计算,该文件可以通过程序SplitsTree查看数据中的矛盾信号,因此因此,该文件一致树更能提供信息
example.phy.splits (使用-wsplits
选项):此文件包含与example.phy.split相同的信息,格式为star-dot。
有时,-bnni
减少由于严重的模型违规而高估了UFBoot对分支的支持风险。
评估分枝支持率使用标准的分参数bootstrap
iqtree -s example.phy -m TIM2+I+G -b 100
-b指定bootstrap的重复次数,其中100为推荐的推荐的最小数。输出结果文件与UFBoot过程生成的文件相似。
使用单个分枝测试评估分枝支持值
IQ-TREE提供一个SH类近似似然比测试,-alrt
指定SH-aLRT的bootstrap的重复个数,1000为最下的。
iqtree -s example.phy -m TIM2+I+G -alrt 1000
iqtree -s example.phy -m TIM2+I+G -alrt 1000 -bb 1000
CPUs核心线程的利用
IQ-TREE可以利用多个CPU核来加速分析。选项-nt
允许指定要使用的CPU内核数量
iqtree -s example.phy -m TIM2+I+G -nt 2
iqtree -s example.phy -m TIM2+I+G -nt AUTO #通常使用这个
iqtree -s example.phy -m TIM2+I+G -nt AUTO -ntmax 8 #cpu的上限为8核心线程
后记,以上主要介绍了iqtree软件关于输入文件、输出文件的介绍及解读,同时详细介绍了不同选项及参数的功能。
关于特异性指定替换模型
-m
是指定替代模型、状态频率和速率异质性类型的实用选项。一般的语法是:
-m MODEL+FreqType+RateType
MODEL:model name
+FreqType:(可选项)frequency type
+RateType:(可选项)rate heterogeneity type
参见下图:
MODEL:
FreqType:
RateType:
IQ-TREE官网链接:http://iqtree.cibiv.univie.ac.at/