-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SBML -> General COBRA Constraints #10
Comments
@coltonlloyd have you thought about how to best encode the ME-model formulation already? Do you have an opinion here? Same for @BenjaSanchez regarding GECKO, any opinions on how to best encode those formulations directly in SBML? |
@Midnighter we're in the very early stages of working with Andreas Drager on representing the ME-model in SBML. Right now we were thinking the best approach would be to develop a ME-extension of the FBCv2 package. I can let you know more once the project is farther along. |
Matrices are not so straightforward to represent in XML because this would require a table structure. My understanding is that the constraint matrix Personally, would prefer reusing the existing |
@Midnighter in GECKO this is solved by adding the new species (in my case enzymes) directly to the corresponding reactions. Kinetic data More generically to the case @tpfau mentions, as long as the relations are linear, any new constraint could be included by just adding extra metabolites/reactions, and then constraining the LB/UB of the new reactions. Not the most elegant solution, but you don't loose compatibility in any way with SBML. |
@BenjaSanchez : While this works for GECKO, where these represent enzymes, which actually make sense to encode as SBML species, it gets problematic for general coupling constraints, where you want to indicate, that a reaction A should not have more flux than 2 * reaction B. This "coupling" metabolite, does not have a direct biological correspondance, and is thus not actually a species. Also as you mention, you currently need to add exchange reactions (which again are kind of disconnected from the remaining network) and add upper and lower bounds to these reactions, but these aren't those reactions essentially just creating left hand and right hand sides for the constraint derived from the enzyme? |
@tpfau the purpose of those exchange reactions in GECKO is to limit the overall usage of a given enzyme that might be used by more than one reaction (promiscuity) and/or to limit separately each sub-unit of any given complex, so that the limitation arises from the least abundant subunit. If there were no complexes or promiscuity in the model then the exchange reactions would be redundant and one could directly constrain the reactions with kcat*conc, but this is not the case usually. |
@BenjaSanchez True. Admittedly, the thing that can't be encoded with Constraints is the formation of the complexes because yes, for this you really do need additional variables. |
Hello everyone -- it's great that people are discussing these issues. However, I found recently that I'm not the only one having trouble trying to figure out the state of things now that discussions are split across multiple Github issues and at least one mailing list (sbml-flux). I'm not sure what to suggest as a solution, but my sense is that the older people involved tend to prefer mailing lists over writing comments on potentially-overlapping github issues, and also, that not all groups are currently involved in the conversation. Perhaps it would be worth considering finding a list to use (or creating a new, temporary Google group), and trying to encourage other interested parties to get involved? |
This si a spin of from #6 for the additions of general linear constraints of the form:
C * v relation d
Where
C
is a matrix with columns corresponding to model reactions and rows corresponding to individual constraints.v
is the solution flux vector,d
corresponds to right hand side values. and relations can be lower than, equal or larger than relations.This is a complex topic, as this might also include the addition of non reaction variables (e.g. protein usage), indication of variable types (continous (LP) vs discrete (MILP) vs quadratic(QP)), and general right hand sides for the common S*v = 0 constraint (e.g. enforced production) along with relation indicators for normal metabolites..
Current suggestions:
A: Using the Constraint field from SBML
B: Implementing COBRA specific fields in the
fbc
package to match these requirements.The text was updated successfully, but these errors were encountered: