2. 蛋白质结构比较的基础概念:RMSD、全局比对与局部比对
聊蛋白质结构比较,有几个基础概念绕不开。我这些年做结构预测评估,发现很多人一上来就盯着TM-score,结果连 RMSD 怎么算的、比对策略选了啥都没搞清楚。嗯,这就像写代码不看数据手册直接跑模型——迟早翻车。
所以我们先把地基打牢。这一章我会把 RMSD、全局比对和局部比对这三个东西拆开讲,顺便说说我踩过的坑。
2.1 均方根偏差(RMSD)
RMSD,全称 Root Mean Square Deviation。说白了就是计算两个结构对应原子坐标差异的均方根。它是结构比较里最老牌、最直观的指标之一。
数学公式长这样:
RMSD = sqrt( (1/N) * Σ ||xi - yi||² )
其中 xi 和 yi 分别是实验结构和预测结构中第 i 个对应原子的坐标向量,N 是参与比较的原子对数。
我个人习惯在比较同源模型或对接构象时先用 RMSD 扫一遍。它很敏感,哪怕只有一小段 loop 飘出去了,RMSD 就会猛涨。我曾经在一个酶设计项目上吃过亏——预测结构核心折叠很好,就一个末端环区偏了 3 Å,RMSD 直接飙到 4.8 Å,差点被我误判成坏模型。
RMSD 有哪些毛病?
- 对局部偏差敏感:一个 loop 歪了,整体值就失控。
- 不归一化:你不能说 RMSD=2 Å 就一定好,因为小蛋白天然比大蛋白更难算低。
- 要求结构长度一致:两个结构残基数不同时,RMSD 根本没法直接比较。
既然是课后章节,我写个 Python 小例子吧。
import numpy as np
def compute_rmsd(coords_a, coords_b):
"""
计算两组原子坐标的 RMSD。
coords_a, coords_b: Nx3 的 numpy 数组
"""
assert coords_a.shape == coords_b.shape
diff = coords_a - coords_b
rmsd = np.sqrt(np.mean(np.sum(diff**2, axis=1)))
return rmsd
# 虚拟坐标
a = np.array([[0.0, 0.0, 0.0], [1.0, 0.0, 0.0]])
b = np.array([[1.0, 0.0, 0.0], [2.0, 0.0, 0.0]])
print(f"RMSD = {compute_rmsd(a, b):.4f} Å")
输出是:
RMSD = 1.0000 Å
别小看这个例子。我在教学时发现,很多人以为 RMSD 一定要用专业软件算,其实自己写核心逻辑也就十来行。
2.2 全局比对
全局比对(Global Alignment)追求的是 完整结构整体对齐。它假设两个结构整体上是可比的,然后找一个刚性变换(旋转 + 平移),让它们尽可能重叠。
典型算法:Kabsch 算法、四元数方法。
特点:
- 所有残基一视同仁,都参与优化。
- 对结构域重排、大尺度构象变化不友好。
- 计算速度快,适合做初步筛查。
我记得之前有个项目,需要对比一系列突变体的主链构象。全局比对很高效,直接就能看出哪个突变导致整体折叠变了。但如果突变只影响一个活性位点 loop,全局比对会把其他部分的好结果给“稀释”掉。
2.3 局部比对
局部比对(Local Alignment)不要求整体对齐。它只找出两个结构中最相似的 子结构,然后基于这些子结构做比对。TM-score、GDT_TS 这些指标本质上都是局部比对的产物。
典型算法:LGA (Local Global Alignment)、TM-score 的旋转搜索、以及各种 seed-extension 方法。
为什么需要局部比对?
你想想看,如果两个蛋白质大小差很多,比如一个 100 残基,另一个 300 残基。全局比对会把全部 300 残基都算进去,结果大蛋白把 RMSD 拉得奇高。但实际上它们共享的核心折叠可能非常完美。局部比对就能抓住这个核心,把多出来的部分直接忽略掉。
局部比对 vs 全局比对
| 维度 | 全局比对 | 局部比对 |
|---|---|---|
| 对齐范围 | 所有残基 | 最相似的子集 |
| 对长度差异 | 敏感 | 不敏感 |
| 对构象变化 | 刚性限制 | 可适应局部变化 |
| 常用指标 | RMSD | TM-score, GDT |
| 典型应用场景 | 同源建模、晶体学刚体对接 | CASP 评估、结构搜索 |
核心总结:全局比对适合结构很相似的情况,局部比对适合结构差异大或长度不匹配的情况。TM-score 走的是一条中间路线——它做了一个全局式的、但基于局部相似性加权的比较。这也是它比 RMSD 鲁棒的原因。
2.4 从 RMSD 到 TM-score 的演进 —— 一张图看懂
讲了这么多理论,我把它画成一张 SVG 结构图,方便你一眼看清整个知识体系。
2.5 小结:怎么选?
这一章我尽量把概念讲得直白。你可能会问:“那我到底用哪个?”
我的建议是:别只用 RMSD。尤其是在结构长度差异大时,RMSD 会骗人。我自己在 CASP 评估中更习惯先用 TM-score 做全局排序,再用 RMSD 做局部精度的定量参考。两种视角结合,比只盯一个指标安全得多。
- RMSD 没有归一化,跨蛋白比较时要格外小心。
- 全局比对不适合长度不匹配或大尺度域重排的场景。
- 局部比对是 TM-score、GDT 等现代评估指标的数学基础。
- 选择比对策略 = 选择你对“相似性”的定义。