If you use fastFVA in your work, please cite
S. Gudmundsson and I. Thiele. Computationally efficient flux variability analysis, BMC Bioinformatics, 2010, 11:489. [Link]
Installation
Windows
You need to download GLPK 4.47.1 and place glpk_4_47.dll in the same directory as fastFVA. The CPLEX version requires cplex125.dll to be in the system path (or in the same directory as fastFVA).
To use fastFVA with other version of GLPK/CPLEX you need to install a C++ compiler (Microsoft Visual Studio Express is available free of charge, see the Mathworks homepage for more information on compiler options). After configuring the compiler you need to recompile the C/C++ files as follows:
Assuming GLPK has been installed in C:\glpk-4.47In case GLPK is not already installed you can obtain the latest version from here.
64-bit:
Usage
The main code is written in C/C++ and is called via the Matlab function fastFVA.
If the Parallel toolbox is installed fastFVA makes use of it for further speedup.
You can either use the matlabpool command directly to specify
the number of cores/CPUs or use the SetWorkerCount helper function.
Assuming that the variable model contains the model of interest, [minFlux, maxFlux]=fastFVA(model, 90) returns vectors containing the minimum and maximum flux values for each reaction, with the additional constraint that at least 90% of the cellular objective (e.g. biomass) is acheived.
Another example of how to use fastFVA is given in the file example_fva.m. The network has 6 internal reactions (v1, v2, ..., v6) and 3 exchange reactions (b1,b2 and b3). The following flux values are obtained with optPercentage=100.
Flux ranges for the "wild-type" network[min, max] v1 10.00 10.00 v2 0.00 5.00 v3 0.00 5.00 v4 0.00 5.00 v5 0.00 5.00 v6 0.00 5.00 b1 10.00 10.00 b2 5.00 5.00 b3 5.00 5.00Flux ranges for a mutant with reaction v6 knocked out
[min, max] v1 10.00 10.00 v2 0.00 5.00 v3 0.00 5.00 v4 5.00 5.00 v5 0.00 5.00 v6 0.00 0.00 b1 10.00 10.00 b2 5.00 5.00 b3 5.00 5.00i.e. for the mutant, FVA reveals that reaction v6 is blocked (min=max=0) and that the flux in reaction v4 must be equal to 5 (min=max=5) in order to achieve optimum growth. Type help fastFVA for more details.
The file data.zip contains all the models used in the experiments in the paper. Unzip and update the "dataDir" variable in run_exps.m to point to the corresponding directory.
Troubleshooting
If you get an error similar to
??? Invalid MEX-file 'C:\pubs\fastFVA\release\glpkFVAcc.mexw64': The specified module could not be found.
when using the GLPK version, make sure that glpk_4_47.dll is located in the same directory as fastFVA
and that this file corresponds to version 4.47.1 of GLPK.
CPLEX: If you get a similar error to the one above, make sure that cplex125.dll is in the system path.
Known issues
Files
The following files are supplied
fastFVA.html This file fastFVA.m Matlab wrapper for the mex functions run_exps.m Performs the experiments described in the paper example_fva.m Flux variability analysis of a simple network SetWorkerCount.m Helper function for the parallel version of fastFVA GetWorkerCount.m Helper function for the parallel version of fastFVA cplexFVAc.c Source code for the CPLEX version of fastFVA glpkFVAcc.cpp Source code for the GLPK version of fastFVA glpkFVAcc.mexw32 32-bit Windows version, built with GLPK-4.47.1, Matlab 2009b and Windows XP glpkFVAcc.mexw64 64-bit Windows version, built with GLPK-4.47.1, Matlab 2010a, Visual Studio 2010 and Windows 7 cplexFVAc.mexw32 32-bit Windows version, built with CPLEX 12.4, Matlab 2009b and Windows XP cplexFVAc.mexw64 64-bit Windows version, built with CPLEX 12.5, Matlab 2010a, Visual Studio 2010 and Windows 7Please report problems to steinng@hi.is