分子对接:Vina 与 DiffDock 实操
分子对接是在蛋白三维结构已知的前提下,预测小分子在结合口袋中的姿势,并用打分函数估计结合强弱的计算方法。AutoDock Vina 等经典方法在指定的搜索盒子内对配体做平移、旋转和可旋转键的构象搜索,用经验打分函数排序,分数以 kcal/mol 表示;DiffDock 等 AI 对接用生成模型直接给出姿势,不需要预先指定口袋。输入是受体结构和配体的 SMILES 或 SDF。对接常用于解释构效关系、挑选突变验证残基、作为虚拟筛选的打分环节,以及为分子动力学提供起始复合物。
什么时候用
- 已知靶点结构,想看某个化合物可能以什么姿势结合口袋
- 解释一组类似物的活性差异,找出关键氢键或疏水接触
- 设计定点突变实验,挑选可能参与配体结合的残基
- 为分子动力学和结合自由能计算准备起始复合物
- 只有蛋白结构、不知道结合位点时,先找候选口袋
不适合的情况
- 用对接分数代替实验测得的 Kd 或 IC50:两者相关性有限
- 共价抑制剂、金属配位为主的配体或长肽:需要专门的对接流程
- 仅凭对接分数去「验证」网络药理学或基因筛选得到的靶点
需要准备的数据
- 受体结构
- PDB 或 mmCIF,优先选分辨率高、含同类配体的复合物;预测结构需先确认口袋区域置信度高
- 配体结构
- SMILES、SDF 或 MOL2;需生成合理 3D 构象,按目标 pH 确定质子化态和互变异构体
- 结合位点信息
- 共晶配体位置、文献报道的关键残基或口袋预测结果,用于确定搜索盒子的中心和大小
- 阳性对照配体
- 已知结合该口袋的化合物及其复合物结构,用于重对接验证,并作为分数比较的参照
分析步骤
- 1
选择受体结构
同一蛋白有多个 PDB 条目时,选与研究配体类型相近、分辨率较高、口袋残基完整的复合物结构。检查口袋附近是否有缺失残基或交替构象,必要时补全。
- 2
准备受体
删除无关的水分子、溶剂和多余的链,保留参与结合的金属离子和辅因子;加氢并按生理 pH 处理组氨酸等残基的质子化态,再转成 PDBQT 格式。
- 3
准备配体
从 SMILES 生成 3D 构象,枚举合理的质子化态和互变异构体,确定可旋转键;Vina 1.2 推荐用 Meeko 生成配体 PDBQT。核对手性中心与原化合物一致。
- 4
确定结合口袋
有共晶配体时,以其几何中心作为盒子中心;没有时用 fpocket、P2Rank 等工具预测口袋,再结合残基保守性和文献报道筛选候选位点。
- 5
重对接验证
把共晶配体取出后重新对接,计算最佳姿势与晶体姿势的重原子 RMSD。常用经验标准是小于 2 Å 视为能复现晶体姿势;不达标时调整盒子或受体准备方式。
- 6
正式对接
按验证过的设置对目标配体运行对接,换几个随机种子重复,检查最佳姿势是否稳定出现。同时对接阳性对照配体,作为同一口袋内的分数参照。
- 7
分析结合姿势
在 PyMOL 或 ChimeraX 中查看前几个姿势,用 PLIP 等工具列出氢键、疏水接触、π 堆积和盐桥,判断是否与已知构效关系和突变数据一致。
关键参数与决策
盒子中心与大小
盒子应完整覆盖口袋并留出余量,通常每边比配体长度多几埃。过小会截断合理姿势;过大则搜索空间膨胀、结果不稳定,配体可能落到口袋外的表面凹陷。
exhaustiveness
Vina 的搜索强度,默认 8。盒子较大或配体可旋转键较多时,可提高到 16–32 来改善结果的重复性,运行时间也会随之增加。
输出构象数与能量窗口
num_modes 默认 9,energy_range 默认 3 kcal/mol。前两名分数相差不到 1 kcal/mol 时不宜只看第一名,应对比多个姿势的结合模式。
受体柔性
默认受体刚性。诱导契合明显时,可指定少数口袋侧链为柔性,或用多个受体构象分别对接后综合比较。柔性残基设得过多会明显增加假阳性。
质子化与互变异构
配体电荷状态会直接改变氢键和盐桥模式,羧酸、胺、咪唑等基团要按目标 pH 处理;不确定时枚举多个状态分别对接,再比较姿势和分数。
常见错误
- 把 Vina 分数当作结合自由能:它是经验打分,与实验亲和力不能直接换算,不同靶点之间也不可比,更适合同一口袋内的排序。
- 忽略分子大小偏好:打分函数倾向给重原子多的分子更负的分数,比较大小差异明显的分子时,应同时看配体效率等归一化指标。
- 没做重对接就报告结果:流程连共晶姿势都复现不了时,新配体的结合姿势同样不可信,结论缺乏依据。
- 受体中残留共晶配体或误删关键金属离子:前者占据口袋把配体挤到别处,后者使依赖金属配位的结合模式完全错误。
- 直接采用 AI 对接输出的姿势:生成模型的姿势可能有原子冲突、键长异常或手性错误,应先用 PoseBusters 等工具检查物理合理性。
- 全蛋白盲对接后只取最低分位置:最低分常落在没有功能意义的表面裂隙,需要结合口袋保守性和实验信息判断。
结果怎么看
对接分数表
每个配体各姿势的分数,Vina 以 kcal/mol 表示,越负越好。与同口袋阳性对照比较才有意义;若所有化合物分数都接近且优于已知强结合剂,往往说明盒子或受体准备有问题。
结合姿势三维图
显示配体在口袋中的位置和朝向。看核心骨架是否与已知配体占据相同的亚口袋,关键基团是否朝向预期残基;前几个姿势朝向差异很大时,说明姿势本身不确定。
相互作用二维图
列出氢键(含供受体和距离)、疏水接触、π 堆积和盐桥。优先关注与突变数据或保守残基一致的作用;只有零散疏水接触、没有特异性作用时,结合模式要谨慎解读。
重对接叠合图
对接姿势与共晶姿势叠合并给出 RMSD,是流程可靠性的直接证据。最高分姿势 RMSD 大、某个低排名姿势 RMSD 小,说明打分函数在这个靶点上的排序能力弱。
口袋预测列表
fpocket 或 P2Rank 给出的口袋位置、体积和评分。排名第一的口袋不一定是功能位点,应对照已知配体位置、残基保守性和突变数据再确定。
和相近方法怎么选
AutoDock Vina 与 DiffDock
Vina 需要指定盒子,在经验打分函数下搜索,结果可重复、易解释;DiffDock 不需要口袋信息,适合位点未知的盲对接,但姿势的物理合理性要检查,其置信度也不是亲和力。位点已知时先用经典对接,未知时可用 AI 对接找位点再精细对接。
分子对接与分子动力学
对接给出静态姿势和粗略打分,速度快;分子动力学加入蛋白柔性和溶剂,可以检验姿势是否稳定,并结合 MM/GBSA 估算结合能,但计算量大。常见做法是对接挑出少量候选后再做模拟。
分子对接与虚拟筛选
对接重在少量分子的姿势预测与解释;虚拟筛选面向成千上万个分子的排序和召回,对接只是其中一个打分环节,还需要预过滤、富集评估、聚类和人工检查。
AutoDock Vina 与 AutoDock4
AutoDock4 需要先用 AutoGrid 计算格点图,采用基于力场的打分和拉马克遗传算法;Vina 使用不同的经验打分函数,搜索更快,设置更简单。Vina 1.2 也支持 AutoDock4 打分,可在同一流程中对比。
常见问题
对接结合能多少算好?
没有通用阈值。不少文献把 -7 kcal/mol 左右当作参考线,但这只是经验写法,缺少严格依据。更可靠的做法是与同一口袋的阳性对照配体比较,结合重对接验证、姿势合理性和关键相互作用一起判断,而不是只看一个数字。
对接前受体里的水分子都要删掉吗?
大部分溶剂水应删除,但在多个晶体结构中位置保守、同时与蛋白和配体形成氢键的桥连水,可能是结合模式的一部分。可以分别做保留和删除这些水的对接,并用重对接 RMSD 比较,哪种设置更能复现晶体姿势就采用哪种。
AutoDock Vina 的对接盒子怎么设置?
有共晶配体时以其中心为盒子中心,每边在配体尺寸基础上留几埃余量;没有共晶配体时先用口袋预测或文献残基确定中心,盒子覆盖整个口袋。盒子设好后用已知配体重对接检验,能复现晶体姿势说明设置合理。
分子对接结果需要做分子动力学验证吗?
如果结论依赖具体的结合姿势或关键相互作用,建议做。模拟可以检验配体是否稳定留在口袋、关键氢键能否保持,并用 MM/GBSA 等方法补充能量证据。只把对接作为大规模初筛的一个环节时,可只对排名靠前的少数分子做模拟。
盲对接和定点对接有什么区别?
定点对接只在已知口袋附近的盒子里搜索,速度快、结果稳定;盲对接把盒子覆盖整个蛋白或使用不需要口袋信息的 AI 模型,用来寻找未知位点。盲对接得到的位点只是候选,需要用保守性、突变数据或定点对接进一步确认。
在 Codar 里怎么做
在 Codar 里,你提供靶点(PDB 编号、UniProt 编号或结构文件)和配体(名称、SMILES 或 SDF)。Codar 先确认受体和结合位点,位点未知时先做口袋识别,再用经典对接或 AI 对接生成姿势,有共晶配体时做重对接验证。交付分数表、复合物结构、相互作用图、口袋列表和可复现脚本。
用 EGFR 激酶域与厄洛替尼的共晶结构,把吉非替尼和我给的 5 个 SMILES 对接到 ATP 口袋,先做重对接验证,再比较分数和关键氢键。