AlphaFold 3输入文件详解:JSON格式与字段说明
在使用AlphaFold 3进行蛋白质结构预测时,输入文件的正确配置是获得准确结果的关键步骤。本文将详细解析AlphaFold 3特有的JSON输入格式,帮助您理解各字段含义及配置方法,解决输入文件配置难题。读完本文后,您将能够独立编写符合规范的JSON输入文件,正确设置蛋白质、RNA、DNA序列及配体信息,并掌握高级功能如自定义MSA和模板的配置方法。
输入文件指定方式
AlphaFold 3提供两种输入文件指定方式,可通过run_alphafold.py脚本的命令行参数进行选择:
- 单文件输入:使用
--json_path参数指定单个JSON文件路径 - 多文件输入:使用
--input_dir参数指定包含多个JSON文件的目录路径
这两种方式适用于不同场景,单文件输入适合单次预测任务,多文件输入则便于批量处理多个预测任务。
JSON格式概述
AlphaFold 3使用自定义的JSON输入格式,与AlphaFold Server的JSON格式不兼容。这种自定义格式提供了更高的灵活性,支持以下功能:
- 指定蛋白质、RNA和DNA链,包括修饰后的残基
- 为蛋白质和RNA链指定自定义多序列比对(MSA)
- 为蛋白质链指定自定义结构模板
- 使用化学组件字典(CCD)代码指定配体
- 通过SMILES字符串定义配体
- 指定实体间的共价键
JSON格式的详细说明可参考官方文档docs/input.md。
顶层结构解析
AlphaFold 3输入JSON的顶层结构包含以下关键字段:
{
"name": "Job name goes here",
"modelSeeds": [1, 2], # 至少需要一个种子
"sequences": [
{"protein": {...}},
{"rna": {...}},
{"dna": {...}},
{"ligand": {...}}
],
"bondedAtomPairs": [...], # 可选
"userCCD": "...", # 可选
"dialect": "alphafold3", # 必填
"version": 2 # 必填,版本1或2
}
各字段说明:
name: 任务名称,用于输出文件命名modelSeeds: 随机种子列表,每个种子对应一个预测结果sequences: 分子实体列表,包含蛋白质、RNA、DNA和配体bondedAtomPairs: 共价键定义,可选userCCD: 用户提供的化学组件字典,可选dialect: 输入JSON格式方言,必须设为"alphafold3"version: 输入格式版本,支持1或2,版本2新增了外部MSA和模板指定功能
序列定义详解
蛋白质序列
蛋白质序列定义示例:
{
"protein": {
"id": "A",
"sequence": "PVLSCGEWQL",
"modifications": [
{"ptmType": "HY3", "ptmPosition": 1},
{"ptmType": "P1L", "ptmPosition": 5}
],
"unpairedMsaPath": "path/to/unpaired.msa",
"pairedMsaPath": "path/to/paired.msa",
"templates": [...]
}
}
核心字段说明:
id: 链唯一标识符,支持单字母或多字母,也可指定列表表示同源多聚体sequence: 氨基酸序列,使用标准单字母代码modifications: 翻译后修饰列表,每个修饰包含CCD代码和位置unpairedMsa/unpairedMsaPath: 未配对MSA数据或文件路径pairedMsa/pairedMsaPath: 配对MSA数据或文件路径templates: 结构模板列表
RNA序列
RNA序列定义示例:
{
"rna": {
"id": "B",
"sequence": "AGCU",
"modifications": [
{"modificationType": "2MG", "basePosition": 1},
{"modificationType": "5MC", "basePosition": 4}
],
"unpairedMsaPath": "path/to/rna_msa.a3m"
}
}
与蛋白质序列相比,RNA序列定义较为简单,主要包含id、sequence、modifications和MSA相关字段。
DNA序列
DNA序列定义示例:
{
"dna": {
"id": "C",
"sequence": "GACCTCT",
"modifications": [
{"modificationType": "6OG", "basePosition": 1},
{"modificationType": "6MA", "basePosition": 2}
]
}
}
DNA序列定义不支持MSA设置,仅包含id、sequence和modifications字段。
配体定义
配体支持三种定义方式:
- CCD代码方式(推荐):
{
"ligand": {
"id": "L",
"ccdCodes": ["ATP"]
}
}
- SMILES字符串方式:
{
"ligand": {
"id": "M",
"smiles": "CC(=O)OC1C[NH+]2CCC1CC2"
}
}
- 用户提供的CCD方式: 需配合
userCCD字段使用,适合自定义配体或需要指定共价键的场景。
高级功能配置
多序列比对(MSA)
MSA配置支持内联提供或文件路径引用,对于蛋白质:
{
"protein": {
"id": "A",
"sequence": "SEQVENCE",
"unpairedMsaPath": "path/to/unpaired.msa",
"pairedMsaPath": "path/to/paired.msa"
}
}
RNA MSA配置类似,但只有unpairedMsaPath字段。提供的MSA文件需满足以下条件:
- A3M格式
- 第一条序列必须与查询序列完全一致
- 移除小写字母(插入)后所有序列长度相同
结构模板
蛋白质结构模板配置示例:
"templates": [
{
"mmcifPath": "path/to/template.cif",
"queryIndices": [0, 1, 2, 4, 5],
"templateIndices": [0, 1, 2, 3, 4]
}
]
mmcif/mmcifPath: mmCIF格式模板数据或文件路径queryIndices: 查询序列中要映射的残基索引templateIndices: 模板序列中对应的残基索引
共价键定义
共价键定义示例:
"bondedAtomPairs": [
[["A", 145, "SG"], ["L", 1, "C04"]],
[["J", 1, "O6"], ["J", 2, "C1"]]
]
每个键由两个原子定义,每个原子通过三部分标识:实体ID、残基索引和原子名称。
格式版本与兼容性
AlphaFold 3输入格式支持版本1和2,版本2新增了外部MSA和模板指定功能。若需使用这些新功能,需将version设为2:
{
"version": 2,
"dialect": "alphafold3",
...
}
对于AlphaFold Server格式的JSON输入,系统提供自动转换功能,但存在一些限制,如不支持聚糖转换等。
常见问题解决
SMILES字符串转义
SMILES中的反斜杠需转义:
{
"ligand": {
"id": "X",
"smiles": "CCCC@@HCC\\C=C\\C=C\\C#CC#C\\C=C\\CO"
}
}
可使用Python代码进行转义:
import json
smiles = r'原始SMILES'
print(json.dumps(smiles))
配体构象生成失败
若RDKit生成配体构象失败,可:
- 使用
--conformer_max_iterations增加迭代次数 - 通过
userCCD提供参考构象 - 检查SMILES字符串是否正确
总结与展望
本文详细介绍了AlphaFold 3 JSON输入格式的各字段含义和配置方法,包括顶层结构、序列定义、高级功能和常见问题解决。正确配置输入文件是获得可靠预测结果的基础,建议结合官方文档docs/input.md深入学习。随着AlphaFold 3的不断发展,输入格式可能会进一步优化,未来可能支持更多类型的分子和更灵活的配置选项。
希望本文能帮助您顺利配置AlphaFold 3输入文件,如有任何问题或建议,欢迎在项目贡献指南中提出。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



