Files
axmd/2026/soft_install/diffdock.md
T
2026-05-16 19:47:28 +08:00

4.5 KiB

title, date, tags, collections, summary, draft, featured
title date tags collections summary draft featured
DiffDock CUDA 12.8 环境安装记录 2026-05-16
DiffDock
CUDA
Python
分子对接
软件安装
记录 DiffDock CUDA 12.8 环境的源码获取、依赖安装、PyG 扩展编译和推理测试流程。 false false

DiffDock CUDA 12.8 环境安装记录

本文记录一次 DiffDock CUDA 12.8 版本的安装过程。实际执行时按自己的环境修改源码仓库、工作目录和模型缓存路径即可。

准备源码

先准备工作目录,并从私有仓库拉取 CUDA 12.8 适配版本。

WORKDIR="/path/to/software/unpack"
DIFFDOCK_REPO="ssh://git@private-git-host:port/group/DiffDock_cu128.git"

cd "${WORKDIR}"
git clone "${DIFFDOCK_REPO}"
cd DiffDock_cu128

创建 Conda 环境

项目仓库中提供了 environment.yml,优先使用它创建环境。

mamba env create -f environment.yml
mamba activate diffdock

如果后续出现 networkx 版本不兼容,可按需固定版本。

python -m pip install networkx==2.8.4

安装 PyTorch 与 PyG 组件

原始安装记录使用了 CUDA 13.0 的 PyTorch/PyG wheel 源来安装部分组件。按当前环境保留如下命令,必要时根据实际 CUDA、PyTorch 版本替换 cu130torch==2.7.1+cu130 和 PyG wheel 页面。

python -m pip install \
  --extra-index-url https://download.pytorch.org/whl/cu130 \
  --find-links https://data.pyg.org/whl/torch-2.7.0+cu130.html \
  torch==2.7.1+cu130 \
  pyg-lib \
  torch-cluster \
  torch-geometric==2.7.0 \
  torch-scatter \
  torch-sparse \
  e3nn==0.5.1 \
  fair-esm==2.0.0 \
  networkx==2.8.4 \
  pandas==1.5.1 \
  pybind11==2.11.1 \
  rdkit==2022.03.3 \
  scikit-learn==1.1.0 \
  "gradio==3.50.*" \
  requests

如果只需要补装 torch-cluster,可单独执行:

python -m pip install \
  --extra-index-url https://download.pytorch.org/whl/cu130 \
  --find-links https://data.pyg.org/whl/torch-2.7.0+cu130.html \
  torch-cluster

固定基础科学计算依赖

安装 PyG 扩展前,先固定 numpyscipybiopython 版本。

python -m pip install --force-reinstall numpy==1.26.4 scipy==1.12.0 biopython==1.76

本地编译 PyG 扩展

如果预编译 wheel 与运行环境不匹配,可以强制从源码重新编译安装相关扩展。

python -m pip install --force-reinstall --no-build-isolation --no-binary torch-scatter torch-scatter
python -m pip install --force-reinstall --no-build-isolation --no-binary torch-sparse torch-sparse
python -m pip install --force-reinstall --no-build-isolation --no-binary torch-cluster torch-cluster
python -m pip install --force-reinstall --no-build-isolation --no-binary torch-spline-conv torch-spline-conv

编译时如果缺少合适的 C++ 编译器,可安装 gxx=12

mamba install gxx=12

安装 OpenFold 相关依赖

dlloggeropenfold 来自私有 Git 仓库,按实际仓库地址安装即可。

python -m pip install "dllogger @ git+ssh://git@private-git-host:port/group/dllogger.git@master"
python -m pip install --no-build-isolation "openfold @ git+ssh://git@private-git-host:port/group/openfold.git@v2.2.0"

模型缓存

推理测试会用到 ESM2 模型文件。可将模型放在当前用户的 Torch Hub 缓存目录,或显式配置到项目支持的模型路径。

~/.cache/torch/hub/checkpoints/esm2_t33_650M_UR50D-contact-regression.pt
~/.cache/torch/hub/checkpoints/esm2_t33_650M_UR50D.pt

推理测试

安装完成后,可以使用项目自带的示例 CSV 运行一次推理。下面使用相对路径,避免暴露本机环境中的绝对目录。

python inference.py \
  --config default_inference_args.yaml \
  --protein_ligand_csv data/protein_ligand_example.csv \
  --out_dir results/user_predictions_small

如果需要显式指定环境中的 Python,可用占位符路径替换:

/path/to/miniforge/envs/diffdock/bin/python /path/to/DiffDock_cu128/inference.py \
  --config /path/to/DiffDock_cu128/default_inference_args.yaml \
  --protein_ligand_csv /path/to/DiffDock_cu128/data/protein_ligand_example.csv \
  --out_dir /path/to/DiffDock_cu128/results/user_predictions_small

检查要点

  • torchtorch-clustertorch-scattertorch-sparse 的 CUDA 与 PyTorch ABI 需要一致。
  • 从源码编译 PyG 扩展时,优先确认 gxx、CUDA Toolkit、PyTorch 版本是否匹配。
  • 私有仓库地址、内网 IP、用户名、NAS 目录和 Home 目录不应写入公开文章。