Published at 2020-04-17 11:36
Author:zhixy
View:3746
以下内容基于IQ-TREE 1.6.12
IQ-TREE主要由来自奥地利维也纳大学(Universität Wien)Bùi Quang Minh等开发。 提供包括windows(64/32位)、linux(64/32位)、以及macOS在内的多平台不同版本。
IQ-TREE有四大功能,在很大程度上解决了最大似然法建树软件、尤其是速度上的几个缺陷:
通过-s
指定输入的序列比对文件,接受格式包括 PHYLIP/FASTA/NEXUS/CLUSTAL/MSF
[user@server ~]# iqtree -s example.phy
运行过程中IQ-TREE会调用ModelFinder进行模型选择,并在最优模型(最优标准默认为BIC,Bayesian Information Criterion) 的基础上进行进化树构建。最终将产生4个主要的结果文件:
此外还有3个次要临时文件,包括example.phy.bionj,example.phy.ckp.gz和example.phy.model.gz。
IQ-TREE针对蛋白质序列将对546
个模型进行检验,针对DNA序列将对286
个模型进行检验。模型检验受-m
参数控制,
实际上上述基本用法相当于执行如下操作:
[user@server ~]# iqtree -s example.phy -m MFP
如仅执行模型选择,而不进行ML树搜索,须设置-m MF
。输出结果将不再有example.phy.mldist,同时example.phy.treefile也不再存放ML树,
取而代之的是用于ModelFinder的树文件。
在设置-m MF
(包括-m MFP
)进行模型选择时,在常用模型基础上,加上了FreeRate model,所以模型就有546
和286
之多。
如果计算资源有限,像jModelTest, ProtTest那样在常规模型中选择,可执行:
[user@server ~]# iqtree -s example.phy -m TEST
类似地,设置-m TESTONLY
将仅执行模型选择。
已知最优模型,或想根据特定模型构建ML树,仍须通过-m
参数设置,规则为-m modelnameFIG[n]
,其中关于碱基/氨基酸频率的F
、不变位点的I
和离散Gamma模型(突变速率异质性)的G[n]
(n
默认为4),可组合使用。此外,FreeRate model的设置为-m modelnameR[n]
。
Bootstrap自展分析是最常用的分支可靠性检验方法,但在ML树构建过程中,由于ML法本身速度较慢,加之Bootstrapping使得整个计算进程被大大拉长。 IQ-TREE团队开发了一个超快Bootstrap的方法,并在IQ-TREE中实现,用法如下:
[user@server ~]# iqtree -s example.phy -m TEST -bb 1000
Ultrafast bootstrap最少重复次数为1000
。
快速Bootstrap与常规Bootstrap的在bootstrap value的解读上不同,模型冲突的情况下,快速Bootstrap会高估bootstrap value值。因此作者推荐加上
-bnni
或者沿用标准非参数Bootstrap分析,设置参数为-b 100
,将执行Bootstrap ML tree consensus tree三步,-bc 100
将执行Bootstrap consensus tree二步,-bo 100
将仅执行标准Bootstrapping。
如上所述,MLBootstrap分析是非常耗时的,为了加快运算,目前很多软件都支持多线程运算,IQ-TREE也不例外。
[user@server ~]# iqtree -s example.phy -m TEST -bb 1000 -nt 100
以上命令通过-nt
设定了100个线程并行计算,或也可通过设置-nt AUTO
让IQ-TREE自动选择。
IQ-tree运行过程会保存每一步成功运行的结果(建立checkpoint)。当程序中断重新运行时,IQ-TREE会接上一个checkpoint运行。这个对于大数据集是有很大好处的。如想从头开始,需要加上参数
-redo
。
在Phylogenomics分析等分析中,针对比对序列中的不同区间(Partition),或基因组中的不同基因,IQ-TREE可有区别的设定不同的模型。
该方法通过-sp
参数实现。
[user@server ~]# iqtree -sp supermatrix_partition.nex -nt 100 -bb 1000
所需的nexus
文件示例如下:
#nexus
begin sets;
charset part1 = aln1.phy: *; #part1 对应基因/蛋白1的比对文件,以此类推
charset part2 = aln1.phy: *; # * 指定了alignment中的所有位点都用于计算,根据需要可选定其中的部分位点,如:"aln1.phy: 1-100 250-384;"
charset part3 = aln2.phy: *;
charpartition mine = HKY:part1, GTRG:part2, WAGIG:part3; # 改行为每个part指定不同的模型。
end;