AutoDock-Vina 分子对接从零到出结果:照着敲就能跑通的第一份实验
AutoDock-Vina 分子对接从零到出结果照着敲就能跑通的第一份实验【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-VinaAutoDock-Vina 是一款开源的分子对接引擎用来预测小分子药物与蛋白质靶点之间的结合方式和结合强度。读完本文你不需要任何对接基础就能在 10 分钟内装好工具、跑完一次完整的受体-配体对接并看懂终端里那张打分表。上图把整条链路画得很清楚左侧先准备配体和受体的结构文件中间用 Meeko 生成 PDBQT 输入右侧交给 Vina 计算并导出结果。接下来你要做的事就是把这条链亲手走一遍。一个新手最容易卡住的真实场景想象你第一次接触对接下载了软件兴冲冲输入一条命令结果终端吐出一行can not open conf.txt而文件明明就在眼前。你开始怀疑是不是下载错了版本、敲错了参数甚至怀疑自己不适合干这行。别急这几乎是每个人都会踩的坑——原因往往很简单文件浏览器默认隐藏了扩展名你以为的conf.txt实际叫conf.txt.txt。这种事遇多了你就会发现分子对接真正的难点不在跑起来而在搞懂每一步在做什么。本文就带你绕开这些坑用最短路径把第一个结果跑出来。先把四个行话用大白话讲明白在动手之前先认识四个高频词。每个词解释完我会立刻告诉你它对应哪条命令。受体Receptor就是你要研究的蛋白质相当于锁。对接前它要被预处理成带极性氢和部分电荷的 PDBQT 文件这一步对应mk_prepare_receptor.py。配体Ligand就是候选小分子相当于钥匙。它同样要转成 PDBQT对应mk_prepare_ligand.py。这里有个关键提醒尽量别用 PDB 格式准备小分子因为它不含键连接信息结果会失真。对接盒子Docking Box你在受体上圈出的一块三维空间告诉软件钥匙只可能在锁芯附近试。盒子设小了找不到结合位点设大了搜索效率暴跌。它对应配置文件里的center_*和size_*参数。结合能Binding Energy输出的核心指标单位是 kcal/mol。负值越大代表结合越稳定一般 -6 到 -12 算是有戏的范围。它是两个力场打分下面会细说。十分钟跑通全流程先看这条最短链路最短路径只有四步装环境 → 准备两个输入文件 → 写盒子配置 → 运行 Vina。先用最快方式装好工具# 创建独立环境避免依赖互相打架强烈建议不要装进 base 环境 conda create -n vina python3 conda activate vina # 加 conda-forge 频道然后装 vina 和准备工具 meeko conda config --env --add channels conda-forge conda install -c conda-forge numpy swig boost-cpp libboost pip install vina meeko装完输入vina --version能打印版本号就说明引擎就位了。老手也可以直接pip install -U numpy vina meeko但新手请优先走 conda 路线省下的排错时间远超安装耗时。为什么非要装 meeko因为 Vina 只认 PDBQT 格式而把普通结构文件转成 PDBQT 这件事官方教程就是用 meeko 的工具链完成的。一步一步拆解从蛋白质到打分表下面的每一步都以项目自带的示例为准文件都在example/basic_docking/里。我们用一个真实案例抗癌药伊马替尼imatinib对接 c-Abl 激酶PDB 条目 1iep。第一步让受体先带上装备目标把1iep_receptorH.pdb转成对接用的 PDBQT同时生成盒子配置文件。# -i 指定输入 PDB-o 指定输出文件前缀-p 生成受体 PDBQT # -v 附带生成盒子信息--box_size 和 --box_center 定义搜索空间 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观察结果时注意这一步会生成三个文件——1iep_receptor.pdbqt对接用、1iep_receptor.box.txt盒子配置可直接当 Vina 的 config 用、1iep_receptor.box.pdb用于在 PyMOL 里可视化盒子。如果实验结构里带水分子、辅因子等干扰物可以用--delete_residues把它们剔掉。第二步给配体补全信息目标把配体从 SDF 转成 PDBQT。# SDF 格式含键连接信息是配体准备的推荐起点 mk_prepare_ligand.py -i 1iep_ligand.sdf -o 1iep_ligand.pdbqt观察结果时注意这一步别跳过直接拿原始小分子文件去对接会报错或结果离谱。尤其要检查质子化状态——有的对接失败就差在一个氢原子上。第三步圈出配体可能待的地方目标写一个盒子配置文件。刚才mk_prepare_receptor.py已经帮你生成了1iep_receptor.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观察结果时注意如果终端提示搜索空间体积超过 27000 立方埃多半是你在用 AutoDock 4 的习惯填格点数0.375 埃/格而 Vina 里尺寸单位直接就是埃。盒子尽量小到刚好包住活性位点搜索越省力结果越稳定。第四步正式开跑对接目标用 Vina 力场完成对接产出含多个构象的 PDBQT 文件。# Vina 力场会在内部自动计算亲和能图谱无需预计算地图文件 # --config 指定盒子配置--exhaustiveness 控制搜索力度32 比默认 8 稳得多 vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt \ --exhaustiveness32 --out 1iep_ligand_vina_out.pdbqt观察结果时注意终端会出现一条进度条然后是mode | affinity | rmsd l.b. | rmsd u.b.的打分表。为什么要把 exhaustiveness 从 8 提到 32因为它决定独立随机搜索的轮数轮数越多越不容易漏掉真正的最优构象——伊马替尼这个体系默认参数下就经常翻车。第五步把结果转成能看的格式目标PDBQT 转 SDF方便在 PyMOL、Chimera 里查看。# PDBQT 不含键级信息meeko 借助文件头的 SMILES 还原正确键级和形式电荷 mk_export.py 1iep_ligand_vina_out.pdbqt -s 1iep_ligand_vina_out.sdf观察结果时注意别用 OpenBabel 之类靠猜键级的工具转某些分子会猜错。打开输出文件你该看什么对接结果写在 PDBQT 末尾的 REMARK 里终端也会打印。核心看三列mode是构象编号affinity是结合能rmsd用来衡量构象间差异。按本项目文档这个示例体系在 Vina 力场下预期最佳得分约为-13 kcal/mol如果用 AutoDock4 力场需要先用autogrid4 -p 1iep_receptor.gpf -l 1iep_receptor.glg预计算亲和图谱再用vina --scoring ad4对接预期约-14 kcal/mol。这里有个特别提醒两个力场的分数不能互相比较它们衡量方式不同。想用 AutoDock4 力场时命令长这样# 先用 AutoGrid4 根据 GPF 文件预计算各原子类型的亲和能图谱 autogrid4 -p 1iep_receptor.gpf -l 1iep_receptor.glg # 指定 --scoring ad4 走 AutoDock4 力场 vina --ligand 1iep_ligand.pdbqt --maps 1iep_receptor --scoring ad4 \ --exhaustiveness 32 --out 1iep_ligand_ad4_out.pdbqt五个高频翻车现场与排查清单现象 1报错can not open conf.txt但文件明明存在。原因文件浏览器隐藏了扩展名实际文件叫conf.txt.txt。 解决在终端用ls看真实文件名或关闭隐藏已知文件扩展名选项。现象 2盒子体积警告超过 27000 立方埃。原因你按 AutoDock 4 的习惯填了格点数。 解决Vina 的尺寸单位是埃直接填埃即可若确实需要大盒子请同步调高 exhaustiveness。现象 3同样的输入两次跑出来的构象不一样。原因Vina 的搜索算法是随机优化的天然非确定性。 解决多次运行取稳定结果或用相同随机种子复现。现象 4结果分数很高但结合构象明显不对。原因很可能是配体或受体质子化状态错误尤其是组氨酸、天冬氨酸这类残基。 解决回到准备步骤检查氢原子这是新手最常忽略、影响却最大的环节。现象 5输出的构象数总比--num_modes指定的少。原因--num_modes是上限实际输出还受energy_range约束。 解决需要更多构象时适当调大 energy_range。更进一步的玩法柔性侧链与脚本批量跑通一次刚性对接后你可以按兴趣挑方向进阶柔性对接让受体里个别侧链动起来更贴近真实诱导契合。准备时给mk_prepare_receptor.py加-f A:315 -a会生成 rigid 和 flex 两份 PDBQT对接时用--flex指定柔性部分即可。特殊场景项目还支持水合对接、大环化合物对接、多配体同时对接示例分别在example/hydrated_docking/、example/docking_with_macrocycles/、example/mulitple_ligands_docking/。脚本批量装好 Python 绑定后几十行代码就能批量对接做虚拟筛选的核心逻辑就在这from vina import Vina v Vina(sf_namevina) # 选用 Vina 力场 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]) v.dock(exhaustiveness32, n_poses20) # 搜索并保留 20 个构象 v.write_poses(output.pdbqt, n_poses5) # 输出排名前 5 的构象完整可运行脚本在example/python_scripting/first_example.py改改文件路径就能直接用。读完本文你应该掌握的清单清楚受体、配体、对接盒子、PDBQT 四个概念分别对应哪条命令会用 meeko 把 PDB 和 SDF 转成 PDBQT并用盒子 TXT 驱动对接能读懂终端输出的打分表知道 -13/-14 kcal/mol 这类数值的含义遇到文件找不到盒子太大结果不稳定时能自己定位原因知道柔性对接和 Python 脚本这两条进阶路径的入口接下来想深入优先看这几处基础对接全文在 docs/source/docking_basic.rst安装细节在 docs/source/installation.rst疑难杂症都在 docs/source/faq.rst而 example/basic_docking/ 里的 solution 目录放着每一步的预期输出可以拿来对照验证。跑通一遍之后你就可以换自己的分子了。【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ComfyUI-Manager终极指南:3步掌握离线ZIP包安装技巧,彻底告别网络依赖

ComfyUI-Manager终极指南:3步掌握离线ZIP包安装技巧,彻底告别网络依赖

ComfyUI-Manager终极指南:3步掌握离线ZIP包安装技巧,彻底告别网络依赖 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable…

2026/10/25 7:28:57 阅读更多 →
特斯拉自动驾驶视觉系统:为何用“五菱宏光”模型实现高效目标检测

特斯拉自动驾驶视觉系统:为何用“五菱宏光”模型实现高效目标检测

1. 一个“简单粗暴”的决策:为什么特斯拉的视觉系统会“看扁”所有车 最近在跟一个做自动驾驶感知的朋友聊天,他提到一个特别有意思的业内“梗”,说特斯拉的Autopilot在数据标注和模型训练时,有一个非常“接地气”的策略&#xff…

2026/10/25 18:49:23 阅读更多 →
PotPlayer字幕翻译插件完整配置指南:如何实现外语视频实时翻译

PotPlayer字幕翻译插件完整配置指南:如何实现外语视频实时翻译

PotPlayer字幕翻译插件完整配置指南:如何实现外语视频实时翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 对于经常观看…

2026/10/24 13:44:13 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →