社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

体外酶动力学参数深度学习预测综合框架 CatPred

生信宝典 • 1 周前 • 52 次点击  

体外酶动力学参数深度学习预测综合框架 CatPred

原文题名:CatPred: a comprehensive framework for deep learning in vitro enzyme kinetic parameters

文章信息:Nature Communications,2025,16:2072。DOI:10.1038/s41467-025-57215-9。代码仓库:https://github.com/maranasgroup/CatPred。

文章一句话总结

CatPred 将标准化酶动力学数据集、蛋白语言模型特征、底物图神经网络和概率集成回归整合起来,用于预测体外 kcat、Km 和 Ki,并为每个酶-底物查询给出可用于筛选决策的不确定性估计。

摘要

酶活性估计仍然高度依赖实验测定,而实验测定通常耗时且成本较高。作者提出 CatPred,这是一个用于预测体外酶动力学参数的深度学习框架,覆盖转换数 kcat、米氏常数 Km 和抑制常数 Ki。CatPred 处理了几个关键问题,包括缺少标准化数据集、模型在与训练序列不相似的酶序列上的性能评估,以及模型不确定性量化。作者探索了多种学习架构和特征表示,包括预训练蛋白语言模型和三维结构特征,以支持更稳健的预测。CatPred 能给出较准确的预测和查询特异的不确定性估计,较低的预测方差与较高准确性相关。预训练蛋白语言模型特征尤其提升了分布外样本的表现。CatPred 还引入了覆盖范围较广的基准数据集,分别包含约 23k、41k 和 12k 条 kcat、Km 和 Ki 数据点。该框架在与已有方法相比时表现有竞争力,同时提供可靠的不确定性量化。

图形摘要

左侧展示 BRENDA 与 SABIO-RK 经过清洗后形成 CatPred-DB,中间分为酶端和底物端两条输入流。酶端包含序列注意力、ESM2 蛋白语言模型特征和可选三维结构图特征;底物端用二维分子图和有向消息传递神经网络表示。两条流汇入概率回归与模型集成,右侧输出 kcat、Km 和 Ki 的预测均值、不确定性分解,以及分布外评估和“低不确定性对应较低误差”的可靠性信号。

文章解决的主要问题

该领域此前存在什么关键瓶颈?

酶动力学参数是代谢建模、酶工程、路径设计和候选酶筛选的核心输入,但 kcat、Km 和 Ki 的实验测定成本高、速度慢、条件依赖强。BRENDA 和 SABIO-RK 等数据库虽然积累了大量体外测量值,但许多记录缺少酶序列、底物结构、物种、反应或条件信息,导致不同研究使用的数据子集、清洗规则和底物映射方式差异很大。

第二个瓶颈是泛化评估不足。已有 kcat 或 Km 模型经常在随机划分或弱约束划分上报告性能,难以判断模型是在学习可迁移的酶-底物规律,还是依赖训练集中相似酶序列和常见底物的邻近关系。

第三个瓶颈是缺少单个预测的不确定性。酶工程和代谢模型参数化需要知道哪些预测可用于优先实验,哪些预测只是远离训练分布的粗略猜测。传统均方误差回归只能给出点估计,不能为每个查询提供可信度。

该文章的具体科学问题或技术问题?

作者要回答三个技术问题:

  1. 能否构建覆盖 kcat、Km 和 Ki 的标准化体外动力学基准数据集,并保留比既有 ML 数据集更广的酶序列、物种、EC 类别和底物覆盖?
  2. 在酶序列与训练集相似度降低时,哪些特征表示仍能维持较好的动力学参数预测能力?
  3. 能否把概率回归与集成模型结合起来,为每个酶-底物预测同时给出均值、偶然不确定性和认知不确定性?

为什么关注该问题?

近年蛋白功能注释和结构预测速度已经显著提升,但许多计算注释出来的候选酶仍缺少定量动力学信息。即使是粗略的 kcat、Km 或 Ki 估计,也能帮助筛选定向进化起始酶、排除周转慢或强抑制的路径酶、初始化酶约束代谢模型,并指导需要优先测量的候选。

既往研究做到哪一步?

DLKcat 使用酶序列 CNN 和底物图神经网络预测 kcat;TurNup 和 Kroll 等工作用语言模型特征和反应/底物特征预测 kcat 或 Km,并强调分布外测试;UniKP 用统一框架预测 kcat、Km 和 kcat/Km。它们共同证明了机器学习能从公开动力学数据库学习有用信号,但仍存在数据覆盖、严格分布外评估和单点预测不确定性不足的问题。

wiki 中已有的 FusionESP、VIPER、EZSpecificity、MESI 更偏向酶-底物配对或相互作用建模;AdventML 预测最适催化温度;CatPred 则补上了体外动力学参数预测层,尤其是 kcat、Km 和 Ki 的定量估计。

如果不解决这个问题,会限制哪些后续研究或应用?

如果动力学参数预测缺少标准数据集、严格分布外评估和不确定性,后续应用会遇到三个风险:代谢模型参数可能被高置信度地错误初始化;酶工程会优先测试模型并不可靠的远分布候选;不同模型之间的比较会被数据清洗和划分差异掩盖,难以判断真实进步。

作者提出的新思路是如何自然引出的?

作者从数据库不完整和预测可信度不足两个问题出发。先用统一流程从 BRENDA 和 SABIO-RK 构建 CatPred-DB,并把酶序列、底物 SMILES、预测结构和动力学参数对齐;再用多层次酶特征比较模型实际需要的蛋白信息;最后用概率回归与模型集成同时估计数据噪声和模型外推不确定性。

核心方法与技术路线

数据来源或研究对象

CatPred-DB 来自 BRENDA 2022_2 和截至 2023 年 11 月的 SABIO-RK。作者只保留包含关键注释的体外野生型酶记录,包括动力学参数值、EC 号、物种、反应物或底物名称、酶序列映射和底物 SMILES。工程突变酶被排除。

数据集规模如下:

数据集
条目数
独特物种
独特 EC 类别
独特酶序列
CatPred-DB-kcat
23,197
1,685
2,657
7,183
CatPred-DB-Km
41,174
2,419
3,550
12,355
CatPred-DB-Ki
11,929
652
1,306
2,829

对重复测量,kcat 取最大值,Km 和 Ki 取几何平均。动力学参数跨越多个数量级,因此训练目标使用 log10 转换值。每条记录还映射到 AlphaFold2 结构;如果 AlphaFold 数据库缺少结构,则用 ESMFold 预测。

核心实验/计算/模型方法

CatPred 的输入是酶序列或结构以及底物 SMILES。kcat 任务使用所有反应物的串联 SMILES,因为共底物和辅因子可能影响最大周转速率;Km 和 Ki 使用对应底物或抑制剂的 SMILES。

模型包含四类主要表示:

  1. 底物表示:有向消息传递神经网络 D-MPNN,将 SMILES 转换成原子-键图后学习分子表示。
  2. 序列注意力表示:氨基酸序列经嵌入、旋转位置编码和多头自注意力提取局部与全局序列模式。
  3. 蛋白语言模型表示:使用 ESM-2 650M 预训练模型提取 1280 维蛋白特征。
  4. 三维结构表示:使用预训练等变图神经网络 E-GNN 从氨基酸残基级三维结构图中提取 128 维结构嵌入。

这些酶特征与底物 D-MPNN 特征拼接后输入全连接网络。网络输出高斯分布的均值和方差,而不是单个点估计。均值作为预测值,方差对应偶然不确定性。作者训练十个随机初始化的模型组成集成,集成均值的离散程度用于估计认知不确定性。

关键算法和计算过程的细致解析

CatPred 的核心不是一个单一编码器,而是数据清洗、特征层级比较、概率回归和严格评估的组合。

第一步是数据标准化。BRENDA 和 SABIO-RK 中的记录先被解析,缺失必要注释的记录被剔除;物种名通过 NCBI Taxonomy 校验;UniProt ID 缺失时,作者用物种和 EC 组合搜索 UniProt,只有唯一匹配时才保留;底物名通过 BRENDA、SABIO-RK 和 PubChem 映射到 canonical SMILES,再用 RDKit 标准化。

第二步是模型输入构建。底物图包含原子类型、键数、形式电荷、杂化、芳香性、原子质量、氢原子数、手性、键类型、共轭、环内键和键手性等特征。酶端则从序列注意力、ESM-2 或 E-GNN 中选择不同组合。

第三步是概率回归。每个模型输出 log10 参数的均值 μ 和方差 σ²,并通过负对数似然损失训练。对于单个输入,十个模型各自给出 μi 和 σi²。最终预测是 μi 的平均值。偶然不确定性来自 σi² 的平均,反映标签噪声和实验条件差异;认知不确定性来自 μi 之间的方差,反映训练数据覆盖不足。总不确定性是两者之和,报告时取标准差,仍在 log10 尺度上。

第四步是分布外评估。训练、验证、测试按 80:10:10 划分,且同一酶-底物对不跨集合重复。测试集进一步按与训练序列的最大序列一致性阈值构建 99%、80%、60%、40% 的分布外子集,用于观察模型在远离训练序列时的性能下降。

基于代码的算法理解

当前 GitHub 仓库实现与论文描述基本一致,同时增加了 Web 应用、API 和批量预测入口。

代码层面可对应为:

论文模块
代码位置
实现含义
D-MPNN 底物编码
catpred/models/mpn.py
基于 Chemprop 风格的分子消息传递,把原子和键特征聚合为分子向量
蛋白序列注意力
catpred/models/model.py
catpred/models/transformer_models.py
序列嵌入、旋转位置编码、多头注意力和 attentive pooling
ESM-2 特征
catpred/data/esm_utils.py
 与模型参数 add_esm_feats
加载预训练蛋白语言模型特征并与序列注意力特征拼接
E-GNN 结构特征
add_pretrained_egnn_feats
 相关参数
加载预训练结构图嵌入;缺失时可用平均结构特征兜底
概率回归损失
catpred/train/loss_functions.py
 的  mve
均值-方差估计损失,用于输出均值和方差
不确定性分解
catpred/uncertainty/uncertainty_predictor.py
 的 MVEPredictor
计算 ensemble 均值、偶然方差、认知方差和总方差

值得注意的是,仓库 README 显示 2026 年又上线了网页预测和批量预测服务;这些属于论文发表后的工具化扩展。

关键指标或评价体系

作者使用三类指标:

  1. 决定系数 R²:衡量预测解释真实值方差的比例。
  2. 平均绝对误差 MAE:在 log10 尺度上衡量误差大小。
  3. p1mag:预测值与真实值误差是否在一个数量级以内的比例。这个指标更贴近酶动力学应用,因为 kcat、Km 和 Ki 常跨越多个数量级。

对照设计

对照包括:

  1. 简单基线:对每个测试点,寻找训练集中三个最相似酶序列,取对应参数几何平均作为预测。
  2. DLKcat:早期 kcat 深度学习框架。
  3. UniKP:统一动力学参数预测框架,使用蛋白和分子语言模型特征及树模型。
  4. CatPred 特征消融:仅底物、底物+序列注意力、底物+序列注意力+ESM-2、底物+序列注意力+ESM-2+E-GNN,以及 Ki 任务中的底物+序列注意力+E-GNN。

方法之间的逻辑关系

CatPred-DB 提供统一训练与评估对象;D-MPNN 处理底物结构;序列注意力学习任务相关的蛋白序列模式;ESM-2 提供跨蛋白空间的进化语义;E-GNN 测试三维结构信息是否能额外增加收益;概率回归和集成模型把预测值转化为带不确定性的决策信号;分布外测试检验这些表示是否真的能迁移到较远酶序列。

文章创新点

  1. 科学问题创新:文章把体外酶动力学参数预测从“点估计模型比较”推进到“标准数据集 + 分布外泛化 + 查询级不确定性”的综合框架。这个问题设置更接近实际酶工程和代谢建模。
  2. 方法创新:核心方法创新是把均值-方差概率回归与十模型集成结合,在 kcat、Km、Ki 预测中同时估计偶然不确定性和认知不确定性。序列注意力、ESM-2、E-GNN、D-MPNN 各自不是新发明,但组合和系统消融有价值。
  3. 数据创新:CatPred-DB 是文章最重要的资源贡献之一。它比既有 kcat 和 Km ML 数据集覆盖更多序列、物种和 EC 类别,并把每条记录连接到 SMILES、UniProt 和预测结构。
  4. 机制创新:文章没有揭示新的酶催化机制。它的机制层贡献主要是说明 ESM-2 特征有助于远序列泛化,而全蛋白三维结构 E-GNN 特征在 kcat 和 Km 上未带来额外提升。
  5. 应用创新:CatPred 提供 kcat、Km 和 Ki 的统一预测入口,并给出每个预测的不确定性,可直接服务候选排序、代谢模型参数初始化和实验优先级设定。

这篇文章真正的新意在于标准化动力学数据资源、严格分布外评估和不确定性输出三者的组合。常规工作包括使用 D-MPNN、ESM-2、全连接网络、R²/MAE 指标和随机训练/验证/测试划分;这些组件本身不是突破点。

对后续研究的启发

对本领域研究范式的影响

CatPred 强化了一个重要范式:酶动力学模型应同时报告数据来源、清洗规则、分布外划分和查询级置信度。仅在随机测试集上报告整体 R² 已经不足以支持新酶或远缘酶的应用。

它也提醒我们,动力学参数预测应当作为酶功能预测流程中的独立层。EC 或 GO 注释告诉我们“可能做什么”,酶-底物配对模型告诉我们“是否可能接受某底物”,CatPred 这样的模型进一步估计“速度、亲和力或抑制强度大概是多少”。

对后续实验设计或计算分析的启发

低不确定性预测可以作为优先验证对象,高不确定性预测则更适合作为主动学习或补数据目标。对于 kcat、Km、Ki 这类高噪声标签,后续实验设计应尽量记录温度、pH、缓冲液、底物浓度、酶构象、寡聚状态和检测方法,否则模型很难区分真实酶差异与实验条件差异。

对数据库、模型、算法、工具开发的启发

数据库层面,未来需要把动力学数值、底物和共底物、反应、条件、酶序列、突变状态和结构状态统一记录。模型层面,CatPred 的结果提示全蛋白结构嵌入不一定优于 PLM 特征;后续更值得尝试活性位点、口袋、辅因子、反应中心和过渡态相关的局部结构表示。

对转化应用或产业化的潜在价值

在代谢工程中,CatPred 可为酶约束代谢模型和动力学模型提供初始参数;在酶工程中,可帮助筛掉预测周转慢、亲和力弱或抑制强的候选;在路径设计中,可作为 retrosynthesis 或 pathway ranking 的动力学过滤器。实际应用时应优先使用带不确定性的排序,而不是把预测值当作精确常数。

这篇文章还留下了哪些未解决问题

  1. 小于 40% 序列一致性的远缘 kcat 预测仍然较弱。
  2. 数据噪声主要来自实验条件、数据库注释和重复测量差异,模型只能估计和部分规避,不能从根本上消除。
  3. 结构特征只用全蛋白 E-GNN 嵌入,未系统建模活性位点、辅因子、金属、口袋柔性或反应中心。
  4. 训练对象主要是野生型体外数据,对突变酶、复合体、同工酶和体内有效动力学参数覆盖不足。
  5. 不确定性与误差相关,但仍需要更多外部实验验证来证明其能提高真实筛选命中率。

文章局限性与可改进方向

数据集是否充分?

CatPred-DB 是目前较系统的体外动力学数据集,但仍受数据库原始注释限制。许多记录缺少温度、pH、缓冲液、底物浓度、酶构象、寡聚状态、同工酶信息和实验方法。Ki 数据集比 Km 小得多,作者也观察到高维 pLM 特征在 Ki 上可能过拟合。

对照是否严格?

对照整体较充分,包括简单邻近基线、DLKcat、UniKP 和多个特征组合。分布外测试按酶序列相似度分层,是文章的重要优点。不过,划分重点在蛋白侧,底物 scaffold-cold、反应类型冷启动、双冷启动和实验条件冷启动仍可进一步加强。

方法是否存在适用边界?

CatPred 预测的是体外参数,不能直接代表体内有效参数。kcat 任务使用所有反应物串联 SMILES,对多底物反应更合理,但仍未显式建模反应方向、产物、过渡态和催化机制。模型适合做候选排序和参数初始化,不适合作为单个酶的精确动力学常数替代实验。

结论是否可能被过度外推?

文章的结论应限定为体外野生型酶动力学参数预测。它不证明模型能可靠预测突变效应、底物特异性、反应产物、催化机理或体内通量。结构特征无明显增益也不意味着结构无用,更可能说明全蛋白 E-GNN 嵌入没有捕捉到与催化直接相关的局部机制。

后续需要哪些验证?

  1. 在新酶家族、新底物 scaffold 和新反应类型上的前瞻性湿实验验证。
  2. 对不同 pH、温度和缓冲体系的条件感知动力学预测。
  3. 将活性位点、辅因子、金属和反应中心加入结构/机制层。
  4. 对不确定性做外部校准,验证低不确定性候选是否真的提高实验命中率。
  5. 与 CatPred-DB 类似的 mutant kinetics 数据集,用于连接动力学预测和定向进化。

原文图导读

图 1

图意:图 1 展示 CatPred-DB 的数据构建和覆盖范围。核心信息是作者从 BRENDA 和 SABIO-RK 中提取包含反应分子、酶序列、预测结构和动力学参数的记录,并显示 CatPred-DB 相比既有数据集引入了更多酶序列,且新序列分布在多个 EC 一级类别中。

标题翻译:CatPred-DB:从 BRENDA 和 SABIO-RK 数据库整理得到的 kcat、Km 和 Ki 体外酶促反应测量值综合基准数据集。

子图说明全文翻译:

a. 对每个酶促反应,数据集包含反应涉及分子的完整注释、酶序列、AlphaFold2.0 或 ESMFold 预测的酶结构,以及相应动力学参数。

b. CatPred-DB-kcat 和 CatPred-DB-Km 数据集中按酶分类 EC 一级分组的条目数柱状图。每个柱上方的标签显示 CatPred-DB 中相比既有数据集新增序列的百分比。

c. 使用 ESM-2 蛋白语言模型嵌入可视化的 CatPred-DB-kcat 和 CatPred-DB-Km 数据集酶序列潜在空间图。序列嵌入被转换为 k 近邻图,k = 10,并用 TMAP 和 Faerun 库可视化。潜在空间图中的每个点对应一条酶序列,并按该序列是 CatPred-DB 新引入还是已存在于既有数据集中着色。

图 2

图意:图 2 是 CatPred 架构图。它把酶特征分成三个层级:序列注意力、蛋白语言模型、三维结构 E-GNN;把底物特征交给 D-MPNN;最后用概率回归输出均值和方差,并通过 Colab 界面提供预测。

标题翻译:CatPred 深度学习架构和预测界面概览。

子图说明全文翻译:

a. 用于酶特征学习的三种不同模态,信息细节逐步增加。序列注意力模块使用多头注意力层学习氨基酸嵌入特征。蛋白语言模型模块使用从预训练蛋白语言模型提取的特征。等变图神经网络模块通过在酶的氨基酸级图上使用等变图神经网络,提取酶三维结构特征。

b. 底物特征学习通过有向消息传递神经网络完成,该网络利用二维原子-键连接图提取分子表示。

c. CatPred 模型在 CatPred-DB 数据集上训练,结合底物和酶的特征学习模块,并使用概率回归方法。酶和底物特征输入全连接神经网络,输出以高斯分布形式表示的动力学参数,该分布由对应均值 μ 和方差 σ² 表征。

d. CatPred 生产模型通过 Google Colab 界面开放,便于使用。输入为底物 SMILES、酶序列或结构,以及要预测的动力学参数类型。界面随后加载相应训练模型,并输出带不确定性量化的动力学参数,即预测均值和标准差。

图 3

图意:图 3 展示数据划分和不同特征组合的模型性能。ESM-2 pLM 特征与序列注意力结合后,在 kcat、Km 和 Ki 的 held-out 测试中表现最好;在 OOD 测试中,Km 维持较强表现,kcat 和 Ki 难度更高。

标题翻译:CatPred-DB 数据集划分示意图和 CatPred 模型评估。

子图说明全文翻译:

a. 用维恩图显示用于训练、held-out 测试和分布外测试的 CatPred-DB 数据集规模。

b. 训练后的 CatPred 模型在 kcat、Km 和 Ki 预测中,在 held-out 测试集和分布外测试集上获得的决定系数 R²。实心柱表示 held-out 测试,带纹理柱表示分布外样本。分布外样本是从完整测试集中提取的子集,要求该子集中没有任何酶序列与任一训练序列超过 99% 相似。“仅底物”表示只用底物特征训练的 CatPred 模型;“底物+序列注意力”表示使用底物特征和序列注意力特征训练的 CatPred 模型;“底物+序列注意力+蛋白语言模型”表示使用底物特征、序列注意力和蛋白语言模型特征训练的 CatPred 模型;“底物+序列注意力+蛋白语言模型+等变图神经网络”表示使用底物特征、序列注意力、蛋白语言模型和 E-GNN 特征训练的 CatPred 模型。

图 4

图意:图 4 评估随着测试酶序列与训练序列相似度降低,模型性能如何变化。pLM 特征对 kcat 和 Km 的远序列泛化贡献最明显;结构 E-GNN 特征没有在 kcat 和 Km 上带来额外明显收益。

标题翻译:在与训练序列相似度逐渐降低的分布外集合上评估 CatPred 模型。

子图说明全文翻译:

a-c. 分别绘制 kcat、Km 和 Ki 的评估指标。横轴每组表示在 held-out 测试集中按与训练序列最大百分比序列一致性阈值筛选得到的子集上获得的 R²。“仅底物”表示只用底物特征训练的 CatPred 模型;“底物+序列注意力”表示使用底物特征和序列注意力特征;“底物+序列注意力+蛋白语言模型”表示使用底物特征、序列注意力和蛋白语言模型特征;“底物+序列注意力+蛋白语言模型+等变图神经网络”表示使用底物特征、序列注意力、蛋白语言模型和 E-GNN 特征。

图 5

图意:图 5 将 CatPred 与基线、DLKcat 和 UniKP 比较。CatPred 在 kcat、Km 和 Ki 的多个 held-out 与分布外设置中总体有竞争力,尤其在 OOD kcat 上相对 UniKP 有更明显优势;Ki 在最严格 40% 序列一致性 OOD 设置中与 UniKP 差异不显著。

标题翻译:使用 CatPred-DB 基准数据集将 CatPred 与已有机器学习框架进行比较评估。

子图说明全文翻译:

图中评估基线、DLKcat、UniKP 和 CatPred。在 held-out 测试和不同酶序列相似度水平的分布外测试上获得的 R² 被绘制出来。a、b、c 分别显示 CatPred-DB-kcat、CatPred-DB-Km 和 CatPred-DB-Ki 的基准结果。横轴每组表示用与训练序列的最大百分比序列一致性阈值形成的测试集。最大序列一致性阈值为 100% 的集合指 held-out 测试,其余集合指分布外测试。每个柱的高度表示 DLKcat、UniKP 和 CatPred 十个重复模型的平均指标值,叠加点表示各重复模型的指标值。基线没有重复模型。对于 CatPred-DB-Ki 评估,双星号表示 Welch 双样本 t 检验得到统计上不显著的 p 值,p = 0.539,双侧、假设方差不等;结果为 t(17.3)=0.626,p=0.539,均值差异的 95% 置信区间为 -0.0061 到 0.0075。未进行多重比较校正。星号是“基线”柱的占位符,用于表示 60% 和 40% 最大序列一致性阈值分布外评估中的负 R²,分别为 -0.047 和 -0.106。

图 6

图意:图 6 解释 CatPred 的不确定性框架,并验证低不确定性子集确实具有更好的 R²、更低 MAE 和更高 p1mag。它是全文最重要的决策支持图。

标题翻译:CatPred 中的不确定性量化:框架和性能分析。

子图说明全文翻译:

a. CatPred 以酶和底物特征为输入,输出以均值和方差表征的高斯分布形式动力学参数。训练模型集成时,“模型 i”对应第 i 组随机初始化权重。

b. CatPred 中的不确定性预测流程。对于每个预测目标 kcat、Km 和 Ki,训练由 N 个独立模型组成的集成模型,每个模型有一组随机初始化权重。每个模型对给定输入输出一个均值和一个方差。最终预测为集成均值的算术平均,最终不确定性为偶然不确定性和认知不确定性的总和。

c. 两类不确定性的示意图:偶然不确定性和认知不确定性。训练数据中回归目标变量 y 相对于输入潜在空间 x 的分布越分散,偶然不确定性越高。训练数据中缺少关于 y 的知识的区域,认知不确定性越高。图中的圆点表示训练数据,红色实线表示训练模型的平均预测。

d-f. CatPred-kcat、CatPred-Km 和 CatPred-Ki 模型在 held-out 测试集不同群体上获得的 R²、MAE 和 p1mag。测试样本按预测不确定性值排序分箱,这里的不确定性为偶然不确定性和认知不确定性之和。每个彩色柱表示标准差分别低于第 100、75、50 和 25 百分位数的 held-out 测试集群体。

图 7

图意:图 7 展示 CatPred 的 Google Colab 使用界面。用户输入酶氨基酸序列和底物 SMILES,选择预测参数后,界面输出预测值、总不确定性以及偶然/认知不确定性分量,并检索输入是否已存在于 BRENDA 或 SABIO-RK。

标题翻译:使用训练好的 CatPred 模型进行预测的 Google Colab 界面。

子图说明全文翻译:

a. 输入是酶的氨基酸序列和底物的 SMILES 字符串。预测输出显示动力学参数值,图中例子为己糖激酶与 D-葡萄糖底物的预测 Km 值,以及估计的不确定性。还显示了偶然不确定性和认知不确定性对预测不确定性的贡献,以 log10 尺度标准差表示。

b. 输入也会在 BRENDA 和 SABIO-RK 数据库条目中检索。示例输入与 BRENDA 中的一条记录匹配,并显示该记录。

不同嵌入如何合并到下游模型

CatPred 是特征级融合,不是把几个模型的最终预测再投票平均。

输入分两路:

酶端:

  • 序列注意力特征:氨基酸序列先做 embedding,再加旋转位置编码和多头注意力,学习任务相关的序列模式。
  • ESM-2 蛋白语言模型特征:用预训练 ESM-2 650M 提取每个酶序列的高维表征。
  • E-GNN 三维结构特征:可选,用 AlphaFold2/ESMFold 结构生成残基级结构图,再用预训练 E-GNN 得到结构嵌入。

底物端:

  • D-MPNN 分子图特征:把 SMILES 转成原子-键图,通过有向消息传递神经网络得到底物或反应物集合的分子向量。

融合方式大致是:

酶序列注意力特征 + ESM-2 蛋白特征 + 可选 E-GNN 结构特征 -> 酶向量  底物 SMILES -> D-MPNN -> 底物向量  酶向量 + 底物向量 -> 拼接 -> 全连接神经网络 -> 输出 log10(kcat/Km/Ki) 的均值和方差 

所以它的核心是把不同模态先转成向量,然后在下游回归头之前拼接融合。论文的消融结果显示:对 kcat 和 Km,底物特征 + 序列注意力 + ESM-2 通常最有用;全蛋白 E-GNN 结构特征没有明显提升 kcat/Km,Ki 上结构特征可能更有帮助,因为 Ki 数据较小,高维 pLM 特征更容易过拟合。

模型不确定性怎么评估

CatPred 的不确定性有两部分:偶然不确定性和认知不确定性。你的理解对应其中的认知不确定性,但还少了偶然不确定性。[[Uncertainty_Quantification]]

每个 CatPred 模型不是只输出一个预测值,而是输出:

预测均值 μ 预测方差 σ² 

训练时用负对数似然损失,让模型学习一个高斯分布,而不是单点回归。

然后作者训练 10 个随机初始化不同的模型组成 ensemble。对同一个酶-底物输入,会得到:

模型1: μ1, σ1² 模型2: μ2, σ2² ... 模型10: μ10, σ10² 

最终预测值:

μ_final = 10 个 μ 的平均 

偶然不确定性:

aleatoric uncertainty = 10 个 σ² 的平均 

它反映数据本身的噪声,比如不同实验条件、不同数据库记录、测量误差、注释误差。

认知不确定性:

epistemic uncertainty = 10 个 μ 之间的方差 

这就是你说的“训练多个模型,看不同模型预测结果分歧”。它反映模型对这个输入区域是否熟悉:如果训练集中类似样本少,不同初始化模型更容易给出不一致预测。

总不确定性:

total uncertainty = aleatoric uncertainty + epistemic uncertainty 

报告时通常取标准差,而且是在 log10 尺度上。

更关键的是,作者不仅计算不确定性,还验证它有没有意义:他们把测试集按预测不确定性从低到高分箱,发现低不确定性子集的 R2 更高、MAE 更低、p1mag 更高。也就是说,CatPred 的不确定性确实能区分“更可信”和“更不可信”的预测。[[CatPred]] [[Uncertainty_Quantification]]

一句话总结:

CatPred 的嵌入融合是“酶端多种表示 + 底物图表示”的特征拼接后回归;不确定性是“单模型输出方差”加“多模型预测分歧”的组合,其中前者估计数据噪声,后者估计模型外推风险。

酶序列注意力特征 + ESM-2 + E-GNN -> 酶向量是不是直接拼接?

基本是拼接,但有一个层级差异:




    
序列注意力特征 + ESM-2 residue/protein features -> 先形成增强后的酶序列表征 -> pooling 得到 enzyme vector  可选 E-GNN 结构特征 -> 作为额外结构向量加入  enzyme vector + substrate D-MPNN vector -> concat -> 全连接回归网络 

所以准确说是:

不是把原始序列、ESM 输出、结构图、SMILES 全部粗暴摊平成一个大向量直接喂模型;而是每个模态先经过自己的编码器,变成同一层级的 learned representation,然后在下游回归头前做特征拼接。

最核心的融合方式可以理解为:

h_enzyme = concat(h_seq_attention, h_ESM2, h_EGNN_optional) h_substrate = D_MPNN(SMILES)  h_pair = concat(h_enzyme, h_substrate)  output = FFN(h_pair) 

其中 E-GNN 是可选项。论文结果里,kcat 和 Km 最强生产模型主要是:

底物 D-MPNN + 序列注意力 + ESM-2 

E-GNN 全蛋白结构特征没有明显提升 kcat/Km。Ki 数据更小,低维结构特征可能更不容易过拟合。

怎么让模型“学习一个高斯分布”,而不是只输出一个回归值?

关键是:模型最后不输出一个数,而是输出两个数。

普通回归:

model(x) -> y_pred loss = (y - y_pred)^2 

CatPred 这种均值-方差估计:

model(x) -> μ, σ² 

也就是模型输出一个高斯分布的参数:

y | x ~ Normal(μ(x), σ²(x)) 

这里:

  • μ 是预测的 log10(kcat/Km/Ki) 均值
  • σ² 是模型认为这个预测本身有多不确定

为了保证 σ² 是正数,代码里通常会对方差输出做 softplus 或类似正值变换。

训练时不用 MSE,而用高斯负对数似然:

NLL = 0.5 * log(σ²) + 0.5 * (y - μ)^2 / σ² 

直觉是:

  • 如果 μ 离真实值 y 很远,loss 会变大。
  • 如果模型把 σ² 设得很小但预测错了,惩罚会非常大。
  • 如果模型为了逃避错误把 σ² 设得特别大,log(σ²) 项也会惩罚它。

所以模型会被迫学两件事:

μ: 这个样本的最佳预测值是多少 σ²: 这个样本的数据噪声/不可确定性有多大 

这不是分类里的“概率值”,而是连续回归目标的概率分布参数。输出的不是“这个 kcat 属于某类的概率”,而是:

log10(kcat) 约等于 μ,标准差约等于 σ 

多模型 ensemble 怎么接上?

单个模型给:




    
μi, σi² 

训练 10 个模型后:

最终预测均值 = mean(μ1 ... μ10) aleatoric uncertainty = mean(σ1² ... σ10²) epistemic uncertainty = variance(μ1 ... μ10) total uncertainty = aleatoric + epistemic 

所以你的理解“训练多个模型,看不同模型预测结果评估不确定性”是对的,但只对应 epistemic uncertainty。CatPred 还额外让每个模型自己输出 σ²,用来估计 aleatoric uncertainty。


最全1000+植物核基因组数据库IMP (点击图片直达)

高颜值免费 SCI 在线绘图(点击图片直达)


往期精品(点击图片直达文字对应教程)

Linux      Python  

R绘图   NGS基础   GEO高级

 生信自学   生信书籍   系列教程    心得体会
转录组经典   宏基因组   蛋白质组   单细胞系列   测序发展史
    免费在线画图   色彩搭配   图形排版   图形解读   
       ChIP-seq     TCGA     GSEA     WGCNA       

     海哥组学    傻瓜系列    文章写作  

 Cytoscape   Excel  PPT

机器学习



公众号投稿联系:陈同 (chentong_biology@163.com)




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198581