The core of COMETS is the simulation of the growth of microbial populations by maximizing an objective reaction, usually biomass production, in an iterative way. An initial amount of biomass of one or more species (defined by their metaboli models) is seeded in an environment containing a list of specified nutrients. In each iteration, both the amount of biomass and the environment are updated using FBA predictions.
Capabilities in space
COMETS is capable of simulating microbial growth in a spatially structured environment. This is achieved by partitioning the simulation space ("world") in a "grid" of smaller spaces. Inside each space, growth is considered to be well-mixed. Both nutrients and biomass can then propagate to contiguous spaces as simulation proceeds.
- 2D and 3D simulation "worlds"
In addition to well-mixed conditions, COMETS can simulate 2D and 3D spatially structured environments. This enables simulation of, for instance, growth of colonies on 2D surfaces such as a Petri dish, or 3D structures such as tumors, bacterial colonies in 3D matrix, etc.
- Diffusive and convective propagation of biomass in space
In simulations with spatial structure, different modes of biomass propagation are implemented. The diffusive mode simulates the propagation of free swimming motile bacteria, while the convective mode simulates the propagation of bacteria by mutual pushing. The two modes of propagation can be combined.
- Substrate-dependent nutrient and biomass propagation
The diffusivity of nutrients as well as the propagation properties of the biomass depend on the substrate properties such as agar density, cell substrate friction coefficient etc.
- Boundary conditions
Two types of boundary conditions are implemented. Fixed value and fixed source or sink rate.
Biological capabilities
COMETS features many interesting biological capabilities to refine and improve the predictions of stoichiometric models, as well as to simulate different types of biologically realistic conditions.
- Lag-phases in microbial growth
Lag-phases are modelled as simulated growth activation of the colonies.
- Continuous (chemostat) and batch growth modes
In chemostat mode, the user controls the rate of replenishment of the nutrient. In batch mode, the user controls dilution and frequency.
- Simulation of multispecies communities
Simulation of two or more species (up to hundreds) can be performed in both species overlapping or non-overlapping spatial distribution, or in well-mixed conditions.
- Parsimonious dFBA
Usually, any metabolic model has multiple optimal solutions. One way to choose among them is to assume that the cell will minimize the total flux through the metabolic network. To achieve this, parsimonious FBA first optimizes the objective function, e.g. growth. Then, it performs a second optimization by fixing growth at the previously obtained optimal level and minimizing the total flux through the network.
- Cell death
A simple model of cell death is implemented with each species assigned death rate.
- Neutral population drift
The presence of demographic noise can result in random variations in the abundance of different species in a simulation. This is especially useful in the batch-growth mode, where dilution bottlenecks can have a significant impact on growing populations.
- Evolutionary processes
Comets allows for evolutionary simulations, including random mutation and drift during simulations. Currently, the only mutations that are available are reaction deletions.
Computational capabilities
COMETS software is implemented in the JAVA language. Therefore, it is highly portable and independent on the operative system. COMETS offers the following simulation capabilities.
- Graphical User Interface (GUI)
In addition to the command line, COMETS simulations can be run using a graphical user interface that includes visualization tools.
- Parallelized dFBA
Runs in multi-CPU systems as multi-threaded process for greater computational performance.
- MATLAB toolbox
A toolbox in MATLAB for modifying the input files for COMETS in a programmatic way.
- Python toolbox
A toolbox in Python for modifying the input files for COMETS in a programmatic way.