SuperAPI AI 工具集

diffdock

智能体与模型

查看项目

更新于 10-15 19:53

技能介绍

用途:DiffDock-L 是盲构象预测器,给定蛋白结构和配体,用扩散模型在整个表面采样配体放置位置,再由单独训练的置信度头排序。置信度与构象正确性相关,不代表结合自由能,因此不能预测配体是否结合或结合多紧;用于命中筛选时仍需搭配 GNINA、MM-GBSA 等打分器或 boltz 的亲和力头。蛋白-蛋白与核酸共折叠应改用 boltz 或 chai1。代码与权重为 MIT 许可(github.com/gcorso/DiffDock)。

用法:进入仓库后运行 python3 -m inference --config default_inference_args.yaml --protein_path target.pdb --ligand_description "COc1ccc(C#N)cc1" --out_dir out。多复合物时改用 --protein_ligand_csv batch.csv,CSV 含 complex_name、protein_path、ligand_description(SMILES 或 .sdf/.mol2 路径)、protein_sequence 四列;protein_path 留空并填 protein_sequence 时先用 ESMFold 折叠受体。输出在 --out_dir/<complex_name>/ 下,每个样本为 rank{N}_confidence{score}.sdf,并附 rank1.sdf 副本。文件名中的置信度是 logit,无界且可为负;同一复合物内越高越好,不同复合物或配体之间不可比较。

限制与注意:YAML 配置会覆盖命令行参数,inference.py 在 argparse 后加载 --config 并替换其中所有键,因此命令行传 --samples_per_complex 40 或 --model_dir 若 YAML 中已有同名键会被静默忽略;需改采样深度等键时复制 YAML、编辑副本并指向 --config。首次运行前会预计算 SO(3) 与环面查找表,stderr 无输出约 11 分钟,默认 Modal 档位会因主机内存不足在预计算中被 SIGKILL;应设 provider_params.modal.memory: 65536 或等效值,且不要误判为卡死。README 中的 --ligand 仅因 argparse 前缀匹配才在命令行生效,作为 CSV 列头或 YAML 键时匹配不到任何内容,该行会被静默视为无配体,务必写全 --ligand_description。常见错误:启动时 ValueError: not allowed to raise maximum limit 表示 setrlimit(NOFILE, 64000) 超出沙箱硬限制,需将 inference.py 中常量改为 min(64000, rlimit[1]);SO(3) 预计算几分钟后静默 SIGKILL 是主机内存耗尽;python3: not found 说明用的是上游 rbgcsail/diffdock 镜像,该镜像在 micromamba 下从 /home/appuser/DiffDock 运行。最后,在配体间排序前应先用 boltz 亲和力头等对 rank1.sdf 重新打分,因为 DiffDock 置信度头本身不是亲和力预测器。