AlphaFold Server 任务 JSON 文件格式详解:多任务批量建模请求的完整结构与字段规范

AlphaFold Server 任务 JSON 文件格式详解:多任务批量建模请求的完整结构与字段规范 AlphaFold Server 任务 JSON 文件格式详解多任务批量建模请求的完整结构与字段规范【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold本篇技术指南以 AlphaFold 开源仓库中server/README.md为核心系统讲解 AlphaFold Server 任务请求 JSON 文件的整体结构、name/modelSeeds/sequences三个顶层字段以及proteinChain、dnaSequence、rnaSequence、ligand、ion五类实体分子的字段定义与允许取值并逐节给出可直接复制的 JSON 示例。读完本文你可以独立编写支持糖基化、翻译后修饰PTM、核酸化学修饰、配体与离子的多任务建模请求文件并理解随机种子在本项目 JAX 推理链路中的实际作用。1. 任务请求文件的总体结构一个列表对应多个 JobAlphaFold Server 的任务请求文件是一个JSON 列表——即使只提交一个任务也必须使用单元素列表包裹。列表中每个元素是一个字典对应一个独立的建模 Job[ { name: Test Fold Job Number One, modelSeeds: [], sequences: [ ... ] }, { name: Test Fold Job Number Two, modelSeeds: [], sequences: [ ... ] } ]仓库中提供的完整示例文件 server/example.json 正是这一结构的实例它包含两个 Job第一个 Job 同时建模两条蛋白链、一对 DNA 双链两条dnaSequence、一条 RNA、两个配体和两种离子第二个 Job 则是一个一条蛋白链 一条 DNA的简单组合。每个 Job 字典包含三个键字段类型说明namestring任务名在 Server 的作业历史表中以此显示modelSeedslist of uint32 字符串随机种子列表例如[1593933729, 4273]推荐留空[]由 Server 自动分配一个随机种子sequenceslist of dict待建模实体分子列表每个元素描述一个实体两个关键特性值得注意一个文件可指定多个 Job——这使得该格式天然适合自动化重复性建模任务例如筛查一个蛋白与若干个候选分子的相互作用JSON 文件不允许写注释编写自动化脚本生成请求文件时要避免在生成器中注入注释。文档同时给出了一条实用建议最简单的起步方式是通过 AlphaFold Server 的 Web GUI 提交一次任务然后从结果 zip 包中取出job_name_job_request.json其中保存了该任务的完整输入 JSON用它作为模板在文本编辑器或 Colab 等编程环境中修改比从零手写更可靠。2. 随机种子modelSeeds在本项目推理链路中的真实含义modelSeeds看起来只是 Server 服务端的输入参数但从本仓库的源码结构看它对应的是 JAX 推理管线中的随机数发生器PRNG种子具有明确的复现语义在本地推理入口 run_alphafold.py 中若未显式指定--random_seed系统会随机抽取一个种子random_seed random.randrange(sys.maxsize // len(model_runners))随后在 run_alphafold.py 按模型索引派生每个模型的种子model_random_seed model_index random_seed * num_models。种子最终在 alphafold/model/model.py 的RunModel.predict中消费result self.apply(self.params, jax.random.PRNGKey(random_seed), feat)。该方法的文档字符串特别指出在 Multimer 模型中随机种子控制 MSA 采样——这意味着固定种子可以在一定程度上复现同一输入下的采样行为。仓库还通过 alphafold/model/prng.py 中的SafeKey包装器管理 PRNG key 的使用防止同一 key 被重复消费说明种子在整个前向计算图中是被严格追踪的。因此 Server 侧的modelSeeds语义与本地--random_seed一脉相承提供多个种子即等价于运行多次独立采样。官方推荐做法是提交空列表[]让服务自动分配单个随机种子只有在需要复现性验证或多采样比较时才显式指定 uint32 种子值。3. 实体类型总览sequences列表中每个元素的键名即实体类型与 AlphaFold Server Web 界面支持的类型一一对应实体类型用途proteinChain蛋白质链dnaSequenceDNA单链rnaSequenceRNA单链ligand允许的配体ion允许的离子每类实体都带一个整数count字段表示该分子的拷贝数。以下按类型逐一展开字段说明与示例均继承自 server/README.md并对照 server/example.json 校验过。3.1 蛋白质链proteinChainsequence蛋白序列字符串。约束与 Web UI 相同只允许 IUPAC 定义的氨基酸字母仅支持 20 种标准氨基酸count该链的拷贝数整数glycans可选糖基化描述列表每项包含residues定义糖链的字符串格式与允许的糖基类型可参考 Server FAQposition糖链连接的氨基酸位置整数1-based 索引modifications可选翻译后修饰PTM描述列表每项包含ptmType修饰的CCD 码字符串与 UI 允许的一致position被修饰氨基酸的位置整数。允许出现的蛋白 PTM CCD 码共 22 个CCD_SEP、CCD_TPO、CCD_PTR、CCD_NEP、CCD_HIP、CCD_ALY、CCD_MLY、CCD_M3L、CCD_MLZ、CCD_2MR、CCD_AGM、CCD_MCS、CCD_HYP、CCD_HY3、CCD_LYZ、CCD_AHB、CCD_P1L、CCD_SNN、CCD_SNC、CCD_TRF、CCD_KCR、CCD_CIR、CCD_YHA。示例与 server/example.json 中第一个 Job 的两条蛋白链一致{ proteinChain: { sequence: PREACHINGS, glycans: [ { residues: NAG(NAG)(BMA), position: 8 }, { residues: BMA, position: 10 } ], modifications: [ { ptmType: CCD_HY3, ptmPosition: 1 }, { ptmType: CCD_P1L, ptmPosition: 5 } ], count: 1 } }, { proteinChain: { sequence: REACHER, count: 1 } }注意glycans中residues使用括号表达分支结构NAG(NAG)(BMA)表示一个 NAG 上挂有 NAG 与 BMA 两个分支position是 1-based编写脚本换算 0-based 索引时要小心。3.2 DNA 链dnaSequencednaSequence类型指的是单链 DNA。若要建模双链 DNA需要另外添加一条携带反向互补序列的dnaSequence——server/example.json 中GATTACA与TGTAATC两条链即构成一对互补双链。sequenceDNA 序列字符串只允许A、T、G、C四个字母与 UI 约束相同count该 DNA 链的拷贝数整数modifications可选DNA 化学修饰列表每项包含modificationType修饰的 CCD 码字符串basePosition被修饰核苷酸的位置整数。允许的 DNA 修饰 CCD 码共 9 个CCD_5CM、CCD_C34、CCD_5HC、CCD_6OG、CCD_6MA、CCD_1CC、CCD_8OG、CCD_5FC、CCD_3DR。示例{ dnaSequence: { sequence: GATTACA, modifications: [ { modificationType: CCD_6OG, basePosition: 1 }, { modificationType: CCD_6MA, basePosition: 2 } ], count: 1 } }, { dnaSequence: { sequence: TGTAATC, count: 1 } }3.3 RNA 链rnaSequencesequenceRNA 序列单链字符串只允许A、U、G、C四个字母count该 RNA 链的拷贝数整数modifications可选RNA 化学修饰列表字段结构与 DNA 相同modificationTypebasePosition。允许的 RNA 修饰 CCD 码共 14 个CCD_PSU、CCD_5MC、CCD_OMC、CCD_4OC、CCD_5MU、CCD_OMU、CCD_UR3、CCD_A2M、CCD_MA6、CCD_6MZ、CCD_2MG、CCD_OMG、CCD_7MG、CCD_RSQ。示例{ rnaSequence: { sequence: GUAC, modifications: [ { modificationType: CCD_2MG, basePosition: 1 }, { modificationType: CCD_5MC, basePosition: 4 } ], count: 1 } }3.4 配体ligandligand配体的CCD 码字符串与 UI 允许的一致count该配体的拷贝数整数。允许的配体共 19 个CCD_ADP、CCD_ATP、CCD_AMP、CCD_GTP、CCD_GDP、CCD_FAD、CCD_NAD、CCD_NAP、CCD_NDP、CCD_HEM、CCD_HEC、CCD_PLM、CCD_OLA、CCD_MYR、CCD_CIT、CCD_CLA、CCD_CHL、CCD_BCL、CCD_BCB。示例{ ligand: { ligand: CCD_ATP, count: 1 } }, { ligand: { ligand: CCD_HEM, count: 2 } }3.5 离子ionion离子的 CCD 码字符串与 UI 允许的一致离子电荷由 CCD 码隐含指定无需单独写电荷字段count该离子的拷贝数整数。允许的离子共 10 个MG、ZN、CL、CA、NA、MN、K、FE、CU、CO。示例{ ion: { ion: MG, count: 2 } }, { ion: { ion: NA, count: 3 } }4. 多任务示例与本地推理的对照文档末尾给出一个蛋白链 两份回文 DNA 拷贝的多任务示例这里完整保留{ name: Test Fold Job Number Two, modelSeeds: [], sequences: [ { proteinChain: { sequence: TEACHINGS, count: 1 } }, { dnaSequence: { sequence: TAGCTA, count: 2 } } ] }需要强调的是这套 JSON 格式面向的是AlphaFold Server 托管服务而非本仓库的本地推理流程。本仓库开源的本地运行入口是 FASTA 文件 docker/run_docker.py 命令行参数--fasta_paths、--model_preset、--db_preset等多序列 FASTA 用于multimer预设下的复合物预测参见 README.md 中 Folding a heteromer 一节。两条路径的理念相通本地多拷贝复合物通过在 FASTA 中重复序列条目实现对应 Server JSON 中的count字段本地--random_seed的缺省随机行为对应modelSeeds: []的自动种子分配见第 2 节源码分析。因此当你用 Server JSON 完成交互筛查后需要把筛选出的候选迁移到本地开源管线做深度验证时只需把 JSON 中的序列按实体类型转写为多序列 FASTA 即可实体定义本身是等价的。5. 编写请求文件的检查清单结合 server/README.md 的约束与 server/example.json 的实例生成请求文件前建议核对顶层是否为列表即使只有一个 Job每个 Job 是否同时具备name、modelSeeds、sequences三个键modelSeeds留空即采用推荐的可自动分配种子的模式蛋白序列是否只含 20 种标准氨基酸字母核酸序列是否只含合法字母DNA 为 ATGCRNA 为 AUGC双链 DNA 是否同时提供了反向互补的第二条dnaSequenceglycans的position是否为 1-based 且落在序列长度内所有ptmType/modificationType/ligand/ion取值是否落在本文列出的允许清单内文件中是否误写了 JSON 不支持的注释。满足以上条件后该 JSON 即可作为批量建模任务的请求文件提交给 AlphaFold Server结果将以 zip 包形式返回其中同样包含job_name_job_request.json作为下一次迭代的模板。【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考