利用IQ-TREE构建ML树

Published at 2020-04-17 11:36

Author:zhixy

View:2669


IQ-TREE主页

以下内容基于IQ-TREE 1.6.12

IQ-TREE主要由来自奥地利维也纳大学(Universität Wien)Bùi Quang Minh等开发。 提供包括windows(64/32位)、linux(64/32位)、以及macOS在内的多平台不同版本。

IQ-TREE有四大功能,在很大程度上解决了最大似然法建树软件、尤其是速度上的几个缺陷:

  • 高效建树(efficient tree reconstruction)
  • 模型选择(modelfinder: fast and accurate model selection)
  • 超快自展(ultrafast bootstrap approximation)
  • 大型数据(big data analysis)

基本用法

通过-s指定输入的序列比对文件,接受格式包括 PHYLIP/FASTA/NEXUS/CLUSTAL/MSF

[user@server ~]# iqtree -s example.phy

运行过程中IQ-TREE会调用ModelFinder进行模型选择,并在最优模型(最优标准默认为BIC,Bayesian Information Criterion) 的基础上进行进化树构建。最终将产生4个主要的结果文件:

  • example.phy.iqtree 记录相对具体的进化树构建信息
  • example.phy.treefile 记录构建成的ML树的newick文本
  • example.phy.mldist 记录似然距离矩阵
  • example.phy.log 记录屏幕的日志

此外还有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,所以模型就有546286之多。 如果计算资源有限,像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法评估分支支持度

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

Partition特异的模型设定与物种树构建

在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;

其他用法

ROBINSON-FOULDS距离矩阵

树拓扑检验

祖先状态重建

参考文献

  1. B.Q. Minh, H.A. Schmidt, O. Chernomor, D. Schrempf, M.D. Woodhams, A. von Haeseler, R. Lanfear (2020) IQ-TREE 2: New models and efficient methods for phylogenetic inference in the genomic era. Mol. Biol. Evol., in press:. https://doi.org/10.1093/molbev/msaa015
  2. S. Kalyaanamoorthy, B.Q. Minh, T.K.F. Wong, A. von Haeseler, L.S. Jermiin (2017) ModelFinder: Fast model selection for accurate phylogenetic estimates. Nat. Methods, 14:587-589. https://doi.org/10.1038/nmeth.4285
  3. L.-T. Nguyen, H.A. Schmidt, A. von Haeseler, B.Q. Minh (2015) IQ-TREE: A fast and effective stochastic algorithm for estimating maximum likelihood phylogenies.. Mol. Biol. Evol., 32:268-274. https://doi.org/10.1093/molbev/msu300