生命经纬知识库 >>所属分类 >> 生物信息学技术   

系统发育分析

标签: 发育 进化 进化树

顶[0] 发表评论(30) 编辑词条

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

[显示全部]

系统发育模型的组成编辑本段回目录

系统发育的建树方法都会预先假定一个进化模型(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. 样本序列之间的差异包含了足以解决感兴趣的问题的系统发育信号。
还有一些假定,在某些方法中是默认的,但是在另外一些方法中是可以修正的:
8. 样本序列是随机进化的。
9. 序列中的所有位点的进化都是随机的。
10. 序列中的每一个位点的进化都是独立的。
许多公开发表的系统发育分析结果的错误通常都是因为违反了上述假定,特别令人恼火的是现有的方法并不能察觉对基本假定的违反。每一个序列组都必须根据上述基本假定进行评估,并且同分析过程相协调。下面我们将会描述分析过程。

系统发育数据分析:比对,建立取代模型,建立进化树以及进化树评估编辑本段回目录


对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(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)根据一个统计模型进行优化,但是这些统计同系统发育模型的关系并不清楚。仅仅根据一个系统发育模型是没有办法比较多重比对方法的优劣的。
从比对中提取系统发育数据集
在某些比对中,比对长度是可变的,这时,系统发育数据集同比对就不会完全吻合;即使 在一些长度不变的比对中,数据集也可能同比对结果不一致--举一个很简单的例子,有时候我们只需要处理第一个和第二个密码子位点,就不需要全部的比对结果,这个话题我们在后面讨论取代模型的时候还会涉及到。
如果比对中出现可变长度,我们通常会根据比对的不确定性程度和处理indel状态的原则这两个标准对比对结果进行取舍,从中选择所需的系统发育数据集;其中针对indel状态的处理方法取决于建树方法以及从比对结果中发掘出的系统发育信息,最极端的方法是把包括空位在内的所有indel位点从比对中清除出去,在分析时不加考虑(cf. Swofford et al., 1996a),这个方法的好处是可以把序列的变化包容在取代模型中,而不需要特别的模型来处理indel状态,但是它的缺点也很明显:indel区域的系统发育信息完全被忽略了。
在提取数据集时保留indel区域但是忽略所有的空位分值,将会保留包括空位在内的位点碱基变化信息。某些长度可变区域在部分序列或者全部序列中很难对准,在这种情况下,这些难以对准的碱基的分值应该清零;这个方法存在很大的缺陷,MP和ML建树方法会不加考虑地把这些清零的或者被忽略的分值理解为零分歧,但是实际上隐藏在这些分值下面的实际的数据(不管是空位还是难以对准的碱基),一般来说,反映出的分歧度都很大。PAUP 4.0中的距离建树方法(将在下文描述)允许通过非空位区域外推得到空位区域的距离。
最大节约是允许把可比对的空位合并,并将其视为特征符的唯一方法;可以通过两种方式达到目的:作为一个附加的特征符状态(第五种核酸碱基或者第二十一种氨基酸),或者作为一套独立于碱基取代的特征符集。当空位占据了不止一个位点的时候,前一个方法行不通,因为每一个空位位点都会被统计为一次独立的特征符状态变化。当比对的序列的局部出现很好的可比对的空位的时候,后一种方法非常有用。我们可以把一套空位特征符附加到比对序列数据集中,也可以用额外的碱基程序在适当的位置对空位计分,但是在计分的时候,空位位点中只有一个作为空位计分,其余的将会被忽略。PAUP将会执行这个方法。
对于某些比对而言,比对程序会忽略所有的空位分值或者忽略所有低于预设值的空位分值;但是,还没有任何一种程序会忽略单个序列的单个位点。如果比对在序列组内部相当明确,但是处身其中时却不太清楚,此时必须对比对做“手术”,确保同序列组相关的明确的信息被保留,而除去模糊的信息。
在空位区域,我们必须作出决定:在可供选择的比对中,哪一个更加合理,尤其重要的是,哪一个更加适合于建立进化树分析。如果手工解决比对的不确定性,就必须考虑系统发育关系、取代过程(比如,转换和颠换)和碱基组成;在这个阶段,用系统发育证据解决不确定性非常合理。在倾向于变长的序列区域,关系非常疏远的序列和序列组的比对就可以侧向展开(就是说,引入人工空位,并且忽略分值),最终的结果使得只有关系很近的序列区域对准在一起。某些序列中的某些位点虽然对准了,但是并不确定,他们的分值可以在计分时忽略;这个方法的优点是可以保留同这些序列相关的明确信息,缺点是最大节约和最大似然的建树方法会把这些“缺失”的分值看做是零分歧。
由MALIGN(Wheeler and Gladstein, 1994)和TreeAlign得到的比对不需要在比对后用这些方法中的建树方法进行数据修饰,即使这些比对中仍然有一些同样类型的不确定性,这些不确定性在另外一个程序进行分析时需要修正。如前所述,这些程序会根据由比对得到的最好的MP系统发育进化树,对比对参数进行递归优化。MALIGN还会利用一套空位为代价,对以连接的可供选择的比对为基础的建树方法进行优化;在这个方法中,在最有可能的几种比对中出现的比对特征将会被加权。这就提供了一种方法,可以捕获序列分歧的数量(在取消不确定的比对区域的分值的时候这些分歧是被忽略掉的),因为这些区域的所有可能的比对方式都将显示这些区域的最大的序列分歧。处于不确定的比对区域中的位点很可能不是同源的,因此在进化树中需要加入一些噪声干扰或者偏向。

决定取代模型编辑本段回目录


对于取代模型,应该给予同比对和建树同样的重视。就像前面暗示的那样,取代模型既影响比对,也影响建树;因此需要采用递归方法。现在,对于核酸数据而言,可以通过取代模型中的两个要素进行计算机评估(Swofford, 1997),但是对于氨基酸和密码子数据而言,没有什么评估方案(Felsenstein, 1996)。其中一个要素是碱基之间相互取代的模型;另外一个要素是序列中不同位点的所有取代的相对速率。还没有一种简单的计算机程序可以对较复杂的变量(比如,位点特异性或者系统特异性取代模型)进行评估,同样,现有的建树软件也不可能理解这些复杂变量。
碱基取代速率模型
一般而言,生物化学性质相近的碱基之间的取代频率较高;在DNA中,四种转换(A G, G A, C T, T C)的频率比八种颠换(A C, A T, C G, G T, 以及前四种的反向取代)的频率要高;这些偏向会影响两个序列之间的预计的分歧。
各个残基之间的相对取代速率一般由方阵形式列出;对于碱基而言,行数和列数都是4,对于氨基酸而言,行数和列数都是20(比如PAM方阵),对于密码子而言,行数和列数都是61(除去了中止密码子)。非对角线元素对应于一个碱基变为另一个碱基的相对代价,而对角线元素则代表不同序列拥有同一个碱基的代价。
这些代价值可以固定为先验的代价表,以确保建树方法在计分时对每一种取代都使用确定的代价值。固定的代价方阵是典型的静态权重方阵,MP建树方法使用的就是这种方阵。如果使用这种权重,那么这个方法就会被称为“加权节约”。又如,ML建树方法,代价值是由即时的速率方阵得到的,这个方阵代表了各种取代可能会发生的概率的ML估计值。MP权重方阵只涉及简单的算术,而应用距离和ML速率方阵则可以引入复杂的代数。为了避免盲目使用不适当的方法,建议大家熟悉其内部的基本原理(见Li, 1997, and / or Swofford et al., 1996a)。
实际上,“前进”和“反向”取代速率被认为是相同的;这个取代模型被称为是“时间可逆”;这个模型拥有“静态”的性质,因为在所有的碱基频率中没有预知的变化。在系统发育的特殊历史中,不同序列中的碱基频率不同表明,前进和反向速率实际上可能会不同;而传统的取代权重或者速率方阵不能包容这个“非静态”环境;本节的结尾将讨论一个基于非静态取代模型(“log�det”)的建树方法,这个方法将会提供一个可供选择的计算方法。
通常,特征符状态的权重方阵都会或多或少地通过观察进行过估值,当然也可以从速率矩阵衍生得到。比如,如果假定两个转化的其中一个,发生的频率是每个颠换的两倍,那么据此就可以确定一个权重方阵,比如,A�G的转换代价为1,而A�T的颠换代价为2。(节约方法规定对角线元素值,或者说是不同序列中拥有相同碱基的代价值为零。这是节约方法的一个缺点��详见下文)在随后的建树步骤中,这套假定会把颠换的总数降至最低值,而力求把那些主要差异是转换的序列集中在一起。
任何一种“时间可逆”的核苷酸取代模型都可以用图9.5所示的方阵刻画,只是其中一个速率和其它速率的差异;在任意组合中,最多可以达到只有六个参数,其中每一个速率参数都是独立的(Swofford et al., 1996a;Li, 1997)。如果平衡的碱基频率不相等,则需要额外的参数;如果平衡的碱基频率不相等,但是却假定这些频率相等,那么系统发育进化树的最终结果将会出错(Li, 1997)。
侧线(paralinear)(Lake, 1994)和“log�det”(Lockhart et al., 1994)做了一些修正(见Swofford et al., 1996a)来满足非静态环境的需要;这个方法只适用于距离进化树的建立;在这个方法中,对于每一个序列匹配,各种类型和变化方向的原始取代的数目都会计算在一个4×4的方阵中(如图9.6)。每个方阵都会有一个代数行列式,这个行列式的log值是评估序列差异性的一个要素,因此被称为“log�det”。对那些拥有各种各样的碱基频率的序列进行双重比较,就会得到各种各样的方阵,也就会得到各种各样的行列式值;因此,在评估序列两两之间的距离的时候,就要受到序列两两之间的行列式值的影响,而且序列两两之间的比较允许适用不同的取代模型,因此沿着系统发育进化树的不同树枝,将会产生多元化。Log�det尤其对位点之间的速率差异(见下文)敏感,因此,碱基频率的偏向可能只存在于那些承受变化的位点。
位点内速率差异模型
除了取代模型的多元化以外,一个序列中各个不同位点之间取代速率的差异也会对建立进化树的结果产生很深远的影响(Swofford et al., 1996a);关于位点之间的速率差异(或者叫做位点异质性),有一个最明显的例子,就是在一个编码序列中,三联体编码的位点差异:在三联体编码中,第三个编码位点比另外两个位点更加容易发生变化;正是出于这个原因,许多系统发育分析方法在分析编码序列时,都会把第三个编码位点排除在外;但是在某些情况下,速率差异模型会更加敏锐(比如,对应于蛋白质或者rRNA的保守序列)。
对位点差异的取代速率进行估值的方法有非参数化模型(W.M. Yang et al., 1996),不变式模型和gamma分布模型(Swofford et al., 1996a)。非参数化方法源于特异位点的相对速率的范畴;这个方法可以在MP建树方法中使用,只要根据相对的变异频率对特异位点进行简单加权就可以了,当然进行加权时需要有关于真实进化树的预备知识;这个方法同样也可以适用于ML建树方法,但是在计算上被认为是不切实际的(W.M. Yang et al., 1996)。不变式模型对一定比例的位点进行估值,这些位点并不能自由变化;剩余的位点假定为等概率变化。至于gamma模型方法,它假定一个给定的序列变化的概率是遵守gamma分布规律的,据此指定位点的取代概率;gamma分布的形状(有形状参数α描述)描述了一个序列中各个位点的取代频率的分布(Swofford et al., 1996a, p. 444, Figure 13; cf. Li, 1997, p. 76, Figure 3.10; 注意尺度差异)。在一个混合方法中,可以假定一部分位点是不变的,而剩余的位点则是按照gamma分布变化的。
实际上,gamma修正可以是连续的,离散的或者自离散的(W.M. Yang et al., 1996)。连续gamma的意思是各个位点沿一条连续的概率曲线变化;目前,这个方法在绝大多数情况下无法计算。离散gamma逼近方法指定各个位点的概率,使得这些(大量的)概率值逼近gamma曲线。自离散模型假定相邻的位点的变化速率是相关联的;许多组位点被分为许多类,其中每一类中的位点的变化速率可能被假定为常量或者异类值。
进化树建立程序使用各种各样的位点速率差异修正方法。对于核酸数据,PAUP 4.0在单独或者混合使用时间可逆的距离建树方法和最大似然建树方法时,既使用不变式gamma模型,也使用离散的gamma模型;在使用log�det距离建树方法时,使用不变式模型(见下)。对于核酸,氨基酸和编码子数据,PAML使用连续的,离散的和自离散的gamma模型。对于核酸和氨基酸数据,PHYLIP使用一种离散的gamma模型。

建树方法编辑本段回目录

现有的软件中所采用的建树方法已经在某些著作(Saitou, 1996; Swofford et al., 1996a; Li, 1997)中有很详尽的讨论;这部分只是简单地描述一些最常用的方法。建树方法可以分为两类,每类有两种不同的方法:
1. 基于算法的和基于标准的。基于算法的建树方法根据一系列的步骤得到一个进化树;而基于标准的建树方法则是根据一些优化的功能对可选的进化树进行评估。相邻连接方法(NJ)是一个纯粹的基于算法的建树方法,这个方法只得到一个进化树,这个进化树拥有令人满意的性质,它的距离附加值接近或者是非常优化的(见下);而一个基于标准的距离建树方法将会根据进化树的附加值优化的标准,对所有可能的进化树(不管这些进化树是否产生)进行评估。
2. 基于距离的和基于特征符的。历史上的和现有的许多关于系统发育的讨论描述了各种各样的基于距离的和基于特征符的建树方法的效用(比如,Saitou, 1996: Li, 1997)。距离建树方法根据一些尺度计算出双重序列的距离,然后抛开真实数据,只是根据固定的距离建立进化树;而基于特征符的建树方法在建立进化树时,优化了每一个特征符的真实数据模式的分布,于是双重序列的距离不再固定,而是取决于进化树的拓扑结构。最常用的基于特征符的建树方法包括MP和ML。
距离建树方法
距离建树方法根据双重序列比对的差异程度(距离)建立进化树。如果所有的起源分歧事件都很精确地记录在序列中(Swofford et al., 1996a),那么距离建树方法将会重构真实的进化树。然而,当序列突变达到饱和时,分歧程度就会达到上限。一对分歧序列的其中之一在某个特定位点发生突变后,后续的突变不管发生在哪一条序列,都不会再造成更多的差异。实际上,后续的变异很可能会使得前一个位点恢复成相等的状态,从而屏蔽掉前一个突变,因此,绝大多数基于距离的建树方法都会针对这样“不可见”的替换进行修正。在实际操作中,使用的速率方阵都会很有效地假定:在所观察的相等的碱基对中,实际上存在一定比例的位点,这些位点经受了多次突变,而且,随着整个序列差异程度的增加,这些位点的比例也在增加。有些程序(至少是随意地)会计算出不正确的距离进行,比方说,MEGA程序(Kumar et al., 1994)只针对密码子和氨基酸数据会计算出错误的距离;除非序列的整体差异程度很小,这个程序实质上将会保证给出错误的结果。
双重序列差异使用最大似然方法的取代速率计算得到。最常用的距离建树程序使用的模型局限于时间可逆模型,只包含很有限的几个取代模型;但是PAUP 4.0 基本上会测试时间可逆模型的所有变化,包括用最大似然方法从数据中评估得到的实际模型,以及针对非静态数据的log�det距离建树方法所得到的模型。
与最大似然方法相比,距离建树方法的计算强度很小,但是可以使用序列进化的相同模型,这是它们最主要的优点。这个方法的缺点是屏蔽了真实的特征符数据。最常用的距离建树方法是“不加权配对组算术方法”(UPGMA,unweighted pair group method with arithmetic mean)、相邻连接方法(NJ,neighbor joining)和对距离进化树的附加值进行优化的方法,包括最小进化方法(ME,minimum evolution)。有些方法被不止一个系统发育软件包引用,但是在使用时不一定会使用相同的指定参数和(或)进化树优化特征(比如,树枝交换��见下)。
不加权配对组算术方法(UPGMA,unweighted pair group method with arithmetic mean)
UPGMA是一种聚类或者说是分类方法��它按照配对序列的最大相似性和连接配对的平均值的标准将进化树的树枝连接起来。它还不是一种严格的进化距离建树方法(Li, 1997)。只有当序列分歧是基于一个分子钟或者近似等于原始的序列差异性的时候,我们才会期望UPGMA会产生一个拥有真实的树枝长度的准确的拓扑结构(ultrametric; Swofford et al., 1996a)。正如前面讨论的那样,在实际问题中很少会遇到这种情况。
相邻连接方法(NJ,neighbor joining)
相邻连接算法在距离建树中经常会用到,而不会理会使用什么样的优化标准。完全解析出的进化树是通过对完全没有解析出的“星型”进化树进行“分解”得到的,分解的步骤是连续不断地在最接近(实际上,是最孤立的)的序列对中插入树枝,而保留进化树的终端(图9.8)。于是,最接近的序列对被巩固了,而“星型”进化树被改善了,这个过程将不断重复。这个方法相对而言很快,也就是说,对于一个50个序列的进化树,只需要若干秒甚至更少。
Fitch�Margoliash(FM)
Fitch�Margoliash(FM)方法设法通过把所有可能观察到的距离相对于进化树中所有可能的路径长度的偏差的平方极小化,将进化树中观察到的双重距离的合适度极大化(Felsenstein, 1997)。有一些变量,在怎样对错误进行加权的处理上不太一样。对变化的估值并非是完全独立的,因为所有的进化树内部的树枝中存在的错误都至少被计算了两次(Rzhetsky and Nei, 1992)。
最小进化方法(ME,Minimum Evolution)
最小进化方法先使用同FM相同的方式计算出路径长度,然后根据路径长度优化出最短的进化树;也就是说,它要求将观察到的距离相对于基于进化树的距离的偏差的平方最小化(Rzhetsky and Nei, 1992; Swofford et al., 1996a; Felsenstein, 1997)。同FM方法不同,ME方法并不使用所有可能的双重序列距离和所有可能的相关的进化树路径长度,而是先根据到外层节点的距离固定进化树内部节点的位置,然后根据这些观察点之间的最小计算误差,对内部的树枝长度进行优化。于是这个方法声称它消除了FM计算的依赖性。
基于距离的建树程序比较
ME和FM似乎是最好的程序程序,它们在模拟研究中所取得的成绩几乎相同(Huelsenbeck, 1995)。ME在计算机程序中的应用越来越广泛了,包括METREE(Rzhetsky and Nei, 1994)和PAUP都在使用ME。对于蛋白质数据,PHYLIP中的FM程序提供了最多的时间可逆取代模型,但是没有对位点内部的取代速率差异进行修正。MEGA(Kumar et al., 1994)和METREE软件包包括一个针对蛋白质的gamma修正,但是只有同一个原始(“p�距离”)的分歧模型(没有距离修正或者偏好修正)结合时才进行修正,这种方法只有当分歧很小时才合理(Rzhetsky and Nei, 1994)。MEGA也计算同义的和异义的位点的分离距离,但是只有当没有取代或者碱基频率偏好的时候,以及没有对位点内部的速率差异进行修正的时候,这个方法才合理。因此,对于绝大多数数据集而言,对核苷酸数据应用一个更加理想的模型可能会比MEGA方法要好。
模拟研究指出,对于一个大范围的进化树形状空间,UPGMA的可操作性很差(Huelsenbeck, 1995)。我们并不赞成使用这种方法,而之所以在这里会提及这个方法,是因为在现在的出版物上经常会出现UPGMA的应用,这一点可以由当前的出版物中出现的UPGMA“基因进化树”证明(Huelsenbeck, 1995)。
很显然,NJ是最快的程序,并且所产生的进化树同ME进化树相比,虽不能说一样,但也已经非常相近了(Rzhetsky and Nei, 1992; Li, 1997)。但是,NJ只产生一个进化树。根据数据结构,有大量不同的进化树可能和NJ进化树一样好,甚至比NJ进化树好得多(Swofford et al.1996a)。我们中的一个(MAH)和D.Hillis(个人通讯)已经各自独立地得到了一些(虽然很少)数据集,对于这些数据集,NJ给出的进化树很糟糕;但是使用PAUP方法中的“最接近(closest)”选项后,进行逐步加总,得到了一个较好的距离进化树(Swofford, 1997)。

特征符建树方法编辑本段回目录

除了在所有的分析步骤中都会用到特征符数据以外,基于特征符的建树方法毫无共同之处。这就使得我们能够评估一个比对中每一个碱基位点对其它所有的碱基位点的依赖性。最常用的基于特征符的建树方法是最大节约方法和最大似然方法。
最大节约方法(MP,Maximum Parsimony)
最大节约方法是一种优化标准,这个标准遵循“奥卡姆剃刀原则(Occam’s razor)”:对数据最好的解释也是最简单的,而最简单的所需要的特别假定也最少。在实际应用中,MP进化树是最短的�也是变化最少的进化树,根据定义,这个进化树的平行变化最少,或者说是同形性最低。MP中有一些变量与特征符状态改变的可行方向不尽相符(Swofford et al., 1996a)。
为了能够包容取代偏好,MP必须加权;比如,颠换的变换相对于转换(见上文)被加权。进行加权的最简单的方法就是建立一个加权步骤方阵,在这个方阵里,权重用速率的倒数,这个速率是由上面描述的ML方法评估得到的。步骤方阵加权可能会极大地减慢MP的计算速度。
如果比对内部的位点确实存在这速率差异,那么MP方法就会执行得很不好(Huelsenbeck, 1995)。对于这个问题,还没有什么很好的解决方法。有一个方法,就是对数据集进行修改,使得最终分析的数据集中只包括那些内部差异性很小的位点,这些位点是由前面提到的似然分析方法判断得到的。更常见的情况是,MP分析只简单地屏蔽掉那些高度同形的可疑位点(比如说,某些序列比对中的第三个编码位点)。另外一个方法是根据引导树中所能观察到的位点变化倾向,对位点进行循环加权。这个“连续逼近”方法在PAUP中会自动简化,但是这个方法的出错的倾向程度取决于引导树的出错程度。
MP分析期望能够产生大量的(有时候是成千上万个)具有相同分值的进化树。因为这些进化树之间的优化程度相同,所以只有所有进化树都严格一致的分组才算是得到数据的支持。距离建树方法和ML建树方法期望得到一个最简单的最好的进化树,是因为这些方法的算法中包括了除法和小数,而MP建树方法只是计算离散的步长。对于一个给定的数据集,存在着比最佳的进化树差不了多少的ME进化树或者ML进化树,如果这些进化树严格一致的话,很可能会产生同MP一致进化树多少有些可比性的分解。不幸的是,MP的使用者传统上都会给出严格一致的进化树(有时候是进化树的一致性,其中有一个或者两个步骤不太好),而ME和ML用户通常就不会这样做。
现在已经开发了大量的进化树统计量值来描述一个MP进化树。除了进化树的长度外,这些统计量包括各种各样的比例,用以描述同形的数量,比如稠度指数,或者一个进化树中一个特征符改变状态的平均次数(Swofford, 1990)。尽管在MP分析中仍然经常报告这些指数,但是已经证明这些指数受到许多人为因素的干扰,比如被分析的分类群的数量。
模拟研究(Huelsenbeck, 1995)已经表明,如果从世系分歧开始的序列进化的数量远大于世系分离的分歧数量(比如,一个进化树中,终端的树枝很长,而内部节间的树枝很短),MP的效果同ME一样差,比ML还要更差。这种情况会造成“长树枝效应”��长树枝可能会被人工连接,因为累积的非同源的相似性的数量超过了因为真实的相关性而保留的同源相似性的数量(Swofford et al., 1996a)。在这种情况下,特征符加权会改善MP的执行效果(Huelsenbeck, 1995)。
最大似然方法(ML, Maximum Likelihood)
ML对系统发育问题进行了彻底搜查。ML期望能够搜寻出一种进化模型(包括对进化树本身进行搜索),使得这个模型所能产生的数据与观察到的数据最相似。
实际上,ML是从比对的每一个碱基位点衍生出来的。给定一个特定的进化树和观察到的全部的碱基频率,我们可以计算出似然值,具体方法是要计算一个位点遵循一个特定取代过程时所得到的变化模式的概率;似然值就是把在这个特定的取代过程中每一个可能的取代的再现的概率进行加和。所有位点的似然值相乘就得到了整个进化树的似然值(也就是说,数据集的概率给出了进化树和进化过程)。大家可以想象一下,对于一个特定的进化树,数据集的似然值在某些位点偏低,而另外一些位点偏高。如果进化树比较好,那么大多数位点的似然值都会较高,因此整个似然值较高;如果进化树不太好,似然值就会比较低。如果数据集中没有系统发育的信号,所有随机的进化树的似然值上都会相差无几。
取代模型应该得到优化,以适应观察到的数据的需要。比方说,如果存在着转化的偏好(其明显表现为有大量的位点只包含嘌呤或者只包含嘧啶),那么,如果计算数据的似然值时所采用的模型没有考虑偏好的话,其效果显然不如采用考虑了偏好的模型。同样地,如果有一部分位点确实只包含一种碱基,而另外一部分位点以相同的概率包含各种碱基,那么,如果计算数据的似然值时所采用的模型假定所有位点的进化都平等的话,其效果显然不如采用考虑了位点内部的速率差异的模型。对于一个特定的进化树,改变取代参数就意味着将改变与之相关联的数据集的似然值;因此,在某一个取代模型下,进化树可以取得很高的似然值,但是,在另一个取代模型下,进化树所取得的似然值就可能会很低。
因为ML要耗费大量的计算机机时,所以对于一个给定的数据集,想要在优化取代模型和进化树的同时进行完全的搜索几乎是不可实现的。值得推荐的是一个很经济的探索式的程序(Adachi and Hasegawa, 1996; Swofford et al., 1996a)。在这一点上,可能最好的节约时间的方法是前面所说的对取代模型的ML评估(图9.7)。这个程序可以反复进行,搜索到较好的ML进化树,然后重新对参数进行评估,然后搜索更好的进化树。
随着算法、计算机和对系统发育的认识的进步,ML标准在分子系统发育分析中也变得越来越流行。在模拟研究中,如果对由相同的模型产生的数据进行数据分析的话,ML做得总是比ME和MP要好(Huelsenbeck, 1995)。在所有的方法中,ML的计算强度最大,所以在某些情况下,它总是无法实现;而且,同样的模拟研究表明在许多情况下,ME和MP方法同ML方法的执行效果一样好(或者一样差)。
距离方法、节约方法和最大似然方法的差异
距离方阵方法简单的计算两个序列的差异数量。这个数量被看作进化距离,而其准确大小依赖于进化模型的选择。然后运行一个聚类算法,从最相似(也就是说,两者之间的距离最短)的序列开始,通过距离值方阵计算出实际的进化树,或者通过将总的树枝长度最小化而优化出进化树。
用最大节约方法搜索进化树的原理是要求用最小的改变来解释所要研究的分类群之间的观察到的差异。
用于系统发育推论的最大似然方法评估所选定的进化模型能够产生实际观察到的数据的可能性。进化模型可能只是简单地假定所有核苷酸(或者氨基酸)之间相互转变的概率一样。程序会把所有可能的核苷酸轮流置于进化树的内部节点上,并且计算每一个这样的序列产生实际数据的可能性(如果两个姐妹分类群都有核苷酸“A”,那么,如果假定原先的核苷酸是“C”,得到现在的“A”的可能性比起假定原先就是“A”的可能性要小得多)。所有可能的再现(不仅仅是比较可能的再现)的几率被加总,产生一个特定位点的似然值,然后这个数据集的所有比对位点的似然值的加和就是整个进化树的似然值。

进化树搜索编辑本段回目录

即使是对于一个只有50个序列的系统来说,单一的系统发育进化树的数量也会随着分类群数量的增长而按照指数规律增长,从而变为一个天文数字(Swofford et al., 1996a; Li, 1997)。由于计算能力的限制,现在一般只允许对很小一部分的可能的进化树进行搜索。具体的数目主要依赖于分类群的数量、优化标准(比如说,MP要比ML快得多)、参数设定(比如说,不加权的MP要比加权的快得多;预置了少量参数的ML要比预置大量参数或者对参数进行同步优化要快得多)、计算机硬件以及计算机软件(对软件的依赖性较小;但是某些算法要比其它算法快;某些软件允许多线程;某些软件限制内存里的进化树的数量和种类)。搜索程序还会受到数据结构的影响:如果数据解析得很糟糕,那么将会得到较多的“近乎优化”的进化树,这些进化树必须重新评估以确定其中最优化的进化树。
树枝交换算法不断修整由初始步骤所建立的进化树(Swofford et al., 1996a)。这个算法的范围很广,既可以产生所有可能的单一进化树(穷举算法),也可以只评估次要的修改。
有两种搜索方法保证可以找到最优化的进化树:穷举法和树枝�跳跃法(BB)(Swofford et al., 1996a)。对于一个很大的数据集,这两种方法都很不实用。对分类群数量的限制主要取决于数据结构和计算机速度,但是对于超过20个分类群的数据集,BB方法很少会得到应用。穷举法要根据优化标准,对每一个可能的进化树进行评估。BB方法提供一个逻辑方法,以确定那些进化树是值得评估的,而另一些进化树是可以简单地屏蔽掉的。因此BB方法通常要比穷举法快得多。
绝大多数分析方法都使用“启发式”的搜索(Swofford et al., 1996a)。启发式现搜索出相近的次优化的进化树家族(“岛屿”),然后从中得到优化解(“山顶”)。不同的算法用不同程度的精确性搜索这些岛屿和山顶。最彻底也是最慢的程序(TBR,tree bisection-reconnection,进化树对分重接)先把进化树在每一个内部树枝处劈开,然后以任意方式将劈开的碎片重新组合起来(Swofford et al., 1996a)。最快的算法只是检查一下相邻终端的不太重要的重新组合,因此倾向于找到最近的岛屿的山顶。
有许多不同的软件会执行进化树的搜索算法。PAUP允许对搜索选项进行全范围的设置,从最肤浅的到最详尽的;而且,对于一个简单的定制搜索,它允许使用不同算法的任意组合,其中每一个算法都有多个可供用户定义的参数,同时还提供评估搜索过程和中途修改搜索进程的方法。PAUP还可以对进化树岛屿了如指掌,掌握岛屿被命中的次数。
要想改善搜索效率和进化树的优化,可以尝试大量不同的策略。比如说,有些分析方法要耗费大量的机时和精力才能找到岛屿;要到达同样的效果,我们可以先制造各种各样的“起始”进化树,这些起始进化树满足一个初始标准,然后用PAUP将这些起始进化树排列成岛屿,最后用更加彻底的算法进行评估。
降低搜索代价的一个最好方法就是对数据集进行剪除。比方说,从数据集本身或者从预置的搜索中,我们可能会很明显地知道一个由五个终端组成的聚集是不可分解的,并且这些终端的排列并不影响剩下的拓扑结构,而且对这些终端进行分解并不符合数据分析的目的;这时,如果在分析中除去这个聚集中的四个终端,将会把搜索任务简化几个量级。
每一种分析都是独一无二的。影响对优化搜索策略(数据量,数据结构,时间量,硬件,分析目的)进行选择的因素太复杂,使得我们无法推荐一个简单可行的处方。因此进行搜索的用户必须对他的数据非常熟悉;他们的脑海里必须要有明确的目标,了解各种各样的搜索程序,了解他们的硬件设备和软件的能力;他们必须能够发展他们自己的协议。

建立并搜索进化树的其它方法编辑本段回目录

大量的建立和搜索进化树的其它方法包括Wagner距离方法和亲近方法(距离转化方法);包括Lake的不变式方法(一个基于特征符的方法,它选择的拓扑结构包含一个意义重大的正数以支持颠换);包括Hadamard结合方法(一个精细的代数方阵方法,对距离数据或者观察到的特征符进行修正);包括裂解方法(这个方法决定在数据中应该支持哪一个基于距离的可选的拓扑结构)。四重奏迷惑(Quartet puzzling)方法可以被ML建树方法所应用,这个算法相对而言是个较快的进化树搜索算法。
确定树根
这里所描述的建树方法所产生的都是无跟树(也就是说,进化树没有进化的极性)。为了评估进化假说,通常必须要确定进化树的树根。确定系统发育进化树的树根并不是一个简单的小问题(Nixon and Carpenter, 1993)。
对于序列数据,如果你接受一个分子钟,那么树根总是出现在横跨整个进化树的最长跨距的中点(Weston, 1994)。分子进化是否有真正意义上的分子钟,仍然是个有争议的问题(Li, 1997),但是不管树根在什么地方,绝大多数基因进化树都显示了非分子钟的行为。因此,通常都是使用外在的证据来确定树根究竟放在何处,也就是说,要决定这个进化树通过什么位置同外围的系统发育集团相连接;这些外围集团可能是那些与被分析的物种/序列没有最相近的共同祖先的任意的物种/序列。但是外围集团的树根确定问题将其推入一个两难的困境之中:同内部集团很相近的外部集团很可能只是内部集团的一部分,只是被错误地排除在外了。一个明显距离很远的外围集团(比方说,分析植物时用到的一个真菌种)很可能会拥有一个分歧非常大的序列,以至于把这个序列同内部集团放在一起将要受到长树枝效应的影响。
一个确定树根的聪明一点的办法就是分析时加入一个复制的基因(Baldauf et al., 1996; Lawson et al., 1996)。如果来自于绝大多数物种或者所有物种的所有的平行基因在分析时都被包含进去,那么从逻辑上我们就可以把进化树的树根定位于平行基因进化树的交汇处,当然要假定在所有进化树中都没有长树枝问题。

评估进化树和数据编辑本段回目录

现在已经有一些程序可以用来评估数据中的系统发育信号和进化树的健壮性(Swofford et al., 1997)。对于前者,最流行的方法是用数据信号和随机数据作对比实验(偏斜和排列实验);对于后者,可以对观察到的数据重新取样,进行进化树的支持实验(非参数自引导和对折方法)。似然比例实验可以对取代模型和进化树都进行评估。
随机进化树(偏斜实验)
模拟研究表明,通过随机的数据集所产生的随机的MP进化树的长度的分布是对称的,但是使用系统发育信号的数据集,其分布将是不对称的(图9.9; Hillis and Huelsenbeck, 1992)。在偏斜实验中,g1统计的临界值随着分类群数目的不同和序列中位点的不同而不同。这个实验并不评估一个特定的拓扑结构的可靠性,而且这个实验对其它的随机数据集中所呈现的信号都敏感,哪怕只是很少的一点。如果数据很明显地支持某些分组,而这些分组中的分类群被有选择地删除,那么这个实验可以用来决定系统发育信号是否还保留着,当然至少要为测试提供10种不同的特征符和5个分类群。PAUP中包含了这个程序。
随机的特征符数据(排列实验)
随机数据方法决定了一个从真实数据得到的MP进化树或者其中的一部分是否可以偶然得到。实际上,数据并非真正地随机化了,只是在每一个比对列中以不同次序排列,使得初始数据的共变性被消除了;结果产生了一个非随机序列的序列比对;正确地说,这些序列中的每一个位点都是从那些在整个比对中占据这个位点的碱基群体中随机得到的。排列结尾几率实验(PTP, the permutation tail probability test)对MP进化树的分值和那些通过对每一个位点都进行大量的排列组合多得到的数据所推算出的进化树的分值进行比较,从而决定在原始数据中是否存在着系统发育信号。一个依赖于拓扑结构的实验(T�PTP, topology-dependent test)对特殊的进化树的分值进行比较,从而决定这些差异是否可以产生偶然性;这个方法并不评估这个进化树或者其中的一部分是否正确(Faith and Trueman, 1996; Swofford et al., 1996b)。值得注意的是,T�PTP实验看来似乎是进一步地确认了进化树中那些同MP进化树很接近但是并不在其中的一些分组;这是因为这个方法探测集体的信号,这些信号可以把一个分类群放置在正确(如果不能说是准确,至少也是近似)的位置;结果可以通过附加的程序使用相关的数据子集进行调整(Faith and Trueman, 1996)。PAUP中包含了这个程序。
自引导方法
自引导方法是对进化树重新取样的评估方法,可以对距离建树方法、节约建树方法、似然进化方法以及衍生出的其它任何方法进行评估。这个方法是在1979年(Efron, 1979)提出的,并且由Joe Felsenstein将其引入(Felsenstein, 1985),作为系统发育分析中的进化树评估方法。典型的自引导分析结果是一个数字,这个数字同一个系统发育进化树的一个特定树枝相关,而这个系统发育进化树则给出了支持单源进化分支的自引导的重复比例。
那么在实际操作中应该怎么做呢?自引导方法的操作过程可以分为两个步骤,第一步先从原始数据集中产生(许多)新的数据集,然后经过计算得到一个数值,表征一个特定的数值(比方说,一个分类群)在进化树中出现的次数的比例;这个数值通常被称为自引导数值。从原始数据集中产生新的数据集的具体做法是重新取样,即从原始数据集中随机地“可以替换”地抽取各个列中的特征符作为新的样本。“可以替换”的意思是说每一个位点都可以重新取样,其抽取几率同其它任何位点的抽取几率都一样;结果是每一个新建的数据集同原始数据集的位点总数相同,但是某些位点重复了两次或者三次,而某些位点则丢失了;当然新建的数据集也有可能同原始数据集完全相同��或者走向另外一个极端,只有一个位点被反复抽取,总数达到500次,而原始数据集中其它499个位点都被丢失了。
虽然自引导评估方法已经成为整个系统发育分析中的一个普遍手段,但是对于这个方法究竟计算了什么仍然有一些争论。刚开始的时候,有人提议说自引导数值计算了重合性(Felsenstein, 1985)。在最近的阐述中,自引导程序被认为是计算了精确性��这个生物学相关的参数给出了得到真实的系统发生史的可能性(Felsenstein and Kishino, 1993)。模拟研究表明,在合适的条件下(各种替换速率基本相等,树枝基本对称),如果自引导数值大于70%,那么所得到的系统发育进化树能够反映真实的系统发生史的可能性要大于95%(Hillis and Bull, 1993)。同理,如果条件不是很合适,那么如果自引导数值大于50%,则精确性的评估就会过高(Hillis and Bull, 1993)。在某些条件下,如果自引导数值较高,可能会使系统发生史看起来很好,从而得出错误的结论。
带参数的自引导方法
带参数的自引导方法同不带参数的自引导方法不同,前者使用了模拟的但是仍然真实的复制品,而不是虚假的复制品。在进行系统发育的序列分析中,与原始数据集大小相同的复制数据集是通过一个特殊的序列进化模型得到的,数据集还包括根据这个模型得到的最佳进化树拓扑结构(Huelsenbeck et al., 1996a),然后就可以使用感兴趣的方法对每一个数据集进行分析。对实验进化树的树枝是否支持的判定方法同无参数的自引导方法大体相同。
作为一种还没有被其它方法(诸如进化树中所显示的分类群中的任何分组的单个谱系)(Huelsenbeck et al., 1996a, 1996b)检验过的测试假定,带参数的自引导方法还不能算是无参数的自引导方法之外的一种选择。在每一个复制品的分析中,“真实的”进化树(假定能够产生模拟数据的进化树)的分值可能会比每一个复制品的最好的进化树的分值都要大(或者小)。分值差异图则显示了样本偏差的一个真实的正规分布。任何期望的可选的进化树拓扑的分值差异的重要价值可以由这个正规图来决定。带参数的自引导方法可以同任何建树方法协同使用。目前,这个方法的局限因素在于程序生成模拟数据的可行性。有一个程序,能够在以下情况下模拟序列数据:模型包括两个取代类型(转化和颠换),碱基频率不相等,对于内部位点的速率差异设定或者没有设定gamma修正。这个程序可以在作者的Web站点上找到,这个站点由Berkeley维护(参见本章最后所附的Internet资源列表)。
似然比例实验
正如方法名称所暗示的那样,似然比例实验适用于ML分析。评估一个次优化的似然值对于最优化模型中的正规的误差分布极为重要。在理想情况下,误差曲线被假定为一个chi-平方分布,因此实验统计值应该是最优化数值和实验数值之差的两倍,而其自由度则是不同的参数的数目。
应用chi�平方实验来选择系统发育进化树存在不少问题,尤其是因为“参数空间的不规则性”(Z.Yang et al., 1995),但是如果取代模型之间的参数数目已知的话,这个方法可以用来评估取代模型的最优性。一旦我们用上述最大似然程序评估了一个取代模型和进化树,我们就可以用较少的参数对这个进化树进行评估(比方说,把位点内的速率设置为相同:图9.7)。
Kishino�Hasegawa实验
如果给定了伴随着决定进化树误差的不确定性,另外一个方法就可以决定与比对中每一个位点相联系的取样误差(Kishino and Hasegawa, 1989)。这个程序在PAUP中执行,可以用来测试一个特定的次优化的ML或者MP拓扑结构同最优化的拓扑结构相比是否显著不同,当然必须假定用来产生最优化的进化树的模型是正确的。这个方法不能被用来评估任意选择的拓扑结构:因为不同的拓扑结构可能会拥有不同的似然功能,在某个模型下,一个统计学意义较差的进化树在另一种模型下,其统计学意义可能会变得很好。可以把本方法同带参数的自引导方法结合起来(模型和进化树已经预先最优化了),以避免这个问题(见Sullivan et al., in press)。
约束进化树搜寻
评估进化树的一个最有效的方法是比较无约束搜索和有约束的搜索,约束条件是必须搜索同一个特殊拓扑结构相联系的最优化进化树。除了比较简单分值外,还可以把约束进化树同排列实验、似然比例实验、Kishino�Hasegawa实验以及带参数的自引导评估方法结合起来。

系统发育软件编辑本段回目录

PHYLIP
PHYLIP是一个包含了大约30个程序的软件包,这些程序基本上囊括了系统发育的所有方面。PHYLIP是免费软件,并且可以在很多平台上运行(Mac, DOS, Unix, VAX/VMS, 及其它)。根据其作者Joe Felsenstein(来自于the University of Washington)所介绍的,PHYLIP目前已经是最广泛使用的系统发育程序。
PHYLIP是一个命令行程序,没有PAUP或者MACCLADE程序那样的鼠标点击的界面。软件的文档写得非常好,很容易理解,命令行界面也很简明。如果想使用某一个程序,只要键入程序名称就可以了,程序界面可以从“infile”文件中自动读取数据。然后,使用者可以从选项菜单中选择选项,或者直接接受默认值,然后程序会将结果输出到一个叫做“outfile”(也可以是“treefile”)的文件中去。如果另外一个程序还要读取这个输出文件,就必须将“outfile”文件改名(改为“infile”)。图9.10给出了建立一个自引导的相邻连接的进化树的步骤的几个要点。接下来的部分我们将讨论一些用PHYLIP程序推导进化树的细节问题。
分析蛋白质数据的程序
PROTDIST程序计算蛋白质序列比对的距离矩阵。这个程序允许使用者从三个氨基酸取代的进化模型中选择其中之一。最简单的也是最快的(也是最不理想的)模型假定每一个氨基酸编程其它19中氨基酸的机会都是均等的。第二种是类别模型,在这个模型中,氨基酸分布在不同的分组中,按照转换的不同类别(转化成本组的氨基酸或者其它分组的氨基酸)进行评估。推荐使用第三种(默认的)方法,这个方法使用一张通过观察氨基酸转换得到的经验表,即DayHoff PAM 001方阵(DayHoff, 1979)。在PHYLIP文档中和最新出版物(Felsenstein, 1996)中可以找到详细资料。
PROTPARS程序计算蛋白质序列的似然值。这个方法使用的进化模型同PROTDIST程序中使用的进化模型不同,前者在评估观察到的氨基酸序列的转化的可能性时,考虑到潜在的核苷酸序列的转换。特别地,它作出如下(富有生物学意义的)假定:同义转化 [比方说:GCA (alanine) GCC (alanine)] 比非同义转化的发生频率要高。这样,举个例子来说,如果两个氨基酸之间的转化需要在潜在的核苷酸水平上进行三次非同义转换,那么这个转换的可能行比起那些在潜在的核苷酸水平上只要进行两次非同义转换和一次同义转换的氨基酸转化的可能性要小。PROTPARS不提供氨基酸转化的经验值选项(象PAM方阵那样的)。
分析核酸数据的程序
DANDIST计算核苷酸序列的距离矩阵,然后运行NEIGHBOR或者PHYLIP软件包中的其它距离矩阵程序计算输出结果,产生进化树。DANDIST允许用户从三种核苷酸取代模型中选择其中之一。比较老的(1969)Jukes and Cantor模型同PROTDIST程序中的简单模型很相似,前者假定所有的核苷酸取代频率都一相等。比较近的(1980)Kimura双�参数模型与之也很相似,但是它允许用户把颠换的权重设置得比转换的权重要高。PHYLIP也包含DNAML,这是一个针对核苷酸数据的最大似然程序。因为这个程序执行起来相当慢,所以下面将描述一个推荐使用的程序��Gary Olsen’s fastDNAml 程序(Olsen et al., 1994),这个程序是DNAml的“姐妹”程序。
PAUP
开发PAUP(Swofford, 1997)的目的是为系统发育分析提供一个简单的,带有菜单界面的,与平台无关的,拥有多种功能(包括进化树图)的程序。在苹果机(Macintosh)上使用过PAUP程序(版本3)的人对这个程序的菜单界面都会很熟悉,虽然这个版本已经不再发行了。PAUP 3.0只建立于MP相关的进化树及其分析功能;而PAUP 4.0已经可以针对核苷酸数据进行与距离方法和ML方法相关的分析功能,以及其它一些特色。
获取和编译程序
在商业版本发行之前,现行的出版物中,有成打的分析使用了PAUP 4.0测试版本(由原作者通过 blue@onyx.si.edu 提供)。菜单界面的测试版本已经在Macintosh 68K 、PRC 计算机和微软的视窗操作系统上编译通过。命令行版本已经在Sun Sparc、Supersparc、DEC Alpha(OSF1和OPENVMS)、SGI(32位和64位)以及linux上编译通过。
初学的用户应该将其中一个菜单版本浏览一遍。在这些版本中也可以使用命令行,这样会使得命令教程会变得容易一些。通常而言,命令都有缩写。比如,要执行启发式进化树搜索的命令可以键入“hs[earch]”(大小写不敏感;括弧内的字符为选项)。而且,因为文件在各个平台之间都是可移植的,菜单版本可以用来测试数据文件。如果希望在一个很快的Unix机器上跑一个分析程序,这个协议就显得非常重要。如果文件格式出错,菜单版本不仅仅报告文件格式的错误,而且还会打开文件,将错误的地方高亮度显示。
数据格式
PAUP使用一种称为NEXUS的数据格式,这种格式还可以被MACCLADE程序使用,当然PAUP也可以输入PHYLIP, GCG-MSF, NBRF-PIR, HENNIG86数据格式以及文本比对(形如“{ name } <tab or space> { same-length sequences } <ret>”的列表,以“;<ret> end”结束)。Sequencher(基因密码有限公司)和Sequin程序可以输出NEXUS格式。其它格式的比对序列(CLUSTAL, FASTA, GDE等等)可以通过ReadSeq程序将其转化为NEXUS格式。如果使用ReadSeq程序,必须为每个单独的序列(分类单元)设计一个不超过八个字符的名字,因为程序会自动截取过长的名字。PAUP中的名字可以无限长,但是每一个名字必须唯一。比对块(比方说,就像MSF文件)可以由空格分开,作为更好的跟踪序列的位置。比对可以是连续的,也可以是较差存取的。PAUP文件中可以在方括号中写明注解和注释(比方说,比对中基本位置的标记)。PAUP可以识别IUPAC核苷酸的模糊密码,但是这些密码在进行距离和ML分析时被看作是丢失的数据。
PAUP文件中的数据块可以包含附加的最优化信息,比如特征符和序列标签,丢失数据的定义以及特征符集和特征符权重集的定义;其语法同PAUP 3.0相同,并且可以通过帮助文档进行交互式查询。一个PAUP文件还可以包含假定和进化树块。这些块的格式同MACCLADE程序所使用的格式基本相同,只有若干差异(Maddison and Maddison, 1992);举个例子,MACCLADE不能识别空位模式,而空位模式在MP分析中将会把空位看作是附加的特征符状态(FORMAT<space>GAP= { character } <space> GAPMODE=newstate<space> { other format options };)。同样地,PAUP会忽略一些MACCLADE数据选项。
在某些情况下,很南对数据进行手工格式化,这时就可以用菜单界面或者交互式的MACCLADE程序输出正确的格式文件。举个例子,可以通过PAUP菜单界面创建“假定集”。假定中可以包含一个外围集团的说明规范、特定分类群的排除以及特征符,如果是MP分析,还可以包含特征符权重和特征符类型的说明规范。假定还可以存储为一个合适的格式文件;打开一个数据文件的时候,就可以加载这个文件,或者,可以把注释粘贴到一个早先创建的文件中,以避免在并发的通话中需要将其加载。
PAUP也可以读取PHYLIP进化树的描述(从PHYLIP或者CLUSTAL输出),其中所提供的数据将被粘贴到一个NEXUS文件中的一个PAUP格式(begin trees; <ret>utree= { tree name } <space> { tree description };<ret>end;)的进化树块中。但是,PAUP数据文件必须被激活,并且在PHYLIP树中必须包含确切的分类群。PAUP会输入拓扑结构,以及优化的PHYLIP&#0;或者CLUSTAL&#0;衍生的树枝长度(命令为:gett[ trees ] /file- { treefile } st [ oredbrlens ])。
建立进化树
目前PAUP中的进化树建立功能包括MP方法,如果是针对核苷酸序列,还有距离方法以及ML方法,使用的是fastDNAml算法(Olsen et al., 1994)。而且,PAUP执行Lake’s不变式方法(Swofford et al., 1996a; Li, 1997)。每一种建树程序都允许使用多种的选项。MP选项包括任意特征符权重方案的说明规范。距离选项包括对NJ, ME, FM(见PAUP发行附注 re: PHYLIP)和UPGMA程序的选择。全范围的选项和他们的当前树枝可以通过菜单或者命令行进行查询(节约方法键入:pse [ ttings ] ?;距离方法键入:dse [ ttings ] ?;似然方法键入:lse [ ttings ] ?;)。距离方法和ML方法都有关于取代模型的详细的说明规范(取代数值,gamma, 以及不变位点的参数,假定相等,或者指定数值,或者经验的碱基频率)。任何进化树的这些参数都可以得到评估,只要设置参数数值为“est [ imate ]”, 并且用内存中一个期望使用的进化树执行“des [ cribe tree ]”命令(图9.7)。
根据同PAUP 4.0测试版本一起发行的附注所说的,“PAUP*所找到的进化树的似然值通常都会同PHYLIP的一样高甚至更高[ 也就是说,更加好 ]”(这不仅是因为PAUP对进化树进行重新排布时更加广泛,而且也是因为因为它对树枝长度的迭代的收敛标准更加严格)。
不管使用哪一种建树方法,PAUP都提供了多种的进化树搜索选项。这些选项包括产生初始进化树(启动进化树)的算法规范:NJ, 逐步相加,或者输入进化树。逐步相加的算法也提供大量的选项,包括分类群“原态”的加和(分类群按照文件顺序相加):最接近的,最遥远的,或者对任意数目的复制品都是随机的。所有逐步相加算法的选项都考虑到了部分进化树的任意的最大数目,这些部分进化树是要保留下来并且在分类单元相加时进行扩建的。增大这个数目(比方说,增大到100)也就意味着增大了起始拓扑结构的多样性,即使他们并不是随机的。
一个随机的相加策略是默认的搜索策略的有用的补充(最近的相加,TBR交换,保存所有最好的进化树)。在随机搜索中,有大量的复制品可以同较快的NNI交换算法相结合。对于MP分析,可能存在这大量的长度相等的进化树,因此搜索时应该指定从每一个复制品中只保存一部分进化树,这些进化树同较慢的搜索的分值相当或者更好。而且,次优化的进化树的数目(这些进化树将会被交换,以寻找更好的进化树)应该受到限制,可以通过设定MAXTREES将其降至一个较小的数目(比方说,10)。通过这个策略,我们在浏览“进化树空间”区域时(这些区域很可能在较慢的搜索中被丢失),有时候会找到一些较好的进化树或者找到额外的唯一的最优化的进化树。可以指定随机相加的种子,但是默认值总是一样的。因此,除非更换种子,重复随机相加的搜索只能得到同样的结果。
评估进化树
对于距离方法、MP方法和ML方法,PAUP执行无参数的自引导方法和对折方法,在执行过程中用到了这些建树方法的所有可用的选项。除非另外指定,所有的自引导方法都才能够同样的种子开始(也就是说,重复同样的自引导分析,其结果相同)。如果自引导数值大于50%,则数值将会被绘制在进化树上;如果自引导数值处于50%和任何指定的下界之间,则这些数值将从表格输出中决定。
对MP方法进行自引导分析或者对折分析时,MAXTREES应该设为10和不超过100之间的一个数。这时因为,MP进化树中分解性较差的那部分在用重新取样得到的数据进行操作时,其分解性通常会更差;因此,一个复制品所找到的相同长度的进化树的数目很可能是一个天文数字。因为那些并不能够被全套数据集很好地支持的进化树树枝的自引导数值或者对折数值不会很高,所以,对MAXTREES加以限制(即便是有一些)不会对结果带来多少负荷,尤其是当复制品的数目增大到比方说1000的时候。
另外,PAUP执行Kishino&#0;Hasegawa实验以比较MP或者ML进化树(见发行附注 re: PHYLIP);计算多个进化树的四种类型的一致性(通常是对多个长度相等的MP进化树进行操作);计算MP进化树的逐步差异;评估指定分区之间的位点的信号冲突(比方说,在总和分析中,核内序列数据和细胞器序列数据)。
在PAUP中有不同的方法来确定一个约束进化树,但是最简单的方法是使用“loa [ d constraints ]”命令,从任何进化树文件或者任何数据文件中的进化树块中把一个或者多个进化树的定义输入到约束进化树缓冲中去。选择约束进化树要限定“hs [earch ]”命令。如果使用菜单,这个过程会很简单;也可以通过“help loa [ dconstr ]”和“help hs [earch ]”命令查询命令行的语法。
其它特色
许多(但不是所有的)PAUP命令选项都是触发开关,因此在一次通话中一个已经设定的选项保持激活状态。在执行一个新命令或者程序之前,特别是在执行一个包含很多不同程序和数据集的复杂的会话之前,查询当前的设置是非常有用的;查询可以使用菜单,也可以在合适的地方直接键入命令“{ command-name }<space>?”。
PAUP拥有一额外的附加的特色,在这里我们之涉及到其中的一部分:(1)、为画图、打印或者将PICT文件进化树(包括PHYLIP或者CLUSTAL进化树; 见图9.1)输出为若干种格式(但是,遗憾的是,不包括TreeDraw、PHYLODENDRON和TREEVIEW的辐射图)的基本的图形特色;(2)、一个能够编辑数据文件和日志文件的文字编辑器,这个编辑器可以分成四个面板,以浏览一个很长的比对或者日志的不同部分;(3)、将输出存入一个新的日志文件,或者将输出附加到一个已经存在的文件中去;(4)、使用外围集团、指定的祖先、指定的祖先状态或者中点方法确定进化树的树根;(5)、计算MP和ML方法中特征符状态的重新构建(如果这个程序使用ML,精确度可能会好一些,但是非常慢,而且对于超过100个不同位点和50个分类群的数据集,几乎是不可实现的;输出结果可以被用来对一个进化树的变化进行手工标记);(6)、序列之间双重碱基差异的总和(现在叫做“二核苷酸频率”,当然以后的版本可能会用其它名字)。

其它程序编辑本段回目录

除了PAUP和PHYLIP以外,还有其它一些系统发育程序,这些程序有一些独到之处,但是程序在处理过程和可移植性方面通常都有很多限制。这些程序包括FastDNAml, MACCLADE, MEGA plus METREE, MOLPHY和PAML。
FastDNAml
FastDNAml(Olsen et al., 1994)是一个独立的最大似然建树程序。虽然它还没有成为当前版本的PHYLIP软件包中的一员,但是它的输入输出约定同PHYLIP在很大程度上都是相同的,而且FastDNAml和PHYLIP’s DNAML的结果非常相似,甚至完全一样。FastDNAml可以在并行处理机上运行,而且它还自带了大量有用的脚本(尤其是关于自引导以及打乱序列输入顺序的脚本)。要想充分利用这个程序,就必须有一定的Unix知识。REP Web站点公布了Unix和VAX/VMS平台的程序源码,而通过FTP可以获得Power Macintosh版本的程序源码(见本章结尾的列表)。
MACCLADE
MACCLADE(Maddison and Maddison, 1992)是一个交互式的Macintosh程序,能够对进化树和数据进行操作,能够研究特征符的系统发育行为。程序使用的是NEXUS格式,它也能够读取 PAUP格式的数据和进化树文件。PAUP文件中的一些信息会被MACCLADE忽略(比如,gapmode,空位模式),但是PAUP“假定”块中的信息将会被 输入,其中包括特征符权重和特征符集以及分类群集。PAUP和MACCLADE文件仍然存在着一些细微的差别;因此,用MACCLADE编辑PAUP文件或者用PAUP编辑MACCLADE文件时,需要将文件保存为一个新文件,从而保留原文件,使之不被改动。MACCLADE还可以读取PHYLIP文件、NBRF-PIR文件以及文本文件(见上)。可以使用任何方法产生进化树,但是MACCLADE的功能是严格地基于节约方法的。举个例子,程序允许使用者追踪任意进化树上的每一个单独特征符的进化轨迹。不管怎么说,MP和ML重新构建的功能是不同的,而且ML功能据称更加实际一些(Swofford et al., 1996a)。进化树的拓扑结构可以通过拖动树枝进行操作,而点击树枝则会在进化树的对称性上产生审美的修饰。
MACCLADE包括如下一些同序列分析相关的附加的特色:
1. 能够方便地编辑模糊区域的数据编辑器,因为序列块可能会被转变为丢失的数据符号。
2. RNA或者DNA翻译成氨基酸数据。
3. 识别IUPAC核苷酸的模糊密码。
4. 以特征符数目和进化树上变化的数目为维度的图表,通过这张图,可以直观地观察位点内部的速率差异性。
5. 一个MP进化树的各种碱基之间相互转变的总量的图表(“状态转变和统计”图表:其中有些数据可能是在文献中被错误地报告为取代“速率”,但是对于树枝长度或者位点内部的速率差异完全没有修正)。
6. 根据四种不同的规则将状态转变和统计数值转化为一个权重矩阵。
7. 计算密码子位点。
8. 为制图功能以及从数据集中切除位点选择密码子位置。
9. 一个基本的比对编辑器,允许拖拉被选的序列块。
10. 能够输出同PRETTY格式相似的数据,其中的序列块由空格分开,并且与第一个序列相匹配的碱基标记为“.”。
11. 同PAUP相似的一个进化树图形编辑器,同样允许在每一个数值上对特征符变化作出标记。
12. 为PAUP分析定义约束进化树的简单方法(仅仅是简单地瓦解那些非约束的节点,然后将进化树存储为一个文件)。
MEGA plus METREE
MEGA(Kumar et al., 1994)是一个关于序列分析以及比较统计的DOS程序的软件包,其中包括有距离建树方法和MP建树方法。对于MP建树方法,将执行分支定理和启发式算法;对于距离建树方法,MEGA提供了PAUP中的取代模型的一个子集,也提供了NJ建树算法。在其捆绑的METREE程序(Rzhetsky and Nei, 1994)中提供了一个ME搜索。现在还无法比较MEGA和PAUP或者PHYLIP中的搜索算法的效率和可靠性。针对核苷酸数据建立进化树,MEGA的效果不如PAUP(Lewis and Lewis, 1995)或者PHYLIP。举几个例子:其格式不允许在数据文件中存储假定,因此必须在每一次会话中手工指定这些假定;取代模型的范围和空位处理方法以及丢失的数据都是有限的,并且程序不能评估参数数值;似然方法不允许加权;不能IUPAC核苷酸的模糊密码;使用MP方法时不允许进行自引导分析;进化树图形很简单,并且不能保存进化树文件。虽然MEGA可以通过密码子数据和氨基酸数据建立距离进化树,但是使用的取代模型太简单,对于绝大多数数据集而言,不能产生可靠的进化树。MEGA同其它程序一样,也没有包括一些有用的特点(Lewis and Lewis, 1995):空位和空位大小频率,密码子的用法和氨基酸频率。
MOLPHY
MOLPHY(Adachi and Hasegawa, 1996)是一个共享的软件包(见本章结尾的列表),可以进行ML分析以及核苷酸序列或者氨基酸序列的统计。MOLPHY在Sun OS和HP9000/700系统上经过测试。在实际使用时需要对Unix文件操作有一定的了解。MOLPHY的用途包括NEXUS, MEGA和PHYLIP文件格式之间的数据文件的格式转换,还包括从EMBL或者GeneBank的核苷酸序列文件中提取编码区域。其中的ML程序同PHYLIP中的ML程序很相似,但是前者的氨基酸取代模型的范围很广,而且有很多选项能够进行快速的启发式的搜索,其中包括一个选项能够使用“本地自引导”分析(也就是说,进行一个子树的自引导分析,条件是假定这个进化树的剩余部分是正确的)以搜索更好的ML进化树。输出结果包括树枝长度评估以及标准偏差。分析分离的密码子位置是可能的。MOPHY使用PAUP中提供的核苷酸取代模型的一个子集,尽管它允许使用者自行指定参数数值。现在使用的MOLPHY缺少一个自引导选项,也不能包容位点内部的速率差异性。
PAML
PAML(Yang et al., 1996)是一个共享软件包,能够进行ML模型的建立和进化树的建立,能够进行Bayesian进化树的建立,能够进行模拟实验,能够进行基于似然方法的进化树的分析,能够进行进化树评估以及数据和进化树的统计。这个软件包已经在Macintosh 68K和PowerPC计算机上编译通过,还有一个非编译的Unix版本(GNU gcc或者Sun ANSI C)。对于密码子数据和氨基酸数据,这个程序提供了最详细的和最灵活的参数指定和评估方案。对于核苷酸数据(BASEML和BASEMLG),取代模型的范围同PAUP的一样广泛,可能包括了所有值得考虑的模型。PAML执行不额外的模型:相邻位点的速率相关性(自动离散&#0;gamma模型)和一个多基因模型,这个模型允许对每一个基因指定取代模型。后者对于分析来自于不同基因(在不同约束下进化)的混合数据非常有用。下列步骤可能很有用:受限用PAUP进行ML进化树的建立,然后转向PAML,评估是否加入这些参数以改善似然值。PAML还包括一个在非静态条件下(序列之间的碱基频率变化很大)建立进化树的似然方法,但是对于超过四个序列的系统,这个方法被认为是不实用的。CODONML程序对于评估密码子频率、每一个密码子位置上的碱基频率以及每一个(非)同义位点上的(非)同义取代的数目非常有用。一个受到限制的PAML特色是能够从数据集中把包含一个空位的所有位点或者丢失的数据分值(不允许存在IUPAC模糊密码)排除出去。当分类群数目增加时,一个给定位点至少要达到的似然分值也随之增加;因此这个限制要冒一定的风险,很可能会把很有用的数据也切除掉。同时,PAML中的进化树搜索算法也受到MOLPHY中采用的不严格的星型分解方法的限制。因此,必须采用多重搜索。

附件列表


→如果您认为本词条还有待完善,请 编辑词条

上一篇多序列比对 下一篇物理图谱数据库的使用

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

收藏到:  

词条信息

已删除
此用户已删除
词条创建者

相关词条