Skip to content

AF3 集群使用方法

AF3 即 AlphaFold 3,主要用于蛋白质、核酸、小分子等复合体系的结构预测。平台提供 AF3 容器、公共参考数据库和 Slurm/CHESS 两种提交方式;用户需要自行准备模型权重和输入 JSON 文件。

使用前请先准备模型权重

AF3 模型权重需要用户自行向官方申请。平台不提供模型权重,也不代为分发权重文件。请按官方要求申请并放到本人目录中。

使用前准备

申请模型权重

前往 AlphaFold 3 官方仓库 或官方说明页面,按要求提交模型权重申请。

AF3 权重申请入口

AF3 权重申请表单

权重下载完成后,建议放在个人目录,例如:

bash
/hpcfs/fhome/用户名/models_weight/

请保持官方要求的权重目录结构,后续提交任务时需要把该目录挂载到容器内。

准备输入 JSON

AF3 使用 JSON 文件描述预测对象。建议把输入文件放在个人目录下,例如:

bash
/hpcfs/fhome/用户名/af3/input/fold_input.json

单个蛋白复合物输入示例:

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

更多输入格式请参考官方文档:

AlphaFold 3 input JSON 说明

参考数据库

AF3 公共参考数据库已放在集群公共目录:

bash
/hpcfs/fpublic/database/alphafold/af3/data/

运行容器时将该目录挂载到 /af3/data 即可。一般用户不需要自己下载数据库。

可用文件示例:

bash
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_2022_09_28_mmcif_files.tar
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

命令行提交

命令行方式适合需要批量提交、调试脚本或和现有分析流程衔接的用户。推荐通过 Slurm 提交,不建议在登录节点直接长时间运行预测任务。

容器运行命令

下面命令展示了 AF3 容器的基本运行方式:

bash
singularity exec --nv \
  -B /hpcfs/fhome/用户名/models_weight:/af3/model_weight \
  -B /hpcfs/fpublic/database/alphafold/af3/data:/af3/data \
  -B /hpcfs/fhome/用户名/af3:/af3/work \
  /hpcfs/fpublic/container/singularity/app/af3/af3.sif \
  sh /opt/f3.sh \
    --json_path=/af3/work/input/fold_input.json \
    --output_dir=/af3/work/output

参数说明:

参数说明
--nv启用 GPU 支持
-B 本地目录:容器目录将集群目录挂载到容器内
/af3/model_weight容器内模型权重目录
/af3/data容器内参考数据库目录
--json_path输入 JSON 文件路径
--output_dir预测结果输出目录

Slurm 脚本模板

把下面内容保存为 run_af3.slurm

bash
#!/bin/bash
#SBATCH --job-name=af3
#SBATCH --partition=qgpu_a40
#SBATCH --gres=gpu:1
#SBATCH --cpus-per-task=8
#SBATCH --mem=64G
#SBATCH --time=24:00:00
#SBATCH --output=af3_%j.out
#SBATCH --error=af3_%j.err

set -euo pipefail

WORK_DIR="/hpcfs/fhome/用户名/af3"
WEIGHT_DIR="/hpcfs/fhome/用户名/models_weight"
DATA_DIR="/hpcfs/fpublic/database/alphafold/af3/data"
SIF="/hpcfs/fpublic/container/singularity/app/af3/af3.sif"

JSON_PATH="${WORK_DIR}/input/fold_input.json"
OUTPUT_DIR="${WORK_DIR}/output"

mkdir -p "${OUTPUT_DIR}"

echo "AF3 job started at: $(date)"
echo "Input JSON: ${JSON_PATH}"
echo "Output dir: ${OUTPUT_DIR}"

singularity exec --nv \
  -B "${WEIGHT_DIR}:/af3/model_weight" \
  -B "${DATA_DIR}:/af3/data" \
  -B "${WORK_DIR}:/af3/work" \
  "${SIF}" \
  sh /opt/f3.sh \
    --json_path=/af3/work/input/fold_input.json \
    --output_dir=/af3/work/output

echo "AF3 job finished at: $(date)"

提交作业:

bash
sbatch run_af3.slurm

查看排队或运行状态:

bash
squeue -u $USER

查看日志:

bash
cat af3_作业号.out
cat af3_作业号.err

结果查看

预测结果会写入 --output_dir 指定目录。常见结果文件包括:

  • *_model.cif:预测结构文件
  • *_confidences.json:置信度相关信息
  • *_summary_confidences.json:汇总置信度
  • *_ranking_scores.csv:不同采样结果的排序分数
  • TERMS_OF_USE.md:结果使用条款

输出目录示例:

text
hello_fold/
├── seed-1234_sample-0/
│   ├── hello_fold_seed-1234_sample-0_confidences.json
│   ├── hello_fold_seed-1234_sample-0_model.cif
│   └── hello_fold_seed-1234_sample-0_summary_confidences.json
├── seed-1234_sample-1/
│   ├── hello_fold_seed-1234_sample-1_confidences.json
│   ├── hello_fold_seed-1234_sample-1_model.cif
│   └── hello_fold_seed-1234_sample-1_summary_confidences.json
├── TERMS_OF_USE.md
├── hello_fold_confidences.json
├── hello_fold_data.json
├── hello_fold_model.cif
├── hello_fold_ranking_scores.csv
└── hello_fold_summary_confidences.json

CHESS 平台提交

如果只是单次运行或不熟悉命令行,可以通过 CHESS 平台提交 AF3 应用。

打开 AlphaFold3 应用

登录 CHESS 平台后,进入“应用中心”,找到并下载 AlphaFold3 应用。

CHESS 应用中心

AlphaFold3 应用卡片

下载后,在桌面点击 AlphaFold3 图标打开应用。

桌面启动 AlphaFold3

填写作业参数

按照页面提示填写队列、输入文件、模型权重目录和输出目录等参数。后台会根据队列资源情况调度运行。

提交参数页面

权重目录仍需用户提供

通过 CHESS 应用提交时,也需要填写本人已经申请并上传好的 AF3 模型权重目录。平台不提供权重文件。

选择输入类型时,请保持输入类型和下面填写的路径一致:

  • 单个 JSON 文件:选择具体的 .json 文件
  • JSON 目录:选择包含多个 JSON 文件的目录

选择输入类型

填写单个 JSON 文件

填写 JSON 目录

查看作业和日志

提交成功后,可以在“作业管理”中查看作业 ID、运行状态、标准输出和错误输出。

作业提交成功

标准输出日志

错误输出日志

操作录屏示例:

AF3 提交流程录屏

常见问题

提示找不到权重文件

检查权重目录是否填写正确,目录内文件结构是否符合官方要求。命令行提交时,还要确认 -B 权重目录:/af3/model_weight 已正确挂载。

作业一直排队

GPU 队列资源紧张时会排队。可通过 squeue -u $USER 查看状态,或根据任务需求选择其他可用 GPU 队列。

任务失败但没有结果

优先查看 Slurm 错误日志或 CHESS 平台错误输出。常见原因包括输入 JSON 格式错误、权重目录错误、输出目录无写权限、申请的内存或运行时间不足。

不确定 JSON 文件是否符合要求

先用小序列或官方示例测试,确认输入格式、权重和数据库路径都正常后,再提交批量任务。

Copyright 2021 All Rights Reserved 生物设计中心 版权所有