AlphaFold 结构比较实战:RMSD 和 lDDT 一次讲清怎么算、怎么读(附可跑代码)

发布时间:2026/9/11 5:43:19
AlphaFold 结构比较实战:RMSD 和 lDDT 一次讲清怎么算、怎么读(附可跑代码) AlphaFold 结构比较实战RMSD 和 lDDT 一次讲清怎么算、怎么读附可跑代码【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold你盯着查看器里叠在一起的两条骨架几乎重合可一算数字就翻车——同一对结构你得到 Cα-RMSD 1.1 Å同事给出 2.4 Å差了一倍还多。先别怀疑代码这不是算错而是在 AlphaFold 里做结构比较绕不开的坎RMSDRoot Mean Square Deviation均方根偏差和 lDDTlocal Distance Difference Test局部距离差异测试这两把尺子量的根本不是同一样东西。两把尺子结构比较常用的 RMSD 和 lDDT 在量什么先弄清两把尺子各自在量什么后面的数字才读得明白。RMSD先把结构摞齐再量原子离原位多远RMSD 的逻辑很直白把预测结构经过平移和旋转尽可能摞到实验结构上再量对应原子离原位有多远。公式不长逐个变量说人话RMSD sqrt( (1/N) · Σ [ (x_i − x_i)² (y_i − y_i)² (z_i − z_i)² ] )N参与计算的原子个数x_i、y_i、z_i预测结构里第 i 个原子的三维坐标x_i、y_i、z_i实验结构里同一个位置原子的坐标Σ 里那一大坨每个原子三个方向偏离距离的平方和开根号取平均单位是 Å。盲区也在摞齐这一步对齐方式不同数字就不同开头 1.1 对 2.4 就是这么来的。而且它对少数远端残基特别敏感一条乱飞的末端 loop 就能把全局数顶上去。lDDT不动位置只比谁挨着谁lDDT 换了个思路两个结构各待在自己的坐标系里先把两两原子间的距离各算一张矩阵再比矩阵差多少。刚体平移和旋转不改变结构内部距离所以它天生不用对齐。评分规则也简单仓库实现里是四个档位对应点对的距离差小于 0.5 Å 记 1 分小于 1 Å 记 0.75小于 2 Å 记 0.5小于 4 Å 记 0.25再大记 0 分只统计实验结构里 15 Å 以内的点对。盲区是它只保局部接触关系而且距离矩阵要 O(N²)长序列跑起来比 RMSD 慢一档。对比项RMSDlDDT它量的是什么对齐后对应原子的空间距离偏差原子对距离差是否落在容差档位里输出长什么样一个 Å 数值越小越像0–1 分越大越像要不要先对齐要且对齐方式直接改变结果不用刚体变换不改内部距离哪儿容易翻车末端 loop、远端残基拖高全局数距离矩阵 O(N²)长序列变慢跑起来快不快快一次 SVD 出结果慢一档两两算距离在项目里一般干啥用relax.py 里量化能量最小化前后挪动多少modules.py 里逐残基监督置信度头3步算出 Cα-RMSD含 Kabsch 旋转那这两个数到底怎么从坐标数组里算出来AlphaFold 内部把原子坐标存成 (残基数, 37, 3) 的数组37 列对应residue_constants.atom_types里那张固定的原子表CA 在第 1 列。RMSD 一般只用 Cα既代表主链又省掉一大半原子。分三步选原子从 37 列里抠出 CA 列对齐质心平移到原点Kabsch 求最优旋转算分对应原子偏差平方和取均值再开根号。这段代码解决的是给两组 Cα 坐标自动完成平移、Kabsch 旋转输出 Cα-RMSD。import numpy as np from alphafold.common import residue_constants ca_idx residue_constants.atom_order[CA] # CA 在 37 列原子表里的列号是 1 pred_ca pred_pos[:, ca_idx, :] # pred_pos 形状 (残基数, 37, 3) def ca_rmsd(p, t): p、t 均为 (残基数, 3) 的 Cα 坐标返回 Cα-RMSDÅ。 # 先把两个结构都挪到原点方便后面算旋转 p_c p - p.mean(axis0) t_c t - t.mean(axis0) # Kabsch 算法对交叉协方差矩阵做 SVD得到最优旋转 u, _, vh np.linalg.svd(p_c.T t_c) rot vh.T u.T # ⚠【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考