Code Monkey home page Code Monkey logo

Comments (4)

kaizhuang avatar kaizhuang commented on July 29, 2024

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.

cdanielmachado avatar cdanielmachado commented on July 29, 2024

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.

kaizhuang avatar kaizhuang commented on July 29, 2024

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.

cdanielmachado avatar cdanielmachado commented on July 29, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.