SuperAPI AI 工具集

diffdock

智能体与模型

查看项目

更新于 10-15 23:32

技能介绍

用途: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 修改后指向副本。首次运行前会预计算 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]);预计算中静默 SIGKILL 是主机内存耗尽;python3: not found 说明用的是上游 rbgcsail/diffdock 镜像,该镜像在 /home/appuser/DiffDock 下用 micromamba 运行。最后,在配体间排序前应先用 boltz 亲和头等对 rank1.sdf 重新打分,因为 DiffDock 置信头本身不是亲和力预测器。