系统发育分析

  • A+
所属分类:生物信息学
系统发育分析

Mark A. Hershkovitz and Detlef D.Leipe

National Center for Biotechnology Information

National Library of Medicine

National Institutes of Health

Bethesda,Maryland

系统发育学研究的是进化关系,系统发育分析就是要推断或者评估这些进化关系。通过系统发育分析所推断出来的进化关系一般用分枝图表(进化树)来描述,这个进化树就描述了同一谱系的进化关系,包括了分子进化(基因树)、物种进化以及分子进化和物种进化的综合。因为”clade”这个词(拥有共同祖先的同一谱系)在希腊文中的本意是分支,所以系统发育学有时被称为遗传分类学(cladistics)。在现代系统发育学研究中,研究的重点已经不再是生物的形态学特征或者其他特性,而是生物大分子尤其是序列。

尽管本章的目的是想描述一个万能的系统发育分析方法,但是这个目标过于天真,是不可能实现的(Hills et al.,1993)。虽然人们已经设计了大量的用于系统发育的算法、过程和计算机程序,这些方法的可靠性和实用性还是依赖于数据的结构和大小,因此关于这些方法的优点和缺点的激烈争论成了分类学和系统发育学期刊的热门课题(Avise, 1994:Saitou, 1996; Li, 1997; Swofford et al., 1996a)。Hillis等人(1993)曾经极其简单地介绍过系统发育学。

比起许多其它学科而言,用计算的方法进行系统发育分析很容易得到错误的结果,而且出错的危险几乎是不可避免的;其它学科一般都会有实验基础,而系统发育分析不太可能会拥有实验基础,至多也就是一些模拟实验或者病毒实验(Hillis et al., 1994);实际上,系统发育的发生过程都是已经完成的历史,只能去推断或者评估,而无法再现了。尽管现在的系统发育分析的程序存在着很多缺陷,许多生物学著作中仍然大量引用系统发育分析得到的结论,这些结论的源数据只是简单地应用了某一个系统发育的分析程序。只有在很偶然的情况下,在应用某些软件处理数据时受到的困难会少一点,但是在概念上理解这些程序是如何处理数据仍然是个难题。

本文中关于系统发育分析方法的指导有如下一些目的。首先,我们要介绍一个概念性的步骤,这个步骤包含了当前在对生物序列进行系统发育分析时最广泛使用的方法中应用到的一些最重要的原理。这个步骤认为,所有的系统发育方法都刻画了一个模型去模拟真实的进化过程,然后假定程序发现的序列之间的差异是模拟的进化结果,而这个模型本身就包含了方法中固有的假定。对于一个好的使用的系统发育的分析方法,刻画一个正确的模型同描绘一个正确的进化树是同等重要的。另外,我们还将讨论一些比较通用的方法所刻画的模型,并且讨论一下这些模型是如何影响对数据组的分析的。最后,我们会针对系统发育模型和进化史的推论,提供一些具体方法应用的例子。

系统发育模型的组成

系统发育的建树方法都会预先假定一个进化模型(Penny et al., 1994)。比如,所有广泛使用的方法都假定进化的分歧是严格分枝的,因此我们可以用树状拓扑发生图来描述已知的数据。但是在一个给定的数据组中,因为存在着物种的杂交以及物种之间遗传物质的传递,这个假定很可能会被推翻。因此,如果所观察的序列并非是严格遗传的话,大多数系统发育方法就会得到错误的结果。

系统发育方法中固有的模型会导致一些额外的假定:

1.    序列有指定的来源并且正确无误(Helbig and Seibold, 1996; Hershkovitz and Lewis, 1996; Soltis et al., 1997)。

2.    序列是同源的(也就是说,所有的序列都起源于同一祖先序列);这些序列不是“paralog“(paralog指的是一个祖先序列通过复制等方法在基因组中产生的歧化序列)的混合物。

3.    序列比对中,不同序列的同一个位点都是同源的。

4.    在接受分析的一个序列组中,序列之间的系统发育史是相同的(比如,序列组中不存在核序列与细胞器序列的混合)。

5.    样本足以解决感兴趣的问题。

6.    样本序列之间的差异代表了感兴趣的宽组。

7.    样本序列之间的差异包含了足以解决感兴趣的问题的系统发育信号。

还有一些假定,在某些方法中是默认的,但是在另外一些方法中是可以修正的:

3.    样本序列是随机进化的。

4.    序列中的所有位点的进化都是随机的。

5.    序列中的每一个位点的进化都是独立的。

许多公开发表的系统发育分析结果的错误通常都是因为违反了上述假定,特别令人恼火的是现有的方法并不能察觉对基本假定的违反。每一个序列组都必须根据上述基本假定进行评估,并且同分析过程相协调。下面我们将会描述分析过程。

系统发育数据分析:比对,建立取代模型,建立进化树以及进化树评估

对DNA序列进行系统发育分析的四个主要步骤是比对,建立取代模型,建立进化树以及进化树评估。一般来说,执行这四个步骤的计算机程序都是相互独立的,但是他们都是进行系统发育分析的有机部分。

当前的讨论主要集中在分析DNA序列的方法上,这些方法基本上(不全是)仍然是通过碱基和密码子的替代来考察序列的差异;这个方法同样应用于对蛋白质序列的分析,但是由于氨基酸的生物化学多样性,我们必须引入更多的数学参数。因此,下面讨论的适用于核苷酸碱基的方法同样适用于氨基酸和密码子,而关于蛋白质的一些特殊问题和程序会在别的地方得到讨论(Felsenstein, 1996)。

因为建树的标准在一定程度上依赖比对和取代模型,因此一开始就应该介绍这些方法,这些介绍非常必要。三种主要的建树方法分别是距离、最大节约(maximum parsimony, MP)和最大似然(maximum likelihood,ML)。距离树考察数据组中所有序列的两两比对结果,通过序列两两之间的差异决定进化树的拓扑结构和树枝长度。最大节约方法考察数据组中序列的多重比对结果,优化出的进化树能够利用最少的离散步骤去解释多重比对中的碱基差异。最大似然方法考察数据组中序列的多重比对结果,优化出拥有一定拓扑结构和树枝长度的进化树,这个进化树能够以最大的概率导致考察的多重比对结果。这些方面将会在后面详细讨论。

建立数据模型(比对)

系统发育的序列数据通常会进行多重比对,也就是说,在系统发育的有关文献中通常会把那些单独的比对好的碱基所占据的位置称作位点;在进行系统发育的理论讨论时这些位点等同于特征符,而占据这些位点的真实的碱基或者空位被称为特征符状态;但是也有例外,STATALIGN程序(Thorne and Kishino, 1992)在进行系统发育分析时不会进行多重比对,它使用原始的未比对过的序列。

多重比对在第七章中有详细讨论,在这里我们只讨论与系统发育分析有关的多重比对方法。对准的序列位点将会被应用于系统发育分析,但是这只能描述一个先验的系统发育的结论,因为位点本身(不是真实的碱基)都是假定为同源的(Mindell, 1991; Wheeler, 1994)。因此,出于系统发育的目的,比对程序只是系统发育分析的一部分。

建立一个比对模型的基本步骤包括:选择合适的比对程序;然后从比对结果中提取系统发育的数据集,至于如何提取有效数据,取决于所选择的建树程序如何处理容易引起歧义的比对区域和插入----删除序列(即所谓的indel状态或者空位状态)。

多重比对程序

多重比对程序有如下一些属性:

计算机依赖性:无依赖;部分依赖;完全依赖。

系统发育调用:无调用;先验调用;递归调用。

比对参数评估:先验评估;动态评估;递归评估。

比对特征:基本结构(比如序列);高级结构。

数学优化:统计优化;非统计优化。

在系统发育分析研究中,一个典型的比对过程包括:首先应用CLUSTAL W程序,然后进行手工比对,最后提交给一个建树程序。这个过程有如下特征选项:(1)、部分依赖于计算机(也就是说,需要手工调整);(2)、需要一个先验的系统发育标准(也就是说需要一个前导树);(3)、使用先验评估方法和动态评估方法(推荐)对比对参数进行评估;(4)、对基本结构(序列)进行比对(对于亲水的氨基酸,推荐引入部分的二级结构特征);(5)、应用非统计数学优化。这些特征选项的取舍都依赖于下面将要描述的具体的系统发育分析方法。

计算机依赖型

提倡进行完全的计算机多重比对的人常常有这样的依据,他们认为手工比对通常都是含混不清的(Gatesy et al., 1993)。MALIGN(Wheeler and Gladstein, 1994)和TreeAlign(Hein, 1990, 1994)程序都试图在根据系统发育功能而优化比对的时候实现完全计算机化,尤其是试图通过初步的多重比对而优化出一个最大节约树(MP tree)。一般来说,只有当我们假定计算机程序能够进行正确的比对的时候,我们才会实行完全的计算机处理。之所以还提倡进行手工比对(比如,Thompson et al., 1994),是因为现在的比对算法和程序还不能满足系统发育分析的需要。

系统发育标准

许多计算机多重比对程序(比如CLUSTAL, PileUp,ALIGN in ProPack)根据明确的系统发育标准(一个前导树)进行比对,这个前导树是由双重比对得到的。但是SAM(Hughey et al., 1996)和MACAW(Lawrence et al., 1993)程序在进行多重比对时并不引入明确的系统发育标准,虽然这些程序也可以模拟系统发育过程操作参数。

如果在进行系统发育分析的时候,比对中引入了前导树,那么通过这个比对推导出的进化树逻辑上应该同前导树的拓扑结构相同。由CLUSTAL比对得到的前导树(如图9.1)将会被转化成PHYLIP树的文件格式,然后输入到画树程序中,这些画树程序包括TreeTool(X windows), TreeDraw(Macintosh), PHYLODENDRON(Macintosh), TREEVIEW(Macintosh, Microsoft Windows) 或者PAUP(图 9.1;Macintosh, Microsoft Windows)的画树工具。按道理,我们应该回过头来为CLUSTAL比对再指定一个前导树,但是在实际操作中我们并不会这么做。有些程序(比如TreeAlign and MALIGN)为了得到优化的比对和系统发育树,程序本身就设计了交叉(同步)递归优化的算法。理论上,能够解决比对----系统发育难题的同步优化算法或者配套算法应该是存在的,但是递归算法必须冒一定的风险,它很可能会导致一个错误的或者不完整的结果(Thorne and Kishino, 1992)。因此,根据比对结果建立进化树之后,必须考虑另外的可能性,也就是说,如果根据其它的比对结果得到一个并不是最优化的进化树,这个次优化的进化树是不是更能够满足研究的需要。

比对参数评估

在比对中会出现一些序列区域,其长度是可变的,如何处理这些区域中indel状态的位点是最重要,这取决于进化模型的所有要素(比如,包括核苷酸转换/颠换速率),而且相关的参数在前导树与比对推导的进化树中应该保持一致。比对参数应该随着进化的分叉动态变化(Thompson et al., 1994),只有这样才能保证碱基错配的几率能够满足序列趋异的需要;比对参数应该随时调整(Thompson et al., 1994, Hughey et al., 1996),以防止引入过多的近似序列而导致比对序列的信息量不足,可以通过降低近似序列的比对分值权重来防止这种情况。CULSTAL程序兼顾了这两种情况(参数动态变化),而SAM程序引入了序列权重。

利用基本结构或者高级结构进行比对

根据二级或者三级序列结构进行比对,比起直接利用一级序列进行比对的可信度要好,因为在同源性评估中,人们一直认为复杂结构的保守性高于简单特征(核苷酸,氨基酸)的同源保守性,而且,立足于复杂结构的比对程序还可以搜索到一些特殊的关联位点,这些位点是进化的功能区域。实际上,基于系统发育的结构多重比对并没有将问题简化,也就是说,序列比对必须服从结构进化,而结构进化则同系统发育保持一致。有一个探索式的手工程序(如图9.2),是用来对核糖体DNA进行结构比对的(Gutell et al., 1994),这个程序要考察相关取代的样式,但是相关性必须通过系统发育树中的多个独立的补偿性突变推导得到(cf. Harvey and Pagel, 1991)。

数学优化

有些比对程序(比如,MACAW, SAM)根据一个统计模型进行优化,但是这些统计同系统发育模型的关系并不清楚。仅仅根据一个系统发育模型是没有办法比较多重比对方法的优劣的。

总结:对于系统发育分析,最好的比对程序是什么呢?

对于一个给定的系统发育问题,如果预先不知道其中的系统发育关系,就很难知道最适用的比对方法(cf. Morrison and Ellis, 1997)。一般来说,我们并不赞成直接把计算机比对结果提交给建树程序,因为建树程序不能发现比对的错误;尤其是那些包含在比对程序包中(比如,CLUSTAL and TREE in ProPack)的建树程序,特别要注意这一点(Feng and Doolittle, 1996),因为在这些程序包中的建树程序更加不严格。我们必须通过分子结构功能和碱基取代过程作出一些假定,并且结合另外一些独立的系统发育证据,对整个比对进行考察。

从比对中提取系统发育数据集

在某些比对中,比对长度是可变的,这时,系统发育数据集同比对就不会完全吻合;即使在一些长度不变的比对中,数据集也可能同比对结果不一致--举一个很简单的例子,有时候我们只需要处理第一个和第二个密码子位点,就不需要全部的比对结果,这个话题我们在后面讨论取代模型的时候还会涉及到。

如果比对中出现可变长度,我们通常会根据比对的不确定性程度和处理indel状态的原则这两个标准对比对结果进行取舍,从中选择所需的系统发育数据集;其中针对indel状态的处理方法取决于建树方法以及从比对结果中发掘出的系统发育信息,最极端的方法是把包括空位在内的所有indel位点从比对中清除出去,在分析时不加考虑(cf. Swofford et al., 1996a),这个方法的好处是可以把序列的变化包容在取代模型中,而不需要特别的模型来处理indel状态,但是它的缺点也很明显:indel区域的系统发育信息完全被忽略了。

在提取数据集时保留indel区域但是忽略所有的空位分值,将会保留包括空位在内的位点碱基变化信息。某些长度可变区域在部分序列或者全部序列中很难对准,在这种情况下,这些难以对准的碱基的分值应该清零;这个方法存在很大的缺陷,MP和ML建树方法会不加考虑地把这些清零的或者被忽略的分值理解为零分歧,但是实际上隐藏在这些分值下面的实际的数据(不管是空位还是难以对准的碱基),一般来说,反映出的分歧度都很大。PAUP 4.0中的距离建树方法(将在下文描述)允许通过非空位区域外推得到空位区域的距离。

最大节约(MP;见下)是允许把可比对的空位合并,并将其视为特征符的唯一方法;可以通过两种方式达到目的:作为一个附加的特征符状态(第五种核酸碱基或者第二十一种氨基酸),或者作为一套独立于碱基取代的特征符集。当空位占据了不止一个位点的时候,前一个方法行不通,因为每一个空位位点都会被统计为一次独立的特征符状态变化。当比对的序列的局部出现很好的可比对的空位的时候,后一种方法非常有用。我们可以把一套空位特征符附加到比对序列数据集中,也可以用额外的碱基程序在适当的位置对空位计分,但是在计分的时候,空位位点中只有一个作为空位计分,其余的将会被忽略。PAUP将会执行这个方法。

对于某些比对而言,比对程序会忽略所有的空位分值或者忽略所有低于预设值的空位分值;但是,还没有任何一种程序会忽略单个序列的单个位点。如果比对在序列组内部相当明确,但是处身其中时却不太清楚,此时必须对比对做“手术”,确保同序列组相关的明确的信息被保留,而除去模糊的信息。 (责任大汉昆仑王)

  • 蛋白质组学业务咨询
  • 扫码咨询相关问题
  • weinxin
  • 代谢组学业务咨询
  • 扫码咨询相关问题
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: