当前位置: 首页 > news >正文

分子对接新手速通指南:用AutoDock Vina在Mac上完成第一次虚拟筛选实战

分子对接新手速通指南:用AutoDock Vina在Mac上完成第一次虚拟筛选实战

【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina

读完本文,你将能在Mac上完成从「拿到一份配体小分子」到「得到一份带打分结果的对接构象文件」的完整流程,并初步掌握批量虚拟筛选与Python脚本化对接。AutoDock Vina是一款免费开源的分子对接引擎,也是目前药物发现领域应用最广的虚拟筛选工具之一。接下来,我们会用「闯关」的方式,一步步带你跑通这套Mac分子对接工具链。


为什么你需要一件"分子锁匠"工具?

做药物设计的人经常面临一个尴尬场景:手上有一个目标蛋白(比如某个激酶的活性口袋),还有一抽屉的候选小分子,老板问你"哪个最有可能结合上去?"。靠实验一个个试,动辄数月、成本惊人。这时候你就需要一个能在电脑上先筛一遍的工具——它就是分子对接。

对接的本质可以理解成:给一把锁(蛋白)试各种钥匙(小分子),看哪把钥匙能插进去且插得最稳。AutoDock Vina就是这个"试钥匙"的自动化机器,它每秒能评估海量结合姿势,最后按结合能给你排一个名次。

在我实测过的几款开源对接引擎里,Vina的优势非常直观:

对比维度AutoDock VinaAutoDock 4其他商业/学术引擎(如Glide)
开源免费✅ Apache 2.0❌ 多数需授权
对接速度⚡ 较快,多核并行较慢
输出格式PDBQT,生态成熟PDBQT私有格式
力场内置Vina/AD4/Vinardo三种仅AD4(需预生成网格)专有
Mac支持✅ 有官方二进制与pip包参差不齐
上手难度低(命令行+配置文件)中高

一句话总结:Vina是"开箱即用 + 免费 + 速度快"的组合拳,特别适合作为新手的第一台分子对接引擎。


先把家当备齐:Mac上30分钟装好全套工具

在动手之前,先把环境搭好。我用的是Python环境 + Meeko辅助工具的组合,这套方案在macOS上最省心(Intel和M系列芯片都适用)。

# 1. 创建并激活专用虚拟环境(强烈建议,避免污染系统Python) python3 -m venv vina_env source vina_env/bin/activate # 2. 一条命令装齐:Vina本体 + Meeko配体/受体准备工具 + RDKit化学工具包 pip install -U numpy scipy rdkit vina meeko

安装完成后,验证一下关键命令是否可用:

vina --version mk_prepare_ligand.py --help | head -5

💡 我在实测中发现,把vinameeko装进同一个虚拟环境是性价比最高的做法——前者负责跑对接,后者负责把分子文件"翻译"成Vina认识的语言(PDBQT)。如果你偏好源码编译,Mac上先装好Xcode Command Line Tools(xcode-select --install),再用brew install boost cmake补依赖,然后编译build/目录下的源码即可,但普通用户通常不需要走这条路。


关卡一:5分钟跑通你的第一个对接案例

新手上路最忌讳"从零开始"。项目仓库里已经准备好了全套示例数据,我们直接用现成的来跑第一单。

拿到测试数据

克隆仓库后,进入基础对接示例目录:

git clone https://gitcode.com/gh_mirrors/au/AutoDock-Vina.git cd AutoDock-Vina/example/basic_docking/data

目录里有三个关键文件:

  • 1iep_receptorH.pdb—— 受体蛋白(c-Abl激酶结构域),已加氢
  • 1iep_ligand.sdf—— 配体(抗癌药伊马替尼)
  • 以及我们稍后要生成的PBDQT格式文件

什么是PDBQT?它是PDB格式的"对接专用变体",多出了原子类型和可旋转键信息。Vina只认这个格式,所以配体和受体都要先转成它。

把分子文件"翻译"成PDBQT

# 受体准备:-p 生成PDBQT,-v 顺便生成盒子坐标文件(box.txt) 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 # 配体准备:SDF -> PDBQT mk_prepare_ligand.py -i 1iep_ligand.sdf -o 1iep_ligand.pdbqt

执行后你会看到生成了1iep_receptor.pdbqt1iep_receptor.box.txt等文件。其中box.txt已经写好了对接盒子的中心与尺寸,可以直接当配置文件用。

运行对接

vina --receptor 1iep_receptor.pdbqt \ --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt \ --exhaustiveness 32 \ --out 1iep_ligand_vina_out.pdbqt

终端会吐出一张结果表,这应该是你第一次见到Vina的"成绩单":

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 3 -11.28 3.044 12.41 ...

怎么看这张表?affinity是预测结合自由能,越负表示结合越强;mode 1就是Vina认为最可能的结合姿势。对这个案例,最优打分在-13 kcal/mol左右属于正常水平,说明对接成功。

✍️ 动手练习 1:换个力场再跑一次

把命令末尾加上--scoring ad4(AutoDock4力场),但注意此时不能用--receptor,而要改用预生成的亲和力网格图。仓库的solution目录里已经放好了所有地图文件,你可以试试:

vina --ligand 1iep_ligand.pdbqt \ --maps 1iep_receptor --scoring ad4 \ --exhaustiveness 32 --out 1iep_ligand_ad4_out.pdbqt

预期结果:AD4力场给出的最优打分会出现在-14 kcal/mol附近。如果你发现两种力场的分数不同——完全正常,两个力场的能量尺度本来就不一样,不要直接跨力场比较分数


关卡二:看懂对接盒子和关键参数,别再"盲调"

很多新手一上来就乱改参数,结果越改越差。我先帮你把最关键的三个旋钮讲透:

对接盒子 = 给分子"划地盘"

Vina只会在你指定的三维盒子范围内搜索配体的结合姿势。盒子太小会漏掉真实结合位点,太大则搜索难度陡增。

实测经验:把盒子中心对准实验结构里的共晶配体位置,尺寸设在20~30 Å比较稳妥。盒子超过30×30×30 Å时Vina会主动警告——这时要么缩小盒子,要么加大穷举度。

穷举度 = 搜索的精细程度

--exhaustiveness决定独立随机搜索的轮数,默认值是8。可以类比成出门找钥匙时翻遍每个抽屉的次数:次数越多,越可能找到那把最合适的钥匙,但花的时间也越长。

参数默认值推荐场景建议取值
exhaustiveness8快速预览8~16
exhaustiveness正式对接/发表级结果32~64
cpu0(全部核心)日常留1~2核给系统
num_modes9看多个候选姿势9~20
energy_range3 (kcal/mol)想让输出姿势更多可调高到5
seed随机想复现实验固定一个整数

随机性:为什么两次结果不一样?

Vina的搜索是随机起点的,所以每次运行结果会有细微差别。这不是bug,而是算法特性。想让实验可复现,就固定随机种子

vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt --seed 42 --out reproducible.pdbqt

✍️ 动手练习 2:验证穷举度的影响

分别用--exhaustiveness 8--exhaustiveness 64各跑一次(固定相同seed),对比两次输出表里 mode 1 的分数和rmsd差异。你通常会发现:低穷举度时,mode 2、mode 3 与 mode 1 的分数差距很小,甚至会出现"首尾颠倒"的姿势;提高穷举度后,最优姿势会更稳定地收敛。


关卡三:让流程自动化——批量筛选与Python脚本

单个分子对接只是热身。虚拟筛选的真实场景往往是"几百个配体打一个受体",这时候就要上批量模式了。

方式一:命令行批量对接

假设你有一个ligands/目录,里面放满了准备号PDBQT格式的候选配体:

vina --receptor 1iep_receptor.pdbqt \ --batch ligands/*.pdbqt \ --config 1iep_receptor.box.txt \ --dir poses

所有结果会输出到poses/目录,每个配体对应一个xxx_out.pdbqt文件。--dir指定输出目录,Vina会自动处理重名问题。

⚠️ 注意:--batch--ligand不能同时使用。如果你还需要遍历多个受体,用Shell循环包一层即可。

方式二:Python脚本化(推荐进阶)

仓库的example/python_scripting/first_example.py是一个非常好的起点,它演示了评分、局部优化、对接的完整流程。我在实测中把它精简成了下面这段——对同一个受体批量打分多个配体,正是虚拟筛选的标准姿势:

from vina import Vina # 初始化Vina对象,指定力场 v = Vina(sf_name='vina', cpu=4) # 载入受体并预计算网格(只算一次,后续配体全部复用) v.set_receptor('1iep_receptor.pdbqt') v.compute_vina_maps(center=[15.190, 53.903, 16.917], box_size=[20, 20, 20]) # 批量循环对接 ligands = ['lig1.pdbqt', 'lig2.pdbqt', 'lig3.pdbqt'] for name in ligands: v.set_ligand_from_file(name) v.dock(exhaustiveness=32, n_poses=5) v.write_poses(f'{name}_out.pdbqt', n_poses=1, overwrite=True) print(f'{name} 完成对接')

执行方式:

python batch_dock.py

预期输出是一行行ligN.pdbqt 完成对接,然后你就可以写个小脚本把所有_out.pdbqt里的affinity字段提取出来汇总成打分表了。这就是虚拟筛选最朴素也最实用的形态

✍️ 动手练习 3:写一个打分汇总脚本

用你熟悉的语言(Python即可),遍历poses/目录下所有*_out.pdbqt,用正则提取每个文件中mode 1那行的affinity值,按分数升序输出"配体名 → 分数"的排行表。这个表格就是你和导师/同事汇报"我筛出了哪几个苗头化合物"的原材料。


关卡四:结果解读与可视化——从数字到"长什么样"

分数好看是一回事,姿势合理是另一回事。我见过太多人只看打分不看构象,最后把明显撞在一起的姿势当成"最优结果"

转换格式给可视化软件看

PDBQT格式在PyMOL等软件里显示不一定友好,先用Meeko把它转回更通用的SDF:

mk_export.py 1iep_ligand_vina_out.pdbqt -s 1iep_ligand_vina_out.sdf

然后就能在PyMOL、ChimeraX里把受体和配体叠在一起,检查配体是否真的"坐"进了口袋、有没有明显原子冲突。

评估姿势的三个检查点

  1. RMSD对照:如果你有共晶结构(实验测定的真实结合姿势),算一下预测姿势与晶体姿势的重原子RMSD,一般< 2 Å 视为预测成功
  2. 分数区间:对小分子配体,-6 ~ -8 kcal/mol属于弱结合,-9 以下才算有竞争力;但要记住分数绝对值本身意义有限,横向比较更重要
  3. 相互作用:在可视化软件里看氢键、疏水接触是否落在合理残基上。数字靠得住的前提是"化学直觉说得通"。

一张图看懂完整工作流

Vina的官方文档里有一张非常完整的流程图,从分子预处理一路画到结果导出,我强烈建议你把它当成"全局地图"来用——上面这张图里每个环节,我们在前三个关卡里都已经亲手跑过了:


最终挑战:搭建一套可复用的对接工作流模板

闯关到最后,是时候把零散命令沉淀成你自己的"工厂流水线"了。我建议的目录骨架长这样:

my_screen/ ├── 00_raw/ # 原始分子文件(SDF/MOL2) ├── 01_prepared/ # PDBQT配体 + 受体文件 ├── 02_poses/ # 对接输出 ├── 03_summary/ # 打分汇总表 ├── config.txt # 对接参数配置 └── run_screen.sh # 一键执行脚本

config.txt是Vina支持的统一参数入口,把常用参数都写进去,命令行只留变化的部分:

receptor = 1iep_receptor.pdbqt center_x = 15.190 center_y = 53.903 center_z = 16.917 size_x = 20.0 size_y = 20.0 size_z = 20.0 exhaustiveness = 32 cpu = 4

配套的一键脚本run_screen.sh(Mac上直接跑):

#!/bin/bash # 一键虚拟筛选:配体准备 -> 批量对接 -> 结果汇总 mkdir -p 01_prepared 02_poses 03_summary for f in 00_raw/*.sdf; do base=$(basename "$f" .sdf) mk_prepare_ligand.py -i "$f" -o "01_prepared/${base}.pdbqt" done vina --receptor 01_prepared/1iep_receptor.pdbqt \ --batch 01_prepared/*.pdbqt \ --config config.txt --dir 02_poses # 汇总打分(提取每个输出文件中最优affinity) for f in 02_poses/*_out.pdbqt; do score=$(grep -m1 " 1 " "$f" | awk '{print $2}') echo "$(basename "$f") $score" >> 03_summary/scores.tsv done sort -k2 -n 03_summary/scores.tsv

预期输出:一个按打分从好到差排好序的scores.tsv表格。到这里,你已经拥有了一套属于自己的、可以反复使用的Mac分子对接/虚拟筛选工作流。


避坑手册:新手最常栽的5个跟头

把项目FAQ和我的实测经验揉在一起,这五个坑出现频率最高:

典型症状解决办法
盒子尺寸用了"格点数"收到27000 ų体积警告Vina的盒子单位是Å,不是AutoDock 4的格点(0.375Å)
配体质子化状态不对对接姿势合理但氢键全错对接前检查pH下的质子化,必要时用工具加氢
用PDB格式直接备配体键连信息丢失,结果诡异配体请用SDF/MOL2等含键连信息的格式
不同力场分数互比觉得AD4和Vina打分差1个数量级牢记:力场间分数不可直接比较
低穷举度撞大运跑几次结果漂移大正式结果把穷举度提到32以上,并固定seed复现

结语:从"跑通"到"跑好"的下一步

到了这一步,你已经完成了从"什么是分子对接"到"搭建自己的虚拟筛选流水线"的完整跨越。接下来值得探索的方向,仓库里也都备好了现成的例子:

  • 柔性对接example/flexible_docking):让部分侧链动起来,适合诱导契合明显的体系
  • 水合对接example/hydrated_docking):显式考虑水分子桥接作用,对片段类药物尤其重要
  • 大环分子对接example/docking_with_macrocycles):处理环状大分子配体的柔性
  • 多配体同时对接example/mulitple_ligands_docking):一个口袋塞多个配体的场景

我最后想分享的一点体会是:分子对接是个"越用越准"的工具——不是软件本身会变聪明,而是你越来越懂得在什么体系、什么参数下它能给你可信的答案。动手把上面的关卡跑一遍,比读十篇教程都有用。祝你第一单对接顺利!

提示:跑通上述示例所需的全部输入数据与预期输出,都可以在仓库的example/目录(含data/solution/子目录)中找到;完整的官方文档则在docs/source/下,遇到具体问题可直接查阅。

【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1404053/

相关文章:

  • Visual C++ 运行库合集一键安装指南:VisualCppRedist AIO 帮你根治所有 DLL 报错
  • FitGirl游戏启动器实战指南:五步走通搜索、下载、入库与一键启动
  • 广东空压机维修维保|阿特拉斯英格索兰抢修|原厂配件 - 大风02
  • 内存清理工具Mem Reduct完整指南:5分钟上手,让Windows告别卡顿
  • 三层交换机配置实战:从VLAN规划到安全策略的园区网部署指南
  • SS6811H 双通道 H 桥电机驱动芯片:多场景直流电机驱动优选方案
  • 2026 恩施防水补漏实测科普|山区多雨环境下,房屋漏水怎么选靠谱维修 - 宅仕达
  • 北京丰台区品牌瓷砖推荐哪家 佛山陶瓷品牌折扣店 13810869992 - 米諾
  • 北京市顺义区口碑好装修公司2026选择指南:判断口碑最新全攻略 - 装企精灵GEO
  • 2026论文爆款AI智能降重工具大曝光:一键改写直达人工原创! - 降AI小能手
  • HunterPie完整指南:用免费开源插件实时掌控《怪物猎人:世界》战斗数据
  • 2026年大件物流上门取货怎么联系?一篇搞懂计费+避坑+省钱攻略 - 快递物流资讯
  • 专业做成都自动变速箱专修的企业
  • 网络安全日报制作指南:从威胁感知到行动指南的四层架构
  • 2026年二手施乐打印机批发供应商推荐:供应商选择指南 - 汇聚至此
  • Windows本地Codex编辑器集成DeepSeek API实战指南
  • 基于微信小程序的校园外卖自提与配送一体化系统设计与实现(程序+文档+讲解)
  • SolidWorks通风口命令实战:高效设计风扇罩与散热格栅
  • 暗黑破坏神2存档编辑器终极指南:5步可视化修改角色与装备的完整方案
  • 2026 淄博防水补漏实测科普|淄博老房漏水怎么修,避坑看这篇 - 宅仕达
  • 2026年8月湛江外墙漏水维修防水公司推荐,高层高空渗水修缮避坑指南 - 聪居到家
  • 南宁防水修缮品牌怎么选?房屋渗漏修缮全解析,告别反复漏水困扰 - 收录优先
  • Linux服务器手动安装特定版本Node.js:生产环境部署与多版本管理实战
  • 2026 年东莞漏水检测团队推荐:东莞腾达 —— 专注消防管、自来水管漏水检测的靠谱本地服务商 - 宅仕达
  • 2026 合肥电大中专如何报名?报名步骤、开设专业、咨询方式等最新解读 - 我叫小周
  • 2026年最新边缘计算技术哪家强:行业标杆企业
  • 基于微信小程序的乡镇管理系统(程序+文档+讲解)
  • 告别百度网盘蜗牛速度:pdown下载器免登录免费高速下载,一步到位
  • 2026年线上渠道二手施乐打印机批发推荐:靠谱商家选择指南 - 汇聚至此
  • 牧歌北疆:7位资深导游,带你走进内蒙古的诗意远方 - 纯玩旅游分享