mcpField
M
molecular-docking

molecular-docking

github.com/awslabs数据与数据库6877 次安装4 周前更新
代码仓库

关于 molecular-docking

面向分子对接工作流的推理技能,帮助研究者选择受体与配体准备工具、设置网格和调整搜索参数。其重点是通过共晶配体重对接验证流程,识别可能导致错误构象的设置问题。

主要功能

  1. 01受体与配体工具选择
  2. 02网格范围设置指导
  3. 03搜索参数调整
  4. 04共晶配体重对接验证
  5. 05常见对接错误排查

适用场景

  1. 01规划虚拟筛选准备流程
  2. 02为结合位点设置网格
  3. 03筛选前验证对接设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/awslabs/hcls-agent-skills --skill molecular-docking

安装后在 Claude Code 中输入/molecular-docking确认已加载。

详细介绍

分子对接 — 流水线技能(精简框架)

概述

为受体/配体制备工具选择、网格盒尺寸设置、穷举度调整和验证流程添加决策逻辑。重点关注那些会导致姿势悄然出错的问题。

用法

  • 在对接项目中选择制备工具(obabel 或 ADFR/meeko)时启用
  • 定义网格盒尺寸或位置时启用
  • 通过重新对接验证对接设置时启用

核心概念

决策逻辑

Receptor preparation tool:
├── Quick exploration / single ligand → obabel (-d, reduce, -xr)
└── Production virtual screen → prepare_receptor (ADFR) or meeko
    └── Handles altlocs, metals, non-standard residues correctly

Ligand preparation:
├── Single ligand from SMILES/SDF → obabel --gen3d -h
├── Large library (>100 ligands) → meeko (mk_prepare_ligand.py)
└── Stereocenters undefined? → Enumerate explicitly BEFORE docking

Grid box placement:
├── Co-crystal ligand available → Center on ligand centroid
└── No co-crystal → Use pocket predictor (fpocket, P2Rank, SiteMap)

Grid box sizing:
└── Ligand longest diameter + 10–15 Å padding per axis
    └── Typical: 20–30 Å per side for drug-like molecules

Exhaustiveness:
├── Quick exploration → 8 (Vina default)
├── Production / ranking → 32
└── Large/flexible ligands (>8 rotatable bonds) → 64+

验证关卡(必须通过后才能信任筛选结果): 重新对接共晶配体 → 相对于晶体学姿势的 RMSD < 2 Å。若未通过,请先修正制备或网格设置,再进行筛选。

关键参数

参数建议值何时更改
exhaustiveness32可旋转键 >8 时设为 64+
num_modes10进行集成分析时增加
energy_range3 kcal/mol扩大范围以捕获多样的姿势
Box padding+10–15 Å变构位点使用更大的值
Protonation pH7.0(降低默认值)酸性口袋使用 PROPKA/H++(例如,天冬氨酸蛋白酶的 pH 4.5)

评分解读:

  • Vina 评分只能在相同的受体 + 网格设置下比较
  • 类药性命中分子的典型评分:-7 至 -12 kcal/mol
  • 评分不能在不同靶点或网格配置之间直接比较

常见错误

  • 错误: 将晶体学水分子留在受体中 正确: PDBQT 转换前移除 HOH/WAT 残基(除非进行显式水分子对接) 原因: 水分子会阻塞结合位点,并产生不符合物理规律的姿势

  • 错误: 对所有结合位点都使用默认的 pH 7 质子化设置 正确: 酸性/碱性口袋使用 PROPKA 或 H++ 原因: 错误的质子化状态会改变氢键网络并产生错误姿势

  • 错误: 网格盒仅勉强包住结合位点 正确: 每个轴向均按配体直径 + 10–15 Å 留出边距 原因: 边距不足会截断位点,并使姿势偏向盒子中心

  • 错误: 对大型/柔性配体使用默认的 exhaustiveness = 8 正确: 正式运行时使用 32+;可旋转键 >8 时使用 64+ 原因: 穷举度低会错过全局最小值,导致排序不可靠

  • 错误: 筛选前跳过重新对接验证 正确: 重新对接共晶配体,并确认 RMSD < 2 Å 原因: RMSD ≥ 2 Å 表明制备或网格设置有误,筛选结果不可信

  • 错误: 在正式虚拟筛选中使用 obabel -xr PDBQT 正确: 正式运行时使用 prepare_receptor(ADFR)或 meeko 原因: obabel 可能会遗漏 altloc、金属或非标准残基

  • 错误: 对立体中心未定义的 SMILES 运行 obabel --gen3d 正确: 提供异构 SMILES,或显式枚举立体异构体 原因: 未定义的立体中心会被任意指定,可能导致对接的是错误的对映体

  • 错误: 比较不同受体或网格配置下的 Vina 亲和力 正确: 只在相同受体 + 网格设置下比较;更改其中任一项时重新排序 原因: 评分取决于具体条件,不能直接比较

响应格式

  • 先给出用户需要的命令或代码,再作解释
  • 结构为:确认输入 → 可运行代码 → 说明关键参数 → 注意事项
  • 每项任务提供一个完整可运行的示例;不要展示所有替代方案
  • 代码注释保持精简且实用(说明做什么,而非存在原因)
  • 目标:50–100 行代码,并附简短说明

评论

支持 Markdown