AlphaFold 3输入文件格式详解:从基础到高级配置
alphafold3 AlphaFold 3 inference pipeline. 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3
引言
AlphaFold 3作为蛋白质结构预测领域的重要工具,其输入文件格式的设计直接影响着预测结果的准确性和灵活性。本文将全面解析AlphaFold 3的输入文件格式,帮助用户理解如何正确配置输入参数以获得最佳预测结果。
输入文件的基本配置方式
AlphaFold 3支持两种输入文件提供方式:
- 单文件输入模式:使用
--json_path
参数指定单个JSON文件路径 - 多文件输入模式:使用
--input_dir
参数指定包含多个JSON文件的目录路径
AlphaFold 3输入格式的核心特性
AlphaFold 3采用自定义JSON格式,相比前代版本提供了更丰富的功能:
- 多分子类型支持:可同时指定蛋白质、RNA、DNA链,包括修饰残基
- 自定义比对支持:可为蛋白质和RNA链提供自定义多序列比对(MSA)
- 模板支持:可为蛋白质链提供自定义结构模板
- 配体支持:支持通过多种方式指定配体
- 使用化学组分词典(CCD)代码
- 使用SMILES字符串
- 自定义CCD格式定义
- 共价键支持:可指定实体间的共价键连接
- 随机种子控制:支持指定多个随机种子
输入文件结构解析
顶层结构
输入JSON文件的顶层结构包含以下关键字段:
{
"name": "任务名称",
"modelSeeds": [1, 2], // 必须提供至少一个随机种子
"sequences": [
{"protein": {...}},
{"rna": {...}},
{"dna": {...}},
{"ligand": {...}}
],
"bondedAtomPairs": [...], // 可选
"userCCD": "...", // 可选
"dialect": "alphafold3", // 必须设置为"alphafold3"
"version": 2 // 必须设置为1或2
}
版本控制
version
字段目前支持两个版本:
- 版本1:初始AlphaFold 3输入格式
- 版本2:新增外部MSA和模板支持,添加了
unpairedMsaPath
、pairedMsaPath
和mmcifPath
字段
分子实体定义详解
蛋白质链定义
蛋白质链是最常用的分子类型,其定义包含以下关键字段:
{
"protein": {
"id": "A", // 唯一标识符
"sequence": "PVLSCGEWQL", // 氨基酸序列
"modifications": [ // 翻译后修饰
{"ptmType": "HY3", "ptmPosition": 1},
{"ptmType": "P1L", "ptmPosition": 5}
],
"unpairedMsa": "...", // 非配对MSA
"pairedMsa": "...", // 配对MSA
"templates": [...] // 结构模板
}
}
MSA配置策略
对于蛋白质链的MSA配置,推荐以下几种策略:
- 自动构建MSA:不设置
unpairedMsa
和pairedMsa
字段,让AlphaFold 3自动构建(推荐) - 自定义非配对MSA:设置
unpairedMsa
并提供A3M格式比对,将pairedMsa
设为空字符串 - 完全自定义:同时提供
unpairedMsa
和pairedMsa
(专家模式)
RNA链定义
RNA链定义相对简单,主要关注序列和修饰:
{
"rna": {
"id": "A",
"sequence": "AGCU",
"modifications": [
{"modificationType": "2MG", "basePosition": 1},
{"modificationType": "5MC", "basePosition": 4}
],
"unpairedMsa": "..."
}
}
DNA链定义
DNA链定义与RNA类似:
{
"dna": {
"id": "A",
"sequence": "GACCTCT",
"modifications": [
{"modificationType": "6OG", "basePosition": 1},
{"modificationType": "6MA", "basePosition": 2}
]
}
}
配体定义
配体支持三种定义方式,各有适用场景:
-
CCD代码方式(最简单):
{ "ligand": { "id": "G", "ccdCodes": ["ATP"] } }
-
SMILES字符串方式(适用于CCD中不存在的分子):
{ "ligand": { "id": "K", "smiles": "CC(=O)OC1C[NH+]2CCC1CC2" } }
-
自定义CCD方式(最灵活,支持共价键):
{ "ligand": { "id": "J", "ccdCodes": ["LIG-1337"] // 指向userCCD中定义的自定义配体 } }
SMILES字符串处理注意事项
SMILES字符串中的反斜杠需要进行JSON转义,例如:
"smiles": "CCC[C@@H](O)CC\\C=C\\C=C\\C#CC#C\\C=C\\CO"
高级配置选项
共价键定义
通过bondedAtomPairs
字段可以定义分子内或分子间的共价连接:
"bondedAtomPairs": [
{
"atom1": {"entity": "A", "residue": 10, "atom": "SG"},
"atom2": {"entity": "G", "residue": 1, "atom": "C1"},
"bondLength": 1.8
}
]
用户自定义CCD
当需要定义复杂配体或确保特定构象时,可以使用userCCD
字段提供自定义化学组分定义:
"userCCD": `
data_COMPND_CUSTOM
#
_chem_comp.id CUSTOM
_chem_comp.name "Custom ligand"
_chem_comp.type NON-POLYMER
_chem_comp.formula "C10 H15 N1 O2"
...
`
最佳实践建议
- 对于初学者:从最简单的蛋白质链定义开始,让AlphaFold 3自动处理MSA和模板
- 对于复杂系统:
- 先单独预测各组分结构
- 然后使用预测结果作为模板进行复合物预测
- 对于配体处理:
- 优先使用CCD代码
- 对于特殊配体,考虑使用SMILES
- 只有在需要精确控制构象或定义共价键时才使用自定义CCD
- 随机种子设置:建议提供3-5个不同随机种子以获得更可靠的结果
常见问题解决方案
-
RDKit构象生成失败:
- 增加
--conformer_max_iterations
参数值 - 或通过
userCCD
提供参考构象
- 增加
-
MSA构建问题:
- 确保A3M格式正确
- 对于自定义MSA,建议只提供
unpairedMsa
并将pairedMsa
设为空字符串
-
版本兼容性问题:
- 确保
dialect
字段设置为"alphafold3" - 根据需要使用版本1或2的功能
- 确保
通过深入理解AlphaFold 3的输入文件格式,用户可以更精确地控制预测过程,从而获得更符合研究需求的结构预测结果。
alphafold3 AlphaFold 3 inference pipeline. 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考