import cobra
11 一致性测试
对于大多数问题,多个磁通状态可以达到相同的最优,因此我们试图获得一致的网络。我们的意思是,网络中将存在多个阻塞反应,从而导致这种不一致。为解决这个问题,我们使用的算法可以检测所有被阻断的反应,并为我们提供一致的网络。
Let us take a toy network, like so:
Here,
= cobra.Model("test_model")
test_model = cobra.Reaction("v1")
v1 = cobra.Reaction("v2")
v2 = cobra.Reaction("v3")
v3 = cobra.Reaction("v4")
v4 = cobra.Reaction("v5")
v5 = cobra.Reaction("v6")
v6
test_model.add_reactions([v1, v2, v3, v4, v5, v6])
= "-> 2 A"
v1.reaction = "A <-> B"
v2.reaction = "A -> D"
v3.reaction = "A -> C"
v4.reaction = "C -> D"
v5.reaction = "D ->"
v6.reaction
= (0.0, 3.0)
v1.bounds = (-3.0, 3.0)
v2.bounds = (0.0, 3.0)
v3.bounds = (0.0, 3.0)
v4.bounds = (0.0, 3.0)
v5.bounds = (0.0, 3.0)
v6.bounds
= v6 test_model.objective
unknown metabolite 'A' created
unknown metabolite 'B' created
unknown metabolite 'D' created
unknown metabolite 'C' created
11.1 使用 FVA
我们可以遵循的第一种方法是使用 FVA(通量可变性分析),在许多其他应用中,它用于检测阻塞反应。 cobra.flux_analysis.find_blocked_reactions()
函数将返回使用 FVA 获得的所有被阻止反应的列表。
cobra.flux_analysis.find_blocked_reactions(test_model)
['v2']
As we see above, we are able to obtain the blocked reaction, which in this case is
11.2 使用FASTCC
在cobrapy
中获得一致网络的第二种方法是使用 FASTCC。使用这种方法,您可以期望有效地获得准确一致的网络。有关该算法的更多详细信息,请参阅Vlassis N, Pacheco MP, Sauter T (2014).
= cobra.flux_analysis.fastcc(test_model)
consistent_model consistent_model.reactions
[<Reaction v1 at 0x21cc26101d0>,
<Reaction v3 at 0x21cc27caa50>,
<Reaction v4 at 0x21cc27cabd0>,
<Reaction v5 at 0x21cc27cad50>,
<Reaction v6 at 0x21cc27caf10>]
与 FVA 方法类似,我们能够确定