segrelab / cometspy

Python interface for running COMETS simulations and analyzing the results
GNU General Public License v3.0
11 stars 9 forks source link

Compatibility issue with different model implementations? #14

Closed bigsuicideparty closed 2 years ago

bigsuicideparty commented 2 years ago

I did run the example protocol with another E. coli model (iML1515). Unfortunately, I am unable to reproduce results consistent with the example. Specifically, my model will not grow or change metabolite concentrations, whereas the core model used in the example behaves as expected. Any idea what might be the source of this issue?

bigsuicideparty commented 2 years ago
import cometspy as c

test_tube = c.layout()

# Add 11mM glucose and remove o2
test_tube.set_specific_metabolite('glc__D_e', 0.011)
test_tube.set_specific_metabolite('o2_e', 0)

# Add the rest of nutrients unlimited (ammonia, phosphate, water and protons)
test_tube.set_specific_metabolite('nh4_e',1000);
test_tube.set_specific_metabolite('pi_e',1000);
test_tube.set_specific_metabolite('h2o_e',1000);
test_tube.set_specific_metabolite('h_e',1000);

e_coli_iml1515 = c.model(cobra.io.read_sbml_model(path.join(e_coli_model_dir, "iML1515.xml")))

e_coli_iml1515.change_bounds('EX_glc__D_e', -1000, 1000)
e_coli_iml1515.initial_pop = [0, 0, 5e-6]

test_tube.add_model(e_coli_iml1515)

sim_params = c.params()

sim_params.set_param('defaultVmax', 18.5)
sim_params.set_param('defaultKm', 0.000015)
sim_params.set_param('maxCycles', 1000)
sim_params.set_param('timeStep', 0.01)
sim_params.set_param('spaceWidth', 1)
sim_params.set_param('maxSpaceBiomass', 10)
sim_params.set_param('minSpaceBiomass', 1e-11)
sim_params.set_param('writeMediaLog', True)

experiment = c.comets(test_tube, sim_params)

experiment.run()

ax = experiment.total_biomass.plot(x = 'cycle')
ax.set_ylabel("Biomass (gr.)")
jeremymchacon commented 2 years ago

Yes, the iML1515 model requires more trace nutrients than the core model, which is likely why it is not growing. If you first just load the cobra model, then examine its medium with model.medium, you can see the trace nutrients you should add to the comets layout.

On Tue, Apr 19, 2022 at 3:15 AM bigsuicideparty @.***> wrote:

import cometspy as c

test_tube = c.layout()

Add 11mM glucose and remove o2

test_tube.set_specific_metabolite('glc__D_e', 0.011) test_tube.set_specific_metabolite('o2_e', 0)

Add the rest of nutrients unlimited (ammonia, phosphate, water and protons)

test_tube.set_specific_metabolite('nh4_e',1000); test_tube.set_specific_metabolite('pi_e',1000); test_tube.set_specific_metabolite('h2o_e',1000); test_tube.set_specific_metabolite('h_e',1000);

e_coli_iml1515 = c.model(cobra.io.read_sbml_model(path.join(e_coli_model_dir, "iML1515.xml")))

e_coli_iml1515.change_bounds('EX_glc__D_e', -1000, 1000) e_coli_iml1515.initial_pop = [0, 0, 5e-6]

test_tube.add_model(e_coli_iml1515)

sim_params = c.params()

sim_params.set_param('defaultVmax', 18.5) sim_params.set_param('defaultKm', 0.000015) sim_params.set_param('maxCycles', 1000) sim_params.set_param('timeStep', 0.01) sim_params.set_param('spaceWidth', 1) sim_params.set_param('maxSpaceBiomass', 10) sim_params.set_param('minSpaceBiomass', 1e-11) sim_params.set_param('writeMediaLog', True)

experiment = c.comets(test_tube, sim_params)

experiment.run()

ax = experiment.total_biomass.plot(x = 'cycle') ax.set_ylabel("Biomass (gr.)")

— Reply to this email directly, view it on GitHub https://github.com/segrelab/cometspy/issues/14#issuecomment-1102264779, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLGCRJHCXSC2OZYI2OIELTVFZTSZANCNFSM5TYAGTZA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

--

Jeremy M. Chacón, Ph.D.

he / him / his

Research Associate, Harcombe Lab University of Minnesota Ecology, Evolution and Behavior

bigsuicideparty commented 2 years ago

Thank you for the fast response. I'll give it a try and let you know if I run into any other issues.