AlphaFold 3输入文件详解:JSON格式与字段说明

AlphaFold 3输入文件详解:JSON格式与字段说明

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

在使用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序列定义较为简单,主要包含idsequencemodifications和MSA相关字段。

DNA序列

DNA序列定义示例:

{
  "dna": {
    "id": "C",
    "sequence": "GACCTCT",
    "modifications": [
      {"modificationType": "6OG", "basePosition": 1},
      {"modificationType": "6MA", "basePosition": 2}
    ]
  }
}

DNA序列定义不支持MSA设置,仅包含idsequencemodifications字段。

配体定义

配体支持三种定义方式:

  1. CCD代码方式(推荐):
{
  "ligand": {
    "id": "L",
    "ccdCodes": ["ATP"]
  }
}
  1. SMILES字符串方式:
{
  "ligand": {
    "id": "M",
    "smiles": "CC(=O)OC1C[NH+]2CCC1CC2"
  }
}
  1. 用户提供的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生成配体构象失败,可:

  1. 使用--conformer_max_iterations增加迭代次数
  2. 通过userCCD提供参考构象
  3. 检查SMILES字符串是否正确

总结与展望

本文详细介绍了AlphaFold 3 JSON输入格式的各字段含义和配置方法,包括顶层结构、序列定义、高级功能和常见问题解决。正确配置输入文件是获得可靠预测结果的基础,建议结合官方文档docs/input.md深入学习。随着AlphaFold 3的不断发展,输入格式可能会进一步优化,未来可能支持更多类型的分子和更灵活的配置选项。

希望本文能帮助您顺利配置AlphaFold 3输入文件,如有任何问题或建议,欢迎在项目贡献指南中提出。

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

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

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

抵扣说明:

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

余额充值