技能使用指南

diffdock(扩散对接模型)Skill 是什么?如何下载安装?

扩散对接模型Skill(diffdock)用扩散模型预测蛋白质-配体3D结合姿态并输出置信分数,支持PDB或序列输入、单条与批量虚拟筛选,附安装步骤、参数调优、竞品对比与常见问题解答,帮你快速上手结构基础药物设计。

扩散对接模型Skilldiffdock
17 个章节 约 18 分钟阅读 AI 智能生成

扩散对接模型Skill:用扩散模型一键预测蛋白质-配体结合姿态

核心结论速览

  • 它是谁:扩散对接模型Skill(英文名 diffdock,技能ID 11968),把 DiffDock 这款基于扩散模型的分子对接工具封装为可被 AI 助手直接调用的技能,输入蛋白质结构与配体信息,就能输出 3D 结合姿态与置信分数。
  • 它做什么:预测小分子配体在蛋白质上的结合姿态(3D 结构)与模型置信度,用于虚拟筛选与结构基础药物设计;它不做亲和力预测(不输出 ΔG、Kd)。
  • 怎么用:既可以在 AI 技能平台按技能ID检索并"一键安装"到助手中用自然语言下达任务,也可以在本地按 Conda / Docker 两种方式部署完整运行环境。
  • 门槛与成本:强烈推荐 GPU(比 CPU 快 10—100 倍),模型检查点约 500MB 会在首次运行时自动下载,首次运行还需预计算查找表约 2—5 分钟。
  • 最适合谁:做结构基础药物发现、化学生物学、虚拟筛选的计算化学与 AI 制药团队,以及需要快速获得"配体大概结合在哪"的研究者。

该技能叫什么?如何下载安装 AI 技能提升开发效率?

技能身份信息

项目 内容
技能中文名 扩散对接模型Skill
技能英文名 diffdock
技能ID 11968
底层工具 DiffDock(含当前默认模型 DiffDock-L)
核心能力 蛋白质-配体 3D 结合姿态预测 + 置信分数生成
明确不做 结合亲和力预测、蛋白质-蛋白质对接、共价对接

它到底解决什么问题

传统分子对接依赖打分函数与搜索算法,在面对柔性配体、结合位点不明确的靶点时,容易陷入局部最优,且高度依赖人工设定搜索盒子(binding box)。扩散对接模型Skill 把分子对接重新表述为"从噪声中逐步去噪生成姿态"的生成式问题:模型直接给出多个候选结合姿态排序,并附上置信分数,让研究者在不需要预先指定结合口袋的前提下,快速拿到一批可解释、可排序的候选构象。它特别适合"这个分子可能结合在哪里"这类探索性问题,以及化合物库的初筛排序。

需要特别强调边界:DiffDock 输出的是结构(姿态)和确定性(置信度),不是结合强弱(亲和力)。因此官方指引要求始终配合 GNINA、MM/GBSA 等评分函数做亲和力再评估。

一键安装:把技能装进你的 AI 助手

思路是"先有助手,再装技能,最后验证"。具体步骤如下:

  1. 准备前提:拥有一个支持安装 AI 技能的助手/客户端账号,且具备可用的技能市场或技能库入口。
  2. 检索技能:在技能市场中检索技能ID 11968,或直接搜索中文名"扩散对接模型"、英文名"diffdock"。
  3. 一键安装:点击安装并启用该技能,授权其在需要时读取文件(如 PDB 文件)与执行任务。具体按钮位置、权限项与计费方式以官方说明为准。
  4. 验证是否生效:安装完成后,用一句自然语言试探,例如"帮我把这个配体对接一下这个蛋白质结构",观察助手是否会按 DiffDock 的工作流引导你提供 PDB 文件与 SMILES。若技能正常挂载,助手会主动询问蛋白质来源、配体格式与输出目录。

本地运行环境安装(真实命令,来自技能详情)

如果你需要跑完整计算,必须准备本地环境。技能详情提供了两种安装选项:

检查环境状态(务必先做)

python scripts/setup_check.py

该脚本会验证 Python 版本、带 CUDA 的 PyTorch、PyTorch Geometric、RDKit、ESM 等依赖项,并给出缺失项的安装指引。

选项1:Conda(推荐)

git clone https://github.com/gcorso/DiffDock.git
cd DiffDock
conda env create --file environment.yml
conda activate diffdock

选项2:Docker

docker pull rbgcsail/diffdock
docker run -it --gpus all --entrypoint /bin/bash rbgcsail/diffdock
micromamba activate diffdock

三条重要提示:强烈推荐使用 GPU;首次运行会预计算 SO(2)/SO(3) 查找表,耗时约 2—5 分钟;模型检查点(约 500MB)若本地不存在会自动下载。若希望零安装先体验,可使用官方在线演示(地址见技能详情中的资源链接,以官方说明为准)。


该技能的主要功能和特点

  • 生成式姿态预测:用扩散模型直接生成配体在蛋白口袋中的 3D 结合姿态,而不是逐格点搜索,天然支持多模态输出。
  • 蛋白质输入双通道:既支持结构文件(PDB),也支持仅给氨基酸序列——此时通过 ESMFold 折叠后再对接,非常适合尚无实验结构的靶点。
  • 配体格式兼容广:支持 SMILES 字符串,也支持 SDF、MOL2 等结构文件,RDKit 生态可直接衔接。
  • 内置置信分数体系:输出 confidence score 并按分数分层(>0 高、-1.5 到 0 中、<-1.5 低),帮助快速排雷。
  • 单条与批量统一接口:单复合物用 --protein_path + --ligand,批量用 CSV(--protein_ligand_csv),可直接支撑虚拟筛选。
  • 专为大规模筛选优化:支持预计算 ESM 蛋白质嵌入(esm_embedding_preparation.py),同一靶点筛上千化合物时显著提速。
  • 配套脚本齐全:prepare_batch_csv.py 生成并校验批量 CSV、analyze_results.py 解析与排名置信分数并导出 CSV、setup_check.py 诊断环境,形成完整闭环。
  • 参数可调、预设可用:采样数、推理步数、扭转温度等均可调,配置模板内置"高精度 / 快速筛选 / 柔性配体 / 刚性配体"四套预设。
  • 支持集成对接:对已知柔性的蛋白,可将同一配体对接到多个构象(ensemble),提高命中率。
  • 提供图形界面:python app/main.py 启动 Web 界面,适合不熟悉命令行的用户交互式使用。

与普通对接工具相比强在哪:不需要人工定义搜索盒子;把"打分排序"升级为"生成+置信度排序";对序列输入原生友好;批量与筛选工作流的脚本化程度更高。


如何使用该技能?

步骤一:确认环境

先运行 python scripts/setup_check.py,确认 CUDA 可用。可用下面一行验证 GPU:

python -c "import torch; print(torch.cuda.is_available())"

若返回 False,请先配置 GPU 环境,否则速度会慢 10—100 倍。

步骤二:单个蛋白质-配体对接

python -m inference \
  --config default_inference_args.yaml \
  --protein_path protein.pdb \
  --ligand "CC(=O)Oc1ccccc1C(=O)O" \
  --out_dir results/single_docking/

示例中 CC(=O)Oc1ccccc1C(=O)O 即阿司匹林的 SMILES,protein.pdb 替换为你的靶点结构。

如果只有序列没有结构:

python -m inference \
  --config default_inference_args.yaml \
  --protein_sequence "MSKGEELFTGVVPILVELDGDVNGHKF..." \
  --ligand ligand.sdf \
  --out_dir results/sequence_docking/

步骤三:读输出

输出目录结构固定,默认为 10 个采样姿态:

results/single_docking/
├── rank_1.sdf          # 最高排名姿态
├── rank_2.sdf
├── ...
├── rank_10.sdf
└── confidence_scores.txt

用 PyMOL 等工具打开 rank_1.sdf 与蛋白结构叠加,肉眼判断结构是否合理(是否落在合理口袋、有无穿模)。

步骤四:批量对接(虚拟筛选)

先准备并校验 CSV:

python scripts/prepare_batch_csv.py --create --output batch_input.csv
python scripts/prepare_batch_csv.py my_input.csv --validate

CSV 必填四列:complex_name、protein_path、ligand_description、protein_sequence(用结构则序列留空,用序列则路径留空)。随后运行:

python -m inference \
  --config default_inference_args.yaml \
  --protein_ligand_csv batch_input.csv \
  --out_dir results/batch/ \
  --batch_size 10

化合物数超过 100 个时,先预计算嵌入:

python datasets/esm_embedding_preparation.py \
  --protein_ligand_csv screening_input.csv \
  --out_file protein_embeddings.pt

再带 --esm_embeddings_path protein_embeddings.pt 运行推理。

步骤五:分析与调参

python scripts/analyze_results.py results/batch/ --top 5
python scripts/analyze_results.py results/batch/ --threshold 0.0 --export summary.csv

调参要点:困难体系把 samples_per_complex 从 10 提到 20—40;追求精度把 inference_steps 从 20 提到 25—30;柔性配体把 temp_sampling_tor 从 7.04 提到 8—10,刚性配体降到 5—6。


同类型竞品对比分析

方案名称 定位 核心功能 安装/使用门槛 适用场景 优势与不足
扩散对接模型Skill(diffdock) 生成式深度学习对接 姿态生成、置信分数、序列输入、批量筛选 需 Conda/Docker + GPU;技能形态可自然语言调用 探索性对接、虚拟筛选初筛、无结构靶点 优势:免设搜索盒、多姿态输出、批量脚本完善;不足:不预测亲和力,膜蛋白与大配体表现不稳
AutoDock Vina 经典经验打分对接 基于打分函数的构象搜索 轻量,CPU 可跑,生态与教程极多 常规小分子对接、教学、快速验证 优势:门槛低、速度快、结果可复现;不足:需人工定义搜索盒,柔性配体易失真
GNINA 神经网络打分对接 CNN 打分 + 构象搜索 中等,需 GPU 更佳 对已有姿态重新打分排序 优势:打分比传统函数更接近实验;不足:本质仍是打分工具,不解决姿态生成的多样性
AlphaFold-Multimer / DiffDock-PP 大分子复合物结构预测 蛋白质-蛋白质复合物建模 较高,算力需求大 蛋白-蛋白相互作用 优势:覆盖大分子体系;不足:不适用于小分子配体对接

选型建议:想快速拿到"配体可能结合在哪"的候选构象 → 用本技能;已有姿态需要判断"结合得多强" → 用 GNINA 或 MM/GBSA;蛋白-蛋白体系 → 换用 DiffDock-PP 或 AlphaFold-Multimer。官方推荐的工作流正是:DiffDock 出姿态 → 可视化检查 → GNINA/MM-GBSA 再打分 → 实验验证。


该技能的典型应用场景与实际体验情况

场景一:药化团队的先导化合物结合模式假设 角色是药物化学研究员,手上有靶点晶体结构和一个新设计的分子。痛点是传统对接要反复试搜索盒,且只给一个"最佳"姿态。使用方式是提供 PDB 与 SMILES,跑默认 10 个采样,挑前 3—5 个姿态看共识。实际体验:上手极快,一条命令出结果;注意点是要看多个姿态而非只看 rank_1.sdf,且高置信度只代表"模型对结构确定",不代表"结合强"。

场景二:化合物库虚拟筛选初筛 角色是计算化学/干实验人员,需要从数百上千化合物中挑出值得合成的分子。使用方式是用 CSV 批量 + 预计算 ESM 嵌入,再用 analyze_results.py --threshold 0.0 过滤。实际体验:脚本化程度高,CSV 校验功能能提前抓住路径和 SMILES 错误;但需注意一次性处理大库时要降 --batch_size 避免显存溢出。

场景三:只有序列、没有实验结构的靶点 角色是化学生物学方向的研究者,靶点只有氨基酸序列。使用方式是直接传 --protein_sequence,由 ESMFold 折叠后对接。实际体验:省去了自己建模的步骤,是从序列到结合姿态假设的一条龙路径;注意点是没有实验结构时结果不确定性更高,务必看置信分数并做可视化核查。

场景四:已知柔性口袋的多构象对接 角色是结构生物学背景的建模人员。使用方式是构造 ensemble CSV,把同一配体分别对接到 conf1/conf2/conf3 多个构象,并把 --samples_per_complex 提到 20。实际体验:对口袋开合明显的靶点明显更稳;代价是运行时间成倍增加,建议先小规模试跑。

整体体验小结:命令与配置清晰,配套脚本把"校验—运行—分析"三段补齐,属于容易上手但需要一定结构生物学常识才能正确解读结果的工具。最容易踩的坑有三个:用 CPU 硬跑导致慢到怀疑人生、蛋白质结构缺失残基未处理导致姿态不合理、把置信分数当亲和力使用。


该技能能为用户带来的价值

  • 效率提升:单复合物一次推理产出 10 个排序姿态,省去反复调搜索盒与多次试算的时间;批量与预计算嵌入让同一靶点筛上百化合物成为常规操作。
  • 门槛降低:蛋白质侧只需 PDB 或一段序列,配体侧只需 SMILES 或 SDF,非计算背景的实验人员借助技能的自然语言调用也能跑通流程;不想用命令行还可启动 Web 界面。
  • 决策质量提升:置信分数提供明确的三档判读标准(>0 高、-1.5 至 0 中、<-1.5 低),配合 analyze_results.py 的跨复合物排名,可以快速把资源集中在最值得验证的候选上。
  • 可量化的成本节约:官方明确 GPU 比 CPU 快 10—100 倍,选对硬件本身就是最大的时间成本节省;预计算嵌入避免重复计算同一蛋白的表示。
  • 长期价值:作为结构基础药物设计链条中的"姿态生成"环节,可与 GNINA、MM/GBSA、FEP 等形成标准流水线,产物(SDF + 置信 CSV)可直接进入下游分析,形成可复用、可复现的工作资产。

常见问题 FAQ

Q1:怎么安装?一定要自己配环境吗? 两种路径。轻量路径是在 AI 技能平台按技能ID 11968 检索并一键安装该技能,用自然语言下达对接任务,具体入口与权限以官方说明为准;完整路径是本地部署,Conda(conda env create --file environment.yml)或 Docker(docker pull rbgcsail/diffdock)二选一,装完先跑 python scripts/setup_check.py 验证。

Q2:收费吗? 技能本身的功能来源于开源项目 DiffDock(GitHub 公开仓库),论文与代码均可获取。但平台侧的安装与调用是否收费、以及本地运行所需的 GPU 算力成本,均以官方说明为准,建议安装前先确认计费规则。

Q3:它能告诉我这个分子结合得多强吗? 不能。DiffDock 明确只预测结合姿态与置信度,不输出 ΔG、Kd 等亲和力指标,官方也明确"不用于亲和力预测"。要评估结合强弱,请把生成的姿态交给 GNINA(快速神经网络打分)或 MM/GBSA(更准但更慢),必要时做 FEP/TI 自由能计算。

Q4:适合谁用?有什么明确不能用的场景? 适合做小分子(约 100—1000 Da)对接、虚拟筛选、先导优化的研究者,也支持小于 20 个残基的小肽。不适用于蛋白质-蛋白质对接(应用 DiffDock-PP 或 AlphaFold-Multimer)、大于 20 个残基的大肽、共价对接、亲和力预测,以及膜蛋白(未专门训练,需谨慎)。

Q5:结果置信分数都很低怎么办?和竞品怎么选? 先排查三类原因:配体过大或异常、结合位点不明确、蛋白柔性大。对策是把 samples_per_complex 提到 20—40、尝试多构象集成对接、检查蛋白结构是否缺失残基。竞品选择上,本技能强在"免搜索盒的生成式姿态 + 批量筛选";若你只需要快速验证单个已知口袋、且没有 GPU,AutoDock Vina 更轻;若你已有姿态只想重打分,GNINA 更合适。