How to do flux balance analysis (FBA)

What you need to download:

  • COBRA -- click the .zip file
  • SBML -- click the 4.1.0 folder, then download its contents individually
    • Also, read the Readme to go through installing libSBML through Matlab
  • Gurobi -- make a free account and then download it. Academic licenses are free.
  • E. coli core model -- I think you need to download everything
  • More complete model (more reactions)

For more comprehensive models (the core model is too simple), click here. These models have more reactions. You will get a .xml file. Use

in Matlab to load the xml file, then run
to convert into a cobra-compatible format.

Optimization: once you’ve initialized your model, you probably want to change some reaction parameters. For example,

targets the reaction EX_glc(e), which is the glucose exchange rate. Specifically, it sets the lower bound of the reaction to a flux of 4.46 mmol/g DCW/h (negative sign indicates uptake). You should also change the objective function, the quantity to be maximized, using the
function; the default is biomass. To run the optimization given the reaction constraints (and gene deletions; see below), run

Deleting genes:

  1. Find the gene here; be sure to check the box corresponding to the correct model you’re using.
  2. Open the GPR link (“text”), and you’ll get a boolean expression; delete any combination of genes such that the boolean expression’s result is false (I would delete all of them for good measure; in practice, you might consider deleting fewer, since more deletions might be more costly during implementation).
  3. Assuming you have the model initialized in matlab, to delete a gene run
    to delete gene b3956. You get four values out of the function, of which only the first one is important, but the other three could have useful information. For example, hasEffect is 1 or 0 depending on whether your gene deletion had an “effect”.

Optknock suggests gene deletions for increasing production of a given metabolite without significantly compromising growth rate. The website talks about the GAMS program to do the simulations, but we can’t get a license for it; fortunately, we can use Gurobi, which can be run on various programming platforms, including matlab. Try this basic tutorial. Gurobi also has some nice examples in the gurobi folder you downloaded.

As of yet, we have not tried using Optknock for our application.