2  全局配置

在 cobra > 0.13.4 中,我们引入了一个全局配置对象。现在,您可以配置默认的反应边界和优化求解器,新创建的反应和模型将遵循这些求解器。

2.1 配置对象

您可以通过以下方式获取配置对象 1:

import cobra
cobra_config = cobra.Configuration()

1配置对象是单例。这意味着只能存在一个实例,并且在 COBRApy 中到处都被接受。

2.2 反应边界

该对象具有以下属性,你可以检查这些属性,也可以根据需要进行更改。

cobra_config.lower_bound
-1000.0
cobra_config.upper_bound
1000.0
cobra_config.bounds
(-1000.0, 1000.0)

2.2.1 更改边界

你可在反应前修改并使用这些值。

cobra_config.bounds = -10, 20
cobra.Reaction("R1")
Reaction identifier R1
Name
Memory address 0x1a995d9a150
Stoichiometry

-->

-->

GPR
Lower bound 0.0
Upper bound 20

请注意,默认情况下,反应是不可逆的。你可以通过取消设置下限参数来更改此行为。

cobra.Reaction("R2", lower_bound=None)
Reaction identifier R2
Name
Memory address 0x1a995f25fd0
Stoichiometry

<=>

<=>

GPR
Lower bound -10
Upper bound 20

注意:大多数模型都明确定义了反应边界,该边界优先于配置的值。

from cobra.io import load_model
model = load_model("textbook")
model.reactions.ACt2r
Reaction identifier ACt2r
Name R acetate reversible transport via proton - symport
Memory address 0x1a995d987d0
Stoichiometry

ac_e + h_e <=> ac_c + h_c

Acetate + H+ <=> Acetate + H+

GPR
Lower bound -1000.0
Upper bound 1000.0

2.3 Solver

你可以通过新实例化模型来定义默认求解器。默认求解器取决于您的环境。为了测试 Gurobi、CPLEX 和 GLPK 的可用性。假定 GLPK 始终存在于环境中。

model.solver
<optlang.cplex_interface.Model at 0x1a995d8b950>

更改Solver

cobra_config.solver = "glpk_exact"
new_model = load_model("textbook")
new_model.solver
<optlang.glpk_exact_interface.Model at 0x1a995e65d10>

更改全局配置值在工作会话开始时最有用。