Py学习  »  机器学习算法

NeuralFlux:深度学习推动植物代谢工程新突破

iPlants • 1 周前 • 20 次点击  
图片
近日,德国马克斯・普朗克分子植物生理研究所Sebastian Huß与Zoran Nikoloski团队在《Plant Biotechnology Journal》上发表题为《NeuralFlux: Estimation of Reaction Fluxes at a Genome-Scale Level From Time-Resolved Isotope Labelling Patterns Using Deep Learning》的研究简报。该研究开发了一种基于深度学习的代谢通量估算工具NeuralFlux,突破了传统同位素非稳态代谢通量分析在基因组尺度应用中面临的计算瓶颈,为系统解析植物代谢网络功能、指导代谢性状遗传改良提供了高效可靠的计算新方法。

代谢通量是细胞生理状态的核心表征,也是作物代谢性状改良的重要靶点。传统同位素非稳态代谢通量分析虽能利用动态标记数据估算通量,但在处理基因组尺度代谢网络时存在计算复杂度高、耗时长、可重复性差等问题。为此,研究团队创新性地将深度学习与代谢网络建模相结合,开发了NeuralFlux工具,其主要研究进展如下:

1. NeuralFlux 技术框架与核心优势

NeuralFlux以基因组尺度代谢网络为基础,构建了一套完整的通量估算流程(图1a-f):首先,通过采样稳态通量分布与代谢物浓度数据,利用常微分方程模拟时间分辨的质量同位素分布;随后,训练具有三个隐藏层的全连接神经网络,以通量分布和代谢物浓度为输入,预测基本代谢单元的同位素分布;最终通过最小化预测与实测同位素分布差异,实现通量与代谢物浓度的精准估算。


该方法显著提升了计算效率,与传统常微分方程数值解法相比,计算时间降低2-3个数量级(图1h)。同时,模拟同位素分布的标准偏差低于典型实测数据误差范围(图1g),保证了估算结果的可靠性,为大规模代谢通量分析提供了高效技术平台。

2. 拟南芥代谢网络验证与通量估算性能

研究团队基于拟南芥核心代谢模型AraCore v2.1(包含585个区室化反应、415个区室化代谢物)进行验证,选取20种氨基酸及14种代谢物的碳氮标记数据进行分析。结果显示,在100个随机采样的稳态通量分布中,100个反应的估算通量与真实值之间的皮尔逊相关系数大于0.85(图1i),占总反应数的约1/6,表明NeuralFlux能够准确捕获核心代谢反应的通量变化趋势。


进一步对14个高可信度反应在5种通量分布中的99%置信区间分析发现,同一通量分布中不同反应(如分支酸合酶与甲酸-四氢叶酸连接酶)以及同一反应在不同通量分布中(如二羟酸脱氢酶)的置信区间存在显著差异(图1j)。这表明需要通过优化标记时间点、提高实测数据精度或引入网络功能约束,进一步提升通量估算的精确度。

1 NeuralFlux的工作流程、估计通量的评估及其置信区间,结合拟南芥大规模模型中氨基酸的标记数据。


3. 技术价值与应用前景

NeuralFlux首次将深度学习与同位素非稳态代谢通量分析相结合,为基因组尺度代谢通量估算提供了可行方案。其低计算需求的特性使其能够快速测试不同实验设计场景,大大加速了代谢通量分析的进程。该工具不仅解决了传统方法在大规模代谢网络分析中的技术瓶颈,还为解析植物代谢调控机制、筛选代谢工程靶点提供了全新手段。未来,通过整合更多作物物种的代谢模型与标记数据,NeuralFlux有望在作物代谢育种、品质改良和合成生物学等领域发挥重要作用。


论文链接:https://doi.org/10.1111/pbi.70470

代码与数据: https://github.com/sebahu/NeuralFlux
图片
为了不让您最关心的内容被湮没

防止我们一不小心失散

快把“iPlants”设置为星标吧★

只需三步↓↓

文章顶部点击「iPlants」名称进入公众号主页,点击右上角「三个小点」,点击「设为星标」,iPlants名称旁边出现一个黄色的五角星,就设置成功啦~

微信加群
iPlants专注于全球植物科学前沿研究报道,已有四十万多学者关注。现已组建了50个500人/群的植物科学研究的研究生/教授的实名认证交流群,全都来自全球各大高校和研究所的同学和老师。欢迎从事植物科学相关研究的同学和老师加入我们,一起讨论学术和梦想。温馨提示:长按下面二维码进群,请备注一下学校+专业+学生/老师,以便我们能拉你进相应的交流群,否则不予通过)
图片
投稿、商务合作、转载开白名单等事宜请联系微信ID:18321328797 或邮箱:703131029@qq.com

图片
点在看

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