GEMs | 为什么Gapseq在gapfill过程中不利用培养基中的全部资源?

2026-01-30

试用gemini-3-pro-preview,不会保存聊谈记录,因此记录与此。由于个人认识有限,不能保证其科学性与专业性。使用的Gapseq版本为1.4。


在使用 gapseq fill 流程时,你提供的 LBmed.csv 指定了潜在的可利用营养物质(Potential Search Space),而不是强制模型必须消耗或包含列表中的所有物质。

最终构建的模型中“培养基”(即开启的交换反应)不包含 LBmed.csv 中的全部成分,通常由以下几个核心原因造成:

1. 缺乏转运蛋白(Transporters)

这是最主要的原因。

  • 原理:虽然你在 LBmed.csv 中提供了某种物质(例如某种特定的氨基酸或微量元素),但细菌要利用它,必须具备将该物质从胞外(e0)转运到胞内(c0)的转运反应(Transport Reaction)
  • Gapseq 逻辑
    1. gapseq 首先基于基因组同源性(gapseq find 阶段)预测转运蛋白。如果基因组里找不到对应某种物质的转运蛋白,模型在初始阶段就无法摄取该物质。
    2. fill(填补)阶段,算法会尝试添加缺失的反应来恢复生长。但是,gapseq 的填补算法遵循简约原则(Parsimony)。如果模型可以通过利用 LB 培养基中的 其他 容易摄取的物质(如葡萄糖、普通氨基酸)来满足生物量(Biomass)合成的需求,它就不会强行添加一个没有基因组证据支持的、额外的转运反应去摄取列表中剩余的物质。
  • 结果:虽然环境里有(CSV里有),但细菌“吃”不进去,或者“懒得”去进化出吃它的路径。

2. 生物量合成不需要(Metabolic Redundancy)

  • 原理:代谢模型的构建目标通常是优化生物量方程(Biomass objective function)。
  • 情景:假设 LB 培养基中同时含有 A 和 B 两种碳源。如果模型利用 A 就能完美合成所有必需的前体物质并最大化生长,且利用 A 的代谢路径更短、能量效率更高(或在数学求解中权重更优),模型可能根本不会去动用 B。
  • 结果:未被利用的物质其交换反应(Exchange reaction)的通量可能为 0,看起来就像“不在”模型工作的培养基中一样。

3. 数据库 ID 映射问题(Mapping Issues)

  • 问题LBmed.csv 文件中的化合物 ID 需要与 gapseq 后台使用的数据库(通常是 ModelSEED)完全匹配。
  • 情景:如果 CSV 文件中某些化合物的 ID 无法被 gapseq 准确识别,或者在当前的反应数据库中找不到涉及该化合物的反应,这些物质就会被直接忽略。

4. 填补算法的权重惩罚(Penalty Weights)

  • 注意你命令中的 -c ...-rxnWeights.RDS
  • gapseq fill 在填补反应时会根据权重(Weights)来决定添加哪些反应。通常,添加一个新的交换反应/转运反应(意味着假设存在一个未知的转运蛋白)会有较高的“惩罚分数”。
  • 如果模型能利用已有的转运通路存活,它绝对不会为了迎合 LBmed.csv 里的列表而去承担添加新反应的惩罚。

如何验证?

你可以检查生成的模型(RDS 或转出的 XML/JSON)来确认原因:

  1. 检查交换反应界限: 查看模型中对应 LBmed.csv 中物质的 Exchange Reactions(通常以 EX_cpdXXXXX_e0 命名)。
    • 如果反应存在但通量为 0:说明有转运通路,但模型选择不吃。
    • 如果反应不存在:说明模型完全没有构建出摄取该物质的通路(无转运蛋白)。
  2. 强制测试(可选): 如果你确信该细菌必须能够代谢 LB 中的某种特定成分(比如你知道它有那个表型),你需要检查该物质的转运蛋白基因是否在注释阶段被遗漏,或者手动在模型中添加该转运反应。

总结

gapseq fill -n LBmed.csv 的意思是:“我在这个环境中提供了这些营养,你看看你能利用哪些来让自己活下来。” 而不是:“把这些营养全都塞进模型里”。模型只选择了它能利用(有基因证据)需要利用(为了生长)的那一部分子集。