-
Notifications
You must be signed in to change notification settings - Fork 37
Reactions
Reactions in which solutes or biomass are produced or consumed mediate the dynamics of the entire iDynoMiCS simulation. Any reaction may be defined via both stoichiometric and kinetic forms, and both of these representations are used in defining reactions in the protocol file. Consider for example a reaction in which a compound S1 is partially oxidized to produce a solute product S2 and biomass, with 80% of the biomass produced consisting of active biomass (X) and 20% of the biomass produced consisting of extracellular compounds (EPS). Assume also that the kinetic reaction has a Monod-form dependence on S1 and O2, and that solute S2 inhibits the forward reaction via simple inhibition. We may then write the stoichiometric and kinetic equations for this reaction:
In the stoichiometric equation on the left, the coefficients balance when mass units of oxygen demand (COD) are used (oxygen has a COD mass of -1, so both sides of the equation above have coefficients sums of 1.5). The kinetic equation on the right is composed of several multiplicative terms, each of which is readily specified in the protocol file.
The following reaction mark-up specifies the above reaction, and the mark-up for other reactions is similar.
In general, reactions are specified using the ReactionFactor class because this allows the most general multi-factor reaction expression (though you may look at the iDynoMiCS source under the package simulator.reaction for additional forms). Like for the solute and particle names, you may choose any name you would like for the reaction’s name attribute. You must also specify which particle type facilitates the reaction using the catalyzedBy attribute; during the simulation, this reaction will only occur if this particle type is present.
The first parameter describing the reaction is the muMax parameter, which is the maximum specific rate at which the reaction may occur, in units of 1_/hour_. This parameter will multiply each factor that follows in order to yield a net reaction rate.
Following the rate parameter are several kineticFactor mark-ups, which comprise the multiplicative terms that make up the entire reaction kinetic. In the example above, we have two Monod kinetic terms and a simple inhibition term; each of these terms acts on a particular solute and has a particular controlling parameter. iDynoMiCS includes the following suite of kineticFactor types:
- MonodKinetic: specify the solute of interest as an attribute and the half-maximum concentration (Ks) as a parameter. Formula:
- SimpleInhibition: specify the solute of interest as an attribute and the half-maximum concentration (Ki) as a parameter. Formula:
- HaldaneKinetic : specify the solute of interest as an attribute and the concentrations (Ki) and (Ks) as parameters. Formula:
- HillKinetic: specify the solute of interest as an attribute and the half-maximum concentration (Ks) and exponent (h) as parameters. Formula:
- FirstOrderKinetic: no parameters or attributes to specify; the reaction rate depends only on the muMax parameter.
The final component of the reaction mark-up is the yield mark-up. Within this mark-up are specified the yield coefficients of all components affected by the reaction; these coefficients are taken from the original stoichiometric equation defined at the beginning of this section. To define a coefficient, you merely add a new parameter to the mark-up, specify the affected solute or particle using the name attribute, and give the coefficient as the parameter value. Negative values represent consumption of the component, and positive values represent production. Note that there is NO control on the chemical balance of the chosen stoichiometric coefficients: it is up to YOU to ensure that your model simulation matches reality, and that there is a mass balance in the equations. Also note that when defining the reactions in the simulation, it is necessary to use solutes and particles already defined; any syntax mistake in their use will cause an error.