Background

Current metabolic engineering processes allow to manipulate metabolic networks to improve the desired characteristics of biochemical systems [1]. These manipulations may lead to the maximization of the normal product yield or redirect the production to a flux that was residual or non-significant in the original network. The high level of uncertainty in metabolic network models knowledge makes it extremely difficult to determine what are the required manipulations needed to attain a given objective. Since an heuristic approach to such problems does not allow to explore the maximum potential of metabolic engineering, two approaches are usually considered when modeling metabolic networks. Kinetic models describe the complete dynamics of the network, and have proven useful to implement optimization and control over the network, such as in [2]. The creation of reliable kinetic models involves the estimation of parameters, the complexity of this task increasing with the size of the network considered.

The second approach models the networks on the basis of reaction stoichiometry. Although easier to obtain, these models lack the ability to directly predict the dynamics of the system.

Several techniques have been proposed to optimize and infer network characteristics from these models. In [3] a platform that combines many of these methods is presented. Flux Balance Analysis (FBA) allows the determination of the optimal flux distribution on a network described in terms of the stoichiometry of the reactions and yields reliable results in the study of metabolic systems [46]. A review of the method can be seen in [7].

When optimizing a metabolic network for a given objective two distinct problems must be addressed. The first is to find which branch or branches must be manipulated. The second is to determine what type of alterations must be done. Strategies such as OptKnock [8] and the work in [9] address the first problem. In this work a strategy for the second problem is described.

The simulation and engineering of metabolic network models typically involves complex optimization procedures. Geometric Programming (GP), one of the techniques used in this paper, is a powerful mathematical optimization tool that can be applied to problems where the objective and constraint functions have a special form [10]. GP is of particular interest because it can solve large scale problems with extreme efficiency and reliability [11]. Furthermore it has been shown that a problem formulated in S-Systems form can be solved with GP after a minimum adaptation [12].

A common optimization problem is the maximization of the final concentration of a metabolite whose formation competes with the natural objective of the cell (e.g. maximization of biomass). In this work, a prototype network with such behavior is taken as example and the corresponding optimization problem is solved with three alternative methods.

It is stressed that the emphasis of this work is on the methods and not the specific network considered. The key point of the paper consists in establishing properties of a number of optimization methods that may serve as guidelines when considering more complex networks.

This will be further explained in the next section.

Results and Discussion

An overall view of the problem considered and paper contributions is first presented. Details may then be seen in subsequent sections.

The problem to consider consists in finding a control function, defined over a finite interval of operation time, such that the final concentration of a desired product is maximum. This product is yielded by a metabolic network that, depending on the control function, either produces it or a product that favors cell growth. In order to settle ideas, assume that the control variable u is such that it is constrained to be in the interval [0, 1], with u = 0 corresponding to only production of cell growth product and no production of the desired product, and u = 1 corresponds to the inverse situation. Values of u in between 0 and 1 correspond to a mixed production in a way that depends on the network dynamics.

Since the optimization is with respect to a time function, this is an in finite dimensional problem. However we prove in this paper, using Pontryagin's Maximum Principle [13], that the optimal control only assumes values of 0 and 1. This is a priori assumed by other authors [14] and receives now a solid justification. It is a result valid for similar metabolic network problems that aim at optimizing a final yield (e.g. a concentration at the end of the optimization time interval, such as in [15]) and such that the control enters linearly in the network equations.

The significance of this result consists in the fact that, instead of searching the optimal control among piecewise continuous functions assuming values between 0 and 1, one only has to look functions assuming the extreme values of 0 and 1.

Furthermore, in the case study considered, it is shown that the optimum has only one switch between 0 and 1. Therefore the search for the optimum is reduced to find the switching instant, t reg , that leads to the maximum final yield. Considering the structure of the metabolic network, this is intuitive: the optimum is achieved by first applying all cell resources to population growth and, after t reg , to redirect them to desired production. If t reg is too small, the desired production rate is higher during more time, but the cell population to which it applies is small. If t reg is too big, there are many cells to produce, but they only act during a small time interval. Hence, there is an optimum value for t reg .

As mentioned in the Background section, a major problem is the high level of uncertainty in the knowledge about metabolic network dynamics. In this respect we consider different optimization algorithms that assume various degrees of information about the system to be optimized.

The first is direct optimization. This assumes complete knowledge about the system and is included to establish a benchmark with which other methods may be compared.

The other two methods are variants of a bi-level algorithm designed in order to accommodate missing information on the network kinetics. Both cases differ from the type of inner-optimization: Geometric Programming in one case and Linear Programming in the other. Both methods lead to good approximations of the optimal control, with a slight advantage of the one relying on Geometric Programming.

Prototype network model

The optimization strategies were tested on a prototype network that is a modified version of a previously one suggested in [16]. The choice of this network was due to its widespread use as a test benchmark for several optimization algorithms. A graphical representation of the network is shown in Figure 1 associated with the following set of ordinary differential equations:

Figure 1
figure 1

Prototype network. The circles correspond to metabolites and the arrows to fluxes with the reaction rates indicated.

d x 1 d t = k v 1 d x 2 d t = v 1 v 2 ( 1 u ) v 3 u d x 3 d t = v 2 ( 1 u ) d x 4 d t = v 3 u v 4 d x 5 d t = v 4
(1)

Here the states x i , i = 1,..., 5 are metabolite concentrations at the network nodes, v i , i = 1,..., 4 are fluxes associated to the metabolic network branches and k is a constant parameter that represents the uptake of x1. In the equations, u represents a control function that allows to redirect the flux between the branches x2x3 and x2x4. Assuming that x3 represents a precursor of the cellular objective (such as growth) and x5 the desired product, if u(t) is biased towards the branch of v2 this yields the formation of x3 but little or no production of x5. If u(t) is biased towards the branch of v3 the production of x5 will be affected by the low concentration of x3 (since there is a forward feedback). Thus, there is an optimal profile for u(t) to maximize the concentration of x5 at the final time t final .

In the framework of S-systems [16] the prototype network is described by:

d x 1 d t = k β 1 x 1 h 11 d x 2 d t = α 2 x 1 g 21 β 2 x 3 h 23 x 2 h 22 d x 3 d t = α 3 x 2 g 32 ( 1 u ) d x 4 d t = α 4 x 3 g 43 x 2 g 42 u β 4 x 4 h 44 d x 5 d t = α 5 x 4 g 54
(2)

where β i are the rate constants, g ij and h ij are the kinetic orders. Table 1 shows the list of parameters. All the simulations using the prototype network assume x(0) = [0.8 0 1 0 0].

Table 1 Parameters used in the prototype network.

Direct optimization

Direct optimization uses model (2) with the set of parameters from Table 1.

On a first approach, all possible integer values of t reg in the interval t reg = [1, 30] were used to compute the final product concentration x5(t final ) where t final = 30s. Figure 2 plots the resulting function J(t reg ) = x5(t final ).

Figure 2
figure 2

Results of the simulation using Direct optimization. The final product concentration is shown as a function of T reg . For the value of T reg corresponding to the dotted line there is a maximum yield.

It is clear from Figure 2 that there is an optimal value for the time of regulation that maximizes the yield of x5. For the network considered, the optimal time of regulation is t reg = 9s. If u(t) switches from 0 to 1 before t reg the formed biomass will not be enough to maximize x5(t final ). On the other hand, if u(t) switches from 0 to 1 after t reg , there will be more biomass but there time will not be enough time to produce the maximum possible amount of x5.

To illustrate better the behavior of the prototype network, simulations were made for t reg = 4, t reg = 9 and t reg = 14. The obtained optimal t reg = 9 is compared in Figure 3 with lower and upper values in order to show the different time evolution of the metabolites.

Figure 3
figure 3

Comparison of three u ( t ) profiles. Three time profiles for the control function u(t) (above) and the corresponding product yield (below). The solid line is the optimal T reg obtained by Direct Optimization.

Bi-Level Optimization

The Bi-Level optimization was used to test all the possible values of t reg . Figure 4 plots the normalized curves for J(t reg ) = x5(t final ) for the two optimizations, inner-optimization using Geometric Programming (GP) and inner-optimization using Linear Programming (LP). By comparing Figure 4 with Figure 2 it can be seen that the profiles remain similar. The final product yield, x5(t final ), increases with t reg until the optimal value is reached, then it starts decreasing.

Figure 4
figure 4

Result of the optimization using the Inner Optimization with Geometric Programming (left) and Linear Programming (right). The profiles of the production of x5 remain similar to the simulation using Direct optimization.

The optimal time of regulation obtained with both GP and LP on the inner optimization was t reg = 9. As shown mathematically in the methods section, the optimal control function is either 0 or 1, provided that the dynamics depends linearly on the control and the cost to optimize has only a final term.

In this case the dependency of the Hamiltonian function on u is linear (as given by (8) below). For the prototype considered, ϕ ( λ ( t ) , x ( t ) ) = ( λ 4 α 4 x 3 g 43 x 2 g 42 λ 3 α 3 x 2 g 32 ) . Figure 5 shows a plot of ϕ(λ(t), x(t)) obtained with a near-optimal control function u(t). As expected, ϕ(λ(t), x(t)) is negative for values smaller than t reg , leading to an optimal control u(t) = 0 and becomes positive for values larger than t reg , leading to u(t) = 1. Thus, the optimal control is obtained on the extremes of the allowed interval and furthermore, one single switch (from 0 to 1) is enough to achieve the optimal control. It should be remarked that, since ϕ(λ(t), x(t)) is close to zero around t = t reg , in practice, when using a numeric method there can be some jittering in the transition of the manipulated variable.

Figure 5
figure 5

Plot of ϕ ( λ ( t ), x ( t )) (9). This function changes sign at the optimal instant of control switching T reg .

Conclusions

For a class of networks in which the yield of the product that favors cell population growth (the "natural" product) competes with the desired product yield, with the manipulated variable affecting linearly the fluxes, it has been shown that the optimal control assumes only extreme values. While the implementation of this optimal control poses no challenge on in silico metabolic networks, on real metabolic networks complex bioengineering skills are required. Gene knockout manipulations do not adequate to this kind of control problem due to the long time scale associated with these techniques. The manipulation of specific enzyme levels, controlled by modulating the expression of the corresponding genes using promoter systems and inducers, is a possible solution to this kind of control problem [14].

The use of a bi-level optimization strategy, that maximizes the natural product in the inner level by manipulating the fluxes, leads to a good approximation to the optimal solution, with the advantage of not requiring the full knowledge of the network model. Real networks are extremely complex and exhibit relations between metabolites that are not always expected or fully understood. This gives emphasis to the need of good in silico models and also to the determination of the exact branches to be modified when optimizing a network. Although the example network used is very simple, it has proved to be useful to test the optimization strategies but a more complex network should be used to confirm that the strategy can be scaled to a larger network.

Methods

The optimization problem

The optimization problem consists in relation to a nonlinear state model of a metabolic network like (2), in selecting u(t) for t ∈ [0, t final ] such that:

J ( u ) = x 5 ( t f i n a l )
(3)

is maximized under the constraint that u(t) ∈ [0, 1], ∇t ≥ 0.

The solution of the optimization problem is obtained using different approaches. Before accomplishing this task, Pontryagin's Maximum Principle is invoked to establish a particular form of the optimal control function for the class of problems at hand.

Optimization

The control function is now optimized in order to obtain a maximum yield of biomass at the end of the run-time (t final ). Three different methods, assuming various levels of information about the network, are considered in order to attain this goal.

The first method, direct optimization, is used as a benchmark to compare the results of the other methods. The last two methods rely on a Bi-level optimization and illustrate a possible solution to the optimization problem when the information about the network is incomplete.

Direct optimization

The first method, Direct Optimization, is used mainly as a benchmark, to compare the results of the following methods. Since it is assumed that all the information about the network kinetics is known, the system of differential equations, described in (2) is used. Given a function that receives t reg as input and outputs the final yield of x5, this optimization tests all the possible values of treg and returns the function J(t reg ) = x5(t final ). The value of t reg that results on a maximum product yield is then determined by solving a simple optimization problem.

The optimization was tested with two MATLAB functions: fmincon, from the standard optimization toolbox, that finds the minimum of a constrained nonlinear multi variable function, and simannealingSB from Systems Biology Toolbox [17] that performs simulated annealing optimization.

Bi-Level Optimization algorithm structure

The Bi-Level optimization algorithm was structured so as to accommodate missing information on the network kinetics. The boxed metabolites and fluxes from Figure 1 are a part of the network that might not be fully described in terms of kinetics. In this approach the missing kinetic information is replaced by stoichiometric data and flux balance analysis is used to obtain the proper flux distribution. Then, an inner optimization determines the fluxes during the batch time. The first step of the inner optimization process is to define the initial conditions of the input x1 and outputs x3, x5. A valid distribution for the fluxes v1, v2, v3 and v4 is then obtained.

After obtaining the flux distribution, new values for the input/outputs can be calculated by integrating their expressions in the considered time interval. During this time interval the function u(t) and the values of v1, v2, v3 and v4 are kept constant. This process is repeated along a time grid from t = 0 to t = t final . The time interval for the integration was defined to be 1 second. The inner optimization process allows us to obtain the product yield, x5(t final ), given a certain u(t), taking into account a valid approximation of the network dynamics over the simulation time. The detailed fluxogram of the inner-optimization is shown in Figure 6.

Figure 6
figure 6

Inner-Optimization algorithm. Block diagram of the Inner-Optimization algorithm.

The bi-level optimization algorithm can be represented schematically as in Figure 7.

Figure 7
figure 7

Bi-Level optimization formulation. Structure of the Bi-Level optimization.

Inner-optimization using Geometric Programming

On the first implementation of the Bi-Level optimization algorithm the dynamics of the boxed metabolites from Figure 1 are used but, following the algorithm structure, steady-state is assumed. Thus, x ˙ 2 and x ˙ 4 from (2) become:

d x 2 d t = α 2 x 1 g 21 β 2 x 3 h 23 x 2 h 22 = 0 d x 4 d t = α 4 x 3 g 43 x 2 g 42 u β 4 x 4 h 44 = 0
(4)

In this algorithm implementation, the inner optimization problem determines the profile of the metabolites, instead of fluxes, due to the nature of the equations. The metabolite concentrations are calculated at the beginning of each time interval, solving a Geometric Programming problem, and used with (2) to integrate the values of x1, x3 and x5 during that interval.

Inner-optimization using Linear Programming

On the second implementation it is assumed that only stoichiometric information is available for the reactions inside the box of Figure 1. Assuming steady state, the equations of x ˙ 2 and x ˙ 4 become:

d x 2 d t = v 1 v 2 × ( 1 u ) v 3 × u = 0 d x 4 d t = v 3 × u v 4 = 0
(5)

Figure 1 shows a regulation from x3 (Biomass) to flux v3. Since stoichiometric models do not account for feedbacks, the effect of x3 can not be integrated directly in the equations. Assuming that the forward feedback leads to an over expression of flux v3, then a valid solution is to model the forward feedback as a variation of the constraints applied to flux v3. Setting flux v2 (precursor of Biomass formation) as the objective function, the FBA problem is solved with the previous equations to obtain a valid and unique flux distribution at each time step. In the context of the inner-optimization, these fluxes are then used to calculate the values of the input/outputs.

Pontryagin's Maximum Principle

A general tool to solve dynamic optimization problems such as the one considered here is Pontryagin's Maximum Principle PMP [13].

Let x be the state of a dynamical system with control inputs u such that:

x ˙ = F ( x , u ) , x ( 0 ) = x 0 , u ( t ) U , t [ 0 , T ]
(6)

where F : ℜn× ℜ → ℜn, U is the set of valid control inputs and T is the final time, assumed here to be constant.

The control function u must be chosen in order to maximize the functional J, defined by:

J ( u ) = ψ ( x i ( T ) ) + 0 T L ( x ( t ) , u ( t ) ) d t
(7)

Where ψ is the cost associated with the terminal condition of the system and L the Lagrangian.

According to PMP, a necessary condition for the optimal control is that, along the optimal solution for the state x, co-state λ and control u the Hamiltonian H is maximum with respect to u[13].

Comparing the cost (3) with the generalized case (7) and taking into consideration that, in the case at hand, given by (1), the dynamics vector field depends linearly on the control, it follows that

H ( λ , x , u ) = λ ϕ ( λ , x ) u
(8)

where ϕ(λ, x) is a function that does not explicitly depend on u. Since, according to (8), the Hamiltonian is linear in u, its maximum is obtained at the boundary of the admissible control set U.

Hence, this shows that, for the metabolic network (1), the control that optimizes (3) only assumes the values u = 0 or u = 1.

In the case at hand, we are interested in maximizing the final value of the state x5. Since the Lagrangian (L) is zero, (7) becomes J(u) = ψ(x i (T)). Thus, the functional J to be maximized is:

ψ ( x ( T ) ) = u 5 ( T f i n a l )
(9)

as shown before in (3).

Taking into account that, L = 0 the adjoint equations are reduced to

λ ˙ = f x T λ
(10)

The network is described by the system of ordinary differential equations in (2), if we consider the state model in the form of f(x, u), where u is the control function, calculating f x (x, u) is straightforward.

Thus

λ ˙ 1 = β 1 h 11 x 1 h 11 1 λ 1 α 2 g 21 x 1 g 21 1 λ 2 λ ˙ 2 = β 2 x 3 h 23 h 22 x 2 h 22 1 λ 2 ( α 3 g 32 x 2 g 32 1 ) ( 1 u ) λ 3 α 4 x 3 g 43 u g 42 x 2 g 42 1 λ 4 λ ˙ 3 = β 2 x 2 h 22 h 23 x 3 h 23 1 λ 2 α 4 u x 2 g 42 g 43 x 3 g 43 1 λ 4 λ ˙ 4 = β 4 h 44 x 4 h 44 1 λ 4 α 5 g 54 x 4 g 54 1 λ 5 λ ˙ 5 = 0
(11)

The terminal conditions for the co-states λ are

λ n ( T ) = ψ x | x = x ( T ) = ( [ 0 0 0 0 1 ] )
(12)

Since L = 0 the Hamiltonian is given by λTf(x).

Substituting in the expression and after some manipulation, becomes:

H ( λ ( t ) , x ( t ) , u ( t ) , t ) = λ 1 ( k β 1 x 1 h 11 ) + λ 2 ( α 2 x 1 g 21 β 2 x 3 h 23 x 2 h 22 ) + λ 5 ( α 5 x 4 g 54 ) + λ 3 α 3 x 2 g 32 α 4 β 4 x 4 h 44 + ( λ 4 α 4 x 2 g 43 x 2 g 42 λ 3 α 3 x 2 g 32 ) u
(13)

that depends linearly on the control function u, as expected.

The derivative of the Hamiltonian in order to the control function is:

H u = λ T f u = λ 3 α 3 x 2 g 32 + λ 4 α 4 x 3 g 43 x 2 g 42
(14)

This expression is the one that determines the number of switches between 0 and 1 of the control variable.