Simulation file

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