分子对接基础:对接原理、锁钥模型、诱导契合、打分函数概述

分子对接到底是什么?说白了就是「找钥匙开锁」的游戏。但这个锁是蛋白质,钥匙是小分子药物。我刚开始接触这行时,总觉得只要结构摆上去就能算出结合能——后来被现实狠狠教育了一顿,才明白对接背后藏着不少门道。

这一章我们只谈基础概念,不涉及具体参数。但你得知道,Vina 里那些奇奇怪怪的参数,根源全在这几个模型和函数里。搞清楚了,后面参数优化才有方向。

锁钥模型:刚性的经典假设

这是最古老的对接模型,由 Emil Fischer 在 1894 年提出。他的核心思想很简单:受体和配体的形状、电荷必须完美互补,就像钥匙必须和锁芯完全吻合。

  • 优点:计算量极小,特别适合刚体对接场景
  • 缺点:完全忽略蛋白质的构象变化
  • 适用场景:高精度冷冻电镜结构,已知结合模式明确
避坑提醒:我曾经用锁钥模型对接一个柔性较大的配体,结果跑了三天发现结合能全是正的。后来换成诱导契合模型,才重现了实验的 IC50 值。如果你处理的体系有较大的侧链运动,别用锁钥。

锁钥模型的数学表达很直观。打分函数本质上就是计算形状互补和静电匹配的加权和。它不考虑任何构象变化,所以速度快——但风险也大。

诱导契合:我更常用的模型

Daniel Koshland 在 1958 年提出的诱导契合模型告诉我一个道理:蛋白质不是死的,它会动。当配体靠近结合口袋时,蛋白质侧链甚至主链会发生位移,形成更适合配体的空腔。

我个人习惯把诱导契合分成三个阶段:

  1. 预接触期:配体靠近,静电和范德华力开始起作用
  2. 构象调整期:受体侧链旋转,结合口袋的形状微调
  3. 稳定结合期:双方达到最优互补,结合能释放

Vina 中的灵活性参数(比如 sidechain 自由度)就是为了模拟这个过程。你想想看,如果受体完全不考虑柔性,那很多 PDB 解析出来的构象本身就不是自然的结合态。

一个经典场景:当你发现对接结果和实验的结合模式差了 2-3 Å,大概率是诱导契合没处理好。我遇到过好几次,尤其是有柔性残基(如 Tyr、Arg、Lys)参与的结合口袋,不用诱导契合模型,rmsd 几乎没有低于 2.5 Å 的。

打分函数:对接精度的心脏

打分函数就是对接的核心算法。它负责告诉我:这个对接姿态好不好?结合力强不强?说白了,打分函数的好坏直接决定了你筛选出来的化合物是不是真的能结合。

常见的打分函数类型如下:

类型 原理 代表 我常用的场景
力场基 基于经典力场计算焓变 AutoDock Vina 默认 批量虚拟筛选
经验基 统计拟合实验结合能 X-Score 精度验证
半经验 力场 + 经验校正 Glide SP/XP 精细对接
共识打分 多个打分函数加权 SwissDock 去除假阳性

Vina 的默认打分函数是半经验型的,我个人觉得它在结合自由能项的权重设置上比较均衡。但遇到配体有较多疏水作用时,我会考虑调整一下权重。

一个小技巧:如果你做的是虚拟筛选,建议先用 Vina 默认打分跑一轮,再用更精确的打分函数(如 MM-PBSA)去 refine 前 5-10% 的候选物。这样准确率和速度都能兼顾。

打分函数的输出值一般以 kcal/mol 为单位。负值越大表示结合越强。我一般取 -8.0 kcal/mol 以下作为初步筛选的阈值,但这不是绝对的,还得看具体靶点。

对接流程的全景图

为了更清晰地理解这些概念是如何被串联起来的,我画了一张图:

分子对接核心逻辑 受体预处理 配体制备 对接盒子定义 对准引擎 锁钥 / 诱导契合 打分函数 力场 / 经验 / 半经验 结合模式 + 分数 常见问题 1. 盒子太大则非理性 2. 刚性受体丢失关键 3. 打分函数不匹配
核心理解:整条链路的关键不在于哪个模型最精确,而在于你的对接场景是否需要考虑柔性。如果只是做大规模虚拟筛选,锁钥模型配合经验打分就够了。但如果你面对的是已经被实验验证过的靶点,想进一步优化先导化合物,请务必打开诱导契合和更精细的力场基打分。

我的经验法则

  • 先匹配场景,再选模型:锁钥模型适合刚性、高分辨率的结构;诱导契合适合柔性大、侧链移动明显的体系
  • 打分函数不是万能的:相同的打分函数换一个靶点,表现可能天差地别。我通常同时跑 2-3 种打分函数做 consensus,去除掉只在一种打分函数里得分高的假阳性
  • 别忽视环境效应:水分子、金属离子、辅因子都会影响结合。我一般会在对接前手动保留关键的水分子(通常离配体 3.5 Å 以内的那些)

还有一个点很多人忽略:结合自由能和 IC50 之间没有简单的线性关系。有时候 Vina 给你一个 -9.5 kcal/mol 的结果,实验测得可能只有 µM 级。为什么?因为体内还有熵效应、膜穿透、代谢等因素。打分函数只解决结合的部分,不解决成药性问题。