Loading...
墨滴

秦贝贝

2021/06/17  阅读:183  主题:默认主题

构建进化树的方法

构建进化树的简单方法


简介

本文简单讲述了多序列比、对比对序列进行对齐及其构建进化树的方法及流程。如果想节约时间,可以直接跳到文末查看使用的代码。

使用的软件列表

  • muscle:序列比对软件
  • trimal:比对序列修剪软件
  • iq-tree:构建进化树软件

下文主要对上述三个软件进行了简单介绍,并对使用方法进行总结。

1. muscle序列比对

  • muscle比对软件最精确的比对参数就是默认参数,除非自己有十分适用于自己研究目的的方法。
  • muscle比对软件最快速的比对参数如下,适用于大部分的文件。
#适用于氨基酸的参数
muscle -in seqs.fa -out seqs.afa -maxiters 1 -diags -sv -distance1 kbit20_3
#适用于核苷酸序列的参数
muscle -in seqs.fa -out seqs.afa -maxiters 1 -diags  
  • 对于大数据使用的参数如下,提升速度可能比较微小。
 muscle -in seqs.fa -out seqs.afa -maxiters 2
  • 构建进化树,Neighbor-joining法构建进化树的准确度要比UPGMA好,但是速度上UPGMA更快。运行命令后只产生一个输出文件,可将输出文件直接放进MEGA中进行可视化。
#使用UPGMA法构建进化树
muscle -maketree -in seqs.afa -out seqs.phy
#使用Neighbor-joining法构建进化树
muscle -maketree -in seqs.afa -out seqs.phy -cluster neighborjoining
  • muscle比对输出的文件默认是fasta,同时也可以是输出多种文件类型,但是fasta文件是muscle输出文件唯一符合trimal软件输入文件的格式。

软件官网:http://www.drive5.com/muscle/manual/index.html

2. trimAl序列修剪

  • trimAl输入文件必须是比对完成的序列文件,同时此软件支持多种输入文件格式,如clustal, fasta, NBRF/PIR, nexus, phylip3.2, phylip等。
  • trimAl软件有三种自动化的参数,分别是-gappyout、-strict和-strictplus,他们分别是从序列gap和similarity的分布进行自动修剪序列并对齐,-automated1参数则是会自动选择上述三个参数的其中一个作为最适合当前输入文件的修剪对齐策略参数。至于其具体原理我还没有进行深入学习,但是作者在说明书中写到了如何使用这三个参数,作者建议构建最大似然法的树使用-automated1参数,构建NJ树使用-strictplus参数。
  • 该软件作者发现,修剪对齐完的比对序列构建的进化树更加精确。在使用此软件-automated1参数后构建树结果上36%与最大似然法构建的树相当,比直接使用比对序列构建的树质量显著提升了64%。使用-strictplus参数重构NJ树效果更佳,在89%情况下,进化树精确度提高了。在大部分情况下(90%),trimAl的默认参数要优于Gblocks v0.91b。

We observed an overall improvement of the phylogenetic accuracy after trimming. Using -automated1 option of trimAl, the trimmed alignment always produced Maximum Likelihood trees that were of equal (36%) or significantly better (64%) quality as compared with the tree derived from the complete alignment. For Neighbor Joining reconstruction the -strictplus option of trimAl worked best, improving the phylogenetic accuracy in 89% of the scenarios. In most scenarios (90%), trimAl outperformed Gblocks v0.91b with default parameters.

  • trimAl可实现自动化剔除可疑序列,必须通过-resoverlap和-seqoverlap两个参数进行设置,但是这两个参数后面必须跟上具体的阀值。-resoverlap参数的意思是一个位置与列中其他位置的最小重叠被认为是“好位置”,-seqoverlap参数的意思是序列必须具有的“好位置”的最小百分比才能被保存。(关于上述的解释,最好可以查看trimAl官方说明书,里面记录上述相关重叠的计算详解)。在说明书举例中,作者分别使用的阀值是-resoverlap 0.75 和-seqoverlap 80,大家可做参考。

-resoverlap Minimum overlap of a positions with other positions in the column to be considered a "good position". (see User Guide).
-seqoverlap Minimum percentage of "good positions" that a sequence must have in order to be conserved. (see User Guide).

  • 我们后续iq-tree软件是构建最大似然法的树,所以这里我的代码如下,供大家参考。
trimal -in <inputfile> -out <outputfile> -automated1
  • trimAl官方也提供了网页端的服务

软件官网:http://trimal.cgenomics.org/use_of_the_command_line_trimal_v1.2

3. iq-tree构建进化树

  • iq-tree是一款非常优秀的软件,他可以更快速、准确、灵活的构建最大似然法的进化树,拥有很多模型可以选择,并且对大数据十分友好。现在已经推出了iq-tree2,相较于版本1,很多参数改动比较大。
  • 个人使用的参数如下
iqtree -s example.phy -bb 1000  -nt AUTO -m MFP -pre output 
# -s 输入文件。
# -bb bootstrap值,软件建议最小1000。
# -nt 线程数。当输入AUTO时软件自动寻找你电脑最适合的线程数。
# -m MFP 寻找最佳的建树模型,如果你的iqtree2版本大于1.5.4,则默认执行。
# -pre 修改输出文件名的前缀。
  • 使用-s参数会输出三个文件分别是:
    • example.phy.iqtree:主要的报告文件,内容很多,包括了一个文本记录的树形状。
    • example.phy.treefile:NEWICK格式的文件,可以导入FigTree和iTOL的文件中直接查看树图片,但是好像导入MEGA中不能直接查看图片。
    • example.phy.log:日志文件,记录了运行的结果,虽然在运行的过程中会打印在屏幕上。
  • 使用-m参数会额外产生一个文件
    • example.phy.model:记录所有模型可能的log文件,现在新版本好像是一个压缩包。
  • 使用-bb参数会输出三个文件分别是:
    • example.phy.contree、example.phy.splits.net、example.phy.splits三个文件,具体这三个文件有什么用,我还不是很清楚,不过不用担心,作者说了经过bootstrap计算过的树同时输入到了example.phy.treefile文件当中,也就是说,当你输入完命令想看构建好的进化树,只需打开example.phy.treefile文件即可,其他的文件是什么不用操心。
  • 我发现除了官方文档中提到的输出文件,还有几个额外产生的文件,具体是什么并不清楚,我推测可能是一些断点储存的文件。
  • iq-tree软件十分强大,本例中使用的参数只是冰山一角,希望以后还有时间去深入学习。
  • iq-tree官方也提供了网页端的服务。

软件官网:http://www.iqtree.org

4. 总结

本例使用代码总结:

#第一步:多序列比对
muscle -in <input_file> -out <muscle_output>
#第二步:修剪对齐多序列比对
trimal -in <muscle_output> -out <trimal_output> -automated1
#第三步:构建ML进化树
iqtree -s <trimal_output> -bb 1000  -nt AUTO -m MFP -pre output 

随着现代计算机计算量的升级和高通量测序的发展,构建简单NL树已经不再符合目前科研发展的需求,而构建可信度更高的ML树才是符合发展的趋势,iq-tree作为目前构建ML树计算速度较快的新软件正也是顺应了趋势发展的要求。

秦贝贝

2021/06/17  阅读:183  主题:默认主题

作者介绍

秦贝贝

养鱼门外汉,编程爱好者。