标题：系统发育
基本概念
系统发育（phylogeny）也称系统发展，是与个体发育相对而言的，它是指某一个类群的形成和发展过程。大类群有大类群的发展史，小类群有小类群的发展史，从大的方面看，如果研究整个植物界的发生与发展，便称之为植物界的系统发育。同样，也可以研究某个门、纲、目、科、属的系统发育，甚至在一个包含较多种以下单位（亚种，变种）的种中，也存在种的系统发育问题。例如，在单子叶植物的菝葜科（Smilacaceae）中有各种类型的植物，有木本的、草本的，有直立的、攀缘的，有单花序的、也有复合花序的等等。这些类群之间在进化上有何联系？哪个类群较为原始？哪个类群较为进化？对这类问题的探讨就是探讨各类群的系统发育。种是分类的基本单位，但在种之下又有亚种、变种、变型，这说明在一个种的范围内，也有变化和发展，这就是种的系统发育。同样道理，纲、目、科、属，各个分类等级均有其系统发育。
系统发育学研究的是进化关系，系统发育分析就是要推断或者评估这些进化关系。通过系统发育分析所推断出来的进化关系一般用分枝图表（进化树）来描述，这个进化树就描述了同一谱系的进化关系，包括了分子进化（基因树）、物种进化以及分子进化和物种进化的综合。因为”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）。比如，所有广泛使用的方法都假定进化的分歧是严格分枝的，因此我们可以用树状拓扑发生图来描述已知的数据。但是在一个给定的数据组中，因为存在着物种的杂交以及物种之间遗传物质的传递，这个假定很可能会被推翻。因此，如果所观察的序列并非是严格遗传的话，大多数系统发育方法就会得到错误的结果。
系统发育方法中固有的模型会导致一些额外的假定：
序列有指定的来源并且正确无误（Helbig and Seibold, 1996; Hershkovitz and Lewis, 1996; Soltis et al., 1997）。 
序列是同源的（也就是说，所有的序列都起源于同一祖先序列）；这些序列不是“paralog“（paralog指的是一个祖先序列通过复制等方法在基因组中产生的歧化序列）的混合物。 
序列比对中，不同序列的同一个位点都是同源的。 
在接受分析的一个序列组中，序列之间的系统发育史是相同的（比如，序列组中不存在核序列与细胞器序列的混合）。 
样本足以解决感兴趣的问题。 
样本序列之间的差异代表了感兴趣的宽组。 
样本序列之间的差异包含了足以解决感兴趣的问题的系统发育信号。 
还有一些假定，在某些方法中是默认的，但是在另外一些方法中是可以修正的：
样本序列是随机进化的。 
序列中的所有位点的进化都是随机的。 
序列中的每一个位点的进化都是独立的。
许多公开发表的系统发育分析结果的错误通常都是因为违反了上述假定，特别令人恼火的是现有的方法并不能察觉对基本假定的违反。每一个序列组都必须根据上述基本假定进行评估，并且同分析过程相协调。下面我们将会描述分析过程。
具体的系统发育分析方法。
计算机依赖型

提倡进行完全的计算机多重比对的人常常有这样的依据，他们认为手工比对通常都是含混不清的（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）根据一个统计模型进行优化，但是这些统计同系统发育模型的关系并不清楚。仅仅根据一个系统发育模型是没有办法比较多重比对方法的优劣的。
空位特征符附加到比对序列数据集中，也可以用额外的碱基程序在适当的位置对空位计分，但是在计分的时候，空位位点中只有一个作为空位计分，其余的将会被忽略。PAUP将会执行这个方法。
对于某些比对而言，比对程序会忽略所有的空位分值或者忽略所有低于预设值的空位分值；但是，还没有任何一种程序会忽略单个序列的单个位点。如果比对在序列组内部相当明确，但是处身其中时却不太清楚，此时必须对比对做“手术”，确保同序列组相关的明确的信息被保留，而除去模糊的信息。
图9.3给出了一个比对“手术”的例子。在空位区域，我们必须作出决定：在可供选择的比对中，哪一个更加合理，尤其重要的是，哪一个更加适合于建立进化树分析。如果手工解决比对的不确定性，就必须考虑系统发育关系、取代过程（比如，转换和颠换）和碱基组成；在这个阶段，用系统发育证据解决不确定性非常合理。在倾向于变长的序列区域，关系非常疏远的序列和序列组的比对就可以侧向展开（就是说，引入人工空位，并且忽略分值），最终的结果使得只有关系很近的序列区域对准在一起。某些序列中的某些位点虽然对准了，但是并不确定，他们的分值可以在计分时忽略；这个方法的优点是可以保留同这些序列相关的明确信息，缺点是最大节约和最大似然的建树方法会把这些“缺失”的分值看做是零分歧。
由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建树方法（如图9.4）使用的就是这种方阵。如果使用这种权重，那么这个方法就会被称为“加权节约”。又如，ML建树方法，代价值是由即时的速率方阵得到的，这个方阵（如图9.5）代表了各种取代可能会发生的概率的ML估计值。MP权重方阵只涉及简单的算术，而应用距离和ML速率方阵则可以引入复杂的代数。为了避免盲目使用不适当的方法，建议大家熟悉其内部的基本原理（见Li, 1997, and / or Swofford et al., 1996a）。
实际上，“前进”和“反向”取代速率被认为是相同的；这个取代模型被称为是“时间可逆”；这个模型拥有“静态”的性质，因为在所有的碱基频率中没有预知的变化。在系统发育的特殊历史中，不同序列中的碱基频率不同表明，前进和反向速率实际上可能会不同；而传统的取代权重或者速率方阵不能包容这个“非静态”环境；本节的结尾将讨论一个基于非静态取代模型（“log&#0;det”）的建树方法，这个方法将会提供一个可供选择的计算方法。
通常，特征符状态的权重方阵都会或多或少地通过观察进行过估值，当然也可以从速率矩阵衍生得到。比如，如果假定两个转化的其中一个，发生的频率是每个颠换的两倍，那么据此就可以确定一个权重方阵，比如，A&#0;G的转换代价为1，而A&#0;T的颠换代价为2（图9.4）。（节约方法规定对角线元素值，或者说是不同序列中拥有相同碱基的代价值为零。这是节约方法的一个缺点&#0;&#0;详见下文）在随后的建树步骤中，这套假定会把颠换的总数降至最低值，而力求把那些主要差异是转换的序列集中在一起。
任何一种“时间可逆”的核苷酸取代模型都可以用图9.5所示的方阵刻画，只是其中一个速率和其它速率的差异；在任意组合中，最多可以达到只有六个参数，其中每一个速率参数都是独立的（Swofford et al., 1996a；Li, 1997）。如果平衡的碱基频率不相等，则需要额外的参数；如果平衡的碱基频率不相等，但是却假定这些频率相等，那么系统发育进化树的最终结果将会出错（Li, 1997）。
侧线（paralinear）（Lake, 1994）和“log&#0;det”（Lockhart et al., 1994）做了一些修正（见Swofford et al., 1996a）来满足非静态环境的需要；这个方法只适用于距离进化树的建立；在这个方法中，对于每一个序列匹配，各种类型和变化方向的原始取代的数目都会计算在一个4×4的方阵中（如图9.6）。每个方阵都会有一个代数行列式，这个行列式的log值是评估序列差异性的一个要素，因此被称为“log&#0;det”。对那些拥有各种各样的碱基频率的序列进行双重比较，就会得到各种各样的方阵，也就会得到各种各样的行列式值；因此，在评估序列两两之间的距离的时候，就要受到序列两两之间的行列式值的影响，而且序列两两之间的比较允许适用不同的取代模型，因此沿着系统发育进化树的不同树枝，将会产生多元化。Log&#0;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&#0;det距离建树方法时，使用不变式模型（见下）。对于核酸，氨基酸和编码子数据，PAML使用连续的，离散的和自离散的gamma模型。对于核酸和氨基酸数据，PHYLIP使用一种离散的gamma模型。