智能体使用经验 DSDP Agent 教学贴|分子对接比你想象的更简单 🤖

Lin_Xiaohan · 2025年04月25日 · 最后由 mzc2113391 回复于 2025年04月25日 · 326 次阅读
本帖已被管理员设置为精华贴

1. 引子|什么是分子对接

分子对接(Molecular Docking)是一种计算模拟技术,用于预测两个分子(通常是一个小分子配体与一个大分子受体,例如蛋白质)之间的结合方式和结合强度。它在药物发现、分子识别机制研究和蛋白质工程等领域有广泛应用。本文将聚焦分子对接的一个最常见的应用场景:蛋白和小分子的对接(Protein-Ligand Docking)。

简而言之,分子对接试图回答两个核心问题:

  • 蛋白和小分子是否能够结合?结合强度是多少?(Affinity 预测问题)
  • 它们是怎么结合的,以什么样的结合姿态(Pose)结合?(Pose 采样问题)
图 1:蛋白和小分子对接图示

图 1:蛋白和小分子对接图示,图片来自于 wiki

除去现在愈发火热的 AI 分子对接方法,传统的分子对接方法,包括 AutoDock VinaGlideGninaDSDP 其背后的思想都大差不差:

  • 定义一套力场(能量函数);
  • 定义采样算法,在能量函数下做采样;
  • 定义打分函数(可以与力场相同或不同),对采样得到的构象进行排序。

在平台上集成的 Deep Site Docking Pose (DSDP, J. Chem. Inf. Model. 2023, 63, 14, 4355–4363) 是一款 GPU 加速的分子对接软件,通过结合传统分子对接和机器学习技术,预测蛋白质结合位点并优化搜索策略及初始位置,在 GPU 加速下显著提升了对接效率(1.秒/系统)和成功率,在虚拟筛选中综合性能优于主流工具。

2. 简介|分子对接的基本类型和步骤

2.1 分子对接的基本类型

常见的实用分子对接类型包括:

  • 刚性对接(Rigid Docking):受体蛋白被看作是刚体。
  • 柔性对接(Flexible Docking):受体蛋白的部分侧链的部分自由度可以在对接过程中发生变化。
  • 共价对接(Covalent Docking):受体蛋白和小分子共价结合。

如果按照使用场景来分,分子对接又可以分为:

  • 重对接(Redocking):受体蛋白的“口袋”(Binding Pocket)已知。
  • 盲对接(Blind Docking):受体蛋白的口袋未知,需要预测。

2.2 分子对接的基本步骤

  1. 预处理:获取并预处理配体和受体的 3D 结构(去水、加氢等)。这一步我们通常会使用一些常见的计算化学工具,比如 OpenBabel.pdbqt 是一种常见的用于分子对接的文件格式(Vina、Gnina、DSDP 都支持)。最终我们要将预处理好的文件转化为 .pdbqt 格式。
  2. 定义对接位点:定义受体的口袋区域。在重对接模式中,受体的口袋是已知的(通常通过已知配体的位置推断),可以直接以 [x_{min}, x_{max}], [y_{min}, y_{max}], [z_{min}, z_{max}] 的立方体区域形式作为参数传入。而在盲对接模式中,受体的口袋未知,需要对接模型做预测。
  3. 设置对接参数并运行对接程序:选择合适的对接软件进行对接模拟。
  4. 结果分析与筛选:根据打分函数评估结合能,挑选潜在的结合构象。 图 2:DSDP 的 workflow

    图 2:DSDP 的 workflow,图片来自于 J. Chem. Inf. Model. 2023, 63, 14, 4355–4363

看上去有点复杂,没关系,在 DSDP Agent 的帮助下,一切都变得很简单。

3. 实例|用 DSDP Agent 运行重对接

  • Step 1:选择 DSDP Agent 开始对话
  • Step 2:直接问他“帮我重对接一下 PDB: 6B8Y 中的蛋白和小分子” Agent 自动下载 6B8Y 的 PDB 文件,并开始解析 PDB 中包含的实体,它发现里面有一个蛋白链和一个叫做 D0A 的小分子 同时它也会告诉你下一步的计划
  • Step2:预处理 Agent 根据 Step1 中的分析,提取 6B8Y 中的蛋白和小分子 接着他会自动搜索 OpenBabel 的知识库,根据搜索到的结果执行 OpenBabel 的命令对蛋白和小分子文件加氢,并转化成 .pdbqt 文件 在这个过程中,你只要一直说“继续”就行,当然如果你发现它执行的命令不对🙅,也可以及时制止它。
  • Step3:定位口袋 在这个例子里,Agent 会根据 D0A 配体原本在复合物中的位置附近形成一个立方体形状的对接框(当然你也可以自己告诉他对接框在哪里,比如直接跟他说对接框在 x: [-10,10], y: [-10,10], z: [-10,10]) 在这里 Agent 找到的对接框是
  • Step4:对接 这时候 Agent 已经做好了对接的所有准备,可以开始对接了! 在可视化界面里你就可以看到对接以后的结构,和 6B8Y 中实验解析得到的复合物的结构还是非常接近的, 你也可以查看对接的分数 这里输出的是对接得到的结合自由能打分(越低 Affinity 越高),-12 对应一个很高的 Affinity。

这里 你可以看到完整的对话。

4 示例 | 用 DSDP Agent 运行盲对接

在一些应用场景里,我们不知道靶点蛋白的口袋在哪里,这时候我们需要运行盲对接,比如我们可以上传一个蛋白 .pdb 文件和小分子的 .pdb 文件,我们还是采用上面的例子,

  • Step1:预处理 这时候他大概率会解析你上传的蛋白和小分子的 .pdb 文件,确保里面是干净的,防止出错,如果你确认 .pdb 文件是干净的,也可以直接跟他说跳过实体解析,直接开始做预处理,例如 Agent 就会直接开始预处理操作, 或给出它的行动计划
  • Step2:找口袋 按照 Agent 的计划,下一步是找口袋, 执行成功后,你也可以在可视化空间中看到口袋的位置(导入原本蛋白的 .pdb. 文件,和 pocket 的 .mol2 文件)
  • Step3:对接 接下来就可以对接了! 对接结果也一样很好

这里 你可以看到完整的对话。

5 示例 | 用 DSDP Agent 运行批量对接(beta

⚠️:功能测试中,可能不稳定 在虚拟筛选中,我们需要针对同一个靶点,对接一批小分子,DSDP Agent 也支持这个功能,比如我们可以直接这么问

  • Step1:预处理 因为这时候我们给的小分子是 SMILES 格式,所以它搜索 OpenBabel 的知识库以后做出了如下决策
  • Step2:对接 在执行批量重对接之前,需要给一个 ligand list,这时候 DSDP Agent 会自己写一个 然后执行一个对接 可以看到这一批小分子的对接结构 也可以查看每个小分子的对接分数 (当然因为是随机选的 SMILES,Affinity 都很低)

这里 你可以看到完整的对话。

6 总结 | 分子对接和聊天一样简单

本文总结了用 DSDP Agent 执行各种分子对接的方法。AI 有可能犯蠢,以下这些 Tips 📒 可以帮助你提高成功率

  • 重开:遇事不决可以重开一个对话,Agent 作为概率模型,都是命运的选择 🙏
  • 分步:对于有一些对接知识的用户来说,可以给他更细致的指引,分步提示
  • 告诉他文件在哪:Agent 经常会“灾难性遗忘”,他有时候会忘记一些文件存在哪,这时候你可以提醒它一下
  • 深度思考(可能会有用):你告诉 Agent“深入思考一下 xxx 问题”会触发 Agent 的深度思考,有概率可以解决 bug
admin 将本帖设为了精华贴。 04月25日 10:14

🥰🥰🥰🤗🤗🤗

需要 登录 后方可回复, 如果你还没有账号请 注册新账号