news 2026/9/15 19:59:50

AlphaFold 运行前 monomer、monomer_casp14 与 monomer_ptm 模型预设怎么选

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AlphaFold 运行前 monomer、monomer_casp14 与 monomer_ptm 模型预设怎么选

AlphaFold 运行前 monomer、monomer_casp14 与 monomer_ptm 模型预设怎么选

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

当你已经按 README 完成了 AlphaFold 的安装(Linux 系统、Docker 镜像、遗传数据库与模型参数下载),准备对单条或多条蛋白序列跑结构预测时,docker/run_docker.py--model_preset参数对单链(monomer)预测有三种可选值:monomermonomer_casp14monomer_ptm。三者使用同一批 CASP14 原始权重,区别在于是否做 8 倍集成(ensemble)以及是否带 pTM 头。选错预设会带来 8 倍的算力浪费,或者拿到精度略低的结构,下面说明三者的实际差异、各自的适用目标,以及运行后如何核对输出是否符合所选预设。

三个预设到底有什么区别

--model_preset在 docker/run_docker.py 中定义,默认值为monomer,合法取值为monomermonomer_casp14monomer_ptmmultimer(多聚体不在本文范围内)。这个参数最终会被原样传给容器内的 run_alphafold.py,其取值同样限制为这四个(run_alphafold.py#L106-L107)。

预设到具体模型权重的映射在 alphafold/model/config.py 的MODEL_PRESETS中:

  • monomer对应model_1model_5共 5 个 CASP14 模型;
  • monomer_ptm对应model_1_ptmmodel_5_ptm共 5 个 pTM 微调模型;
  • monomer_casp14直接等于MODEL_PRESETS['monomer'],即与monomer使用同一组权重。

所以monomermonomer_casp14的权重完全相同,差异只在推理配置。run_alphafold.py#L452-L455 中:当model_presetmonomer_casp14num_ensemble = 8,其余预设(包括monomermonomer_ptm)均为num_ensemble = 1

README 对三个预设的官方描述(README.md,“Running AlphaFold” 一节):

  • monomer:CASP14 使用的原始模型,不做集成(no ensembling)。
  • monomer_casp14:CASP14 原始模型配num_ensemble=8,匹配 CASP14 当时的配置。README 明确说明它 largely provided for reproducibility(主要为可复现性提供),算力开销是 8 倍,精度增益有限(CASP14 域上平均 GDT 仅 +0.1)。
  • monomer_ptm:CASP14 原始模型用 pTM 头微调而来,在结构预测之外额外提供 pTM(predicted TM-score)和 PAE(predicted aligned error)这类成对置信度量;README 指出它比常规 monomer 模型精度略低(slightly less accurate)。

按目标选择预设

你的目标选择依据
日常单链结构预测(默认路径)monomer(默认值,可省略该参数)权重即 CASP14 原始模型,不做集成,算力最省
复现 CASP14 系统配置monomer_casp14唯一带num_ensemble=8的预设,与 CASP14 配置一致
需要 pTM / PAE 置信度量monomer_ptm唯一带 pTM 头的预设,代价是结构精度略低

判断逻辑很直接:只有当任务本身要求 CASP14 可复现性,才为 8 倍算力换取 +0.1 平均 GDT 的增益选monomer_casp14;只有当下游分析需要整体打包置信度(pTM)或残基间对齐误差图(PAE)时,才接受结构精度略降选monomer_ptm。除此之外都走默认的monomer

另外注意:复现 CASP14 不只是换一个预设。README 的 “Note on CASP14 reproducibility” 一节指出,默认下载脚本得到的数据库版本与 CASP14 当时使用的并不一致;若要用最新 PDB/PDB70 逼近 CASP14 条件,需传--max_template_date=2020-05-14把模板限制在 CASP14 开始之前可用的结构。

运行命令

以下命令来自 README 的 “Folding a monomer” 示例,三个预设只改--model_preset一行。前置条件与首次运行相同:Linux 机器、NVIDIA GPU、已用scripts/download_all_data.sh下载好数据库和参数(目录下文统称$DOWNLOAD_DIR)、Docker 镜像已构建、输出目录可写。

变量说明:

  • monomer.fasta:你的输入 FASTA 文件,按 README 格式包含序列名和<SEQUENCE>序列;
  • $DOWNLOAD_DIR:下载脚本中你传入的目标目录(shell 变量,需与下载时一致,不要放在 AlphaFold 仓库目录内);
  • --output_dir:输出目录的绝对路径,不指定时默认为/tmp/alphafold/
  • --max_template_date:模板结构可用的最晚发布日期,示例日期取自 README。

默认预设(省略--model_preset即为monomer,这里显式写出):

python3 docker/run_docker.py \ --fasta_paths=monomer.fasta \ --max_template_date=2021-11-01 \ --model_preset=monomer \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir

CASP14 复现配置(算力为monomer的 8 倍):

python3 docker/run_docker.py \ --fasta_paths=monomer.fasta \ --max_template_date=2021-11-01 \ --model_preset=monomer_casp14 \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir

带 pTM 头:

python3 docker/run_docker.py \ --fasta_paths=monomer.fasta \ --max_template_date=2021-11-01 \ --model_preset=monomer_ptm \ --data_dir=$DOWNLOAD_DIR \ --output_dir=/home/user/absolute_path_to_the_output_dir

如果数据库是用reduced_dbs方式下载的(scripts/download_all_data.sh <DOWNLOAD_DIR> reduced_dbs),命令中需同时加--db_preset=reduced_dbsdb_presetmodel_preset相互独立,前者控制 MSA 数据库规模与速度,后者只控制模型。

运行后如何验证选对了预设

README 的 “AlphaFold output” 一节给出了输出目录结构(--output_dir下以目标名命名的子目录),其中用于区分预设的关键判断如下。

三个预设都会产生:

  • ranked_0.pdb等按置信度排序的结构(ranked_0.pdb置信度最高),排序依据 pLDDT;
  • unrelaxed_model_*.pdbrelaxed_model_*.pdbresult_model_*.pklranking_debug.jsontimings.jsonmsas/
  • pLDDT 分数存在result_model_*.pklplddt字段(形状 [N_res],0–100),同时写入输出 PDB 的 B-factor 字段(注意 pLDDT 越高越好,与常规 B-factor 方向相反)。

只有monomer_ptm会额外产生两个字段,它们存在于result_model_*.pkl中,且 README 明确标注 “Present only if using pTM models”:

  • ptm:标量,predicted TM-score;
  • predicted_aligned_error:形状 [N_res, N_res] 的数组,0 表示最可信,可用于可视化结构内部的域打包置信度。

因此核对方式:跑完后加载result_model_*.pkl,若任务要求 pTM/PAE,检查ptmpredicted_aligned_error字段是否存在;不存在说明没跑monomer_ptm。而monomer_casp14monomer的输出文件结构相同(权重相同、仅num_ensemble不同),无法从输出文件区分二者,只能回看运行命令确认--model_preset的取值。

限制与边界

  • monomer_casp14的 8 倍算力开销和 +0.1 平均 GDT 增益是 README 给出的 CASP14 域上的数据,只应作为“为复现而付出成本”的权衡依据,README 的定位就是 reproducibility,不是精度最优选项。
  • monomer_ptm精度略低于常规 monomer 模型是 README 的明确说法,若下游只需要结构,没有理由选它。
  • 本文只覆盖单链预设。蛋白复合物、同源多聚体(homomer)等场景应使用--model_preset=multimer,且需要额外下载 UniProt 数据库,属于另一条路径,不在本文展开。
  • 数据库版本影响结果:少量蛋白(如 T1064)输出在随机种子和输入数据库变化下波动较大;严格复现时按 README 的 CASP14 reproducibility 一节固定数据库版本和--max_template_date

【免费下载链接】alphafoldOpen source code for AlphaFold 2.项目地址: https://gitcode.com/GitHub_Trending/al/alphafold

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 19:59:14

Maven构建复杂项目

最近研究开源监控平台Hertzbeat&#xff0c;于是github上fork了这个项目&#xff08;master版本日期20251120&#xff09;&#xff0c;把代码拉到本地跑起来。Hertzbeat属于父子模块项目&#xff0c;通过前后端进行部署。Maven构建时软件版本要求Maven3&#xff0c;JDK17及以上…

作者头像 李华
网站建设 2026/9/15 19:55:48

MV3浏览器插件工程化:从架构演进到端侧AI实战指南

入行这么多年&#xff0c;我经常见到有人把浏览器插件想成一个小脚本&#xff1a;改改页面样式、往页面里塞一段逻辑&#xff0c;完事。可当你真把一个插件从 MVP 推到线上&#xff0c;被用户报了一堆跨标签页不同步、后台任务被回收、敏感数据泄漏的问题之后&#xff0c;会明白…

作者头像 李华
网站建设 2026/9/15 19:54:52

mise声明式环境管理:统一Java/Node/Maven多版本开发环境

1. 项目概述&#xff1a;当开发环境管理从“手动拼凑”走向“声明式交付”最近三个月&#xff0c;我彻底把本地开发环境的控制权交给了mise——不是简单地换了个工具&#xff0c;而是重构了整个工程化基础设施的认知逻辑。过去写 Java 项目要配 JDK、配 Maven、配JAVA_HOME&…

作者头像 李华