ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

分子对接实战:用AutoDock Vina从零跑通第一个药物结合案例的完整教程

分子对接实战:用AutoDock Vina从零跑通第一个药物结合案例的完整教程 分子对接实战用AutoDock Vina从零跑通第一个药物结合案例的完整教程【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina拿到一个蛋白质的结构文件手头还有几个候选药物分子你想知道它们会不会结合、以什么姿势结合——这是做药物设计的人几乎都会卡在的第一步。AutoDock Vina 正是为解决这个问题而生的开源分子对接引擎给它一个受体、一个配体和一个搜索区域它就能预测两者最可能的结合方式并给出结合亲和力分数。本文不堆参数也不背概念而是带你从零开始完整跑通一个真实案例并学会排查最常见的报错。AutoDock Vina 由 Scripps 研究所开发Apache 2.0 协议开源是当前学术界和工业界使用最广泛的对接引擎之一。它有四个特别打动我的特点计算速度快比老一代工具明显更省时间、完全免费、内置 Vina 与 AutoDock4.2 两套打分函数、还支持大环分子、水合对接、批量虚拟筛选以及 Python 3 脚本调用。下面我们就一步步把它跑起来。为什么我选了 AutoDock Vina 而不是别的对接软件先别急着装软件花两分钟想清楚选谁的问题。市面上能做分子对接的工具不少但 AutoDock Vina 对新手格外友好原因有三个维度AutoDock Vina 的表现上手成本一条命令就能跑配置文件用纯文本即可计算速度梯度优化 多线程比传统算法快很多生态配套官方文档、示例案例、Python 接口一应俱全从工作流程图里你也能看到一次完整对接由三步组成结构预处理 → 对接输入准备 → 对接计算与结果导出。预处理环节靠 Meeko 工具包完成真正的计算则交给 Vina 引擎。这个分工很清晰我们后面就按这个顺序走。打个比方对接就像帮两个陌生人找到最舒服的牵手姿势受体是那个不太动弹的人配体是主动凑上去的那位Vina 负责在给定范围内反复尝试各种角度和位置最后把最不别扭、能量最低的几种姿势排好队递给你。装好三样东西十分钟完成环境准备在开始之前你需要三样东西Python 3、AutoDock Vina 本体、以及负责文件格式转换的Meeko工具包。推荐用虚拟环境安装避免污染系统自带的 Python。如果你用 pip一条命令就能装齐pip install -U numpy scipy rdkit vina meeko gemmi prody如果你习惯用 conda可以专门建一个叫vina的环境conda create -n vina python3 conda activate vina conda config --env --add channels conda-forge conda install -c conda-forge numpy scipy rdkit vina meeko gemmi autogrid安装成功后在终端输入下面三个命令应该都能找到它们mk_prepare_ligand.py --help mk_prepare_receptor.py --help vina --version然后获取官方示例数据。项目仓库里已经帮你准备好了全套输入文件、配置文件甚至预期输出直接拿来练手git clone https://gitcode.com/gh_mirrors/au/AutoDock-Vina cd AutoDock-Vina克隆下来的项目结构大致是这样example/目录是咱们今天的训练场AutoDock-Vina/ ├── docs/ # 完整官方文档 ├── example/ # 各类对接示例 │ ├── basic_docking/ # 基础对接本文主角 │ ├── flexible_docking/ # 柔性侧链对接 │ ├── hydrated_docking/ # 水合对接 │ └── python_scripting/ # Python 脚本示例 ├── src/ # C 源代码 └── data/ # 力场参数文件第一个实战把抗癌药分子对接到 c-Abl 蛋白里今天我们要复现的是官方文档 docs/source/docking_basic.rst 里的经典案例把抗癌药伊马替尼imatinibGleevec对接到 c-Abl 激酶结构域上。c-Abl 是慢性粒细胞白血病治疗的重要靶点这个例子数据完整、结果可预期特别适合第一次上手。先进入示例目录cd example/basic_docking/data你会看到两个文件1iep_receptorH.pdb含氢原子的受体和1iep_ligand.sdf配体 3D 结构。所有步骤的预期输出都在solution/子目录里跑完可以对照。第一步把受体收拾成 Vina 认识的格式Vina 计算时用的是 PDBQT 格式它比 PDB 多了原子类型和电荷信息。用 Meeko 的受体准备脚本一步到位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/-o输入输出文件-p生成受体 PDBQT 文件-v同时生成对接盒子文件后面要用的配置文件--box_size/--box_center以埃Å为单位指定搜索盒子的长宽高和中心坐标。第二步给配体也拍一张证件照配体同样要转成 PDBQT。注意文档里有个贴心提醒小分子尽量别用 PDB 格式当输入因为它不含化学键连接信息容易出错。我们用的是 SDF 格式mk_prepare_ligand.py -i 1iep_ligand.sdf -o 1iep_ligand.pdbqt做完这两步你的目录下应该出现了1iep_receptor.pdbqt和1iep_ligand.pdbqt两个文件。第三步用配置文件圈出活动场地对接不能在整个蛋白上瞎找你得先圈出配体可能结合的活性口袋。刚才-v参数已经生成了一个现成的配置文件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翻译成人话就是以坐标 (15.190, 53.903, 16.917) 为中心划一个 20×20×20 Å 的立方体作为搜索区域。盒子划得越小越精准但千万别把真正的作用位点划出去。第四步运行对接并等待结果材料齐了正式开工。用 Vina 力场默认跑一次对接vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt \ --exhaustiveness 32 --out 1iep_ligand_vina_out.pdbqtexhaustiveness是搜得有多仔细的旋钮默认值是 8改成 32 会得到更稳定的结果代价是耗时变长。屏幕上会出现一条进度条跑完后结果就写进了1iep_ligand_vina_out.pdbqt。如果你的受体之前已经生成了 AutoGrid 的亲和力图那些.map和.maps.fld文件也可以换用 AutoDock4 打分函数命令几乎一样只是把输入换成 maps、加上--scoring ad4vina --ligand 1iep_ligand.pdbqt --maps 1iep_receptor --scoring ad4 \ --exhaustiveness 32 --out 1iep_ligand_ad4_out.pdbqt三分钟看懂对接结果那一串数字到底在说什么打开终端输出你会看到类似下面这样的表格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.41mode第几个结合构象1 号是分数最好的affinity预测的结合亲和力单位 kcal/mol。负值代表能结合数值越小负得越多表示结合越强rmsd不同构象之间相差多大帮你判断它们是不是同一个姿势的微小抖动。按照官方文档的说明用 Vina 力场跑这个案例最佳分数应该在-13 kcal/mol 左右如果刚才用的是 AutoDock4 力场则约为-14 kcal/mol。这里有个新手常踩的坑两套打分函数的分数不能互相比较所以汇报结果时一定要注明用的哪套力场。另外想把结果拿到 PyMOL、ChimeraX 里做可视化或者交给下游软件处理时最好把 PDBQT 转回 SDF 格式这样键级和电荷信息才不会丢mk_export.py 1iep_ligand_vina_out.pdbqt -s 1iep_ligand_vina_out.sdf到这里你已经完整跑通了人生第一次分子对接。接下来看看这个工具还能玩出什么花样。四个进阶玩法批量筛选、柔性侧链、水分子和大环玩法一批量虚拟筛选。手里有一堆候选分子要逐个测试时配合配置文件循环调用即可for ligand_file in *.pdbqt; do vina --receptor receptor.pdbqt --ligand $ligand_file \ --config config.txt --out results_${ligand_file} done玩法二柔性对接。真实场景里蛋白的侧链也会动。Vina 允许你把受体拆成刚体部分 柔性侧链在 example/flexible_docking 里就有把 Thr315 设为柔性残基的完整案例准备受体时加一个参数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对接时把柔性文件用--flex传进去vina --receptor 1fpu_receptor_rigid.pdbqt --flex 1fpu_receptor_flex.pdbqt \ --ligand 1iep_ligand.pdbqt --config ... --out ...玩法三水合对接。水分子有时是结合的关键配角。参考 example/hydrated_docking 的案例可以在对接中显式考虑水分子的影响流程和基础对接一致只是输入结构里多带了水。玩法四大环分子。大环配体的环状骨架不能按普通可旋转键处理Vina 从 1.2 版本起专门支持柔性大环示例见 example/docking_with_macrocycles。隐藏彩蛋Python 脚本。如果你会一点 Pythonexample/python_scripting/first_example.py 会给你惊喜。整个对接流程十几行就能写完from vina import Vina v Vina(sf_namevina) 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]) print(Score before minimization: %.3f (kcal/mol) % v.score()[0]) v.optimize() v.dock(exhaustiveness32, n_poses20) v.write_poses(1iep_ligand_vina_out.pdbqt, n_poses5, overwriteTrue)这意味着你可以把对接放进自动化流程里批量处理、批量打分官方文档见 docs/source/docking_python.rst。新手最容易翻车的六个坑我替你踩过了以下是 docs/source/faq.rst 里被问得最多的问题加上我自己的血泪教训报错 can not open conf.txt文件明明存在多半是文件被命名成了conf.txt.txt系统隐藏了扩展名或者你不在文件所在目录。用ls确认一下。提示搜索空间超过 27000 ų这是把单位搞错了——Vina 的盒子尺寸单位是埃不是 AutoDock4 里的格点1 格点 0.375 Å。对接结果不对、和教程对不上对接算法本质是随机的每次结果都可能略有不同。想要可复现就在命令里手动指定同一个--seed。配体没有质子化成功与否常常就悬在一个氢原子上。输入结构里氢的数量和位置会影响氢键供体/受体的判定务必先检查质子化状态。用了旧教程的命令报 usage error老版本里的--all已经被--out取代了跟着新文档走。在集群上报 boost thread resource 错误这是运行环境禁止了多线程属于服务器配置问题找管理员解决不是你的命令写错了。给你的一道动手挑战题 延伸阅读理论知识到此为止是时候自己动手了。给你留一个 15 分钟的小挑战把example/basic_docking/data/里的1iep_ligand.sdf换成你自己的一个小分子比如从 PubChem 下载的 SDF重新走一遍受体准备 → 配体准备 → 配置盒子 → 运行对接的流程看看分数和姿势有什么变化。盒子中心坐标可以从原配体所在位置推测也可以用其他口袋预测工具辅助确定。想继续深入官方文档都在docs/source/目录下安装细节看 docs/source/installation.rst基础对接看 docs/source/docking_basic.rst柔性、水合、批量对接各有独立章节。C 源码在src/里比如src/lib/scoring_function.h定义了打分函数src/main/main.cpp是命令行入口好奇的同学可以翻一翻。下一期我会带大家做一次真实的虚拟筛选实战准备一个包含几十个配体的化合物库用 Vina 批量对接后按分数排序并教你如何结合 RMSD 与已知活性数据评估筛选质量。核心要点速览环节关键命令/文件一句话要点安装pip install vina meeko用虚拟环境安装最省心受体准备mk_prepare_receptor.py输出 PDBQT可顺带生成盒子配置配体准备mk_prepare_ligand.py别用 PDB 格式当小分子输入搜索盒子config.txt的 center/size单位是埃不是格点运行对接vina --receptor --ligand --configexhaustiveness 32结果更稳结果解读affinitykcal/mol负得越多结合越强ad4 与 vina 分数不可比结果导出mk_export.py转 SDF 保键级方便可视化进阶flexible / hydrated / batch / Python所有示例都在example/目录分子对接是一门越跑越熟的手艺最好的学习方式就是把你手头那个分子丢进 Vina 里跑一次。现在就去试试吧跑通了记得回来对照 solution 目录看看你离官方结果有多近。【免费下载链接】AutoDock-VinaAutoDock Vina项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表