2. 代谢网络 stoichiometry 建模

上一节我们建立了代谢网络的图论直觉:节点是代谢物,边是反应。但图只能告诉我们“谁和谁相连”,无法回答“每个反应以多快速度运行、各反应之间如何相互约束”。要进入定量分析,必须把网络翻译成代数结构——这就是化学计量建模的核心任务。本节的目标是:给定一个代谢网络,能够独立写出它的化学计量矩阵 S,区分内部代谢物与外部代谢物,列出稳态平衡方程,并明确哪些量是待求的通量变量。

一、从反应列表到化学计量矩阵

化学计量矩阵的构造规则非常直接:行对应代谢物,列对应反应,元素 Sij 表示第 i 个代谢物在第 j 个反应中的净化学计量系数。约定:生成物取正号,反应物取负号,不参与该反应的代谢物取 0。这个符号约定必须在整门课中保持一致,否则后续通量方向会整体反号。

以一个简化的中心碳代谢片段为例,包含 6 个反应:

R1: Glc_ext → G6P
R2: G6P → F6P
R3: F6P → 2 T3P
R4: T3P → Pyr
R5: Pyr → AcCoA + CO2
R6: AcCoA → Biomass
R7: Pyr → Biomass
R8: G6P → Biomass

这里为了教学清晰,把辅因子、ATP/ADP、NADH/NAD⁺ 暂时省略,只保留碳骨架。代谢物集合为 {Glc_ext, G6P, F6P, T3P, Pyr, AcCoA, CO2, Biomass},共 8 个;反应集合为 {R1…R8},共 8 个。按“行=代谢物、列=反应”排列,得到 8×8 的矩阵。例如 G6P 行:R1 中为 +1,R2 中为 −1,R8 中为 −1,其余为 0;Pyr 行:R4 中为 +1,R5 中为 −1,R7 中为 −1。

矩阵一旦写出,网络的所有化学计量约束就全部编码其中。后续无论做通量平衡分析(FBA)、通量变异性分析(FVA)还是 13C 代谢通量分析,第一步都是拿到这个 S 矩阵。

二、内部代谢物与外部代谢物的划分

并非所有代谢物都需要写平衡方程。这里的关键区分是:

  • 内部代谢物(internal metabolite):在系统内部产生和消耗、不跨越系统边界的中间代谢物,如 G6P、F6P、T3P、Pyr、AcCoA。它们必须满足稳态质量平衡。
  • 外部代谢物(external metabolite):跨越系统边界的物质,包括底物(Glc_ext)、产物(CO2、Biomass)以及可自由进出的离子/小分子。它们不要求内部平衡,而是作为系统的净输入或净输出。

划分标准不是“分子大小”,而是是否允许在系统边界上净积累或净消耗。实际操作中,判断方法是问:这个代谢物有没有一个“交换反应”或“转运反应”把它与外界相连?如果有,它通常被当作外部代谢物处理;如果没有,它只能由内部反应产生和消耗,必须进入平衡方程。

以上面的例子为例,Glc_ext、CO2、Biomass 是外部代谢物;G6P、F6P、T3P、Pyr、AcCoA 是内部代谢物。于是平衡方程只对 5 个内部代谢物写出,外部代谢物对应的行不参与稳态约束,而是用于计算底物消耗速率、产物生成速率和得率。

三、稳态平衡方程与通量变量

设每个反应的通量为 vj(单位通常为 mmol·gDW−1·h−1),则对每个内部代谢物 i,稳态假设给出:

Σ_j S_ij · v_j = 0    (对所有内部代谢物 i)

这就是化学计量平衡方程。它的物理含义是:在拟稳态下,内部代谢物的浓度不随时间变化,因此总生成速率等于总消耗速率。注意,这里假设的是“内部代谢物池”处于稳态,而不是整个系统不随时间变化——细胞可以持续生长,只要内部中间物不积累。

以 G6P 为例,其平衡方程为:

v1 − v2 − v8 = 0

以 Pyr 为例:

v4 − v5 − v7 = 0

把所有内部代谢物的方程堆叠起来,就得到矩阵形式:

S_int · v = 0

其中 S_int 是 S 矩阵中对应内部代谢物的行组成的子矩阵,v 是全部反应通量组成的列向量。这个方程组的未知量是 v,方程数是内部代谢物个数。由于反应数通常多于内部代谢物数,方程组是欠定的,存在无穷多组满足化学计量约束的通量分布——这正是后续需要引入目标函数、约束条件或同位素标记数据来求解的原因。

四、通量变量的方向与边界

通量变量 vj 的符号约定与化学计量系数一致:正值表示反应按书写方向进行,负值表示逆向进行。对于不可逆反应,需要额外施加 vj ≥ 0 的约束;对于可逆反应,vj 可正可负。交换反应的通量则直接对应底物摄取速率或产物分泌速率,通常也设定上下界,例如葡萄糖摄取上限 10 mmol·gDW−1·h−1。

这些边界条件与化学计量方程共同构成通量求解的可行空间。化学计量建模阶段的任务,就是把“网络结构”完整地转化为“S 矩阵 + 内部/外部划分 + 平衡方程 + 通量边界”这一套结构基础,而不急于求出具体数值。

代谢网络化学计量建模:内部/外部代谢物与平衡方程 网络拓扑与代谢物分类 Glc_ext CO₂ Biomass G6P F6P T3P Pyr AcCoA R1 R2 R3 R4 R5 R6 R7 R8 R9 外部代谢物 内部代谢物 化学计量矩阵 S(行=代谢物,列=反应) R1 R2 R3 R4 R5 R6 R7 Glc_ext −1 0 0 0 0 0 0 G6P +1 −1 0 0 0 0 −1 F6P 0 +1 −1 0 0 0 0 T3P 0 0 +2 −1 0 0 0 Pyr 0 0 0 +1 −1 0 −1 AcCoA 0 0 0 0 +1 −1 0 CO₂ 0 0 0 0 +1 0 0 Biomass 0 0 0 0 0 +1 +1 内部代谢物平衡方程 G6P: v1 − v2 − v8 = 0 F6P: v2 − v3 = 0 T3P: 2v3 − v4 = 0 Pyr: v4 − v5 − v7 = 0 AcCoA: v5 − v6 = 0 橙色 = 外部代谢物(不写平衡方程);蓝色 = 内部代谢物(必须满足 S_int·v = 0)

五、建模实操中的几个关键判断

实际构建 S 矩阵时,最容易出错的地方不是矩阵运算,而是边界判断和反应书写。以下三点值得特别注意:

  • 生物量反应的处理:生物量合成通常被写成一个“伪反应”,把氨基酸、核苷酸、脂质等前体按固定比例消耗,生成 1 单位生物量。这个反应的通量就是比生长速率 μ。它对应的“Biomass”应作为外部代谢物,因为它是系统的净输出。
  • 可逆反应的符号:如果反应写成 A ⇌ B,则 S 中 A 为 −1、B 为 +1,通量 v 可正可负。若实际只测到正向通量,可在求解时加 v ≥ 0,但矩阵本身不必改。
  • 质子、水、CO₂ 的取舍:这些物质常常被省略以简化矩阵,但省略后必须保证碳骨架平衡仍然成立。如果做 13C 标记实验,CO₂ 的生成与标记分布直接相关,就不能随意省略。
检查 S 矩阵是否正确的一个实用方法:对每一列(反应),检查其非零元素是否与反应式一致;对每一行(内部代谢物),检查非零元素之和是否在稳态下为零。如果某个内部代谢物行只有一个非零元素,说明该代谢物只参与一个反应,稳态下该反应通量必须为零——这通常意味着网络边界划分有误,或者该代谢物实际上应该被当作外部代谢物。

六、从结构基础到通量求解

完成上述步骤后,我们得到的是一个完整的结构描述:S 矩阵、内部/外部代谢物索引、平衡方程 S_int·v = 0、通量变量 v 及其边界。这个结构本身不给出唯一解,但它定义了所有可行通量分布必须满足的硬约束。后续的通量平衡分析会在此基础上加入目标函数(如最大化生物量),通量变异性分析会探索每个通量的可行范围,13C 代谢通量分析则会利用标记数据进一步缩小解空间。