COBRAme
A COBRApy extension for constructing and simulating genome-scale models of metabolism and gene expression (ME-models)
For more information on ME-models and the COBRAme ME-model architecture, see the COBRAme readthedocs.
If using COBRAme or iJL1678b-ME in a publication, please cite: doi:10.1101/106559. Note that the model may be edited and updated until it is peer-reviewed and published.
Installation
- clone the repository
- run
python setup.py develop --user
Build ME-model
A full COBRAme ME-model currently only exists for E. coli K-12 MG1655. See the ECOLIme package for the data and scripts required to build iJL1678b-ME. After installing ECOLIme, iJL1678b-ME can be constructed from scratch by running build_ME_model.py.
Solving
ME-models are inherently ill-scaled and thus require extended precision solvers in to be solved accurately. COBRAme currently supports the use of two such solvers: qMINOS (128-bit precision) and SoPlex (80-bit precision). Both solvers are freely avaialbe for academic use. For further examples, refer to solve_demo.ipynb
qMINOS
To install qMINOS for use with COBRAme:
- Obtain the qMINOS source code from Prof. Michael A. Saunders at Stanford University
- Download and install the solvemepy extension
- Once installed, ME-models can be solved using a bisection routine by running the following code:
from qminospy.me1 import ME_NLP1 me_nlp = ME_NLP1(me_model, growth_key='mu') muopt, hs, xopt, cache = me_nlp.bisectmu(precision=1e-6, mumax=1.5) me_model.solution.f = me_model.solution.x_dict['biomass_dilution']
SoPlex
To install SoPlex for use with COBRAme:
- Download the SoPlex source code from ZIB
- Download and install the soplex_cython extension
- Once installed, ME-models can be solved using a binary search routine by running the following code:
from cobrame.solve.algorithms import binary_search binary_search(me_model, min_mu=.1, max_mu=1.5, debug=True, mu_accuracy=1e-6)
Requirements
COBRAme and its extensions require:
- Python versions 2.7+/3.5+
- COBRApy versions <= 0.5.11. We recommend using 0.5.11.
- Linux is recommended, with a relatively recent glibc. Mac OS X is also supported. Windows has worked in the past, but is not explicitly supported at this time.