In [1]:
import logging

In [2]:
logger = logging.getLogger("")

In [3]:
logger.setLevel(logging.DEBUG)

In [4]:
import pyorganism

In [5]:
import pyorganism.metabolism as pymet


/home/moritz/.virtualenvs/control/local/lib/python2.7/site-packages/pyorganism/metabolism/__init__.py:44: UserWarning: You do not have the required SOAPpy package: KEGG interface            is disabled.
  is disabled.")

In [6]:
options = pyorganism.OptionsManager.get_instance()

In [7]:
options.compartment_suffixes = {"Exchange": "_b", "C_c": "_c", "C_e": "_e"}

In [8]:
parser = pymet.SBMLParser()

In [9]:
met = parser("Ecoli_core.xml")


INFO:pyorganism.io.sbml:2 compartments
INFO:pyorganism.io.sbml:92 (compartmentalized) compounds
INFO:pyorganism.io.sbml:95 reactions

In [10]:
for comp in met.compartments:
    print str(comp), comp.name, len(comp)


C_c Cytosol 52
EX Exchange 20
C_e Extraorganism 20

In [11]:
(model, known_fluxes) = pymet.generate_fba_model(met, "core", fluxes=True)

In [12]:
exchange = pymet.SBMLCompartment["EX"]

In [13]:
for cmpd in exchange.iter_compartmentalized():
    logger.info(str(cmpd))
    model.add_source(cmpd, ub=1000)
    model.add_drain(cmpd, ub=1000)


INFO:root:glu-L_b
INFO:root:pyr_b
INFO:root:h_b
INFO:root:nh4_b
INFO:root:acald_b
INFO:root:o2_b
INFO:root:fru_b
INFO:root:mal-L_b
INFO:root:lac-D_b
INFO:root:fum_b
INFO:root:succ_b
INFO:root:for_b
INFO:root:gln-L_b
INFO:root:pi_b
INFO:root:co2_b
INFO:root:glc-D_b
INFO:root:ac_b
INFO:root:h2o_b
INFO:root:etoh_b
INFO:root:akg_b

In [14]:
model.fba()

In [15]:
model.get_objective_value()


Out[15]:
0.8739215069503519