
AutoDock Vina 分子对接实战30 分钟跑通从配体到结合能的全流程【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina如果你正在研究某款药物分子为什么能抑制某个疾病靶点或者想筛选一批候选化合物与蛋白质的结合能力那么你迟早会被同一件事卡住如何快速、可信地预测分子之间的结合强度。AutoDock Vina 就是为此而生的开源分子对接引擎它以极快的速度评估配体在受体结合口袋中的上百万种摆放方式并给出按能量排序的候选构象。本指南将带你以一条真实案例为主线从零跑通一次完整的分子对接并顺藤摸瓜掌握灵活对接与 Python 自动化两个进阶技能。上图是项目自带的分子对接工作流程总览从配体、受体的结构预处理到 Meeko 生成 PDBQT 输入文件再到对接计算与结果导出。我们下面的每一步都能在这张图上找到对应位置。配钥匙之前先想清楚这把锁长什么样分子对接要回答的问题可以想象成配钥匙蛋白质的活性口袋是一把锁候选药物是钥匙毛坯对接算法就是替你反复试磨、找出最贴合锁芯的那把。但与现实中配钥匙不同Vina 不需要你真把钥匙插进去——它用一套经验势能函数力场打分把锁与钥匙匹配得好不好换算成一个数值结合自由能单位 kcal/mol数值越负结合越强。Vina 凭什么在同类工具里脱颖而出三点一是快得益于预计算网格把受体周围的势能预先算好存进三维网格文件搜索速度比传统方法快出数倍二是全内置三种力场vina、vinardo、ad4适配刚性与柔性受体、水合对接、大环分子等场景三是轻命令行工具简洁到一条命令就能完成对接同时也提供 Python 绑定方便你把它嵌入自己的筛选流程。一句话总结定位它是目前最容易上手、又足够专业的分子对接引擎。接下来我们不再纸上谈兵直接用一个真实病例做完整实操。一条主线走通把抗癌药伊马替尼放回它的靶点口袋我们的实验对象是经典体系抗癌药**伊马替尼imatinib**与它的靶点 c-Abl 激酶PDB 编号 1iep后者是慢性髓性白血病治疗的关键蛋白。这个体系的示例数据已经打包在项目里我们只需照着做即可。第 0 步拉代码、装工具先获取项目源码其中的example/目录自带全部示例数据再安装两个核心 Python 包git clone https://gitcode.com/gh_mirrors/au/AutoDock-Vina cd AutoDock-Vina pip install -U numpy scipy rdkit vina meeko gemmi prody上面这条命令做了三件事vina是对接引擎本体meeko负责把分子文件转换成对接专用的 PDBQT 格式rdkit等是 meeko 的化学计算依赖。建议在虚拟环境如 conda中安装避免污染系统 Python。装完后确认命令可用vina --version mk_prepare_ligand.py --help看到版本号与帮助信息说明环境就绪。✅第 1 步让受体裸体出场制备受体受体蛋白在晶体结构里往往带着杂原子和水分子对接前要清理成标准格式。Vina 1.2 的新工具mk_prepare_receptor.py一条命令搞定cd example/basic_docking/data mk_prepare_receptor.py -i 1iep_receptorH.pdb -o 1iep_receptor -p -v \ --box_size 20 20 20 --box_center 15.190 53.903 16.917逐项拆解参数-i输入的受体 PDB 文件示例已含氢原子H后缀即 Hydrogen-o输出文件名的基底所有产物都以此为前缀-p生成受体 PDBQT 文件对接引擎真正吃的格式-v同时生成对接盒子信息包括box.txt配置文件和可可视化的box.pdb--box_size与--box_center划定搜索空间——一个边长 20 Å、中心在给定坐标的正方体相当于告诉 Vina 钥匙只在这个锁芯区域里试这步会产出1iep_receptor.pdbqt和1iep_receptor.box.txt。其中box.txt是纯文本内容如下我们下一节直接复用它center_x 15.190 center_y 53.903 center_z 16.917 size_x 20.0 size_y 20.0 size_z 20.0第 2 步给配体洗个澡制备配体接下来把配体 SDF 转成 PDBQT。为什么不用 PDB 格式因为 PDB 不含键连接信息算法无法判断哪些原子之间成键直接会影响可旋转键的识别。SDF 则自带键级与电荷是推荐输入mk_prepare_ligand.py -i 1iep_ligand.sdf -o 1iep_ligand.pdbqt输出文件1iep_ligand.pdbqt里标注了每个可旋转键的位置——Vina 在搜索时正是围绕这些键扭动配体就像配钥匙时调整钥匙齿的各个角度。第 3 步按下对接按钮执行计算受体、配体、盒子三者齐备运行这一条命令vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt \ --exhaustiveness 32 --out 1iep_ligand_vina_out.pdbqt参数说明--receptor/--ligand刚体受体与配体的 PDBQT 文件--config直接引用上一步生成的盒子配置免去手敲坐标--exhaustiveness 32穷举度衡量搜索下多少功夫。默认 8 足够快但伊马替尼这种大而灵活的分子用默认值偶发找不到正确姿态调到 32 结果更稳定代价是耗时约翻 4 倍--out结果输出文件命令行运行期间你会看到进度条从 0% 走到 100%然后打印一张结果表。终端里这几十秒的等待背后是算法评估了海量配体姿态——这正是 Vina 极速计算的体现。第 4 步读结果只看三列对接结束后的输出大致如下mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. ------------------------------------- 1 -13.23 0 0 2 -11.29 0.9857 1.681 ...三步读懂这张表mode候选构象编号按能量从优到劣排列mode 1 即最可能结合方式affinity预测结合自由能-13.23 kcal/mol意味着结合很强我们这套体系的标准答案是约 -13说明对接成功rmsd l.b./u.b.该构象与最优构象的空间差异单位 Å。两个值接近 0说明它们几乎同一姿态若其他 mode 的 RMSD 高达 10 以上说明那是另一种摆法——通常只需关注最优的几个经验法则affinity 越负越强同一体系多次运行 mode 1 的能量与姿态稳定则结果可信。数值本身的意义要和同体系横向比不要跨受体比较。进阶一让靶点侧链动起来灵活对接前面的流程把受体当成一块死板的锁——这在现实中不成立结合时口袋里的某些氨基酸侧链会摆动来拥抱配体。Vina 允许你圈定少数柔性残基参与运动。适用场景晶体结构里口袋较窄、配体进入需要侧链让位的情况。示例是 c-Abl 的 Thr315 残基伊马替尼耐药突变的关键位点。操作示例制备受体时用-f指定柔性残基-a忽略结构缺失部分cd example/flexible_docking/data mk_prepare_receptor.py -i 1fpu_receptorH.pdb -o 1fpu_receptor -p -v \ --box_size 20 20 20 --box_center 15.190 53.903 16.917 \ -f A:315 -a注意这次会生成两个受体文件1fpu_receptor_rigid.pdbqt刚体部分和1fpu_receptor_flex.pdbqtThr315 的柔性侧链。对接时用--flex把它们一起喂给 Vinavina --receptor 1fpu_receptor_rigid.pdbqt --flex 1fpu_receptor_flex.pdbqt \ --ligand 1iep_ligand.pdbqt --config 1fpu_receptor.box.txt \ --exhaustiveness 32 --out 1fpu_ligand_flex_vina_out.pdbqt结果怎么读结果表结构完全相同但输出 PDBQT 里同时包含了配体姿态和柔性侧链的构象。观察 mode 1 中 Thr315 侧链的朝向你能直观看到侧链为配体让路的过程。注意引入柔性会显著增加自由度exhaustiveness 建议同步调高否则搜索不充分。进阶二从敲命令到写脚本Python 编程对接当你要批量筛选上百个配体时逐条敲命令会让人崩溃。Vina 提供了 Python 绑定把对接变成几行可控代码。适用场景虚拟筛选虚拟筛选、自动化工作流、需要把对接嵌入机器学习管线的场合。操作示例项目example/python_scripting/first_example.py就是一个完整范例核心逻辑如下from vina import Vina v Vina(sf_namevina) # 选择力场可换 ad4 / vinardo v.set_receptor(1iep_receptor.pdbqt) # 载入受体 v.set_ligand_from_file(1iep_ligand.pdbqt) # 载入配体 v.compute_vina_maps(center[15.190, 53.903, 16.917], box_size[20, 20, 20]) energy v.score() # 给当前姿态打分 print(Score: %.3f (kcal/mol) % energy[0]) v.dock(exhaustiveness32, n_poses20) # 执行对接保留 20 个构象 v.write_poses(out.pdbqt, n_poses5) # 只写出前 5 个最优姿态在example/python_scripting/目录下直接运行python first_example.py结果怎么读脚本会在终端打印Score before/after minimization两行能量并在目录下生成1iep_ligand_minimized.pdbqt与1iep_ligand_vina_out.pdbqt。minimization 前后的差值告诉你局部优化的收益n_poses参数控制写出的构象数量。想批量对接只需在外层for循环里替换配体文件名即可。进阶三把水分子也算进账本水合对接蛋白结合口袋里的水分子不是摆设有些水被牢牢锁住配体结合时必须与它们协同成水桥。默认对接忽略水会导致片段类药物如尼古丁示例体系 1uw6的评分失真。Vina 1.2 支持给配体装饰上可取舍的水分子。适用场景片段筛选fragment-based drug discovery、口袋中水分子保守性强的情况。操作示例先用scrub.py补氢再用mk_prepare_ligand.py的-w选项挂水cd example/hydrated_docking/data scrub.py 1uw6_ligand.sdf -o 1uw6_ligandH.sdf mk_prepare_ligand.py -i 1uw6_ligandH.sdf -o 1uw6_ligand.pdbqt -w随后用配套脚本mapwater.py生成水原子亲和力地图example/autodock_scripts/目录下python ../autodock_scripts/mapwater.py -r 1uw6_receptor.pdbqt -s 1uw6_receptor.W.map结果怎么读水合对接的结果 PDBQT 中水分子以W原子类型出现。对比有水/无水两次对接的 mode 1你会发现带水对接的构象 RMSD 通常更接近晶体结构——这就是水分子参与结合的直接证据。避坑指南五个高频报错与误区1. 现象报错Command line parse error或提示缺少 receptor/ligand原因参数名拼错、或忘了给搜索空间参数center/size。解决办法执行vina --help核对全部参数名务必确认--receptor、--ligand与--config或center_x等六个参数同时齐备。2. 现象配体用 PDB 格式制备后可旋转键数量异常原因PDB 格式不记录键连接导致成键判断错误。解决办法改用 SDF 输入通过mk_prepare_ligand.py转换这几乎是官方文档唯一强烈警告的格式陷阱。3. 现象--scoring ad4与--scoring vina的分数差别很大以为算错了原因两种力场的能量标度不同。ad4 需要先用autogrid4预计算亲和力图--maps参数而 vina 力场自动内部计算。两者分数不可相互比较选一种力场后在同一体系内纵向对比。4. 现象用默认 exhaustiveness8 对接大分子配体结果每次跑都不一样原因搜索不充分算法陷入局部最优。解决办法把--exhaustiveness提高到 24~32必要时固定--seed保证可复现--seed 42即可。5. 误区以为输出目录里的.map、.glg、.fld是多余文件顺手删掉原因这些是 AD4 力场对接必需的网格文件与 AutoGrid 日志.glg 是日志.map/.fld 是势能网格。若后续想切换--scoring ad4重跑就得重新生成它们。建议单独归档别与输入文件混放。继续深挖项目里藏着的宝藏完成主线实验后这些路径值得逐一打开docs/source/官方教程全集docking_basic.rst本指南的权威版、docking_python.rst、docking_flexible.rst、docking_hydrated.rst分别对应我们走完的三条路线example/七个实战案例除已用的三个外还有大环分子对接docking_with_macrocycles/、锌金属蛋白对接docking_with_zinc_metalloproteins/、多配体批量对接mulitple_ligands_docking/src/main/main.cpp命令行参数的全部定义--num_modes、--energy_range、--spacing等进阶参数都在这里读完你对 Vina 的掌控会上一个台阶src/lib/核心算法源码如monte_carlo.cpp蒙特卡洛搜索、quasi_newton.cpp局部优化、ad4cache.cppAD4 网格缓存想理解快的秘密可以到这里data/原子参数文件AD4_parameters.dat是 AD4 力场的灵魂现在把第一次对接留在你的终端里回顾一下你刚才完成的旅程理解了对接即配钥匙的核心思想用三条命令把抗癌药伊马替尼放回 c-Abl 的口袋读懂了结合能表格又掌握了灵活侧链、Python 批处理与水分子的三个进阶玩法。你已经不是听过分子对接的人而是跑通过一次完整分子对接的人。接下来请打开终端从git clone开始或者直接进入example/basic_docking/data目录把本指南的命令亲手敲一遍。看到进度条跑满、结果表打印出来的那一刻你会明白分子对接真的没有想象中那么远。【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考