Repository navigation
Divide a BRENDA kcat by the substrate it was measured on - #57
Merged
Merged
Conversation
A BRENDA kcat is a turnover per molecule of one named substrate, so it becomes a reaction turnover by dividing by that substrate's coefficient. The division used the smallest coefficient in the reaction instead. Where a reaction is not written per the measured substrate, that inflates the kcat. yeast-GEM writes cytochrome c oxidase per one cytochrome c, so oxygen carries 0.25, and BRENDA's S. cerevisiae value of 1500/s became 6000/s in the full_ecModel tutorial. 26 of 4671 matched reactions change there, all previously inflated, by factors of 2, 3 and 4. None changes which BRENDA row or match level it draws from.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A BRENDA kcat is a turnover per molecule of one named substrate. To use it as a
reaction turnover it has to be divided by that substrate's stoichiometric
coefficient.
match_kcatdivided by the smallest coefficient in the reactioninstead.
Those are the same number only when the reaction happens to be written per the
measured substrate. When another substrate has a coefficient below 1, the
division inflates the kcat rather than reducing it.
Effect
yeast-GEM writes cytochrome c oxidase (
r_0438) per one cytochrome c, so itssubstrates are ferrocytochrome c at 1.0, H+ at 1.266 and oxygen at 0.25.
BRENDA's S. cerevisiae value under EC 7.1.1.9 is 1500/s, and 1500 / 0.25 gives
the 6000/s carried by the
full_ecModeltutorial model, at wildcard level 0 andorigin 1.
Measured turnover for cytochrome c oxidase is in the low hundreds per second.
The inflated value makes respiration look cheap enough that the electron
transport chain no longer saturates in proteomics-constrained models built on
this ecModel.
Fix
Divide by the coefficient of the substrate the BRENDA row matched on. The
matching loop already knows which substrate that is.
In the
full_ecModeltutorial this changes 26 of 4671 matched reactions, all ofthem previously inflated, by factors of 2, 3 and 4. No reaction changes which
BRENDA row or match level it draws from.
Two regression tests are included: one for the cytochrome c oxidase case, one
for the case the division is meant to handle (two molecules of the measured
substrate per turnover).
The same line is in GECKO MATLAB,
src/gather_kcats/fuzzyKcatMatching.mline401; a matching PR is open there.