Skip to content
This repository has been archived by the owner on Aug 10, 2021. It is now read-only.

Multiple biomass functions allowed in REACTION_MODEL? #149

Open
samseaver opened this issue Mar 27, 2012 · 3 comments
Open

Multiple biomass functions allowed in REACTION_MODEL? #149

samseaver opened this issue Mar 27, 2012 · 3 comments

Comments

@samseaver
Copy link
Contributor

Currently, only one biomass function is allowed, or should be present for a given model. However, in a community model, with multiple organisms being placed together in one model, multiple biomasses should be allowed, depending on the objective of the model.

@devoid
Copy link
Contributor

devoid commented Mar 27, 2012

In the new schema biomass reactions are not in the REACTION_MODEL table but
rather the BIOMASS table associated with the model. A model may have
multiple biomass functions. We should probably have something that
indicates a "default" biomass function on the model. This also raises a few
questions:

Do we instead define a "default set of biomass functions", which may
contain one or more biomass functions?
Should all FBA-like functions accept a list of biomass functions rather
than a single biomass function?

I'll also note that biomass functions in the new system use
model_compartment rather than compartment, meaning you can define a biomass
function "consuming" products from the Cytosol #1, which indicates the
community-model organism #1.

Are there problems with merging and transforming biomass functions? For
example:
bio3 = add(bio1, bio2) # This adds two biomass functions, compartment
indexes are preserved
bio3 = subtract(bio1, bio2) # This takes the "difference" between two
biomass functions
bio2 = reindex_compartments(bio1, 1, 2) # All compartments with index 1 are
now compartments with index 2.

~ Scott

On Tue, Mar 27, 2012 at 12:04 PM, samseaver <
[email protected]

wrote:

Currently, only one biomass function is allowed, or should be present for
a given model. However, in a community model, with multiple organisms
being placed together in one model, multiple biomasses should be allowed,
depending on the objective of the model.


Reply to this email directly or view it on GitHub:
#149

@samseaver
Copy link
Contributor Author

To answer the first few questions, from an FBA perspective, there can only be one objective. The objective can literally be biomass1 + biomass2. I don't encourage this, because it allows the LP algorithm to selectively optimize one biomass over another.

An alternative, and preferred approach, is to have a third biomass reaction in the entire model (biomass3) that is the reaction:

biomass1 + biomass2 => totalBiomass

and then the FBA objective will be biomass3, thus to optimize totalBiomass. So to have the function add(bio1, bio2) would be good, but it must create another reaction with all components from both species, no shortcuts.

I cannot see how one would want to subtract biomasses except only to visualize the difference, the resulting reaction may not be useful in FBA, nor would re-indexing the biomass components. However, users will want to play with the biomass components, i.e. add or remove compounds, change stoichiometry of compounds in reaction etc. Will there be an easy way of doing this within the same biomass reaction, or will a different biomass reaction have to be created each time?

@samseaver
Copy link
Contributor Author

The latest problem I had with the gap-filling seemed to arise because:

  1. I re-imported a model, with the overwrite function. When importing the model, it didn't have a biomass, and the REACTION_MODEL rows were erased and re-written. However, the relevant row in the MODEL table retained a lot of the details, including the name of the current biomass function.

  2. I forgot to re-load the biomass.

  3. When running gap-filling, it knew that it wanted the current biomass function, but it wasn't in the REACTION_MODEL table -> seg-fault.

I'm going to open another issue, but I wanted to write here that whatever happens with the biomass, it needs to be in consideration when it comes to making changes/over-writing a model.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants