In the simulation file the following information must be specified:
- The number of microbial species is specified in the variable declaration section of the main program in main.f (not shown in the code fragment below).
- The FBA model iJR904 for E. coli is specified by the name of the files containing the technology matrix A and right-hand side vector b, i.e. iJR904.A and iJR904.b. It is assumed that the model is in standard form for LPs. The technology matrix A is given in sparse coordinate list column-major format, i.e. [row index, column index, value]. The first row contains the number of rows, number of columns, and number of non-zero entries. A Matlab script based on the COBRA Toolbox is provided here, which generates the necessary files from a COBRA model structure.
The primary objective, e.g. growth rate, is specified by the column indices of the non-zero entries. Optional higher-order objective functions, e.g. ethanol flux, can be provided in the same format. - The number of external metabolites.
- The indices of the exchange fluxes in the FBA model.
- Initial conditions for the dynamic states. For the E. coli simulation the following units are assumed: Volume [L], biomass [g/L], metabolites [mmol/L].
Note that it is assumed that the stoichiometry matrix of the FBA model has full row rank. If this is not the case then a full row rank minor must be provided. The following part of the code in main.f shows the simulation parameters for the E. coli simulation.
c### For each FBA model load data from files
modelname(1) = 'Ecoli_iJR904'
c### Specify the number of external metabolites
nExtMet = 4 ! [ glucose, xylose, ethanol, dissolved oxygen ]
c### Specify the flux IDs of the exchange reactions for each FBA model
ExRxn(1) = 344 ! glucose exchange flux
ExRxn(2) = 429 ! xylose exchange flux
ExRxn(3) = 329 ! ethanol exchange flux
ExRxn(4) = 392 ! oxygen exchange flux
c### Set number of cost vectors in each LP ("multiplicity"):
cmult(1) = 2
c### Set number of nonzero elements in each cost vector:
cnonzero(1) = 1
cnonzero(2) = 1
c### Set cost vectors; value and index:
c First: Maximize biomass flux (growth rate)
cval(1) = -1.0d0
cindex(1) = 150
c Second: Maximize ethanol flux
cval(2) = -1.0d0
cindex(2) = 329
c### Specify integration interval
t = 0
tout = 50
c### Specify initial conditions for y=[Vol , X(1:nlp), S(1:nExtMet)]
y0(1) = 1.0d0
y0(2) = 0.080
y0(3) = 16.0d0
y0(4) = 8.0d0
y0(5) = 0.0d0
y0(6) = 0.0d0
