Comments (4)
This was discussed when we first built it. The model does not technically include the objective function because the objective function is a part of analysis method (eg FBA, MOMA). So it is conceptually incorrect to put an objective function in the model class
Sent from my iPhone
On Nov 9, 2013, at 12:10 PM, Nikolaus Sonnenschein [email protected] wrote:
Then we don't have to pass it through all kinds of function calls
—
Reply to this email directly or view it on GitHub.
from framed.
I agree with both perspectives. Although I would like to make the models objective-agnostic at first, I think it would be important to implement this because:
- the current option is to use the detect_biomass_reaction() method, which is not a very elegant way to do it (and it is not generalizable to models that may not have a biomass reaction)
- we can look at the objective coefficients as the representation of our current knowledge on the "biological objective" of the cell, not as the objective of the simulation method (which may be different)
I will implement this as soon as possible.
from framed.
the current option is to use the detect_biomass_reaction() method, which is not a very elegant way to do it (and it is not generalizable to models that may not have a biomass reaction)
Why don’t we just add a biomass_rxn attribute instead of an objective function?
we can look at the objective coefficients as the representation of our current knowledge on the "biological objective" of the cell, not as the objective of the simulation method (which may be different)
from our current knowledge of the cell, it is clear that the “biological objective" clearly varies with the organism, its environment, and its survival strategy.
many species implement futile cycles and crabtree effects etc that clearly does not maximise growth rate. similarly, one organism would use one objective when grown by itself, then use another objective when grown in a co-culture.
given that even for wild type E. coli there are several good objective function candidates (Schuetz and Sauer has a few papers pointing this out), it makes me uncomfortable to include a set objective function in the model.
I think one way to do this is to add an biomass_rxn or biomass_rxn_id attribute that is generated automatically or by hand when we make the model. Then have the maximisation of the biomass rxn flux as the default objective for FBA. This would also make writing other objective functions that works with the biomass reaction easier without using the detect_biomass_reaction() function.
I will implement this as soon as possible.
Let me know when you have done this in a branch. I’ll 100% sure it breaks the dFBA code and several other things I wrote because I remember using the detect_biomass_reaction() method several times.
Kai
On 09 Nov 2013, at 19:39, Daniel Machado [email protected] wrote:
I agree with both perspectives. Although I would like to make the models objective-agnostic at first, I think it would be important to implement this because:
the current option is to use the detect_biomass_reaction() method, which is not a very elegant way to do it (and it is not generalizable to models that may not have a biomass reaction)
we can look at the objective coefficients as the representation of our current knowledge on the "biological objective" of the cell, not as the objective of the simulation method (which may be different)
I will implement this as soon as possible.
—
Reply to this email directly or view it on GitHub.
from framed.
Solved :)
Here are the details:
- The objective coefficients have been added to the model.
- They where also added to the SBML IO class, so they are correctly imported and exported.
- It is now also supported in the plain text IO, by adding an additional (optional) tag at the end of the reaction like this: R: a --> b @1.0
- FBA (and its variants) can now take a dictionary of coefficients rather than one single target reaction.
- detect_biomass_reaction() was maintained for compatibility, but it now detects by coefficient rather than by name.
- both core and bioreactor tests passed successfully :)
from framed.
Related Issues (19)
- Add __repr__ method in Solution
- Add support for sbml-fbc package HOT 1
- Implement "parallelization" module. HOT 1
- FBA/pFBA "target" -> "objRxn"
- add support for ratio constraint HOT 1
- Implement GLPK wrapper
- Implement OSI wrapper HOT 4
- unassigned metabolite compartments in sbml HOT 3
- config file for solver initialization HOT 1
- bug in plaintext models
- simultaneous reactant and product HOT 1
- Add constraint argument to simplify function HOT 1
- Constant parameter in metabolite
- Metabolites without an associated kinetic law
- fix_sink_reactions method does not work with our model HOT 1
- errors in importing framed HOT 2
- Can't load models
- Several problems for DFBA HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from framed.