Menu

Home

Kai Zhuang

OVERVIEW

The Dynamic Multispecies Metabolic Modeling (DyMMM, pronounced /dĭm/) framework is a mathematical modeling tool that integrates multiple constraint-based metabolic models into a single dynamic community metabolic model. The DyMMM framework is designed to model competitive and syntrophic (cross-feeding) communities. It should not be used to model mutualistic communities.

The DyMMM framework is developed and maintained by Kai Zhuang.

The Math

  • The base mathematics of DyMMM was first published in Zhuang et al. (2011). It is an extension of the dFBA method.

  • Since the initial publication, the mathematics of DyMMM has expanded to include additional capabilities.

  • The system of equations can be solved either numerically, or through an analytical approximation method.

  • The detailed mathematics can be downloaded here.

The Code

  • The DyMMM framework is coded as an extension to the COBRA Toolbox.

  • It is currently only available in MATLAB.

  • A Python adaptation is planned, however, this is not a high priority.

  • If you are interested in adapting the mathematics to another language, feel free to contact Kai Zhuang.

How To Use the DyMMM framework

The DMMM framework contains six files:

  • dymmm.m //main function

  • dymmm_ode.m //ODE description of a microbial community and its environment

  • dymmm_analytical.m //analytical solution to DyMMM

  • updateEnvironment.m //description of the environmental changes

  • updateUptakes.m //description of the microbial uptake kinetics

  • runDyMMM.m //a sample script that sets up and runs the simulation

To set up a simulation:
1. The frist three files (dymmm.m, dymmm_ode.m, dymmm_analytical) does not need to be modified.

  1. The environmental conditions and the uptake constraints of the metabolic models are updated at every time step using the updateEnvironment and updateUptakes.m scripts.

    • updateEnvironment.m only needs to be modified if environment is expected to be changed during the simulation. eg. substrate is added in the middle of the simulation.
    • updateUptakes.m is necessary. a new "case block" is required for each new species.
    • conditionals (if/else) commands can be used within these two files to establish very complex simulations. for example, u can specify one uptake kinetic equation if glucose is available, another uptake kinetic equation if it is not available.
  2. runDMMM.m gives a good example of how to setup a simulation using two hypothetical E.coli strains, simulating a cross-feeding situation where one strain consumes glucose and produce acetate, whereas the other strain consume acetate.
    In brief, you need to:

    • Setup the community

      • species
      • metabolites to be tracked
      • biomass feed concentration (if there's any biomass diluted into the system)
      • substrate feed concentration
      • flow rate (in and out)
    • Setup timespan (tspan)

    • Setup initial conditions

      • biomass concentrations
      • substrate concentrations
      • reactor liquid volume
    • Choose a solver
      - "analytical" for analytical approximation. it is important to set the time step to be relatively small. in addition, this is not appropriate for situations where biomass is being fed into the system.
      - "ode45","ode45n","ode23","ode23n" for numerical solvers. "n" signifies that the non-negative flag is turned on.

    • run the simulation using the function dymmm

  3. Solutions:

    • V: reactor volume (L)
    • X: biomass concentrations (g/L)
    • S: metabolite concentrations (mmol/L)
    • t: time (t)

Note: The units are dependent on the units of the fluxes in the constraint-based metabolic models


MongoDB Logo MongoDB