AlphaFold 3 安装部署全攻略:一步到位跑通蛋白质结构预测

AlphaFold 3 安装部署全攻略:一步到位跑通蛋白质结构预测

【免费下载链接】alphafold3 AlphaFold 3 inference pipeline. 【免费下载链接】alphafold3 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3

拿到一段全新的蛋白质序列,想尽快知道它的三维结构,却要经历漫长的实验周期?DeepMind 开源的 AlphaFold 3 正是为解决这一痛点而生:它不仅能预测蛋白质结构,还能同时处理 RNA、DNA、小分子配体与共价修饰,把"生物分子相互作用预测"整合进同一条推理流水线。这篇 AlphaFold 3 安装部署指南,将从零带你走完环境配置、数据库下载、模型参数申请与首次运行的全流程,照着做就能把系统跑起来。

AlphaFold 3 安装部署——蛋白质结构预测封面示意图

📌 这篇指南适合谁:想尽快在本地或云 GPU 机器上把 AlphaFold 3 跑起来的开发者。全文按"任务"组织,先给最短路径,再逐步拆解,最后附避坑与调优,一口气读完即可动手。


快速上手:AlphaFold 3 快速运行的 4 条命令

在进入漫长的环境搭建之前,先看清整条最短路径。AlphaFold 3 的运行逻辑很简单:代码 + 模型参数 + 遗传数据库,三者齐备后用 Docker 一条命令即可开跑。先看前置资源清单:

前置资源作用获取难度
Linux + NVIDIA GPU 机器运行环境(官方验证 A100/H100)中等,云主机可直接选型
Docker + NVIDIA 容器工具包隔离并暴露 GPU 给容器
AlphaFold 3 模型参数预测必需权重需填官方申请表,约 2–3 个工作日
遗传数据库同源序列与模板搜索(约 252GB 下载)耗时长,建议后台挂着下

资源备齐后,真正动手只需 4 步:

# 1. 获取 AlphaFold 3 源码
git clone https://gitcode.com/gh_mirrors/alp/alphafold3
cd alphafold3

# 2. 构建 Docker 镜像(首次构建会拉取全部 Python 依赖,耐心等待)
docker build -t alphafold3 -f docker/Dockerfile .

# 3. 挂载输入、输出、模型参数、数据库四个目录并运行预测
docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <DB_DIR>:/root/public_databases \
    --gpus all \
    alphafold3 \
    python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --output_dir=/root/af_output

# 4. 查看结果
ls $HOME/af_output

⚠️ 注意:第一次运行会先执行"数据管线"(遗传搜索与模板搜索,纯 CPU 任务),耗时可能远超模型推理,终端长时间滚动日志是正常现象,不是卡死。

输入文件、模型参数、数据库这三样"硬通货"怎么备齐?下面按任务一步步讲清楚。


第一步:核对 AlphaFold 3 环境配置清单

动手前先对照清单自查,避免装到一半才发现硬件不达标。

硬件要求

项目要求官方建议
操作系统Linux(不支持 Windows/macOS)Ubuntu 22.04 LTS
GPUNVIDIA,计算能力 8.0 及以上单张 A100 80GB 或 H100 80GB
显存越大能预测的输入越大80GB 已验证可处理最多 5,120 tokens
内存至少 64GB长序列目标的遗传搜索更吃内存
磁盘最多约 1TBSSD 优先,显著提升搜索性能

软件要求

软件版本说明
NVIDIA 驱动与 CUDA 12.6 匹配(如 550.x)容器外的宿主机基础驱动
CUDA12.6Docker 容器要求宿主机装有 CUDA 12.6
Docker最新 CE 版官方文档基于 rootless 模式编写
NVIDIA Container Toolkit最新让容器内能访问 GPU

💡 提示:官方在 A100 与 H100 上验证了数值精度,其他显卡理论上可运行,但 V100 等 7.x 计算能力显卡存在已知数值问题,需要额外设置(见避坑指南)。


第二步:搭建 Docker 与 GPU 运行环境

这一步在宿主机上完成,共四段:装 Docker、启用 rootless 模式、装驱动、装容器工具包。

2.1 安装 Docker CE(Ubuntu 22.04)

# 添加 Docker 官方 GPG 密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 Docker apt 源并安装
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
sudo docker run hello-world

2.2 启用 Rootless Docker

# 安装 uidmap 与 systemd-container
sudo apt-get install -y uidmap systemd-container

# 一键安装 rootless 模式并切换 context
sudo machinectl shell $(whoami)@ /bin/bash -c 'dockerd-rootless-setuptool.sh install && sudo loginctl enable-linger $(whoami) && DOCKER_HOST=unix:///run/user/1001/docker.sock docker context use rootless'

2.3 安装 NVIDIA 驱动

sudo apt-get -y install alsa-utils ubuntu-drivers-common
sudo ubuntu-drivers install
sudo nvidia-smi --gpu-reset
nvidia-smi  # 验证驱动已生效

如果弹出 "Pending kernel upgrade" 对话框,直接确认即可;若 nvidia-smi 提示无法与驱动通信,重启系统后再验证。

2.4 安装 NVIDIA Container Toolkit 并验证 GPU 容器

# 添加 NVIDIA 容器工具包源并安装
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 配置 docker runtime 并重启
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
systemctl --user restart docker
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place

# 验证容器内能看到 GPU
docker run --rm --gpus all nvidia/cuda:12.6.0-base-ubuntu22.04 nvidia-smi

看到 nvidia-smi 输出 A100/H100 信息,说明 GPU 容器链路已打通,可以进入下一步。


第三步:获取 AlphaFold 3 源码与模型参数

3.1 拉取源码

git clone https://gitcode.com/gh_mirrors/alp/alphafold3
cd alphafold3

3.2 申请模型参数(关键前置步骤)

模型参数不随仓库分发,需要填写官方申请表向 Google 提交访问请求,通常 2–3 个工作日审批:

✅ 审批通过后,将参数下载到独立目录(下文统称 <MODEL_PARAMETERS_DIR>)。 ⚠️ 注意:模型参数只能从 Google 官方渠道获取,使用受其条款约束;参数目录与数据库目录一样,不要放在仓库目录内,否则会拖慢镜像构建。 📌 合规提醒:AlphaFold 3 源码采用 CC-BY-NC-SA 4.0(非商业)许可,模型参数另有独立使用条款,请务必先阅读并确认用途符合授权再投入生产使用。


第四步:完成 AlphaFold 3 遗传数据库下载

数据管线需要 9 类遗传数据库(BFD small、MGnify、PDB mmCIF、PDB seqres、UniProt、UniRef90、NT、RFam、RNACentral),仓库自带的 fetch_databases.sh 脚本可一键下载并解压。

# 先装依赖(Debian 系)
sudo apt install wget zstd

# 强烈建议在 tmux/screen 会话中执行,全程约 45 分钟
./fetch_databases.sh [<DB_DIR>]   # 不指定则默认下载到 $HOME/public_databases

下载完成后目录大致长这样:

mmcif_files/                          # 约 20 万份 PDB mmCIF 文件
bfd-first_non_consensus_sequences.fasta
mgy_clusters_2022_05.fa
nt_rna_2023_02_23_clust_seq_id_90_cov_80_rep_seq.fasta
pdb_seqres_2022_09_28.fasta
rfam_14_9_clust_seq_id_90_cov_80_rep_seq.fasta
rnacentral_active_seq_id_90_cov_80_linclust.fasta
uniprot_all_2021_04.fa
uniref90_2022_05.fa

三条必须遵守的注意事项:

注意项原因
<DB_DIR> 不要放在 AlphaFold 3 仓库目录内否则构建镜像时会把几百 GB 数据库复制进去,构建极慢
预留足够空间:下载约 252GB,解压后约 630GB空间不足会导致下载中断
确保数据库目录有完整读写权限:sudo chmod 755 --recursive <DB_DIR>权限不足会让 MSA 工具报出难懂的错误

第五步:构建镜像并运行第一次预测

5.1 构建 Docker 镜像

docker build -t alphafold3 -f docker/Dockerfile .

镜像内置了 JAX、Haiku、RDKit 等全部推理依赖,构建一次即可反复使用。

5.2 准备输入 JSON

AlphaFold 3 使用自定义 JSON 输入格式,支持蛋白质、RNA、DNA、配体(CCD 码或 SMILES)等实体。先用官方提供的 2PV7 示例文件练手,保存为 fold_input.json

{
  "name": "2PV7",
  "sequences": [
    {
      "protein": {
        "id": ["A", "B"],
        "sequence": "GMRESYANENQFGFKTINSDIHKIVIVGGYGKLGGLFARYLRASGYPISILDREDWAVAESILANADVVIVSVPINLTLETIERLKPYLTENMLLADLTSVKREPLAKMLEVHTGAVLGLHPMFGADIASMAKQVVVRCDGRFPERYEWLLEQIQIWGAKIYQTNATEHDHNMTYIQALRHFSTFANGLHLSKQPINLANLLALSSPIYRLELAMIGRLFAQDAELYADIIMDKSENLAVIETLKQTYDEALTFFENNDRQGFIDAFHKVRDWFGDYSEQFLKESRQLLQQANDLKQG"
      }
    }
  ],
  "modelSeeds": [1],
  "dialect": "alphafold3",
  "version": 1
}

关键字段说明:

字段含义
name任务名,输出目录将以它命名
modelSeeds随机种子,至少一个,多个种子会生成多份采样结果
sequences实体列表,可混合 protein / rna / dna / ligand
dialect固定为 alphafold3(会自动识别并转换 AlphaFold Server 格式)
version输入格式版本

把文件放进 $HOME/af_input 目录,然后运行:

docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <DB_DIR>:/root/public_databases \
    --gpus all \
    alphafold3 \
    python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --output_dir=/root/af_output

5.3 输出产物

预测结束后,输出目录下会生成以任务名命名的子目录,核心文件包括:

文件内容
<job_name>_model.cif排名最高的预测结构,兼容多数结构生物学工具
<job_name>_summary_confidences.json置信度汇总
ranking_scores.csv所有样本的排名得分
seed-<seed>_sample-<n>/每个种子与样本的独立结果目录

📌 两个重要开关--run_data_pipeline(默认 true,纯 CPU 的遗传/模板搜索)与 --run_inference(默认 true,需要 GPU)。数据管线与推理可分机执行,配合 --input_dir 还可以批量提交多个 JSON,详见 python run_alphafold.py --help


第六步(可选):用 Singularity 替代 Docker 运行

如果目标集群没有 Docker 权限,可以用 Singularity。流程是"用 Docker 构建,用 Singularity 运行"。

# 1. 安装 Singularity(Debian 系)
wget https://github.com/sylabs/singularity/releases/download/v4.2.1/singularity-ce_4.2.1-jammy_amd64.deb
sudo dpkg --install singularity-ce_4.2.1-jammy_amd64.deb
sudo apt-get install -f

# 2. 起一个本地 registry,把 Docker 镜像推上去
docker run -d -p 5000:5000 --restart=always --name registry registry:2
docker tag alphafold3 localhost:5000/alphafold3
docker push localhost:5000/alphafold3

# 3. 用 Docker 镜像构建 Singularity 镜像
SINGULARITY_NOHTTPS=1 singularity build alphafold3.sif docker://localhost:5000/alphafold3:latest

# 4. 验证镜像能访问 GPU
singularity exec --nv alphafold3.sif sh -c 'nvidia-smi'

# 5. 运行预测
singularity exec \
     --nv \
     --bind $HOME/af_input:/root/af_input \
     --bind $HOME/af_output:/root/af_output \
     --bind <MODEL_PARAMETERS_DIR>:/root/models \
     --bind <DB_DIR>:/root/public_databases \
     alphafold3.sif \
     python run_alphafold.py \
     --json_path=/root/af_input/fold_input.json \
     --model_dir=/root/models \
     --db_dir=/root/public_databases \
     --output_dir=/root/af_output

避坑指南:AlphaFold 3 常见错误解决手册

部署途中大概率会踩到下面几个坑,直接对号入座:

现象nvidia-smi 报 "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver." 🔍 原因:驱动安装后未正确加载,属于常见的内核模块问题。 ✅ 解决:执行 sudo reboot now 重启系统,待 nvidia-smi 输出正常后再继续后续步骤。

现象:运行时报 error while creating mount source path ... permission denied 🔍 原因--volume 挂载的源目录不存在或权限不足。 ✅ 解决:核对四个挂载路径是否正确,预先创建目录并执行 chmod 755 $HOME/af_input $HOME/af_output

现象:遗传搜索阶段 MSA 工具报出晦涩难懂的外部错误。 🔍 原因:数据库目录或文件缺少完整读写权限。 ✅ 解决:执行 sudo chmod 755 --recursive <DB_DIR> 后重试。

现象docker build 慢到离谱。 🔍 原因:数据库或模型参数放在了仓库目录内,构建时被整体复制进镜像上下文。 ✅ 解决:把数据库与参数移到仓库外,清空后重新构建。

现象:V100 等显卡预测结果全是残基冲突,排名分低至 -99。 🔍 原因:CUDA Capability 7.x 显卡存在已知数值问题。 ✅ 解决:设置环境变量 XLA_FLAGS="--xla_disable_hlo_passes=custom-kernel-fusion-rewriter"

现象:用 SMILES 定义配体时,Cl、Br 等双字母原子解析错误。 🔍 原因:这是旧版本代码的已知缺陷(已修复)。 ✅ 解决:把源码更新到最新提交再重新构建镜像。

现象:推理阶段显存不足(OOM)。 🔍 原因:输入 token 数超过了当前 GPU 显存承载能力。 ✅ 解决:改用更大显存 GPU,或开启统一内存(见进阶调优第 5 条)。


进阶调优:让 AlphaFold 3 跑得更快

环境跑通之后,这几招可以显著改善耗时与资源利用率。

1. 数据库放 SSD,并配置多路径回退

遗传搜索的性能高度依赖磁盘速度。SSD 放常用库、大容量机械盘放剩余库,两个目录都挂载并多次指定 --db_dir,系统会优先读快的:

docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <SSD_DB_DIR>:/root/public_databases \
    --volume <DB_DIR>:/root/public_databases_fallback \
    --gpus all \
    alphafold3 \
    python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --db_dir=/root/public_databases \
    --db_dir=/root/public_databases_fallback \
    --output_dir=/root/af_output

2. 分阶段运行,物尽其用

数据管线与推理可以解耦:先在有 CPU 的便宜机器上跑 --norun_inference 生成带 MSA 的 JSON,再在 GPU 机器上跑 --norun_data_pipeline 只做推理。同一份 MSA 结果还能跨多个随机种子复用,省去重复搜索。

3. 用 --buckets 控制编译次数

模型按输入尺寸分桶编译,桶配置得当可避免每个输入都触发一次重编译。例如输入集中在 5,132–5,342 tokens 时,指定 --buckets 256,512,768,1024,1280,1536,2048,2560,3072,3584,4096,4608,5120,5376 可让多个输入共用一次编译。

4. 开启 JAX 持久化编译缓存

不同运行之间反复编译很浪费,用 --jax_compilation_cache_dir <YOUR_DIRECTORY> 把编译产物缓存下来,后续运行直接命中。

5. 显存吃紧时启用统一内存

输入超过 5,120 tokens 或显卡只有 40GB 时,可在 Dockerfile 中设置以下环境变量让显存溢出到内存(变慢但不会 OOM):

ENV XLA_PYTHON_CLIENT_PREALLOCATE=false
ENV TF_FORCE_UNIFIED_MEMORY=true
ENV XLA_CLIENT_MEM_FRACTION=3.2

6. 性能参考(免编译推理耗时)

Tokens1×A100 80GB1×H100 80GB
1,02462s34s
2,048275s144s
4,0961,434s774s
5,1202,547s1,416s

同样的免编译推理,仓库的单卡 A100 80GB 配置比论文中的 16×A100 40GB 配置在全部 token 规模下至少快 2 倍,适合高吞吐场景。


最后总结

回顾整条部署链路,其实只有四件事:核对环境 → 备齐资源(模型参数 + 遗传数据库)→ 构建镜像 → 运行预测。绝大多数问题都出在权限、路径和数据库位置这三处,对照避坑指南即可快速排除。

跑通 2PV7 只是第一步。接下来可以尝试混合多链体系(蛋白 + 核酸 + 配体)、用 SMILES 定义自定义配体、指定共价键,甚至用 --input_dir 批量提交一批任务。数据库下载耗时长,建议挂到后台慢慢下,先把 Docker 环境和模型参数申请流程走起来。祝你的第一次 AlphaFold 3 预测一次成功,早日产出漂亮的结构图!

【免费下载链接】alphafold3 AlphaFold 3 inference pipeline. 【免费下载链接】alphafold3 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值