-
Hi all! I'm a beginner with MICOM, and I am trying to understand how it works. To better grasp its functionalities, I built two toy "metabolic models" using COBRApy: toy1 and toy2. In COBRApy, toy1 can grow when executing toy1.optimize(). However, toy2 cannot grow because it's unable to generate the metabolites "C_c" or "C_e". Conversely, toy1 can produce "C_e". On MICOM, I anticipated that toy1 would generate "C_e" and toy2 would intake it, enabling both to grow. For toy1 to produce "C_e", this must be a constraint in the community model, as generating "C_e" would reduce toy1's biomass. My question is: How can I enforce a solution where toy2 grows at a specific ratio relative to toy1? For instance, can toy2 have 50% of the toy1 biomass? Below is the code I used on my example. First, I created the toy models using cobrapy:
Then, I used MICOM to generate the community model.
Below are the fluxes I got:
Thanks, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Hi, when I run your code both organisms grow.
Maybe you set another medium? By default, the growth solutions won't be unique though. Using cooperative tradeoff will push the solution towards growth for both taxa (see here for some more background). So running bm1 = com.reactions.biomasToy1__toy1
bm2 = com.reactions.biomasToy2__toy2
const = com.problem.Constraint(
bm1.flux_expression - 2 * bm2.flux_expression,
name="biomass_constraint",
lb=0, ub=0
)
with com:
com.add_cons_vars([const])
const_sol = com.optimize()
const_sol.members Which will give:
|
Beta Was this translation helpful? Give feedback.
-
Dear Christian, Thank you for your detailed answer. What I want to test is if toy2 can grow with a metabolite produced and excreted by toy1. Therefore, toy1 can produce C_c in reaction " In "toy1": In "toy2": "C_e <-> C_c" The As you mentioned, we can simulate the absence of "C_e" in the |
Beta Was this translation helpful? Give feedback.
Individual taxa are compartmentalized in MICOM. So for C to be used in a trophic interaction it has to be produced by toy1, be secreted into the medium (compartment "m") via EX_C__toy1, be imported into toy2 by EX_C__toy2 and then be used to produce biomass in toy2. All of this is happening in my example above. Note that the compartment "e" is not the shared environment for both taxa, that is the compartment "m". "e" is the close extracellular space for each individual taxon that is not shared with other organisms. So if you have a transport
<-> C_e
MICOM will convert this toC_m <-> C_e
and add a global<-> C_m
as well.Finally, in the fluxes you see that toy1 is producing C and toy2 is…