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 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. Electronic supplementary material The online version of this article (doi:10.1186/s12859-014-0409-8) contains supplementary material, which is available to authorized users.

cesses, a rate of change function f can be obtained for each of the components of x 0 . The function f can then be integrated to find the concentration profiles with respect to time, x(t). Consider that each species k has n k h exchange fluxes and define the linear maps B k : R n k r → R n k h which obtain the exchange fluxes from the n k r metabolic fluxes. Formally, given the nonempty open set D . . , n s , and x : [t 0 , t f ] → R nx : where v k is an element of the solution set of the flux balance model of species k: where S k ∈ R n k q ×n k r is the stoichiometry matrix, c k ∈ R n k r is a vector of zeroes and ones with ones only in positions of growth fluxes, and v k LB , v k U B are lower and upper bounds as functions of the extracellular concentrations. This definition of DFBA has a serious problem: the solution set of the LP (2) is a set-valued function, and therefore, when it is nonsingleton it is not clear which element of the set v k should take to carry-on with the integration.
In the rest of this document, we will work with the standard form LP of (2). Let v ≥ 0.
It is well known that any linear program can be rewritten in standard form [1]. The information of v k LB and v k U B is now in the right-hand side vector β. Then, for each species k, let b k : D x → R n k m . Harwood and coworkers [2] use lexicographic optimization to render unique exchange fluxes by making them objective function values of a priority list of linear programs. Let h k : D x → R n k h , then: ] T depends on the solution of a lexicographic linear program: v ≥ 0, where c k i ∈ R n k v for i = 1, . . . , n k h . A more compact version of (5) and (6) can be obtained by defining the lexicographic minimization operator minL. Let the columns of C k ∈ R n k v ×n k h be the vectors c k i for i = 1, . . . , n k h . Then, v ≥ 0.
Harwood et al. [2] present an efficient algorithm to compute a basis that contains optimal bases for all LPs in the priority list. This algorithm was not implemented in DFBAlab because of difficulties extracting the optimal basis information with no artificial variables from LP solvers in MATLAB, but will be implemented in future releases.

LP Feasibility Problem
A major problem for DFBA simulators is that the LP in (5) may become infeasible as time progresses. In this paper we use the LP feasibility problem [1] combined with lexicographic optimization to generate an extended dynamic system for which the LP always has a solution. An LP feasibility problem finds a feasible point or identifies an LP as infeasible. It has two main characteristics: it is always feasible and its optimal objective function value is zero if and only if the original LP is feasible. Any LP in standard form (3) can be transformed such that β ≥ 0 by multiplying some equality constraints by -1. Then, the LP feasibility problem will have the following general structure [1]: v ≥ 0, s ≥ 0.
When an LP is constructed in this form, a feasible solution is obtained by setting s = β and v = 0. DFBAlab uses the LP feasibility problem as the highest priority LP in the lexicographic linear program presented in (5) and (6). Then, the secondpriority linear program maximizes biomass and the subsequent lower-priority LPs obtain unique exchange fluxes.