IQ-tree2构建系统发育树使用小结
IQ-TREE是一款用于系统发育推断的高效软件(Efficient software for phylogenomic inference),其主要具有以下特点:
1.高效的树重建
一种通过最大似然推断系统发育树的快速有效的随机算法。IQ-TREE在计算时间相似的可能性方面优于RAxML和PhyML(Nguyen等人,2015)。
2.ModelFinder - 快速准确的模型选择
ModelFinder(Kalyaanamoorthy等人,2017)支持自由速率变化模型,并且比jModelTest和ProtTest快10到100倍。它还可以找到最合适的分区方案,如PartitionFinder。
3.UFBoot - 超快引导近似
UFBoot提供近似无偏的分支支持值,运行速度比非参数引导程序快100倍,比RAxML快速引导程序快10到40倍(Minh等人,2013)。
4.支持大数据分析
通过检查点、安全数值和低内存模式支持具有数千个序列或数百万个比对位点的庞大数据集。多核CPU和并行MPI系统用于加速分析。
准备工作
wget -c https://github.com/iqtree/iqtree2/releases/download/v2.1.3/iqtree-2.1.3-Linux.tar.gz
tar -zxvf iqtree-2.1.3-Linux.tar.gz
echo 'export PATH="~/iqtree-2.1.3-Linux/bin:$PATH"'>>~/.bashrc
source .bashrc
cd iqtree-2.1.3-Linux #该文件夹下有一个PHYLIP格式的示例比对文件example.phy
示例:
1. 根据ModelFinder自动选择的最适合模型,从序列比对(example.phy)中推断出最大似然树:
iqtree2 -s example.phy #s指定 IQ-TREE 需要的比对文件的名称
iqtree2 -s example.phy -m MFP
(# change -m MFP to -m TEST to resemble jModelTest/ProtTest)
-m是指定要在分析期间使用的模型名称的选项。特殊MFP关键字代表ModelFinder Plus,它告诉IQ-TREE使用所选模型执行ModelFinder和剩余分析。ModelFinder计算许多不同模型和Akaike信息准则(AIC)、校正Akaike信息准则(AICc)和贝叶斯信息准则(BIC)的初始简约树的对数似然。然后ModelFinder选择最小化BIC分数的模型(您也可以通过添加选项-AIC或-AICc分别更改为AIC或AICc)。当使用了ModelFinder模型时,IQ-TREE将写入一个附加文件:example.phy.model
:所有测试模型的对数似然。它用作检查点文件以恢复中断的模型选择。如果您现在查看,example.phy.iqtree您将看到IQ-TREE被选TIM2+I+G4为此示例数据的最佳拟合模型。
正常情况下,在运行结束时IQ-TREE将写入几个输出文件,包括:
example.phy.iqtree
:自读的主要报告文件。您可以查看此文件以查看计算结果。它还包含最终树的文本表示(见下文)。
example.phy.treefile
:NEWICK格式的ML树,可以通过任何支持的树查看器程序(如FigTree或iTOL)进行可视化。
example.phy.log
:整个运行的日志文件(也打印在屏幕上)。要报告错误,请将此日志文件和原始比对文件发送给作者。
对于此示例数据,生成的最大似然树可能如下所示(从.iqtree文件中提取):
NOTE: Tree is UNROOTED although outgroup taxon 'LngfishAu' is drawn at root.
注意:树是无根的,尽管外群分类单元'LngfishAu'在图中以根部出现。
+--------------LngfishAu
|
| +--------------LngfishSA
+--------|
| +--------------LngfishAf
|
| +-------------------Frog
+------|
| +-----------------Turtle
| +-----|
| | | +-----------------------Sphenodon
| | | +--|
| | | | +--------------------------Lizard
| | +---|
| | | +---------------------Crocodile
| | +------|
| | +------------------Bird
+---------|
| +----------------Human
| +--|
| | | +--------Seal
| | +--|
| | | +-------Cow
| | +---|
| | +---------Whale
| +----|
| | | +------Mouse
| | +---------|
| | +--------Rat
+----------|
| +----------------Platypus
+---|
+-------------Opossum
这很容易理解,哺乳动物(Human to Opossum)形成一个进化枝,而爬行动物(Turtle to Crocodile)和Bird形成一个单独的姐妹进化枝。这里的树画的是Lngfish的外群,在这个例子中它比其他物种更古老。然而,请注意IQ-TREE总是产生一棵无根的树,因为它对这个生物学背景一无所知;IQ-TREE简单地以这种方式绘制树,因为LngfishAu仅仅只是比对中出现的第一个序列而已。
其他示例:
2. 重新运行并且覆盖先前的输出
iqtree -s example.phy -redo
(Use `-redo` option if you really want to redo the analysis and overwrite all output files.)
3.更改输出前缀:
iqtree -s example.phy --prefix myprefix
输出文件的默认前缀是比对文件名,自定义前缀可以防止在同一文件夹内对同一路线执行多个分析时覆盖原先的输出文件。
4. 执行ModelFinder而不进行后续的树推理:
iqtree2 -s example.phy -m MF
(use '-m TEST' to resemble jModelTest/ProtTest)
5. 使用GTR+I+G模型推断最大似然树:
iqtree2 -s example.phy -m GTR+I+G
6. 使用 4 个 CPU 内核来加速计算:
iqtree2 -s example.phy -T 4
7. 确定在GTR+R4模型下使用的最佳内核数:
iqtree2 -s example.phy -m GTR+R4 -T AUTO
8. 根据计算系统,可能需要设置可以自动分配的CPU内核的上限。使用该-ntmax选项执行此操作:
iqtree2 -s example.phy -m TIM2+I+G -T AUTO -ntmax 8
9. 使用超快引导程序近似评估分支支持(UFBoot):
iqtree2 -s example.phy -m TIM2+I+G -B 1000
(-B指定引导复制的数量,其中1000是推荐的最小数量。)
10. 使用 UFBoot 减少模型严重违规的影响:
iqtree2 -s example.phy -m TIM2+I+G -B 1000 -bnni
-bnni降低由于严重模型违规而高估 UFBoot 分支支持的风险。
使用此选项,UFBoot 将直接基于相应的引导程序比对使用爬山最近邻交换 (NNI) 搜索进一步优化每个引导程序树
11.使用单分支测试评估分支支持(SH-aLRT ):
iqtree2 -s example.phy -m TIM2+I+G -alrt 1000
-alrt指定SH-aLRT的引导复制次数,其中1000是推荐的最小数量。
12. 使用标准非参数引导程序评估分支支持:
iqtree2 -s example.phy -m TIM2+I+G -b 100
-b指定引导复制的数量,其中100是推荐的最小数量。输出文件类似于UFBoot程序生成的文件。
13. 在一次运行中结合ModelFinder,树搜索,超快bootstrap和SH-aLRT测试:
iqtree2 -s example.phy --alrt 1000 -B 1000
#执行边连接的比例划分模型(example.nex):
iqtree2 -s example.phy -p example.nex
(replace '-p' by '-Q' for edge-unlinked model)
#通过合并分区找到最佳的分区方案:
iqtree2 -s example.phy -p example.nex -m MF+MERGE
(use '-m TESTMERGEONLY' to resemble PartitionFinder)
#找到最优分区方案,然后进行树推理和bootstrap:
iqtree2 -s example.phy -p example.nex -m MFP+MERGE -B 1000
暂时先更到这里。。。