3. 通量平衡分析(FBA)原理与实战

通量平衡分析(Flux Balance Analysis, FBA)是代谢流分析中最基础也最常用的约束型建模方法。它不依赖动力学参数,只需要化学计量矩阵、热力学可行性边界和目标函数,就能在基因组尺度上预测细胞在特定条件下的通量分布。本节围绕三个核心问题展开:稳态假设如何把无穷多解压缩成可行域、目标函数如何决定“最优”的含义、约束条件如何刻画培养环境与胞内反应能力,最后用 COBRA 工具完成一次生长最大化求解并解读结果。

一、稳态假设:把动态问题变成线性约束

FBA 的起点是胞内代谢物质量平衡。对任一代谢物 i,其浓度变化率等于所有生成它的反应通量之和减去所有消耗它的通量之和:

dX_i/dt = Σ_j S_ij · v_j

其中 S_ij 是化学计量矩阵元素,v_j 是反应 j 的通量。FBA 假设在感兴趣的代谢时间尺度(通常数分钟到数小时)内,胞内代谢物浓度近似不变,即 dX_i/dt ≈ 0。这一稳态假设把每个代谢物写成一条线性方程,所有方程合起来就是:

S · v = 0

这一步的意义在于:原本需要求解的微分方程组被替换为一组线性等式约束。对于大肠杆菌基因组尺度模型 iJO1366,S 的维度约为 1805×2583,即 1805 个代谢物、2583 个反应。稳态约束把可行通量空间限制在一个高维凸多面体中,但通常仍有无穷多组解,因此还需要目标函数和边界约束来选出唯一最优解。

二、目标函数:定义“最优”的判据

目标函数是 FBA 的优化方向。常见选择包括:

  • 生物量最大化:以生物量合成反应(BIOMASS_Ec_iJO1366_core_53p95M)为目标,模拟细胞在营养充足时追求最大生长速率,是生长表型预测的默认选择。
  • 产物最大化:以目标代谢物分泌反应为目标,用于菌株改造中提高产量。
  • 最小化 ATP 维持:在给定生长速率下寻找最节能的通量分布,用于分析能量代谢效率。
  • 最小化总通量:即 parsimonious FBA(pFBA),在最优生长前提下最小化所有反应通量绝对值之和,用于消除冗余解、获得更接近真实酶成本的分布。

目标函数的选择直接决定求解结果的生物学含义。例如在葡萄糖限制条件下,以生物量最大化为目标得到的生长速率通常接近实验值;若改为产物最大化,模型会牺牲部分生长通量来满足产物合成需求。

三、约束条件:边界、热力学与额外限制

仅有 S·v=0 还不够,必须加入边界约束才能得到有界解。FBA 的标准约束形式为:

max c^T v
s.t. S · v = 0
     LB_j ≤ v_j ≤ UB_j

边界约束 LB_j 和 UB_j 刻画了反应的热力学方向与最大容量。例如葡萄糖摄取反应 EX_glc__D_e 在好氧条件下常设为 -10 mmol/(gDW·h)(负号表示摄取),氧气摄取 EX_o2_e 设为 -20,而分泌反应如 EX_ac_e 的下界设为 0、上界设为 1000,表示只允许分泌。若某反应被敲除,则令 LB=UB=0。

除边界外,还可加入额外约束:

  • ATP 维持约束:设定非生长相关维持能需求,如 ATPM = 8.39 mmol/(gDW·h)。
  • 热力学约束:通过 ΔG 范围限制反应方向,避免出现热力学不可行的循环。
  • 酶容量约束:在酶约束模型(ecFBA)中,加入总蛋白量或特定酶量上限。
  • 实验通量约束:用 13C 标记实验测得的通量作为等式或不等式约束,缩小可行域。

四、COBRA 实战:生长最大化求解与结果解读

下面以 COBRApy 为例,展示一次完整的 FBA 求解流程。假设使用大肠杆菌 iJO1366 模型,好氧、葡萄糖限制条件。

import cobra
model = cobra.io.load_model("iJO1366")

# 设置培养基:葡萄糖 10 mmol/(gDW·h),氧气 20 mmol/(gDW·h)
model.reactions.EX_glc__D_e.lower_bound = -10
model.reactions.EX_o2_e.lower_bound = -20

# 设置生物量为目标
model.objective = "BIOMASS_Ec_iJO1366_core_53p95M"

# 求解
solution = model.optimize()
print("生长速率:", solution.objective_value)
print("状态:", solution.status)

典型输出为:生长速率约 0.85 h⁻¹,状态为 optimal。这说明在当前碳源和氧限制下,模型预测的最大比生长速率为 0.85 h⁻¹。若将葡萄糖摄取上限改为 5,生长速率会下降到约 0.55 h⁻¹,体现碳源限制对生长的线性影响。

求解后需要解读通量分布。关键观察点包括:

  • 中心碳代谢通量:糖酵解、磷酸戊糖途径、TCA 循环的通量分配是否合理。例如在好氧条件下,TCA 循环应承载较高通量以支持能量供应。
  • 副产物分泌:乙酸、乳酸、乙醇等分泌反应的通量是否为零。若出现乙酸分泌,说明碳源摄取超过 TCA 循环和生物量合成需求,发生溢流代谢。
  • 能量代谢:ATP 合成与消耗是否平衡,氧摄取是否达到上限。
  • 影子价格:通过 solution.shadow_prices 查看葡萄糖和氧气的边际价值,判断哪种营养限制生长。
若求解状态为 infeasible,优先检查边界约束是否矛盾,例如某必需代谢物既不能摄取也不能合成。若为 unbounded,通常是因为缺少能量维持约束或循环反应未设方向限制。

五、结果验证与常见陷阱

FBA 结果必须与实验数据对照才有意义。常用验证方式包括:比较预测生长速率与 Biolog 或摇瓶实验的比生长速率;比较预测的副产物分泌谱与 HPLC 测得的外代谢物浓度;用 13C 标记实验测得的中心碳代谢通量校验模型预测。若偏差较大,需检查边界条件是否合理、目标函数是否恰当、模型是否缺少关键反应。

常见陷阱有三类。第一,把 FBA 预测的通量分布当作真实通量,实际上它只是可行域中的一个最优解,可能存在多个等价最优解。第二,忽略单位一致性,COBRA 模型中通量单位通常为 mmol/(gDW·h),边界设置时需与实验数据单位统一。第三,在敲除模拟中直接令 LB=UB=0,但未检查该反应是否在替代路径中被绕过,导致预测结果过于乐观。

FBA 求解流程与通量分布解读 输入与约束 化学计量矩阵 S 边界 LB / UB 目标函数 c ATP 维持约束 线性规划求解 max cᵀv s.t. S·v = 0 LB ≤ v ≤ UB COBRApy optimize() 求解结果 生长速率 μ = 0.85 h⁻¹ 状态:optimal 通量分布 v* 影子价格 / 还原成本 通量分布解读要点 中心碳代谢 糖酵解通量 PPP 途径占比 TCA 循环通量 副产物分泌 乙酸分泌通量 乳酸 / 乙醇通量 溢流代谢判断 能量与限制 ATP 合成/消耗平衡 氧摄取是否达上限 影子价格判断限制因素 实验验证 比生长速率对照 · 外代谢物 HPLC 对照 · ¹³C 通量校验 偏差大 → 检查边界条件 / 目标函数 / 模型完整性

总结来说,FBA 的可靠性取决于三件事:稳态假设是否成立、目标函数是否匹配生物学问题、约束条件是否准确反映培养环境与胞内能力。在 COBRA 中完成一次求解只需几行代码,但真正决定结果价值的是对通量分布的解读与实验验证。掌握这套流程后,就可以进一步开展基因敲除模拟、通量变异性分析和多目标优化等进阶分析。