【技术贴】系统进化树介绍及绘制详解
系统发育分析中,最重要和最常见的内容为构建系统发育树。系统发育树也称为系统发生树(phylogenetic tree)、聚类树或者进化树(evolutionary tree)。以树状结构表示各个节点的进化关系,枝点可以是物种、同一物种的样本、基因等单元。
进化树中各个元素的介绍如图1所示
图1 进化树的结构示意图
根据是否指定了根节点,系统发育树可以分为有根树和无根树。
有根树指定了根节点,树中可以看出各个节点的距离和祖先节点以后各个分枝分化的先后关系,因此可以用于分化时间的推断;
无根树没有指定祖先节点,只能看出各个节点的拓扑结构和相对距离。
无根树和有根树图示如图2。图2左边的进化树只看到了材料的聚类关系和相对距离的远近,无法判断哪个分枝属于较为古老的分枝,哪个分枝为比较年轻的分枝;而图2右边的进化树加了外群,并且把外群指定为根,所以从图中除了可以看到材料的相对距离以外,还可以可以看到各个分枝材料的分化顺序。有根树根的选择应有所讲究,一般选择所研究的材料(根以下的全部材料)的最近的共同近缘种作为外群。
图2 无根树和有根树[1,2]
随着测序成本的下降,简化测序和全基因组重测序在遗传进化中的应用变得越来越广泛,对研究群体进行简化测序或者全基因组重测序获得的用于分析的标记通常为SNP标记,有许多研究人员获得SNP标记后,往往不知道如何利用SNP标记进行进化树的构建,脑子往往一直停留在序列比对--修改--构建进化树的阶段,其实基于SNP进行进化树的构建的过程相当简单,每个样本的每个位点连起来就是一条序列,因为每个样本的SNP数目相同,所以比对这一步就可以直接省去了。
下面小编就从VCF开始,告诉大家如何用比较流行的MEGA软件进行进化树的构建,我们只需要准备两个软件:TASSEL(https://bitbucket.org/tasseladmin/tassel-5-standalone/downloads/?tab=tags)和MEGA7(http://www.megasoftware.net/)即可完成进化树构建的全部操作。
VCF转MEGA格式。用TASSEL打开VCF文件,另存为Phylip格式(Save As — Phylip(Interleaved)),如图3,然后用MEGA7把Phylip文件转换成MEGA格式(File — Convert File Format to MEGA — 选择刚才转出的Phylip文件按提示操作存成.meg文件),转出的格式如图4,前两行为文件头信息,无实际意义,但是必有。“#33-16”表示样本编号,与fasta文件的格式不同,mega格式样本的起始不是“>”而是“#”,接下来便是该样本的SNP连接成的序列信息。
图3 使用TASSEL把VCF转为Phylip(Interleaved)格式
图4 MEGA文件格式
进化树构建步骤:
1、mega文件导入:
File — Open A File/Session — 选择要导入的文件,选择数据类型(如果是SNP即为Nuceotide Sequences),提示Protein-coding nucleotide sequence data时,选择No,即不把DNA序列翻译成蛋白序列构建进化树,如图5。
图5 meg文件导入
2、进化树的构建
选Phylogeny选项卡,在可选的方法中选择一种方法进行进化树的构建,种内材料一般选择NJ法即可,属内种间或属以上材料可以用ML(maximum likelihood tree)法(ML法计算之前,可进行最优模型的选择:Models — Find Best DNA/Protein Models,使用选出的最优模型进行ML树的构建),下面以NJ法为例进行说明。
参数设置,主要填写Bootstrap值,一般选择500或1000次;Model一般用Kimura 2-parameter Model(K2),如果K2模型运行不了,可以换成p-distance模型;Gaps/Missing Data Treatment选择Partial deletion或者pairwise deletion,选择complete deletion时带有缺失值的标记都会被删除,所以必须谨慎;Site Coverage Cutoff与我们常说的完整度相同,一般填写成我们过滤标记时使用的完整度,上述参数设置完成后,点击compute即可。(见图6)
进化树的着色
用MEGA完成进化树的构建后,可以将结果保存为nwk格式(File — Export Current Tree(Newick)),保存original树(推荐)时,既输出枝长,又输出bootstrap值,而bootstrap consensus tree则只能输出bootstrap值。
获得nwk格式的进化树后,需要对其进行展示,以便从直观上判断材料间的聚类关系,界面版的MEGA自带简单的展示功能,可以对进化树进行展示,但其功能较为简单,无法满足着色、添加额外信息等较为个性化的要求。从功能的丰富度来说,iTOL(https://itol.embl.de/)、EvolView(http://www.evolgenius.info/evolview/)、ggtree(https://github.com/GuangchuangYu/ggtree)应当是功能较为齐全的软件,其中,ggtree是R软件包,可以在本地操作,但需要编写代码,使用起来并不十分方便。三款软件中,从操作的简易度,效果的美观程度来看,iTOL都是最佳的选择,下面将以iTOL为例子,说明对进化树结果的展示方法。
1、打开iTOL主页以后,选择上端的Upload选项,出现输入界面后,可以在Tree text框中粘贴nwk中的内容,也可以通过【选择文件】选项选择需要展示的进化树,之后点击Upload即可。
图7 iTOL上传文件
2、进化树着色,按照iTOL的要求,填写一个颜色配置文件,填写方法如该链接的说明https://itol.embl.de/help/colors_styles_template.txt,给末端分枝着色的配置文件填写如下图,[2,branch,#984EA3,normal,1]中2为样本ID,branch表示给树枝上色,#984EA3为16进制颜色代码,normal表示线条的样式为正常的实线,1表示枝条的大小为1,该文件必须以.txt结尾,填写完成后,将其拖入进化树的界面即可。
图8 分枝着色配置文件
3、进化树的调整,导入进化树后,右上角会出现一个control面板,该面板包含【Basic】、【Advanced】、【Datasets】、【Export】三个标签项。常进行进化树展示的朋友对【Basic】、【Advanced】和【Export】三个标签项的内容和操作应当熟练掌握。
4、分枝颜色的统一。上面的着色例子只对末端分枝进行了着色,有时候,我们需要对某个分枝的样本进行颜色的统一,可以选中该分枝并点击鼠标,在弹出的下拉框中选择color — set clade color — 选择想用的颜色或填入对应的颜色代码即可。
图9 分枝统一着色
5、树根的指定。选择需要指定为根的枝点,在弹出的下拉框中选择Tree structure — Reroot the tree here即可。
图10 指定树根
6、编辑确定后,点击右上边的Save all changes即保存了当前的编辑,编辑完成并保存后,选择export选项卡,选择输出文件的格式,一般选择svg/pdf等矢量图格式,Export area务必选择Full image。
图11 保存编辑与输出
当需要输出带枝长的进化树时,应当将树图拖动到与标尺靠近的位置,避免输出的图像中树图与标尺距离过大。
图12 拖动进化树使其靠近Tree Scale
至此,基于SNP构建并编辑进化树的工作就算基本完成了,如果还想要各种比较炫的效果,可以参照iTOL的帮助文档进行操作,包你能够获得一棵华丽丽的进化树。
怎么样,简单吗?还有更简单的呢?
点击下方 “阅读原文” 到百迈客云尝试一键绘图吧
参考文献:
1.Cheng F, Sun R, Hou X, et al. Subgenome parallel selection is associated with morphotype diversification and convergent crop domestication in Brassica rapa and Brassica oleracea[J]. Nature genetics, 2016, 48(10): 1218.
2.Zhou Z, Jiang Y, Wang Z, et al. Resequencing 302 wild and cultivated accessions identifies genes related to domestication and improvement in soybean[J]. Nature biotechnology, 2015, 33(4): 408.
大项目事业部 谢 坤 | 文案
周 刚 | 审核
图片来自网络,侵删