4. 序列相似性与同源性的关系

很多初学者搞混一件事:以为两条序列长得像,就一定是同源。我当年也犯过这个错,在项目里对着一个BLAST结果兴奋半天,结果被导师一句话点醒:“相似不等于同源,但同源必然相似。” 这章我们就来掰扯清楚这个核心逻辑。

4.1 相似性与同源性:两个完全不同的概念

我先给你画个边界。

  • 相似性 (Similarity):序列间残基对匹配的定量度量。可以算百分比,也能算得分。它是数学事实,不依赖进化假设。
  • 同源性 (Homology):两条序列由共同祖先序列演化而来。这是进化假设,是定性判断(要么是,要么不是),没有“50%同源”这种说法。

我记得有一次审稿,看到一篇文章写“这两条序列有40%的同源性”,我直接在review里说:这种表述不专业。同源是二值逻辑,不是连续变量。你只能说“40%的序列一致性”,然后推断它们可能同源。

关键原则:相似性可以测量,同源性只能推断。高相似性提供同源假设的证据,但永远不能100%证明同源。

4.2 为什么高相似性≠同源?

说白了,两条序列撞脸也可能因为趋同进化,或者纯粹随机。举个例子:一个由重复短片段构成的蛋白质,跟另一个完全不同的蛋白质在某段上碰巧相似,这不稀奇。

我做过一个细菌基因组注释项目,一条功能未知的ORF跟真核生物的肌动蛋白有35% identity。乍一看挺唬人,但仔细检查数据库发现这个相似区域全是疏水残基组成,属于“频繁出现的模式”。后来实验验证,那根本不是肌动蛋白同源物,而是一个膜脂合成的酶。这就是典型的假阳性。

相似性到什么程度才能较可靠地推断同源?工程上我们有个经验窗口:

序列一致性(全长比对) 同源推断可靠性 典型场景
≥ 30% 并且比对覆盖 > 80% 较可靠(但对短序列仍需小心) 远缘同源检测
≥ 50% 并且比对覆盖 > 80% 高度可靠 近缘直系同源鉴定
≤ 20% 不可靠,极可能假阳性 需结构或保守基序辅助

注意:这个表格只适用于全长比对。局部的短片段高相似(比如200nt的序列有95% identity)可能是水平转移或重复元件,不能轻率判定同源。

4.3 统计显著性才是法官

光看百分比不够。你得问:这个相似性在随机背景下出现的概率有多大?这就是 BLAST 的 E-value(期望值)登场的地方。

E-value 不是“同源概率”,而是“在相同大小的数据库里随机找到同样得分比对的期望次数”。E-value 接近0,说明这个比对结果几乎不可能来自随机。工程上我们一般取 E-value < 1e-5 作为同源候选的筛选门槛。但别死板——如果你的数据库是整个人类基因组,E-value 阈值可以更严(1e-10 甚至 1e-20),不然你得到成千上万个“显著”hit,很多是重复和低复杂度区域。

我的习惯:运行 BLASTP 时我会加 -evalue 1e-5 -max_target_seqs 100 先粗略扫一遍,然后对候选进行多重序列比对和结构域分析,最终确认同源关系。千万不要只看 E-value 就下结论。

4.4 相似性度量:Identity vs. Similarity

你做 MSA 分析时会遇到两个常用指标:

  • Identity(一致性):完全相同的残基比例。这个最直观,但也最苛刻——只要突变就降低。
  • Similarity(相似度):不仅包含相同残基,还包括带相似理化性质的替换(如 Ile ↔ Val, Asp ↔ Glu)。通常会拿一个打分矩阵(比如 BLOSUM62)来判断替换是否为“正分”,正分残基对算相似。

我个人经验:在同源检测时,相似度往往比严格的一致性更有用。尤其是远缘同源,很多位置是保守替换,如果只用 identity 会漏掉大量真实同源。比如我遇到过细胞色素C家族成员间只有22% identity,但相似度达到55%,通过结构比对发现它们折叠形式完全一样,是确凿的同源。

所以当你在论文或报告里写“两条序列的同源性”时,正确的做法是写“序列一致性为28%,相似度为45%,结合保守结构域分析,推测为远缘同源”。

4.5 假阴性与假阳性的两难

你设的阈值越严(比如只接受 identity > 50% 作为同源),假阳性越低,但假阴性越高。反过来,放宽阈值(identity > 20% 就算同源),你会抓回更多真实同源,但同时引入大量随机相似。

我曾经在一个宏基因组项目中面对一堆未培养微生物序列,保守点用 identity ≥ 35% 作为同源阈值,结果只标出不到20%的序列。实际上后来用 HMM 搜索在原核同源群(COG)中找到了将近60%的序列有远端同源——当初的假阴率太高了。所以建议:对未知数据先用宽松阈值粗筛,再用结构域模型确认。

警告:不要把序列一致性阈值当万能键。不同蛋白家族、不同长度、不同进化距离下的可靠阈值不一样。始终结合 E-value、比对长度、保守基序和结构信息综合判断。

4.6 本章逻辑图:从相似到同源的推理链条

下面我用一张SVG图把这个推理链条可视化出来。画布背景浅蓝,节点用高对比色,文字白色,箭头深灰。

序列相似性与同源性关系推理图 两条序列 MSA比对 相似性得分/Identity 统计显著性E-value 同源推断(是/否) 相似性+统计显著性 结构/基序/实验验证 注意: 高相似性+低E-value → 同源可能性大 但仍有假阳性风险,需验证

从图上你可以看到:两条序列→MSA比对→测量相似性+计算统计显著性→做出同源推断→进一步验证。这是一个完整链条,缺了任何一环都可能导致误判。

4.7 实战避坑清单

我这些年踩过不少坑,总结几个常见问题:

  1. 误用“同源性百分比”:不要写“40%同源”,写“40%序列一致性”。这能避免审稿人找你麻烦。
  2. 只看identity不看比对覆盖度:两条序列在10个残基上100%一致,但全长只有10个残基,这种相似毫无意义。我从NCBI上扒过数据,很多假阳性就是这种短匹配。
  3. 忽略重复区域和低复杂度区域:BLAST有低复杂度过滤选项(-seg),记得打开。我一开始没用这个选项,结果得到一堆假阳性,全是poly-proline stretch 匹配。
  4. 同源推断后不做结构域检查:只用BLAST E-value < 1e-5 就认定为同源,容易漏进趋同进化或基因盗用的情况。最好再跑Pfam或InterProScan确认结构域存在。

小技巧:如果你用Python做大规模同源分析,可以在输出表格里同时保留 identity、coverage、evalue、bitscore 四个字段,然后根据业务场景设置多层过滤。我写过一个pipeline,先用coverage > 70% + evalue < 1e-5 粗筛,再用identity > 25% + bitscore > 50 精筛,效果很不错。

总之,你心里要有一根弦:相似性是证据,同源是结论。永远别把证据当结论。带着这根弦去做MSA分析,能少走很多弯路。