DFBAlab: a fast and reliable MATLAB code for dynamic flux balance analysis

Background: Dynamic Flux Balance Analysis (DFBA) is a dynamic simulation framework for biochemical processes. DFBA can be performed using different approaches such as static optimization (SOA), dynamic optimization (DOA), and direct approaches (DA). Few existing simulators address the theoretical an...

Full description

Bibliographic Details
Main Authors: Gomez, Jose Alberto (Contributor), Hoeffner, Kai (Contributor), Barton, Paul I. (Contributor)
Other Authors: Massachusetts Institute of Technology. Department of Chemical Engineering (Contributor)
Format: Article
Language:English
Published: BioMed Central Ltd, 2015-01-13T15:58:48Z.
Subjects:
Online Access:Get fulltext
Description
Summary:Background: Dynamic Flux Balance Analysis (DFBA) is a dynamic simulation framework for biochemical processes. DFBA can be performed using different approaches such as static optimization (SOA), dynamic optimization (DOA), and direct approaches (DA). Few existing simulators address the theoretical and practical challenges of nonunique exchange fluxes or infeasible linear programs (LPs). Both are common sources of failure and inefficiencies for these simulators. Results: DFBAlab, a MATLAB-based simulator that uses the LP feasibility problem to obtain an extended system and lexicographic optimization to yield unique exchange fluxes, is presented. DFBAlab is able to simulate complex dynamic cultures with multiple species rapidly and reliably, including differential-algebraic equation (DAE) systems. In addition, DFBAlab's running time scales linearly with the number of species models. Three examples are presented where the performance of COBRA, DyMMM and DFBAlab are compared. Conclusions: Lexicographic optimization is used to determine unique exchange fluxes which are necessary for a well-defined dynamic system. DFBAlab does not fail during numerical integration due to infeasible LPs. The extended system obtained through the LP feasibility problem in DFBAlab provides a penalty function that can be used in optimization algorithms.