Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
LCSBBioCore
COBREXA.jl
Commits
4ae89cb2
Unverified
Commit
4ae89cb2
authored
Nov 29, 2021
by
St. Elmo
Browse files
fix some wording and make explanation clearer
parent
9671d5aa
Pipeline
#50136
passed with stages
in 7 minutes and 11 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Sidebyside
docs/src/notebooks/9_max_min_driving_force_analysis.jl
View file @
4ae89cb2
...
...
@@ 97,26 +97,30 @@ reaction_standard_gibbs_free_energies = Dict( # kJ/mol
"GLUt2r"
=>

3.49
,
"PPS"
=>

6.05
,
"FUM"
=>

3.42
,
)
# In general you cannot be certain that all fluxes will be positive. This poses problems
# for systematically enforcing that ΔᵣG ≤ 0 as done in the original formulation. In COBREXA
# ΔᵣG ⋅ vᵢ ≤ 0 is instead enforced, where vᵢ is the flux of reaction i. By default all fluxes
# are assumed to be positive, but by supplying thermodynamically consistent flux solution
# it is possible to drop this implicit assumption and makes it easier to directly incorporate
# the max min driving force into noncustomized models.
);
flux_solution
=
flux_balance_analysis_dict
(
# In general you cannot be certain that all fluxes will be positive for a given flux
# solution. This poses problems for systematically enforcing that ΔᵣG ≤ 0 for each reaction,
# because it implicitly assumes that all fluxes are positive, as done in the original
# formulation of MMDF. In COBREXA we instead enforce ΔᵣG ⋅ vᵢ ≤ 0, where vᵢ is the flux of
# reaction i. By default all fluxes are assumed to be positive, but by supplying
# thermodynamically consistent flux solution it is possible to drop this implicit assumption
# and makes it easier to directly incorporate the max min driving force into noncustomized
# models. Here, customized model means a model written such that a negative ΔᵣG is associated
# with each positive flux in the model, and only positive fluxes are used by the model.
flux_solution
=
flux_balance_analysis_dict
(
# find a thermodynamically consistent solution
model
,
GLPK
.
Optimizer
;
modifications
=
[
add_loopless_constraints
()],
)
# Run max min driving force analysis with some reasonable constraints. Protons and water are
# removed from the concentration calculation of the optimization problem, thus we specify
# their IDs explicitly. The reason for this is that the Gibbs free energies of biochemical
# reactions is measured at constant pH, so proton concentrations is fixed; likewise we
# assume that reactions occur in aqueous environments, hence water is excluded too.
# Run max min driving force analysis with some reasonable constraints on metabolite
# concentration bounds. Note, protons and water are removed from the concentration
# calculation of the optimization problem, thus we specify their IDs in the model
# explicitly. The reason for this is that the Gibbs free energies of biochemical reactions
# are measured at constant pH, so proton concentration is fixed; likewise, we assume that
# reactions occur in aqueous environments, hence water is excluded too.
sol
=
max_min_driving_force
(
model
,
...
...
@@ 130,24 +134,30 @@ sol = max_min_driving_force(
(
"nadh_c"
,
"nad_c"
)
=>
0.13
,
(
"nadph_c"
,
"nadp_c"
)
=>
1.3
,
),
concentration_lb
=
1e6
,
concentration_ub
=
100e3
,
concentration_lb
=
1e6
,
# M
concentration_ub
=
100e3
,
# M
ignore_reaction_ids
=
[
"H2Ot"
,
# ignore water transport
because water's concentration CANNOT change in the implementation of this function (also protons)
"H2Ot"
,
# ignore water transport
er
],
)
sol
.
mmdf
# Plot the results to show how the concentrations can be used to ensure that
#md # !!! note "Note: transporters"
#md # Transporters can be included in MMDF analysis, however water and proton
#md # transporters must be excluded explicitly in `ignore_reaction_ids`. Due to
#md # the way the method is implemented, the ΔᵣG for these transport reactions
#md # will always be 0. If they are not excluded the MMDF will be 0 (if these
#md # reactions are used in the flux solution).
# NExt, we plot the results to show how the concentrations can be used to ensure that
# each reach proceeds "down hill" (ΔᵣG < 0) and that the driving force is as
# large as possible across all the reactions in the model. Compare this to the
# driving forces at standard conditions. Note, we only plot glycolysis for simplicity.
# We additionally scale the fluxes according to their stoichiometry in the
# pathway. From the output, it is clear that that metabolite concentrations
# play a large role in ensuring the thermodynamic consistency of in vivo enzyme
# reactions.
# play a large role in ensuring the thermodynamic consistency of in vivo reactions.
rids
=
[
"GLCpts"
,
"PGI"
,
"PFK"
,
"FBA"
,
"TPI"
,
"GAPD"
,
"PGK"
,
"PGM"
,
"ENO"
,
"PYK"
]
# glycolysis
rid_rf
=
[
flux_solution
[
rid
]
for
rid
in
rids
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment