分子对接基础:对接原理、锁钥模型、诱导契合、打分函数概述
分子对接到底是什么?说白了就是「找钥匙开锁」的游戏。但这个锁是蛋白质,钥匙是小分子药物。我刚开始接触这行时,总觉得只要结构摆上去就能算出结合能——后来被现实狠狠教育了一顿,才明白对接背后藏着不少门道。
这一章我们只谈基础概念,不涉及具体参数。但你得知道,Vina 里那些奇奇怪怪的参数,根源全在这几个模型和函数里。搞清楚了,后面参数优化才有方向。
锁钥模型:刚性的经典假设
这是最古老的对接模型,由 Emil Fischer 在 1894 年提出。他的核心思想很简单:受体和配体的形状、电荷必须完美互补,就像钥匙必须和锁芯完全吻合。
- 优点:计算量极小,特别适合刚体对接场景
- 缺点:完全忽略蛋白质的构象变化
- 适用场景:高精度冷冻电镜结构,已知结合模式明确
锁钥模型的数学表达很直观。打分函数本质上就是计算形状互补和静电匹配的加权和。它不考虑任何构象变化,所以速度快——但风险也大。
诱导契合:我更常用的模型
Daniel Koshland 在 1958 年提出的诱导契合模型告诉我一个道理:蛋白质不是死的,它会动。当配体靠近结合口袋时,蛋白质侧链甚至主链会发生位移,形成更适合配体的空腔。
我个人习惯把诱导契合分成三个阶段:
- 预接触期:配体靠近,静电和范德华力开始起作用
- 构象调整期:受体侧链旋转,结合口袋的形状微调
- 稳定结合期:双方达到最优互补,结合能释放
Vina 中的灵活性参数(比如 sidechain 自由度)就是为了模拟这个过程。你想想看,如果受体完全不考虑柔性,那很多 PDB 解析出来的构象本身就不是自然的结合态。
一个经典场景:当你发现对接结果和实验的结合模式差了 2-3 Å,大概率是诱导契合没处理好。我遇到过好几次,尤其是有柔性残基(如 Tyr、Arg、Lys)参与的结合口袋,不用诱导契合模型,rmsd 几乎没有低于 2.5 Å 的。
打分函数:对接精度的心脏
打分函数就是对接的核心算法。它负责告诉我:这个对接姿态好不好?结合力强不强?说白了,打分函数的好坏直接决定了你筛选出来的化合物是不是真的能结合。
常见的打分函数类型如下:
| 类型 | 原理 | 代表 | 我常用的场景 |
|---|---|---|---|
| 力场基 | 基于经典力场计算焓变 | AutoDock Vina 默认 | 批量虚拟筛选 |
| 经验基 | 统计拟合实验结合能 | X-Score | 精度验证 |
| 半经验 | 力场 + 经验校正 | Glide SP/XP | 精细对接 |
| 共识打分 | 多个打分函数加权 | SwissDock | 去除假阳性 |
Vina 的默认打分函数是半经验型的,我个人觉得它在结合自由能项的权重设置上比较均衡。但遇到配体有较多疏水作用时,我会考虑调整一下权重。
打分函数的输出值一般以 kcal/mol 为单位。负值越大表示结合越强。我一般取 -8.0 kcal/mol 以下作为初步筛选的阈值,但这不是绝对的,还得看具体靶点。
对接流程的全景图
为了更清晰地理解这些概念是如何被串联起来的,我画了一张图:
我的经验法则
- 先匹配场景,再选模型:锁钥模型适合刚性、高分辨率的结构;诱导契合适合柔性大、侧链移动明显的体系
- 打分函数不是万能的:相同的打分函数换一个靶点,表现可能天差地别。我通常同时跑 2-3 种打分函数做 consensus,去除掉只在一种打分函数里得分高的假阳性
- 别忽视环境效应:水分子、金属离子、辅因子都会影响结合。我一般会在对接前手动保留关键的水分子(通常离配体 3.5 Å 以内的那些)
还有一个点很多人忽略:结合自由能和 IC50 之间没有简单的线性关系。有时候 Vina 给你一个 -9.5 kcal/mol 的结果,实验测得可能只有 µM 级。为什么?因为体内还有熵效应、膜穿透、代谢等因素。打分函数只解决结合的部分,不解决成药性问题。