当前位置: 首页 > article >正文

AlphaFold3中文使用说明

目录

  • 1. 在线网站
    • 用例1. 使用json输入预测蛋白结构
  • 2. 本地命令行
    • 2.1 运行示例
    • 2.2 AF3输入
      • 输入格式
      • JSON兼容性
      • JSON最外层(Top-level)结构
        • 序列
          • 多序列比对MSA
          • 结构模板
        • 用户提供CCDs
    • 2.3 AF3输出

AlphaFold3(AF3)可以通过在线网站或本地部署后使用。 在线网站即开即用,但是每个账号每天只能跑20个任务,适合普通学术用户。 本地部署对机器的配置要求高,适合专业学术用户。

功能特性在线网站本地部署
任务数限制每个账号每天限额20个任务
tokens长度限制和显卡内存相关
输入网页表单/手动输入;json输入;更灵活的json输入(不同于网站的json格式)

1. 在线网站

AlphaFold3网站 目前支持两种输入方式,一种是手动填写每个任务的输入,另一种是将任务以json的格式上传,后者更加适合批量任务。由于手动填写输入的方式简单,本文不再赘述。下文主要演示json输入的用法。

用例1. 使用json输入预测蛋白结构

①根据输入文件,准备json文件。
在这里插入图片描述
图1. 展示了json输入文件中的一个任务示例,包括任务名(name)、随机种子(modelSeed)和蛋白序列(sequence)。本例中的蛋白序列包括4条待建模的序列(s1-s4,分别为TCR alpha, TCR beta, HLA, epitope)。

②打开AlphaFold Server(需要google帐号和科学上网),上传json文件(每个账号每天配额20个任务)。
在这里插入图片描述
图2. 通过json上传任务。右图中绿色方框代表上传的任务解析成功。

③挨个检查、投递上传的任务。
在这里插入图片描述
图3. 依次投递任务。

④投递后运行中的任务可以通过In progress标签查看。
在这里插入图片描述
图4. 查看运行中的任务。

⑤下载已完成任务(Completed),或在网页上初步查看结果。
在这里插入图片描述
图5. 已完成任务的下载。

2. 本地命令行

2.1 运行示例

首先,本地部署AF3,机器配置和部署方法可参考《AlphaFold3中文安装教程》。

然后,使用 JSON 输入文件(以下演示了一个名为alphafold_input.json的json输入文件)测试。

{
  "name": "2PV7",
  "sequences": [
    {
      "protein": {
        "id": ["A", "B"],
        "sequence": "GMRESYANENQFGFKTINSDIHKIVIVGGYGKLGGLFARYLRASGYPISILDREDWAVAESILANADVVIVSVPINLTLETIERLKPYLTENMLLADLTSVKREPLAKMLEVHTGAVLGLHPMFGADIASMAKQVVVRCDGRFPERYEWLLEQIQIWGAKIYQTNATEHDHNMTYIQALRHFSTFANGLHLSKQPINLANLLALSSPIYRLELAMIGRLFAQDAELYADIIMDKSENLAVIETLKQTYDEALTFFENNDRQGFIDAFHKVRDWFGDYSEQFLKESRQLLQQANDLKQG"
      }
    }
  ],
  "modelSeeds": [1],
  "dialect": "alphafold3",
  "version": 1
}

测试命令如下。

docker run -it \
    --volume $HOME/af_input:/root/af_input \
    --volume $HOME/af_output:/root/af_output \
    --volume <MODEL_PARAMETERS_DIR>:/root/models \
    --volume <DATABASES_DIR>:/root/public_databases \
    --gpus all \
    alphafold3 \
python run_alphafold.py \
    --json_path=/root/af_input/fold_input.json \
    --model_dir=/root/models \
    --output_dir=/root/af_output

2.2 AF3输入

输入格式

与网站的json输入格式不同,AF3使用自定义json输入格式。定制的格式允许:

  • 指定蛋白质、RNA 和 DNA 链,包括修饰残基。
  • 为蛋白质和 RNA 链指定自定义多序列比对(MSA)。
  • 为蛋白质链指定自定义结构模板。
  • 使用 CCD(Chemical Component Dictionary) 指定配体。
  • 使用 SMILES 指定配体。
  • 使用 CCD mmCIF 格式定义配体,并通过用户提供的 CCD 提供配体。
  • 指定实体间的共价键。
  • 指定多个随机种子。

JSON兼容性

run_alphafold.py提供了一个转换器,可通过检查 JSON 最外层(top-level)是否为列表来判定输入 JSON 的格式(alphafoldserveralphafold3)。如果检测到输入格式是alphafoldserver,则将其转换为 alphafold3格式。

contents在线网站/serve本地/codebase转换规则(s->c)
多个输入允许在单个 JSON 中指定多个输入每个 JSON 文件只有一个输入
多聚糖不支持
随机种子允许为空,此时由系统随机指定要求用户指定一个随机种子
离子将离子和配体视为不同的实体类型将离子视为一种配体
序列 ID不允许为每个实体指定 id要求用户为每个实体指定一个唯一id

JSON最外层(Top-level)结构

{
  "name": "Job name",    #任务名称,被用于命名输出文件。
  "modelSeeds": [1, 2],  #随机种子整数列表,提供n个(n>=1)种子,获得n个预测结构。
  "sequences": [
    {"protein": {...}},
    {"rna": {...}},
    {"dna": {...}},
    {"ligand": {...}}
  ],                      #序列字典的列表,每个字典定义一个分子实体。
  "bondedAtomPairs": [...],    #(可选)共价键合原子的列表。
  "userCCD": "...",            #(可选)用户提供的CCD。适用于:SMILES不足;自定义分子需要与其他实体结合;RDKit无法生成构象。
  "dialect": "alphafold3",  #输入JSON的风格,必须设置为alphafold3。参考JSON兼容性。
  "version": 1              #输入JSON的版本,必须设置为1。
}
序列

序列(sequences)指定蛋白链、RNA 链、DNA 链和配体。序列中的每个实体都必须有一个唯一ID。
蛋白链示例

{
  "protein": {
    "id": "A",    #一或多个大写字母,指定该蛋白链每个拷贝的唯一 ID。将被用于输出 mmCIF 文件。指定 ID 列表(如[“A”、“B”、“C”])意味着同源链有多个拷贝。
    "sequence": "PVLSCGEWQL",    #氨基酸序列
    "modifications": [
      {"ptmType": "HY3", "ptmPosition": 1},
      {"ptmType": "P1L", "ptmPosition": 5}
    ],                   #(可选)翻译后修饰PTM列表,每个修饰都使用 CCD 和 1-based 的残基位置来指定。
    "unpairedMsa": ...,  #(可选)该链的多序列比对,使用 A3M 格式(等同于FASTA,但允许用"-"表示gap)指定。
    "pairedMsa": ...,    #(不推荐使用)
    "templates": [...]   #(可选)结构模板列表。
  }
}

RNA链示例

{
  "rna": {
    "id": "A",    #一或多个大写字母,指定该 RNA 链每个拷贝的唯一 ID。将被用于输出的 mmCIF 文件。指定 ID 列表(如[“A”、“B”、“C”])意味着同源链有多个拷贝。
    "sequence": "AGCU",    #RNA 序列
    "modifications": [
      {"modificationType": "2MG", "basePosition": 1},
      {"modificationType": "5MC", "basePosition": 4}
    ],                  #(可选)修饰列表,每个修饰都使用其 CCD 和 1-based 位置来指定。
    "unpairedMsa": ...  #(可选) 该链的多序列比对,使用 A3M 格式指定。
  }
}

DNA链示例

{
  "dna": {
    "id": "A",        #一或多个大写字母,指定该 DNA 链每个拷贝的唯一 ID。将被用于输出的 mmCIF 文件。指定 ID 列表(如[“A”、“B”、“C”])意味着同源链有多个拷贝。
    "sequence": "GACCTCT",    #DNA 序列
    "modifications": [
      {"modificationType": "6OG", "basePosition": 1},
      {"modificationType": "6MA", "basePosition": 2}
    ]            #(可选)修饰列表,每个修饰都使用其 CCD 和 1-based 位置来指定。
  }
}

配体示例
配体可通过 3 种不同格式指定。①CCD编码:使用 2022-09-28 的 CCD。如指定了多个 CCD,可能需要指定这些代码之间的键和/或与其他实体的键。②SMILES字符串:这可以指定不在 CCD 中的配体。如果使用 SMILES,则不能指定与其他实体的共价键,因为这些键依赖于特定的原子名称。③用户提供的 CCD + 自定义配体编码:这可以指定 CCD 中没有的配体,同时还支持指定与其他实体的共价键,以及在 RDKit 无法生成构象时的备份参考坐标。

{
  "ligand": {
    "id": ["G", "H", "I"],    # 一或多个大写字母,指定该配体的唯一ID。也将被用于输出的 mmCIF 文件。指定 ID 列表(如[“A”、“B”、“C”])意味着配体有多个拷贝。
    "ccdCodes": ["ATP"]       #(可选)CCD编码列表。可以是标准 CCD 编码,或用户提供的 CCD 自定义编码。
  }
},
{
  "ligand": {
    "id": "J",
    "ccdCodes": ["LIG-1337"]
  }
},
{
  "ligand": {
    "id": "K",
    "smiles": "CC(=O)OC1C[NH+]2CCC1CC2"   #(可选)使用 SMILES 定义的配体。
  }
}
多序列比对MSA

蛋白RNA允许设置自定义MSA。如果没有设置,数据管道将按照论文中的描述,使用 Jackhmmer/Nhmmer在基因数据库中搜索,自动构建MSA

MSA有3种模式:①(推荐选项)如果未设置unpairedMsa字段,AF3将自动构建 MSA。②如果unpairedMsa字段设置为空,AF3将不会构建MSA,输入模型的MSA为空。③(专家选项)如果unpairedMsa字段设为自定义A3M字符串,AF3将使用提供的MSA。

如果为蛋白设置了unairedMsa字段,则必须明确设置pairedMsa字段(通常为空字符串)和templates(可以是模板列表或空列表)。
在设置自定义MSA时,必须确保MSA 是有效的 A3M 文件第一个序列与查询序列完全相同如果删除 MSA hits 的所有插入序列,则所有序列的长度与查询序列完全相等

只有在折叠多链时,MSA配对才有意义,因为需要找到一种沿序列维度连接各条链MSA的方法。如果只是简单地沿序列维度连接单个 MSA 矩阵,并进行填充以使所有 MSA 深度相同,那么连接的 MSA 中可能会出现由来自不同生物体的序列组成的行。为了确保MSA同一行的序列来自同一生物体,AF3 的方法是在pairedMsa中查找 UniProt organism ID,并根据此信息对序列进行配对。
建议用户手动配对或使用适当软件的输出结果,然后仅使用unpairedMsa字段提供 MSA。这种方法可以精确控制每个序列在 MSA 中的位置,而不是依赖pairedMsa中名称匹配的后处理方法。

手动设置unairedMsa时,pairedMsa必须保持未设置状态(即JSON中没有pairedMsa关键字)?

结构模板

只能为蛋白指定结构模板。

"templates": [
  {
    "mmcif": ...,
    "queryIndices": [0, 1, 2, 4, 5, 6],
    "templateIndices": [0, 1, 2, 3, 4, 8]
  }
]

模板被指定为一个 mmCIF 字符串,其中包含一个结构模板链一个0-based映射(将查询残基索引映射到模板残基索引)。映射使用两个相同长度的列表指定。
可以提供多个结构模板。注意,如果提供的 mmCIF 包含一个以上的链,则会出现错误,因为无法确定哪个链应被用作模板。

未完待续。。。

用户提供CCDs

2.3 AF3输出


http://www.kler.cn/a/392487.html

相关文章:

  • 如何用C#和Aspose.PDF实现PDF转Word工具
  • Scala入门基础(17.1)Set集习题
  • 事件循环 -- 资源总结(浏览器进程模型、事件循环机制、练习题)
  • Chrome使用IE内核
  • 若依笔记(八):Docker容器化并部署到公网
  • gpu-V100显卡相关知识
  • 11月上海月赛解报告(丙组)T5
  • Castle.DynamicProxy的NET Core和Framework的AOP实施
  • 15 个改变世界的开源项目:塑造现代技术的先锋力量
  • 在 .NET 6.0 中创建用于 CRUD 操作的 Web API
  • 上河AI上线ComfyUI工作台
  • 如何使用OpenCV和Python进行相机校准
  • Python+robotframework接口自动化测试实操(超详细总结)
  • 【Docker】Docker基础及docker-compose
  • 传奇996_19——龙岭总结
  • 最全最简单理解迭代器
  • HarmonyOS 如何实现传输中的数据加密
  • 《DiffusionDet: Diffusion Model for Object Detection》ICCV2023
  • Android Mobile Network Settings | APN 菜单加载异常
  • Docker如何以配置文件方式安装nginx
  • WPF应用设置参数存储
  • 【Linux】Linux环境基础开发工具使用(下)
  • C++入门基础知识148—【关于C++ 二元运算符重载】
  • C#语言:现代软件开发的核心工具
  • shardingsphere5.5.1基于spring体系的集成-数据脱敏04
  • uni-app表格带分页,后端处理过每页显示多少条