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 生物设计中心 版权所有