
# UPGMA 简化的距离聚类示意 import math seqs = {"A": "ATGCGT", "B": "ATGCGA", "C": "TTGCGT", "D": "TCGCGT"} def dist(x, y): return sum(a != b for a, b in zip(seqs[x], seqs[y])) names = sorted(seqs) D = {a: {b: dist(a, b) for b in names} for a in names} for a in names: print(a, {b: D[a][b] for b in names if b != a})
实际分析中通常使用成熟工具(如 IQ-TREE、RAxML、MrBayes)配合引导序列比对的工具(如 MAFFT、trimAl),并关注比对清洗、模型选择与支持度报告。理解不同方法的假设与局限,能帮助读者评估文献中的进化树结论,也能正确开展自己的建树分析。树的解读需结合时间校准、基因树与物种树差异等更高阶话题循序渐进。
系统发育分析根据分子序列重建物种或基因之间的进化关系,结果是一棵系统发育树。树的拓扑结构反映亲缘关系,枝长反映进化距离。建树方法分为几类:距离法先把多序列比对转化为两两距离矩阵,再用邻接法或 UPGMA 聚类成树,计算快但信息利用有限;最大简约法选择解释数据所需变化次数最少的树;最大似然法为给定的树和替代模型计算数据的似然值,寻找似然最大的树;贝叶斯法用马尔可夫链蒙特卡洛采样后验分布,并给出支持度。
模型选择直接影响结果,核苷酸替代模型从简单的 Jukes-Cantor 到更接近现实的 GTR 加 Gamma 分布等,蛋白质模型则如 JTT、WAG。分支支持度常用 bootstrap 重抽样(对列重采样后重建并统计支持比例)或贝叶斯后验概率表示。多序列比对质量、序列饱和、水平基因转移等因素都会影响建树结果,需要结合生物学知识解释。
# UPGMA 简化的距离聚类示意 import math seqs = {"A": "ATGCGT", "B": "ATGCGA", "C": "TTGCGT", "D": "TCGCGT"} def dist(x, y): return sum(a != b for a, b in zip(seqs[x], seqs[y])) names = sorted(seqs) D = {a: {b: dist(a, b) for b in names} for a in names} for a in names: print(a, {b: D[a][b] for b in names if b != a})
系统发育分析(phylogenetics)是用分子数据重建物种/基因的进化树,其"建树方法"值得掌握:距离法(distance methods——先算序列两两距离(进化距离——p-distance、Jukes-Cantor、Kimura 2-parameter——"替代模型的校正"),再用距离建树(UPGMA(超度量假设)、邻接法 NJ(最小进化)——"快速但信息利用有限");最大简约法(maximum parsimony——找"进化改变最少"的树——"奥卡姆剃刀"——直观但长枝吸引(long-branch attraction)问题);最大似然法(maximum likelihood——给定替代模型与树,算"数据在该树下的似然"——找似然最大的树——"统计框架、模型灵活"——PhyML、RAxML);以及贝叶斯方法(Bayesian inference——用 MCMC 抽样"后验分布的树"——"不确定性量化"(后验概率)——MrBayes、BEAST——"贝叶斯建树给出树与支持率的后验分布")。
系统发育的"核心概念":物种树 vs 基因树(基因树 ≠ 物种树——不完全谱系分选(ILS)、基因复制/丢失——"基因树需要整合为物种树");分子钟(molecular clock——序列差异随时间累积——"分子钟校准时间"(用化石校准)——"进化时间的估计");以及"支持率"(bootstrap(重抽样支持率)——"树的分支有多可信")。做一个"建树思维"练习:理解"替代模型为什么重要"(不同模型假设不同的替换速率(转换 vs 颠换、位点间速率异质性)——模型选择(AIC/BIC)影响建树结果——"模型是进化的假设");理解"为什么系统发育对生物信息学重要"(同源推断(序列相似 + 系统发育确认)、功能预测(进化保守)、以及"微生物组学的系统发育分析"(16S rRNA 建树——物种鉴定与群落分析)。系统发育是"进化视角"的计算实现——从物种分类到基因家族演化到病毒溯源(COVID 的进化树分析),系统发育分析把"序列数据"转化为"进化历史"。
回顾本节核心:建树方法(距离/简约/似然/贝叶斯);物种树 vs 基因树;分子钟与支持率。系统发育把"序列数据"转化为"进化历史"——从物种分类到病毒溯源,进化视角是生物数据解读的重要维度。
记住一句话:建树方法(距离/简约/似然/贝叶斯)各有权衡——系统发育把序列转化为进化历史,同源推断依赖进化视角。
从实践角度理解系统发育:做一个「建树」练习——取一组 16S rRNA 序列(或蛋白序列),用 MEGA/iqtree 建树——查看树的拓扑与支持率(bootstrap)——亲手建一棵树,让你理解「序列→比对→建树→解读」的完整流程;再做一个「应用」练习——分析一组新冠病毒序列的进化关系(公共数据)——「病毒溯源的生物信息学实践」。
补充一点:系统发育的「模型选择」影响结论——替代模型(GTR、HKY 等)与速率异质性(gamma 分布)的选择会改变树的拓扑——「模型选择(AIC/BIC 比较)是建树的标准步骤」——「进化推断的可靠性依赖模型的恰当性」。