| In Silico Biology 4, 0010 (2003); ©2003, Bioinformation Systems e.V. |
1 Grupo de Tecnología Bioquímica. Departamento de Bioquímica y Biología Molecular,
Facultad de Biología, Universidad de La Laguna,
38206 La Laguna, Tenerife, Islas Canarias, España.
2 Instituto Universitario de Bioorgánica Antonio González.
Avda. Astfco. Fco. Sánchez, s/n. 38206 La Laguna. Tenerife. Islas Canarias, España.
* corresponding author
Email: ntorres@ull.es
Edited by H. Michael; received September 26, 2003; revised and accepted December 03, 2003; published December 26, 2003
In previous works we have presented and applied a method to predict the parameter profile that optimizes biochemical systems regarding either a single or a set of metabolic responses within physiological constraints [Vera et al., 2003a]. This optimization technique requires a previous model definition and a translation to S-system form and the use of widely available linear programming packages. However, in dealing with these issues the interested researcher has to confront additional difficulties because of a lack of connectivity among available software packages or routines specifically designed to perform different tasks. In addition to this difficulty is the unavailability of any automated package which is capable of performing such optimizations and the previous required analysis. This situation prompted us to develop an integrated software package able to deal with these tasks in a single program environment. In this paper we present a software package for the model definition, analysis and optimization of a biochemical system. It starts with a given model definition that is directly translated to its equivalent S-system form. Once the model quality assessment is performed (stability and sensitivity analysis) the program determines the parameter profile that yields the optimized response compatible with a predefined set of constraints. Moreover the package finds the set of solutions obtained when more than one system's responses are to be optimized (multiobjective optimization).
Key words: integrated Matlab package, bioprocesses, optimisation, linear programming, power-law formalism
In the last decade, the mathematical, model-based optimization of biotechnological processes has become an active field within the biotechnologists' community. From a technological point of view, mathematical optimization permits predicted production and the reduction of material requirements to be improved (substrate concentrations, enzyme activities,) in these processes. Moreover, mathematical optimization can be used to obtain important information about general properties of biochemical systems [Vera et al., 2003a].
Some model-based strategies have been developed in many aspects, ranging from the mathematical foundations of such approaches [Voit, 1992; Regan et al., 1993; Hatzimanikatis et al., 1996a; 1996b; Petkov and Maranas, 1997; Voit and Del Signore, 2001; Torres and Voit, 2002], to the development of new methods [Clark and Westerberg, 1990; Clark, 1990; Torres et al., 1997; Conejeros and Vassiliadis, 1998a; 1998b; 2000; Torres and Voit, 2002; Vera et al., 2003a] or their application to particular processes [Heinrich et al., 1991; Hatzimanikatis et al., 1998; Marín-Sanguino and Torres, 2000; 2002; Alvarez-Vasquez et al., 2000; Thibault et al., 2001].
One of these well-developed approaches is based on the use of canonical differential equation models in S-system form [Savageau, 1969a; 1969b; Voit, 2000; Torres and Voit, 2002]. The S-system models, which are based on the power law formalism, are characterized by the aggregation of the input (and output) fluxes to (and from) each intermediate point of a metabolic pathway in a unique expression. These two fluxes are both expanded in power-law terms, obtaining a very simple and compact structure for the model equations. This formalism provides an alternative that combines a highly systematic structure with mathematical efficiency and accuracy of representation [Savageau and Voit, 1987]. Moreover, a wide spectrum of mathematical techniques [Salvador, 1999; Alves and Savageau, 2000] has been specifically developed for this formalism, which permits any biological property to be modeled as well as a complete system analysis. These analyses include assessment of the model robustness and stability, simulation of dynamic processes and system synergistic behavior (for a review see Voit, 2000).
In addition S-system models have a tremendously important advantage in the present context. Due to the unique nonlinear structure of S-systems, the steady-state equations are linear when they are represented in logarithmic coordinates, thus allowing straightforward application of constrained linear optimization techniques, such as the Simplex Algorithm. This advantageous feature is the basis of the Indirect Optimization Method (IOM) that has proven useful in the analysis of metabolic networks with the goal of overproduction of metabolites [Torres et al., 1997; Torres and Voit, 2002]. Moreover, it has also been shown that optimization with S-system methods is possible even if the underlying process model is not formulated in S-system form [Vera et al., 2003b] or more that one objective optimization function is considered [Vera et al., 2003a].
There are some packages specifically designed for the building and analysis of S-systems models (PLAS [Ferreira], PARSYS [Salvador, 1996]), and many software tools can be used for the biotechnological optimization of these models (e. g. LINDO, LINDO Systems INC.). Moreover, some scientific computing environments such as MathematicaTM or MatlabTM provides analytic and optimization tools that can be used for these very same purposes. However, the lack of user-friendly software complicates the process of model building, analysis and optimization, particularly in the case of those researchers who are focused on experimental work. The difficulties in dealing with these issues are further aggravated by the well-observed lack of connectivity among available software packages designed to deal with the different tasks. Consequently such studies usually require a handmade translation of data from one software tool to another, generating a time-consuming task which is prone to error. The development of general biology model languages such as SBML [Hucka et al., 2003] can facilitate the interchange of complete model structure and equations among research groups, but it is necessary to adapt the current scientific software to permit this information flux. Thus, any potential user would benefit greatly from the use of a flexible program that combines the model definition and the optimization tasks. Such a program will allow the model analysis to be carried out and to optimize one or many responses within certain constraints, all within the same environment.
For this purpose we have chosen the MatlabTM platform. We have built some tools that allow not only the modeling, analysis and simulation of biochemical processes in S-system form, but also the various types of optimization routines based on the IOM approach, including the multiobjective one. Furthermore the program is designed in such a way that it can easily incorporate future developments.
MetMAP is a structured library of MatlabTM functions specifically designed to model, analyse and optimize S-system biochemical and biotechnological models. The functions of MetMAP are summarized in Table 1.
| Table 1: | MetMAP functions |
| FUNCTIONS | DESCRIPTION |
| Package Control Core | |
| make_project | Generates the files model_name.m, and opt_prog_name.m, containing the model and optimization program definition,and kernel_name.m. |
| kernel_name | Controls the model building, optimization and all related analysis. |
| MetMAP_GUI | |
| Model implementation | |
| model_name | Allows the model implementation |
| opt_prog_name | Allows the definition of the optimization tasks. |
| Numerical Calculations | |
| System Analysis | |
| log_gains | Computes logarithmic gains and fluxes rate constants sensitivities |
| evaluate_solution | Computes the steady state |
| eigenvalues_ss | Computes the steady state eigen values |
| local_sensitivities | Computes the kinetic order sensitivities |
| simulation_ss | Runs the system's time course after perturbation of the steady state |
| Optimization Process | |
| monoobj_opt | Runs a mono-objective linear programming |
| secuential_opt | Runs a predefined sequence of linear programming optimizations |
| adbase_opt | Calls ADBASE and runs a multi-objective linear programming problem. |
| indirect_opt | Translates the optimum solutions to the no-linear domain |
The user can develop an S-system model of a given biochemical system by including a mathematical description of all the kinetic equations of reactions. At this level the program is highly flexible and can operate with any type of mathematical representation, including the usual enzyme kinetic rate-laws. There are two possible ways to control the functions in the package. One can use the Graphical User Interface (Figure 1A), or alternatively use the version that runs from an editable file called kernel (Figure 1B). The Graphical User Interface (called MetMAP_GUI) is a MatlabTM GUI, that also runs from the MatlabTM environment. This utility highly simplifies the use of the package and is the best option for MatlabTM beginners. On the other hand the editable file version runs from the MatlabTM M-file editor and its use requires some knowledge of the MatlabTM programming language. The advantage is that it allows for a more flexible use of functions and the customization of calculations.
Fig. 1A
|
Figure 1: Typical visualisations of the MetMAP package. A. Graphical User Interface. B. MetMAP's kernel.m file in the MatlabTM M-file editor. |
Fig. 1B
|
Figure 2 shows the main steps to follow when using MetMAP while executing a case study called Example. Once we are within the Matlab environment we make use of the function make_project. This function creates the files where the model and the optimization program are implemented.
The original system model is implemented by editing the file model_example.m file, and then writing the required information (variable values and flux equations) according to specific instructions. Similarly, the optimization program can be implemented by editing and following the instructions contained in the opt_prog_example.m file. Once this information is saved, the user can open the interface, MetMAP_GUI (or kernel_Example) and run the analysis, simulation and optimization of the system. If the MetMAP_GUI is chosen (recommended for beginners) all the basic calculations (including the S-system model translation) can be ordered and represented at the very same graphical interface.
|
Figure 2: Sequence of steps followed for the modeling, analysis and optimization of a biochemical system with MetMAP. |
We can separate the functions that evaluate the numerical calculations in two groups. First, we have functions that permit a complete system analysis, including evaluation of the new steady states, stability assessment and time course studies. The second group of functions evaluates the model and steady-state robustness. There are also functions to evaluate the model and steady-state stability (eigenvalues_ss)" and robustness (log_gains, local_sensitivities). These analyses provide valuable information about the model quality and the biological feasibility of the new, optimized steady states. The optimization functions take advantage of the canonical S-system structure to develop the complete IOM optimization approach. The optimization can be carried out in three modes: mono-objective optimization; the search of the sequential path towards the mono-objective optimized parameter pattern profile and the multi-objective optimization of the system.
This package has been designed to permit complete S-System modeling, analysis and optimization, therefore a basic qualitative knowledge about S-System formalism and IOM methods are needed in order to analyse the results. The package has been implemented in Matlab including a very useful interface that simplifies its use for Matlab beginners. However, minimum Matlab knowledge is necessary. The MetMAP User's manual contains basic instructions regarding the installation of MetMAP and describe the essential package functions.
The package can be used at three different levels. A beginner can complete a basic S-System modeling and analysis process using the MetMAP_GUI. The mono-objective optimization is also available from the Graphical Interface. The newcomer only has to implement the model and optimization program equations in the model.m and opt_prog.m files using the Matlab Editor and follow the instructions. Any other operation can be ordered from the Graphical Interface. An intermediate level user can execute a complete S-System modeling and analysis as well as the mono and multiobjective optimizations. All package functions can be controlled from the editable kernel.m.file. With a minimum knowledge in Matlab programming, additional calculations can be implemented in the kernel.m file for customised results. Finally an advanced Matlab user can directly use the Matlab functions without any interface and incorporate them into his own new developments. An advanced level of Matlab programming is required to do this.
MetMAP GUI is a Matlab Graphical User Interface that has been developed in order to facilitate MetMAP use to Matlab beginners. The main elements of MetMAP_GUI are shown in Figure 3. Once we have loaded an S-System model (from a model.m file including the model implementation or from a Matlab data file generated in a preceding session), we can perform a first, basic analysis and optimization of the system from the Graphical Interface. The results can be visualized in the GUI and they can be saved for future sessions. The usage of MetMAP is completely interactive and no script writing is necessary. The main functions to be executed from the GUI are the definition and evaluation of new steady states, the analysis of the system sensitivities and stability, dynamic simulations, and mono-objective optimization.
We're going to demonstrate the use of MetMAP with a simple case study for illustration purposes. Figure 4 shows a three step metabolic pathway with a feedback loop. The production of X1 is affected by the dependent variable X2, which inhibits this process, and by the independent variables E1. The degradation of X1 depends on the substrate of the process, X1 and on the independent variables E2. The production of X2 constitutes the same process as the degradation of X1, since no material is entering or leaving the system at this step. The degradation of X2 depends directly on the substrate X2, and also on the independent variable E3.
The system's differential equations are defined below:
and the basal steady-state is defined by the values:
Let's assume that the transformation of X2 produces a certain product of interest. Accordingly the corresponding production rate is:
If our aim is to improve its production, we can define the objective function as Max[Prod]. The optimization program will have the following structure:
By using the function make_project ('Example') in the Matlab Command Window we create the model_Example.m and opt_prog_Example.m files in the directory "/work/metmap" of Matlab (see Figure 5).
|
Figure 5: Using the function make_project in the Matlab Command Window for a project called Example. |
Using the Matlab Editor we can open, implement and save the model equations in the file model_Example.m (see Figure 6).
|
Figure 6: A partial view of the file model_Example.m contents after the implementation of the model's dynamic equations. |
By the same procedure the optimization program is defined in the file opt_prog_Example.m. The program inserts the steady-state equations in the S-System translated program. By opening the MetMAP_GUI from the Matlab Command Window, it is possible to insert the project name and then to translate the original model to the S-System formalism by a simple key stroke at the "Build Model" option. Model equations can be accessed either from the GUI or at the Example.m file. All S-System calculations can be executed from the graphical interface. The S-System model used in MetMAP has been normalized. Accordingly in the basal steady state all the variables values are equal to 1.
If we want to analyze the system at a new state where E1 has a value twice the basal one, we should introduce the new data by using the "Update" key, and then proceed to "Evaluate" to find the new state. The new state now will appear in "Actual State" window. Calculation of the new state sensitivities can be done with the "Get Sensitivities" option, which is indicated by a message in the Message window. Any sensitivity can be plotted with the PopupMenu (e. g. LXG) and the "Show" button. Figure 7 shows the results at the MetMAP graphical user Interface.
At the conclusion of a session, generated data can be saved in a Matlab data file (Example.mat) with the "Save data" option and reloaded with "Load data".
The standard programming strategy within MatlabTM consists of developing a package of functions that implements specific mathematical methods. MetMAP is modularly designed. This feature allows all the MetMAP functions to be called without functions conflict with other MatlabTM routines. This makes MetMAP an open, adaptable framework that can easily incorporate new features. Another characteristic is that all data produced by MetMAP can be stored and processed from the control core of the program. This greatly facilitates the full revision and comparison of the behavior of a given system within different metabolic scenarios.
The functions included in MetMAP that use symbolic calculations (model and optimization program definition and S-System translation) are the slowest ones (10 seconds for a medium size problem in a Pentium III running at 800 Mhz). Functions that allow system analysis and perform matrix algebra calculations (product, addition and inversion) and those computing steady-state stability (through the evaluation of the eigenvalues) are quite fast (milliseconds). The same is observed with functions that allow for system optimization. These functions use Linear Programming techniques for systems with up to 102 variables and/or constraints. The function indirect_opt is the only one with a certain computational complexity in this group, because it uses a non-linear algorithm to translate the S-system solution to the original model. All together these features make the methods and routines implemented in MetMAP well-fitted to deal with models of biotechnological systems, run very fast calculations, and are easily scalable to more complex models.
In preliminary tests with the package we used a model system with around 50 variables and less than 100 constraints. We worked with a Pentium III (800 Mhz), using 50 Mb of RAM memory for Matlab operation. We verified that all the calculations described have spent time computations in milliseconds. The predictable exceptions were the functions using symbolical calculations that need around 10 seconds to compute the results.
MetMAP requires a basic version of MatlabTM. Translation of previous models to the S-system version requires the Symbolic Toolbox. The mono-objective and the sequential optimization need the Optimization Toolbox. It runs with the Matlab 6.5 Release 13; Optimization Toolbox 2.2 and Symbolic Math Toolbox 3.0.1. The multi-objective optimization is carried out with the free multi-objective linear program package ADBASE [Steuer, 1995].
Future developments include the development of the complete portability of MetMAP to Octave and Yacas GNU software (See YacasTM and OctaveTM in references) and additional functions for the translation to the MetMAP syntaxes of any model previously implemented using the Systems Biology Markup Language (SBML). Moreover we are working on the introduction of a complete online version of the package in the MetMAP WebPages using Matlab's Web Server Toolbox.
MetMAP is a flexible package of functions that performs numerical, dynamic and optimization analysis of biochemical systems, designed as an open environment that can easily be modified by users to include new features. It was designed to share all the advantages that make MatlabTM a powerful and flexible tool for computational analysis. Thus the graphics generated with MetMAP are of high quality and are easy to work with. Calculations are made in a fast and accurate fashion and there are no predictable limitations in the size of the systems to be analysed. MetMAP has been designed to provide complete connectivity among all the different modules and is open to be adapted by the user to fit his specific needs. A Graphical User Interface has been developed; this GUI permits Matlab beginners to use basic functions included in the package.
The complete version of the package is available in the following electronic address:
http://webpages.ull.es/users/sympbst/pag_ing/pag_metmap/index.htm
The package is accompanied by a User Guide in PDF format. This manual contains a full list of the package functions and illustrates the use of the two types of control cores (edited file or GUI) with a case study. The illustration includes in addition to the installation instructions many screen shots. Moreover in the web page there is a download area with the packages' latest version, and a FAQ forum. MetMAP is a free and open-source package. Educational, scientific, commercial or other use has been authorized. The Package can be used in its original version, and can be modified by substituting files, or introducing new functions and modules.
The authors wish to thank Dr. R. Steuer for providing us with a copy of his software package, ADBASE, and the authorization to distribute it with the package. This work was funded by a research grant from the Ministerio de Ciencia y Tecnología ref. BIO2002-04517-C02-02. Julio Vera was the recipient of a research grant from the Ministerio de Ciencia y Tecnología ref. PN99-4320298.