Closed edkerk closed 4 months ago
The new suggestion looks very nice!
This will be implemented in GECKO 3.2.0.
constrainEnzConcs
will no longer remove prot_pool[c]
from the protein usage reaction when it is constrained with protein concentrations, as described above.updateProtPool
has become obsolete, setProtPoolSize
should instead be used. updateProtPool
will check if the model indeed follows the new approach, in which case an error is thrown with explanation and direction to use setProtPoolSize
. If the protein usage reactions follow the old approach, then updateProtPool
will run as usual.tutorial.m
will be updated to mention the change.README.md
will have a section with changes since the Nature Protocols publication.In the full_ecModel
tutorial, the flexibilizeEnzConcs
that is run after constraining enzyme concentrations will flexibilize 34 enzymes with the new approach, while 36 in the previous approach. This already shows that the model is allowed a little more flexibility, which should indeed avoid the potential problems that are mentioned in the OP.
Issue will close, as the changes are applied. Issue will remain pinned for now, for easy access to this explanation.
Currently, the enzyme usage reactions can be defined in two ways, dependent on whether proteomics data is integrated.
prot_Q99312[c] <= prot_pool[c]
prot_Q99312[c] <=
model.ec.concs
, or potentially flexibilized byflexibilizeEnzConcs
. Example = -0.0416prot_pool[c] <=
prot_pool[c] <=
Ptot * sigma * f
. Example = -125updateProtPool
. Example = -95.915A problem that I have encountered with this approach is that the new lower bound of the protein pool exchange reaction might be too strict. The model can no longer be solved, unless some proteins are flexibilized by a high amount (although sometimes this even does not resolve the problem).
updateProtPool
, it assumes that the f-factor (fraction of protein being enzymes) is the same for both the measured- and unmeasured-protein fraction.loadProtData
by default adds 1 or more standard deviations to the protein measurements. As a consequence, the sum of measured protein concentrationsPmeas
is substantially higher, which automatically means that the unmeasured protein fractionPtot-Pmeas
is always lower than it should be.As an alternative, there is actually no good reason why the enzyme usage reaction has to change when proteomics data is integrated, except for changing its lower bound. The new approach suggested below would prevent the issues raised above, and instead would keep using the same lower bound for the protein pool exchange reaction that earlier in the model generation pipeline had been fitted to give realistic growth predictions. New suggestion:
prot_Q99312[c] <= prot_pool[c]
prot_Q99312[c] <= prot_pool[c]
model.ec.concs
, or potentially flexibilized byflexibilizeEnzConcs
. Example = -0.0416prot_pool[c] <=
prot_pool[c] <=
Ptot * sigma * f
. Example = -125Ptot * sigma * f
. Example = -125I hereby confirm that:
main
branch of the repository.