DiffDock 是基于扩散模型的分子对接工具,用于预测小分子配体与蛋白质靶点的三维结合构象,服务于基于结构的药物发现和化学生物学。它支持蛋白质结构(PDB 文件)或序列(经 ESMFold),配体可用 SMILES 或 SDF/MOL2 等结构文件,可处理单复合物或批量虚拟筛选,并输出置信度评分辅助判断可靠性。需要特别注意:它预测的是结合构象与预测置信度,而非结合亲和力(ΔG、Kd),亲和力评估需结合 GNINA、MM/GBSA 等打分函数。
安装可用 Conda:git clone https://github.com/gcorso/DiffDock.git,随后 conda env create --file environment.yml 并 conda activate diffdock;也可用 Docker:docker pull rbgcsail/diffdock,docker run -it --gpus all --entrypoint /bin/bash rbgcsail/diffdock,再 micromamba activate diffdock。强烈建议使用 GPU,首次运行会预计算 SO(2)/SO(3) 查找表并自动下载约 500MB 模型权重。
使用方式:先运行 python scripts/setup_check.py 检查环境。单复合物对接示例:python -m inference --config default_inference_args.yaml --protein_path protein.pdb --ligand "CC(=O)Oc1ccccc1C(=O)O" --out_dir results/single_docking/。批量对接需准备含 complex_name、protein_path、ligand_description、protein_sequence 列的 CSV,再运行 python -m inference --config default_inference_args.yaml --protein_ligand_csv batch_input.csv --out_dir results/batch/ --batch_size 10。大规模筛选可先用 datasets/esm_embedding_preparation.py 预计算蛋白嵌入。结果可用 python scripts/analyze_results.py 分析,置信度大于 0 为高、-1.5 到 0 为中等、低于 -1.5 为低。
适用场景包括小分子配体(约 100-1000 Da)的对接、类药有机化合物、短肽(少于 20 个残基)以及单链或多链蛋白。不适用于蛋白-蛋白对接、大肽、共价对接、膜蛋白及亲和力预测。可通过 assets/custom_inference_config.yaml 调整采样数、推理步数和温度等参数,并支持集成对接以考虑蛋白柔性。交互界面可运行 python app/main.py 后访问 http://localhost:7860,或使用 https://huggingface.co/spaces/reginabarzilaygroup/DiffDock-Web 在线演示。