<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art>
   <ui>1752-0509-2-35</ui>
   <ji>1752-0509</ji>
   <fm>
      <dochead>Research article</dochead>
      <bibl>
         <title>
            <p>Parameter optimization in S-system models</p>
         </title>
         <aug>
            <au id="A1" ca="yes">
               <snm>Vilela</snm>
               <fnm>Marco</fnm>
               <insr iid="I1"/>
               <insr iid="I5"/>
               <email>mvilela@mdanderson.org</email>
            </au>
            <au id="A2">
               <snm>Chou</snm>
               <fnm>I-Chun</fnm>
               <insr iid="I2"/>
               <email>bigjump@gatech.edu</email>
            </au>
            <au id="A3">
               <snm>Vinga</snm>
               <fnm>Susana</fnm>
               <insr iid="I3"/>
               <email>svinga@kdbio.inesc-id.pt</email>
            </au>
            <au id="A4">
               <snm>Vasconcelos</snm>
               <mnm>Tereza R</mnm>
               <fnm>Ana</fnm>
               <insr iid="I4"/>
               <email>atrv@lncc.br</email>
            </au>
            <au id="A5">
               <snm>Voit</snm>
               <mi>O</mi>
               <fnm>Eberhard</fnm>
               <insr iid="I2"/>
               <email>eberhard.voit@bme.gatech.edu</email>
            </au>
            <au id="A6">
               <snm>Almeida</snm>
               <mi>S</mi>
               <fnm>Jonas</fnm>
               <insr iid="I1"/>
               <insr iid="I5"/>
               <email>jalmeida@mdanderson.org</email>
            </au>
         </aug>
         <insg>
            <ins id="I1">
               <p>Dept. Bioinformatics and Computational Biology, University of Texas M.D. Anderson Cancer Center, 1515 Holcombe Blvd, Houston, TX 77030, USA</p>
            </ins>
            <ins id="I2">
               <p>Dept. Biomedical Engineering, Georgia Institute of Technology and Emory University, 313 Ferst Drive, Atlanta, GA 30332, USA</p>
            </ins>
            <ins id="I3">
               <p>Instituto de Engenharia de Sistemas e Computadores: Investiga&#231;&#227;o e Desenvolvimento (INESC-ID), R. Alves Redol 9, 1000-029 Lisboa, Portugal</p>
            </ins>
            <ins id="I4">
               <p>Dept. Computatinal and Applied Mathematics, Laborat&#243;rio Nacional de Computa&#231;&#227;o Cient&#237;fica, Petr&#243;polis, Rio de Janeiro, Brazil</p>
            </ins>
            <ins id="I5">
               <p>Instituto de Tecnologia Qu&#237;mica e Biol&#243;gica, Universidade Nova de Lisboa, Rua da Quinta Grande 6, Apartado 127, 2780-156 Oeiras, Portugal</p>
            </ins>
         </insg>
         <source>BMC Systems Biology</source>
         <issn>1752-0509</issn>
         <pubdate>2008</pubdate>
         <volume>2</volume>
         <issue>1</issue>
         <fpage>35</fpage>
         <url>http://www.biomedcentral.com/1752-0509/2/35</url>
         <xrefbib>
            <pubidlist>
               <pubid idtype="pmpid">18416837</pubid>
               <pubid idtype="doi">10.1186/1752-0509-2-35</pubid>
            </pubidlist>
         </xrefbib>
      </bibl>
      <history>
         <rec>
            <date>
               <day>14</day>
               <month>1</month>
               <year>2008</year>
            </date>
         </rec>
         <acc>
            <date>
               <day>16</day>
               <month>4</month>
               <year>2008</year>
            </date>
         </acc>
         <pub>
            <date>
               <day>16</day>
               <month>4</month>
               <year>2008</year>
            </date>
         </pub>
      </history>
      <cpyrt>
         <year>2008</year>
         <collab>Vilela et al; licensee BioMed Central Ltd.</collab>
         <note>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<url>http://creativecommons.org/licenses/by/2.0</url>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</note>
      </cpyrt>
      <abs>
         <sec>
            <st>
               <p>Abstract</p>
            </st>
            <sec>
               <st>
                  <p>Background</p>
               </st>
               <p>The inverse problem of identifying the topology of biological networks from their time series responses is a cornerstone challenge in systems biology. We tackle this challenge here through the parameterization of S-system models. It was previously shown that parameter identification can be performed as an optimization based on the decoupling of the differential S-system equations, which results in a set of algebraic equations.</p>
            </sec>
            <sec>
               <st>
                  <p>Results</p>
               </st>
               <p>A novel parameterization solution is proposed for the identification of S-system models from time series when no information about the network topology is known. The method is based on eigenvector optimization of a matrix formed from multiple regression equations of the linearized decoupled S-system. Furthermore, the algorithm is extended to the optimization of network topologies with constraints on metabolites and fluxes. These constraints rejoin the system in cases where it had been fragmented by decoupling. We demonstrate with synthetic time series why the algorithm can be expected to converge in most cases.</p>
            </sec>
            <sec>
               <st>
                  <p>Conclusion</p>
               </st>
               <p>A procedure was developed that facilitates automated reverse engineering tasks for biological networks using S-systems. The proposed method of eigenvector optimization constitutes an advancement over S-system parameter identification from time series using a recent method called <it>Alternating Regression</it>. The proposed method overcomes convergence issues encountered in alternate regression by identifying nonlinear constraints that restrict the search space to computationally feasible solutions. Because the parameter identification is still performed for each metabolite separately, the modularity and linear time characteristics of the alternating regression method are preserved. Simulation studies illustrate how the proposed algorithm identifies the correct network topology out of a collection of models which all fit the dynamical time series essentially equally well.</p>
            </sec>
         </sec>
      </abs>
   </fm>
   <meta>
      <classifications>
         <classification type="bmc" subtype="user_supplied_xml" id="endnote"/>
      </classifications>
   </meta>
   <bdy>
      <sec>
         <st>
            <p>Background</p>
         </st>
         <p>Metabolic and genetic time series have arisen as important sources of information about biological processes. However, the quantitative characterization of these processes from their temporal responses is not a trivial problem due to the complexity of typical biological networks and the multi-fold interdependencies among their components. Any effective method for this task needs to be able to filter out all possible quantitative information from observed time series and convert it into mathematical features that reliably characterize the true topology of the network, as well as its regulation. Biochemical System Theory (BST) <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B2">2</abbr><abbr bid="B3">3</abbr></abbrgrp> has been shown to provide a consistent mathematical framework for representing and analyzing biological systems. The S-system variant of BST represents the biological network as a set of differential equations in the general format</p>
         <p>
            <display-formula id="M1">
               <m:math name="1752-0509-2-35-i1" xmlns:m="http://www.w3.org/1998/Math/MathML">
                  <m:semantics>
                     <m:mrow>
                        <m:msub>
                           <m:mover accent="true">
                              <m:mi>X</m:mi>
                              <m:mo>&#729;</m:mo>
                           </m:mover>
                           <m:mi>i</m:mi>
                        </m:msub>
                        <m:mo>=</m:mo>
                        <m:msub>
                           <m:mi>&#945;</m:mi>
                           <m:mi>i</m:mi>
                        </m:msub>
                        <m:mstyle displaystyle="true">
                           <m:munderover>
                              <m:mo>&#8719;</m:mo>
                              <m:mrow>
                                 <m:mi>j</m:mi>
                                 <m:mo>=</m:mo>
                                 <m:mn>1</m:mn>
                              </m:mrow>
                              <m:mi>M</m:mi>
                           </m:munderover>
                           <m:mrow>
                              <m:msubsup>
                                 <m:mi>X</m:mi>
                                 <m:mi>j</m:mi>
                                 <m:mrow>
                                    <m:msub>
                                       <m:mi>g</m:mi>
                                       <m:mrow>
                                          <m:mi>i</m:mi>
                                          <m:mi>j</m:mi>
                                       </m:mrow>
                                    </m:msub>
                                 </m:mrow>
                              </m:msubsup>
                           </m:mrow>
                        </m:mstyle>
                        <m:mo>&#8722;</m:mo>
                        <m:msub>
                           <m:mi>&#946;</m:mi>
                           <m:mi>i</m:mi>
                        </m:msub>
                        <m:mstyle displaystyle="true">
                           <m:munderover>
                              <m:mo>&#8719;</m:mo>
                              <m:mrow>
                                 <m:mi>j</m:mi>
                                 <m:mo>=</m:mo>
                                 <m:mn>1</m:mn>
                              </m:mrow>
                              <m:mi>M</m:mi>
                           </m:munderover>
                           <m:mrow>
                              <m:msubsup>
                                 <m:mi>X</m:mi>
                                 <m:mi>j</m:mi>
                                 <m:mrow>
                                    <m:msub>
                                       <m:mi>h</m:mi>
                                       <m:mrow>
                                          <m:mi>i</m:mi>
                                          <m:mi>j</m:mi>
                                       </m:mrow>
                                    </m:msub>
                                 </m:mrow>
                              </m:msubsup>
                           </m:mrow>
                        </m:mstyle>
                        <m:mo>,</m:mo>
                        <m:mi>i</m:mi>
                        <m:mo>=</m:mo>
                        <m:mn>1</m:mn>
                        <m:mo>,</m:mo>
                        <m:mn>2</m:mn>
                        <m:mo>,</m:mo>
                        <m:mo>&#8943;</m:mo>
                        <m:mo>,</m:mo>
                        <m:mi>M</m:mi>
                        <m:mo>.</m:mo>
                     </m:mrow>
                     <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGafmiwaGLbaiaadaWgaaWcbaGaemyAaKgabeaakiabg2da9iabeg7aHnaaBaaaleaacqWGPbqAaeqaaOWaaebCaeaacqWGybawdaqhaaWcbaGaemOAaOgabaGaem4zaC2aaSbaaWqaaiabdMgaPjabdQgaQbqabaaaaaWcbaGaemOAaOMaeyypa0JaeGymaedabaGaemyta0eaniabg+GivdGccqGHsislcqaHYoGydaWgaaWcbaGaemyAaKgabeaakmaarahabaGaemiwaG1aa0baaSqaaiabdQgaQbqaaiabdIgaOnaaBaaameaacqWGPbqAcqWGQbGAaeqaaaaaaSqaaiabdQgaQjabg2da9iabigdaXaqaaiabd2eanbqdcqGHpis1aOGaeiilaWIaemyAaKMaeyypa0JaeGymaeJaeiilaWIaeGOmaiJaeiilaWIaeS47IWKaeiilaWIaemyta0KaeiOla4caaa@5E65@</m:annotation>
                  </m:semantics>
               </m:math>
            </display-formula>
         </p>
         <p>Here, <it>X</it><sub><it>i </it></sub>represents the concentration of metabolite <it>i</it>, <it>&#945;</it><sub><it>i </it></sub>and <it>&#946;</it><sub><it>i </it></sub>are non-negative rate constants, and <it>g</it><sub><it>ij </it></sub>and <it>h</it><sub><it>ij </it></sub>are real-valued kinetic orders for the production and degradation term, respectively. A considerable amount of information about S-systems can be found in <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B2">2</abbr><abbr bid="B3">3</abbr><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr></abbrgrp>. A major advantage of this representation is that it uniquely maps dynamical and topological information onto its parameters; an illustration is given in Figure <figr fid="F1">1</figr>.</p>
         <fig id="F1">
            <title>
               <p>Figure 1</p>
            </title>
            <caption>
               <p>Topology mapping</p>
            </caption>
            <text>
               <p><b>Topology mapping</b>. Example of network topology mapping onto kinetic orders in an S-system [17]. The exponents in the equations directly correspond to effects of metabolites on processes (flux arrows) in the pathway diagram. As an example, the flux out of <it>X</it><sub>3 </sub>is affected by <it>X</it><sub>3 </sub>as substrate and by <it>X</it><sub>4 </sub>as activator. Both variables appear in the corresponding term with their respective kinetic orders. The gray-scale in the <it>g </it>and <it>h </it>matrices reflects the magnitudes of the exponents in the production and degradation terms of the S-system, respectively, with higher values shown in darker hues.</p>
            </text>
            <graphic file="1752-0509-2-35-1"/>
         </fig>
         <p>Several numerical techniques have been proposed in the literature to tackle the inverse problem of S-system parameterization from time series; most of them use computationally expensive meta-heuristics such as Genetic Algorithms (GA) <abbrgrp><abbr bid="B6">6</abbr><abbr bid="B7">7</abbr><abbr bid="B8">8</abbr><abbr bid="B9">9</abbr><abbr bid="B10">10</abbr><abbr bid="B11">11</abbr></abbrgrp>, Simulated Annealing (SA) <abbrgrp><abbr bid="B12">12</abbr></abbrgrp>, artificial neural networks <abbrgrp><abbr bid="B13">13</abbr></abbrgrp>, function approximation <abbrgrp><abbr bid="B14">14</abbr><abbr bid="B15">15</abbr></abbrgrp>, or global optimization methods <abbrgrp><abbr bid="B16">16</abbr></abbrgrp>. Collectively, these studies have shown that any direct parameter estimations typically face grave problems. Major improvements in efficiency are found when the derivatives at a series of time points are replaced with estimated slopes <abbrgrp><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr><abbr bid="B6">6</abbr></abbrgrp> and <abbrgrp><abbr bid="B17">17</abbr></abbrgrp>. This step at once replaces the differential equations with sets of algebraic equations and decouples these sets so that the parameters for each metabolite can be computed separately.</p>
         <p>Differing from expensive direct estimation methodologies, alternating regression (AR) <abbrgrp><abbr bid="B18">18</abbr></abbrgrp> was proposed as a fast deterministic method for S-system parameter estimation with low computational cost (see Methods Section). Its superb efficiency is due to the reduction of the nonlinear estimation problem into iterative steps of linear regression. Apparently its only disadvantage is the observation that the method does not converge for some systems, and that necessary and sufficient criteria for convergence are not known. Thus, given a new system and new data, it is <it>a priori </it>difficult to predict whether AR will or will not converge. If it converges, it converges very fast.</p>
         <p>In this report, we propose a new method, inspired by AR and based on multiple linear regression and sequential quadratic programming (SQP) optimization, to address the S-system parameter identification problem when no information about the network topology is known. The algorithm accounts for the often observed quasi-redundancy among S-system parameters, where errors in kinetic orders can largely be compensated by adjustments in other kinetic orders and rate constants. In contrast to AR, the proposed method operates initially only on one term (production or degradation), whose constant rate (<it>&#945; </it>or <it>&#946;</it>) and kinetic orders (<it>g</it>'s and <it>h</it>'s) are optimized completely before the complementary term is estimated. In many cases, the method provides alternative candidate models that fit the time series both in the decoupled and the fully integrated forms.</p>
      </sec>
      <sec>
         <st>
            <p>Results</p>
         </st>
         <sec>
            <st>
               <p>Synthetic time series</p>
            </st>
            <p>The proposed method was tested on synthetic time series generated by reference test models <abbrgrp><abbr bid="B11">11</abbr><abbr bid="B18">18</abbr><abbr bid="B19">19</abbr></abbrgrp> of 2, 4, and 5 state variables (Equations 2, 3, and 4 respectively). Each system was simulated with different initial concentrations of its variables in order to imitate different biological stimulus-response experiments as described in <abbrgrp><abbr bid="B18">18</abbr></abbrgrp>. All specifications of the simulations with different initial conditions can be found in Additional file <supplr sid="S1">1</supplr>.</p>
            <suppl id="S1">
               <title>
                  <p>Additional file 1</p>
               </title>
               <text>
                  <p>Supplementary material.</p>
               </text>
               <file name="1752-0509-2-35-S1.doc">
                  <p>Click here for file</p>
               </file>
            </suppl>
            <p>In all three case studies, no knowledge about the pathway was assumed and all parameters were considered freely variable. Even so, the correct network topology was extracted in all cases, with a mean error magnitude of 10<sup>-5 </sup>for each numerically integrated state variable.</p>
            <p>The 2-dimensional system</p>
            <p>
               <display-formula id="M2">
                  <m:math name="1752-0509-2-35-i2" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mtable columnalign="left">
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>1</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>3</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>2</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:msub>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                 </m:msub>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>2</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:msub>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                 </m:msub>
                                 <m:mo>&#8722;</m:mo>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                        </m:mtable>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGceaqabeaacuWGybawgaGaamaaBaaaleaacqaIXaqmaeqaaOGaeyypa0JaeG4mamJaemiwaG1aa0baaSqaaiabikdaYaqaaiabgkHiTiabikdaYaaakiabgkHiTiabdIfaynaaDaaaleaacqaIXaqmaeaacqaIWaamcqGGUaGlcqaI1aqnaaGccqWGybawdaWgaaWcbaGaeGOmaidabeaaaOqaaiqbdIfayzaacaWaaSbaaSqaaiabikdaYaqabaGccqGH9aqpcqWGybawdaqhaaWcbaGaeGymaedabaGaeGimaaJaeiOla4IaeGynaudaaOGaemiwaG1aaSbaaSqaaiabikdaYaqabaGccqGHsislcqWGybawdaqhaaWcbaGaeGOmaidabaGaeGimaaJaeiOla4IaeGynaudaaaaaaa@4E4F@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>exhibits oscillatory behavior that is challenging for estimation purposes, leading to difficulties of standard algorithms in finding good solutions. The reason is that even small shifts in the oscillation phase between the dynamics of the estimated system and the true target system result in significant cumulative errors. By contrast, the 4-dimensional system</p>
            <p>
               <display-formula id="M3">
                  <m:math name="1752-0509-2-35-i3" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mtable columnalign="left">
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>1</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>12</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>3</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>0.8</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>2</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>8</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>3</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mn>0.75</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>3</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>3</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mn>0.75</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>5</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>3</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>4</m:mn>
                                    <m:mrow>
                                       <m:mn>0.2</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>4</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>2</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mrow>
                                       <m:mn>0.5</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>6</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>4</m:mn>
                                    <m:mrow>
                                       <m:mn>0.8</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                        </m:mtable>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGceaqabeaacuWGybawgaGaamaaBaaaleaacqaIXaqmaeqaaOGaeyypa0JaeGymaeJaeGOmaiJaemiwaG1aa0baaSqaaiabiodaZaqaaiabgkHiTiabicdaWiabc6caUiabiIda4aaakiabgkHiTiabigdaXiabicdaWiabdIfaynaaDaaaleaacqaIXaqmaeaacqaIWaamcqGGUaGlcqaI1aqnaaaakeaacuWGybawgaGaamaaBaaaleaacqaIYaGmaeqaaOGaeyypa0JaeGioaGJaemiwaG1aa0baaSqaaiabigdaXaqaaiabicdaWiabc6caUiabiwda1aaakiabgkHiTiabiodaZiabdIfaynaaDaaaleaacqaIYaGmaeaacqaIWaamcqGGUaGlcqaI3aWncqaI1aqnaaaakeaacuWGybawgaGaamaaBaaaleaacqaIZaWmaeqaaOGaeyypa0JaeG4mamJaemiwaG1aa0baaSqaaiabikdaYaqaaiabicdaWiabc6caUiabiEda3iabiwda1aaakiabgkHiTiabiwda1iabdIfaynaaDaaaleaacqaIZaWmaeaacqaIWaamcqGGUaGlcqaI1aqnaaGccqWGybawdaqhaaWcbaGaeGinaqdabaGaeGimaaJaeiOla4IaeGOmaidaaaGcbaGafmiwaGLbaiaadaWgaaWcbaGaeGinaqdabeaakiabg2da9iabikdaYiabdIfaynaaDaaaleaacqaIXaqmaeaacqaIWaamcqGGUaGlcqaI1aqnaaGccqGHsislcqaI2aGncqWGybawdaqhaaWcbaGaeGinaqdabaGaeGimaaJaeiOla4IaeGioaGdaaaaaaa@78A1@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>(see Figure <figr fid="F1">1</figr> for the corresponding pathway) is relatively well behaved and will be used to identify problems that are likely to emerge even for the inference of less complicated dynamic models. The third system (Equation 4) describes an artificial genetic network and has been used as a benchmark <abbrgrp><abbr bid="B11">11</abbr><abbr bid="B18">18</abbr><abbr bid="B20">20</abbr></abbrgrp> for S-system inference algorithms.</p>
            <p>
               <display-formula id="M4">
                  <m:math name="1752-0509-2-35-i4" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mtable columnalign="left">
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>1</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>5</m:mn>
                                 <m:msub>
                                    <m:mi>X</m:mi>
                                    <m:mn>3</m:mn>
                                 </m:msub>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>5</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>1</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>2</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>1</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>3</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>1</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>2</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>1</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>3</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>4</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>8</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>3</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>5</m:mn>
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mn>1</m:mn>
                                    </m:mrow>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>4</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                           <m:mtr>
                              <m:mtd>
                                 <m:msub>
                                    <m:mover accent="true">
                                       <m:mi>X</m:mi>
                                       <m:mo>&#729;</m:mo>
                                    </m:mover>
                                    <m:mn>5</m:mn>
                                 </m:msub>
                                 <m:mo>=</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>4</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                                 <m:mo>&#8722;</m:mo>
                                 <m:mn>10</m:mn>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mn>5</m:mn>
                                    <m:mn>2</m:mn>
                                 </m:msubsup>
                              </m:mtd>
                           </m:mtr>
                        </m:mtable>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGceaqabeaacuWGybawgaGaamaaBaaaleaacqaIXaqmaeqaaOGaeyypa0JaeGynauJaemiwaG1aaSbaaSqaaiabiodaZaqabaGccqWGybawdaqhaaWcbaGaeGynaudabaGaeyOeI0IaeGymaedaaOGaeyOeI0IaeGymaeJaeGimaaJaemiwaG1aa0baaSqaaiabigdaXaqaaiabikdaYaaaaOqaaiqbdIfayzaacaWaaSbaaSqaaiabikdaYaqabaGccqGH9aqpcqaIXaqmcqaIWaamcqWGybawdaqhaaWcbaGaeGymaedabaGaeGOmaidaaOGaeyOeI0IaeGymaeJaeGimaaJaemiwaG1aa0baaSqaaiabikdaYaqaaiabikdaYaaaaOqaaiqbdIfayzaacaWaaSbaaSqaaiabiodaZaqabaGccqGH9aqpcqaIXaqmcqaIWaamcqWGybawdaqhaaWcbaGaeGOmaidabaGaeyOeI0IaeGymaedaaOGaeyOeI0IaeGymaeJaeGimaaJaemiwaG1aa0baaSqaaiabikdaYaqaaiabgkHiTiabigdaXaaakiabdIfaynaaDaaaleaacqaIZaWmaeaacqaIYaGmaaaakeaacuWGybawgaGaamaaBaaaleaacqaI0aanaeqaaOGaeyypa0JaeGioaGJaemiwaG1aa0baaSqaaiabiodaZaqaaiabikdaYaaakiabdIfaynaaDaaaleaacqaI1aqnaeaacqGHsislcqaIXaqmaaGccqGHsislcqaIXaqmcqaIWaamcqWGybawdaqhaaWcbaGaeGinaqdabaGaeGOmaidaaaGcbaGafmiwaGLbaiaadaWgaaWcbaGaeGynaudabeaakiabg2da9iabigdaXiabicdaWiabdIfaynaaDaaaleaacqaI0aanaeaacqaIYaGmaaGccqGHsislcqaIXaqmcqaIWaamcqWGybawdaqhaaWcbaGaeGynaudabaGaeGOmaidaaaaaaa@80FD@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>The results of the algorithm on the 2, 4 and 5-dimensional systems, presented in Additional file <supplr sid="S1">1</supplr>, demonstrate that the proposed method retrieves the correct parameter values for noise-free time series. Three different data sets were created for each test systems (Equations 2, 3 and 4) using different initial conditions in the system's numerical integration (see Additional file <supplr sid="S1">1</supplr>). These three data sets allowed us to assess the ability of the algorithm to deal with different time series dynamics. Using each data set, we performed 10 trials for each system's variables (<it>X</it><sub><it>i</it></sub>). The runs differed in the random initial guess for <it>&#946; </it>(see <it>Initial parameter guesses </it>section for the initialization of the kinetic order values) which was chosen from the range [0.1, 12]. The search space for kinetic orders was limited to a reasonable range of [-2, 3], which is consistent with collective experience in the field (see Chapter 5 in <abbrgrp><abbr bid="B4">4</abbr></abbrgrp>). As an example result, the experiment with the 5-dimensional system performed on the first data set illustrates the success rate of the algorithm: the exact parameter values were found for all variables in all trails except for variable <it>X</it><sub>5 </sub>in one of the trials. The procedure is computationally efficient, requiring 3 minutes to perform 40 optimizations for the 4-dimensional system (10 optimizations for each state variable corresponding to approximately 5 seconds per case), on a personal computer with a 2.00 GHz processor and 1 GB RAM. Thanks to the numerical decoupling, the complexity of the algorithm is of the order <it>O(M*N) </it>where <it>M </it>is the number of state variables and <it>N </it>is the number of data points used in the optimization. All experiments were performed with 100 data points. For the 5-dimensional system the proposed algorithm found the correct parameter set, overcoming the problematic identification of the kinetic orders <it>g</it><sub>32 </sub>and <it>h</it><sub>32 </sub>of the state variable <it>X</it><sub>3 </sub>presented by most algorithms in the literature. If a stop criterion is defined as a value of 1e-12 for the sum of the squared errors between the slopes of the optimized system and the true slopes, the time required to identify the system parameters for the 5-dimensional system was 23 sec on the machine described above. An experiment with a 10-dimensional system was also performed and the total time consumed was 75 sec (see Additional file <supplr sid="S1">1</supplr>).</p>
            <p>Similar results were achieved with the optimization of the 2-dimensional system. Importantly, the correct parameter set was found, although not with the same regularity as in the 4- and 5-dimensional system optimizations. Issues encountered in finding the correct solutions appeared to be caused by a combination of different features of the system, such as the position of the optimal point within the feasible parameter space, which in the 5-variable case is situated right on the border of the infeasible region within the parameter space (see Figure <figr fid="F1">1</figr> of the Additional file <supplr sid="S1">1</supplr>), multiple local minima, as well as the particular choice of initial parameter guesses. These peculiarities of the algorithm and the problem itself lead to different parameter values, although the errors of the decoupled and integrated system are still small (typically about at the order of 1e-5; for instance, see Tables 23, 29 and 30 in the Additional file <supplr sid="S1">1</supplr>).</p>
            <p>The proposed algorithm calculates the initial guesses for the kinetic orders as close to zero as possible, given an initial <it>&#946; </it>value (see section <it>Initial parameter guesses</it>). However, in this specific case study, near-zero values of the kinetic orders <it>h</it><sub>11 </sub>and <it>h</it><sub>12 </sub>for the constant rate <it>&#946;</it><sub>1 </sub>= 1 fall into the infeasible parameter region, which complicates the parameter optimization. For instance, the smallest feasible value for <it>h</it><sub>12 </sub>is 0.8636. The proposed algorithm overcomes this initial problem by adjusting itself and subsequently returns correct solutions when the system is rescaled in time <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>. This is most easily achieved by multiplying the alphas (<it>&#945;</it><sub>1 </sub>and <it>&#945;</it><sub>2</sub>) and betas (<it>&#946;</it><sub>1 </sub>and <it>&#946;</it><sub>2</sub>) with a positive factor (see example in Additional file <supplr sid="S1">1</supplr>), which increases the feasible parameter space. This step is, in fact, equivalent to multiplying the slope vector by a positive number. Thanks to the modularity of the decoupled system, this scaling can be performed separately for each state variable without affecting the kinetic order values. Only the values of the rate constants are changed, but they are easily recovered by dividing them by the positive number used for scaling. It was observed that this strategy often, but not always, enhances the algorithmic performance. It appears to improve performance most if the rate constants have small values.</p>
            <p>Initially, all experiments were performed with noise-free time series, but in a second set of experiments, we added noise. Because the proposed algorithm uses the decoupled, algebraic form, a signal extraction procedure was employed for the noisy data to provide smooth time series and slopes <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>. The results show that combining the two strategies (smoother and proposed algorithm) generate accurate dynamical responses for the case studies used in this report (Figure <figr fid="F2">2</figr>).</p>
            <fig id="F2">
               <title>
                  <p>Figure 2</p>
               </title>
               <caption>
                  <p>Noisy time series</p>
               </caption>
               <text>
                  <p><b>Noisy time series</b>. Noisy time series data (symbols) and results of the numerical integration of the estimated model (solid lines; <it>cf</it>. Eq. (3)). In spite of slight numerical discrepancies between the estimated parameters and their target values (see Additional file <supplr sid="S1">1</supplr>), the estimated model accurately predicts the dynamics of the target system, indicating quasi-redundancy [<it>e.g</it>., [27] and [25] ] or "sloppiness" [26] among the parameters.</p>
               </text>
               <graphic file="1752-0509-2-35-2"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>Error surfaces of decoupled S-systems</p>
            </st>
            <p>To explore the results of the proposed algorithm visually and to investigate patterns of convergence, we performed a grid search on the parameters of the 2-dimensional system (Equation 2). Specifically, we searched a 100 &#215; 100 grid where each point represented the kinetic orders <it>h</it><sub>11 </sub>and <it>h</it><sub>12 </sub>over the range [-2.5, 2.0]. Correspondingly, 100 time points for <it>X</it><sub>1 </sub>and <it>X</it><sub>2 </sub>and its correspondent slopes <it>S</it><sub>1 </sub>and <it>S</it><sub>2 </sub>were generated by numerical integration of the 2-dimensional system (Equation 2) with <it>X</it><sub>1</sub>(0) = 3 and <it>X</it><sub>2</sub>(0) = 1 as initial conditions. Methods described in a later section were used on time series of <it>X</it><sub>1 </sub>and <it>X</it><sub>2 </sub>to calculate the regression matrix <it>L</it>, and for each given initial value of the rate constant <it>&#946;</it><sub>1 </sub>(uniformly spaced over the interval <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B6">6</abbr></abbrgrp>) and for each point of the grid, the error surface for the variable <it>X</it><sub>1 </sub>was constructed. The algorithm started with the degradation term <inline-formula><m:math name="1752-0509-2-35-i5" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>D</m:mi><m:msub><m:mi>T</m:mi><m:mn>1</m:mn></m:msub><m:mo>=</m:mo><m:msub><m:mi>&#946;</m:mi><m:mn>1</m:mn></m:msub><m:msubsup><m:mi>X</m:mi><m:mn>1</m:mn><m:mrow><m:msub><m:mi>h</m:mi><m:mrow><m:mn>11</m:mn></m:mrow></m:msub></m:mrow></m:msubsup><m:msubsup><m:mi>X</m:mi><m:mn>2</m:mn><m:mrow><m:msub><m:mi>h</m:mi><m:mrow><m:mn>12</m:mn></m:mrow></m:msub></m:mrow></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiraqKaemivaq1aaSbaaSqaaiabigdaXaqabaGccqGH9aqpcqaHYoGydaWgaaWcbaGaeGymaedabeaakiabdIfaynaaDaaaleaacqaIXaqmaeaacqWGObaAdaWgaaadbaGaeGymaeJaeGymaedabeaaaaGccqWGybawdaqhaaWcbaGaeGOmaidabaGaemiAaG2aaSbaaWqaaiabigdaXiabikdaYaqabaaaaaaa@3E90@</m:annotation></m:semantics></m:math></inline-formula> for the first grid point using a given value for <it>&#946;</it><sub>1 </sub>and the time series points for <it>X</it><sub>1 </sub>and <it>X</it><sub>2</sub>. Subsequently, the production vector (<it>Vp</it><sub>1 </sub>= [log(<it>&#945;</it><sub>1</sub>) <it>g</it><sub>11 </sub><it>g</it><sub>12</sub>]) was obtained from the slope vector <it>S</it><sub>1</sub>, the regression matrix <it>L</it>, and the degradation term <it>DT</it><sub>1 </sub>in Equations (7)&#8211;(10). Once all parameter values for variable <it>X</it><sub>1 </sub>in the production and degradation vectors were determined, the estimated slopes were calculated (<inline-formula><m:math name="1752-0509-2-35-i6" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mover accent="true"><m:mi>S</m:mi><m:mo>^</m:mo></m:mover><m:mn>1</m:mn></m:msub></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGafm4uamLbaKaadaWgaaWcbaGaeGymaedabeaaaaa@2E30@</m:annotation></m:semantics></m:math></inline-formula> = <it>PT</it><sub>1 </sub>- <it>DT</it><sub>1</sub>) and the logarithm of the sum of the squared errors between these slopes and the target solutions was computed as <inline-formula><m:math name="1752-0509-2-35-i7" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>e</m:mi><m:mi>r</m:mi><m:mi>r</m:mi><m:mi>o</m:mi><m:mi>r</m:mi><m:mo>=</m:mo><m:mi>log</m:mi><m:mo>&#8289;</m:mo><m:mrow><m:mo>(</m:mo><m:mrow><m:mstyle displaystyle="true"><m:mo>&#8721;</m:mo><m:mrow><m:msup><m:mrow><m:mo stretchy="false">(</m:mo><m:msub><m:mi>S</m:mi><m:mn>1</m:mn></m:msub><m:mo>&#8722;</m:mo><m:msub><m:mover accent="true"><m:mi>S</m:mi><m:mo>^</m:mo></m:mover><m:mn>1</m:mn></m:msub><m:mo stretchy="false">)</m:mo></m:mrow><m:mn>2</m:mn></m:msup></m:mrow></m:mstyle></m:mrow><m:mo>)</m:mo></m:mrow></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemyzauMaemOCaiNaemOCaiNaem4Ba8MaemOCaiNaeyypa0JagiiBaWMaei4Ba8Maei4zaC2aaeWaaeaadaaeabqaaiabcIcaOiabdofatnaaBaaaleaacqaIXaqmaeqaaOGaeyOeI0Iafm4uamLbaKaadaWgaaWcbaGaeGymaedabeaakiabcMcaPmaaCaaaleqabaGaeGOmaidaaaqabeqaniabggHiLdaakiaawIcacaGLPaaaaaa@440E@</m:annotation></m:semantics></m:math></inline-formula>. This process was repeated for all points on the grid such that an error surface resulted for each <it>&#946;</it><sub>1 </sub>value. In this manner, ten surfaces were constructed using different <it>&#946; </it>values; they are shown superimposed in Figure <figr fid="F3">3</figr>.</p>
            <fig id="F3">
               <title>
                  <p>Figure 3</p>
               </title>
               <caption>
                  <p>Error surfaces</p>
               </caption>
               <text>
                  <p><b>Error surfaces</b>. a) Ten error surfaces associated with variable <it>X</it><sub>1 </sub>of the 2-dimensional system were obtained using an exhaustive grid search covering 10 different initial guesses. b) Zooming in shows the composite contour map (level sets) of the error surfaces.</p>
               </text>
               <graphic file="1752-0509-2-35-3"/>
            </fig>
            <p>The first observation is that most of the search region is not feasible (unfilled <it>X-Y </it>space), even though there is <it>a priori </it>no hint that solutions in the open range should not converge. It turns out in retrospect that these are regions where the argument of the logarithm on right side of Equation 7 is negative, due to negative slope values. Also worth noting is that for each <it>&#946; </it>a similarly shaped surface ("bowl") was found, but that not all surfaces have the same minimal point (Figures <figr fid="F3">3</figr> and <figr fid="F4">4</figr>). This information will be of critical importance in the discussion of the convergence profile of the proposed method.</p>
            <fig id="F4">
               <title>
                  <p>Figure 4</p>
               </title>
               <caption>
                  <p>Multiple minima</p>
               </caption>
               <text>
                  <p><b>Multiple minima</b>. <it>Z-Y </it>projection of the error surfaces in Figure 3a. Different minima are found for different <it>&#946; </it>values.</p>
               </text>
               <graphic file="1752-0509-2-35-4"/>
            </fig>
            <p>The same strategy was applied to noisy time series resulting in a new set of surfaces (data not shown). Gaussian noise with 15% variance was added to the <it>X</it><sub>1 </sub>and <it>X</it><sub>2 </sub>time series and a refined Whitaker's filter <abbrgrp><abbr bid="B22">22</abbr></abbrgrp> was used to smooth the data and estimate slopes.</p>
            <p>The error surfaces obtained using noisy data (Figure <figr fid="F5">5</figr>) present the same shapes as seen for the noise-free data except that the error average is higher and points to a different global minimum, which however is essentially indistinguishable in value from the local optima (see Additional file <supplr sid="S1">1</supplr> for details).</p>
            <fig id="F5">
               <title>
                  <p>Figure 5</p>
               </title>
               <caption>
                  <p>Error surfaces from noisy time series</p>
               </caption>
               <text>
                  <p><b>Error surfaces from noisy time series</b>. Ten error surfaces of the variable <it>X</it><sub>1 </sub>of the 2-dimensional system obtained from noisy time series after signal extraction and slope estimation.</p>
               </text>
               <graphic file="1752-0509-2-35-5"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>Convergence problems</p>
            </st>
            <p>It would be unreasonable to assume that the algorithm converges to the global optimum under all imaginable conditions and initial settings: no estimation algorithm for nonlinear systems can &#8211; or should be expected to &#8211; measure up to such high a standard. For instance, if the ranges of initial guesses are changed or if the number of initial guesses is reduced, the algorithm may converge to an acceptable local minimum which, however, is not global. This is not surprising, given the complicated nature of the error surface of realistic systems and the fact that nonlinear systems often exhibit almost flat, banana-shaped or ellipsoid valleys in which the minimum is centered <abbrgrp><abbr bid="B23">23</abbr><abbr bid="B24">24</abbr><abbr bid="B25">25</abbr><abbr bid="B26">26</abbr><abbr bid="B27">27</abbr></abbrgrp>. At this point, a comprehensive picture of potential obstacles to convergence is not available. One prominent reason for lacking or faulty convergence is that some problems are ill-posed, for instance, because of collinearity between columns of the regression matrix <it>L</it>. This situation occurs when two or more metabolites have similar dynamics <abbrgrp><abbr bid="B25">25</abbr></abbrgrp> or when at least one variable is essentially constant and is therefore collinear with the first column of the <it>L </it>matrix. In these and some other cases, the regression matrix <it>L </it>has a high condition number, which the proposed procedure flags. It might be possible to remedy some of these ill-posed problems with a regularization algorithm for multiple linear regression and through redesigning the algorithm with the regularized solution. It seems advisable in any event to remove model redundancies, for instance by pooling or eliminating collinear variables or merging essentially constant variables with the rate constants of the term.</p>
         </sec>
         <sec>
            <st>
               <p>Parameter estimation of constrained networks</p>
            </st>
            <p>The proposed method was extended to address the parameter identification for systems with topological constraints. This extension allows the algorithm to account for precursor-product relationships problems, which mandate that the degradation term of the precursor is equivalent to the production term of the product <abbrgrp><abbr bid="B28">28</abbr></abbrgrp>. Thus, instead of optimizing the parameters for each metabolite separately, a set of terms is optimized simultaneously, consisting of one of the parameter vectors (production or degradation vector) of each metabolite. As an illustrative, simple example, consider a linear pathway with feedback, where we have to account for constraints between the production and degradation terms of subsequent metabolites (Figure <figr fid="F6">6</figr>). Specifically in the example system, the efflux from <it>X</it><sub>1 </sub>is identical to the influx into <it>X</it><sub>2</sub>, and the efflux from <it>X</it><sub>2 </sub>is identical to the influx into <it>X</it><sub>3</sub>. Consequently, the degradation term of <it>X</it><sub>1 </sub>is exactly the same as the production term of <it>X</it><sub>2</sub>, and the degradation term of <it>X</it><sub>2 </sub>must be the same as the production term of <it>X</it><sub>3</sub>. The amendment of the proposed method toward simultaneous estimation readily satisfies these types of constraints.</p>
            <fig id="F6">
               <title>
                  <p>Figure 6</p>
               </title>
               <caption>
                  <p>Linear system topology</p>
               </caption>
               <text>
                  <p><b>Linear system topology</b>. Linear pathway with precursor-product constraints.</p>
               </text>
               <graphic file="1752-0509-2-35-6"/>
            </fig>
            <p>The extended algorithm was applied to the 3-dimensional linear pathway system in Figure <figr fid="F6">6</figr>, and some of the results are shown in Additional file <supplr sid="S1">1</supplr>. The algorithm found the correct parameter set, and all 10 optimizations, in which the algorithm now performs a single, combined optimization for all variables simultaneously, thereby accounting for constraints, were completed in 37 sec on a 2.00 GHz processor with 1 GB RAM.</p>
         </sec>
         <sec>
            <st>
               <p>Graphical user interface</p>
            </st>
            <p>An open source MATLAB toolbox and a stand-alone compiled Graphical User Interface (GUI) application were developed as an exploratory tool (see Section <it>Availability and requirements</it>). The application was developed as a modular extension of our previous work and constitutes a critical component within our long-term effort of advancing a data processing pipeline for S-system estimation from metabolomic time series <abbrgrp><abbr bid="B13">13</abbr><abbr bid="B22">22</abbr></abbrgrp>. A snapshot of the GUI is shown in Figure <figr fid="F7">7</figr>. All computational results and graphics described in this report can be reproduced using this application.</p>
            <fig id="F7">
               <title>
                  <p>Figure 7</p>
               </title>
               <caption>
                  <p>Software application</p>
               </caption>
               <text>
                  <p><b>Software application</b>. Snapshot of the graphical user interface provided as a free stand-alone application.</p>
               </text>
               <graphic file="1752-0509-2-35-7"/>
            </fig>
         </sec>
      </sec>
      <sec>
         <st>
            <p>Discussion</p>
         </st>
         <p>There are many reasons why it may be desirable to reverse engineer a biological network without making assumptions about the underlying processes. The most obvious reason is that no reliable information may be available about the processes. Another situation occurs when several network topologies are <it>a priori </it>possible and the reverse approach is employed to prioritize alternative hypotheses. The algorithm proposed here is an extension of Alternating Regression (AR; <abbrgrp><abbr bid="B18">18</abbr></abbrgrp>) that in many cases shows improved convergence behavior.</p>
         <p>The proposed algorithm was exhaustively tested on diverse time series (see Text above and Additional File <supplr sid="S1">1</supplr>). In all of these tests, the convergence followed the same pattern: the error slowly decreased during the first few iterations and then suddenly dropped to a significant lower plateau, from where it gradually decreased again. This pattern repeated until one of the stop conditions (maximal number of iterations, minimal gradient value or minimal cost function value) was reached. The error drop points matched with significant changes in the beta gradient and appear to correspond to transitions to a "bowl" with a lower error surface (<it>cf</it>. Figures <figr fid="F3">3</figr> and <figr fid="F5">5</figr>). As shown in Figures <figr fid="F3">3b</figr> and <figr fid="F5">5</figr>, most "bowls" have different minimal points, corresponding to good, yet local minima. Because the proposed algorithm is computationally very efficient, it allows the exploration of the parameter space in a reasonable amount of time (seconds to minutes). Such an exploration with new initial <it>&#946; </it>values is recommended, if very precise solutions or alternative parameter sets are needed. Because alternative parameter combinations may correspond to different topological and regulatory structures <abbrgrp><abbr bid="B4">4</abbr></abbrgrp>, estimations with different initial values in fact constitute explorations of the structure and functionality of the biological space in which the pathway operates.</p>
      </sec>
      <sec>
         <st>
            <p>Conclusion</p>
         </st>
         <p>S-systems present a unique balance between proven biological relevance and validity on one hand, and mathematical convenience and tractability on the other. For this reason, the recent years have seen numerous methods for matching S-system models to measured biological time series data. In the relatively simpler scenario of this type, the topology and regulatory structure of the biological system is known, and the extraction of information from the data constitutes a parameter estimation task. In the more difficult situation, at least some of the structure is unknown, and in the extreme situation no information about the topology of the interactions between variables is available. In this article we propose a new algorithm that efficaciously identifies the correct topology of a system from time series. The only true assumptions made are that all important variables are accounted for and that the S-system model is capable of modeling the data. The first assumption is presently unavoidable, at least in the generality presented above. The second assumption has been found to be true in very many cases, as a rich body of publications on S-systems demonstrates. The proposed algorithm was conceived as a critical piece of an emerging data processing "pipeline" that will eventually accept time series and other data characterizing biological pathways and more or less automatically propose topological and regulatory structures that are consistent with the input data. This algorithm will be a valuable tool for analysis and hypothesis generation in systems biology.</p>
      </sec>
      <sec>
         <st>
            <p>Methods</p>
         </st>
         <sec>
            <st>
               <p>Eigenvector optimization</p>
            </st>
            <p>The proposed method was inspired by Alternating Regression (AR <abbrgrp><abbr bid="B18">18</abbr></abbrgrp>) and is based on the substitution of differentials with estimated slopes <abbrgrp><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr><abbr bid="B17">17</abbr></abbrgrp> and the minimization of the differences between two vectors obtained from multiple linear regression equations. In contrast to AR, the new algorithm estimates one term per equation with high accuracy and computes the other term through linear regression ensuring that the new term will fall into the feasible space. Specifically, the task is initially posed in relation to one of the two terms of an S-system equation with <it>M </it>species (<it>e.g</it>., metabolites), either the production term vector <inline-formula><m:math name="1752-0509-2-35-i8" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>P</m:mi><m:msub><m:mi>T</m:mi><m:mi>i</m:mi></m:msub><m:mo stretchy="false">(</m:mo><m:msub><m:mi>t</m:mi><m:mi>n</m:mi></m:msub><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:msub><m:mi>&#945;</m:mi><m:mi>i</m:mi></m:msub><m:mstyle displaystyle="true"><m:munderover><m:mo>&#8719;</m:mo><m:mrow><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow><m:mi>M</m:mi></m:munderover><m:mrow><m:msub><m:mi>X</m:mi><m:mi>j</m:mi></m:msub><m:msup><m:mrow><m:mo stretchy="false">(</m:mo><m:msub><m:mi>t</m:mi><m:mi>n</m:mi></m:msub><m:mo stretchy="false">)</m:mo></m:mrow><m:mrow><m:msub><m:mi>g</m:mi><m:mrow><m:mi>i</m:mi><m:mi>j</m:mi></m:mrow></m:msub></m:mrow></m:msup></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiuaaLaemivaq1aaSbaaSqaaiabdMgaPbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaemOBa4gabeaakiabcMcaPiabg2da9iabeg7aHnaaBaaaleaacqWGPbqAaeqaaOWaaebCaeaacqWGybawdaWgaaWcbaGaemOAaOgabeaakiabcIcaOiabdsha0naaBaaaleaacqWGUbGBaeqaaOGaeiykaKYaaWbaaSqabeaacqWGNbWzdaWgaaadbaGaemyAaKMaemOAaOgabeaaaaaaleaacqWGQbGAcqGH9aqpcqaIXaqmaeaacqWGnbqta0Gaey4dIunaaaa@4B4E@</m:annotation></m:semantics></m:math></inline-formula> or the degradation term vector <inline-formula><m:math name="1752-0509-2-35-i9" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>D</m:mi><m:msub><m:mi>T</m:mi><m:mi>i</m:mi></m:msub><m:mo stretchy="false">(</m:mo><m:msub><m:mi>t</m:mi><m:mi>n</m:mi></m:msub><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:msub><m:mi>&#946;</m:mi><m:mi>i</m:mi></m:msub><m:mstyle displaystyle="true"><m:munderover><m:mo>&#8719;</m:mo><m:mrow><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn></m:mrow><m:mi>M</m:mi></m:munderover><m:mrow><m:msub><m:mi>X</m:mi><m:mi>j</m:mi></m:msub><m:msup><m:mrow><m:mo stretchy="false">(</m:mo><m:msub><m:mi>t</m:mi><m:mi>n</m:mi></m:msub><m:mo stretchy="false">)</m:mo></m:mrow><m:mrow><m:msub><m:mi>h</m:mi><m:mrow><m:mi>i</m:mi><m:mi>j</m:mi></m:mrow></m:msub></m:mrow></m:msup></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiraqKaemivaq1aaSbaaSqaaiabdMgaPbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaemOBa4gabeaakiabcMcaPiabg2da9iabek7aInaaBaaaleaacqWGPbqAaeqaaOWaaebCaeaacqWGybawdaWgaaWcbaGaemOAaOgabeaakiabcIcaOiabdsha0naaBaaaleaacqWGUbGBaeqaaOGaeiykaKYaaWbaaSqabeaacqWGObaAdaWgaaadbaGaemyAaKMaemOAaOgabeaaaaaaleaacqWGQbGAcqGH9aqpcqaIXaqmaeaacqWGnbqta0Gaey4dIunaaaa@4B3A@</m:annotation></m:semantics></m:math></inline-formula>, which are both defined for each metabolite <it>i </it>at a series of <it>N </it>time points <it>t</it><sub><it>n</it></sub>. Let <it>S</it><sub><it>i</it></sub>(<it>t</it><sub><it>n</it></sub>) denote the estimated slope of metabolite <it>i </it>at time <it>t</it><sub><it>n</it></sub>. In simplified notation, <it>S</it><sub><it>i</it></sub>(<it>t</it><sub><it>n</it></sub>) is given by</p>
            <p>
               <display-formula id="M6"><it>S</it><sub><it>i</it></sub>(<it>t</it><sub><it>n</it></sub>) = <it>PT</it><sub><it>i</it></sub>(<it>t</it><sub><it>n</it></sub>) - <it>DT</it><sub><it>i</it></sub>(<it>t</it><sub><it>n</it></sub>), <it>n </it>= 1, 2, &#8943;,<it>N</it></display-formula>
            </p>
            <p>Because <it>PT</it><sub><it>i </it></sub>must be positive, Equation 6 can be rewritten as</p>
            <p>
               <display-formula id="M7">log(<it>PT</it><sub><it>i</it></sub>) = log(<it>S</it><sub><it>i </it></sub>+ <it>DT</it><sub><it>i</it></sub>),</display-formula>
            </p>
            <p>or in matrix form as</p>
            <p>
               <display-formula id="M8"><it>L</it>&#183;<it>Vp</it><sub><it>i </it></sub>= <it>y</it><sub><it>i</it></sub>,</display-formula>
            </p>
            <p>where the production parameter vector is given as <it>V</it><sub><it>pi </it></sub>= [log <it>&#945;</it><sub><it>i </it></sub><it>g</it><sub><it>i</it>1 </sub><it>g</it><sub><it>i</it>2 </sub>&#8943; <it>g</it><sub><it>iM</it></sub>], <it>y</it><sub><it>i </it></sub>= log(<it>S</it><sub><it>i </it></sub>+ <it>DT</it><sub><it>i</it></sub>), and the regression matrix <it>L </it>is</p>
            <p>
               <display-formula id="M9">
                  <m:math name="1752-0509-2-35-i10" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mi>L</m:mi>
                           <m:mo>=</m:mo>
                           <m:mrow>
                              <m:mo>[</m:mo>
                              <m:mrow>
                                 <m:mtable>
                                    <m:mtr>
                                       <m:mtd>
                                          <m:mn>1</m:mn>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>i</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>M</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                    </m:mtr>
                                    <m:mtr>
                                       <m:mtd>
                                          <m:mn>1</m:mn>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>2</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>i</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>2</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>M</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mn>2</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                    </m:mtr>
                                    <m:mtr>
                                       <m:mtd>
                                          <m:mo>&#8942;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8942;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8942;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8942;</m:mo>
                                       </m:mtd>
                                    </m:mtr>
                                    <m:mtr>
                                       <m:mtd>
                                          <m:mn>1</m:mn>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mn>1</m:mn>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mi>N</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>i</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mi>N</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mo>&#8943;</m:mo>
                                       </m:mtd>
                                       <m:mtd>
                                          <m:mrow>
                                             <m:mi>log</m:mi>
                                             <m:mo>&#8289;</m:mo>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>M</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>t</m:mi>
                                                <m:mi>N</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo stretchy="false">)</m:mo>
                                          </m:mrow>
                                       </m:mtd>
                                    </m:mtr>
                                 </m:mtable>
                              </m:mrow>
                              <m:mo>]</m:mo>
                           </m:mrow>
                           <m:mo>.</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemitaWKaeyypa0ZaamWaaeaafaqabeabgaaaaaqaaiabigdaXaqaaiGbcYgaSjabc+gaVjabcEgaNjabcIcaOiabdIfaynaaBaaaleaacqaIXaqmaeqaaOGaeiikaGIaemiDaq3aaSbaaSqaaiabigdaXaqabaGccqGGPaqkcqGGPaqkaeaacqWIVlctaeaacyGGSbaBcqGGVbWBcqGGNbWzcqGGOaakcqWGybawdaWgaaWcbaGaemyAaKgabeaakiabcIcaOiabdsha0naaBaaaleaacqaIXaqmaeqaaOGaeiykaKIaeiykaKcabaGaeS47IWeabaGagiiBaWMaei4Ba8Maei4zaCMaeiikaGIaemiwaG1aaSbaaSqaaiabd2eanbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaeGymaedabeaakiabcMcaPiabcMcaPaqaaiabigdaXaqaaiGbcYgaSjabc+gaVjabcEgaNjabcIcaOiabdIfaynaaBaaaleaacqaIXaqmaeqaaOGaeiikaGIaemiDaq3aaSbaaSqaaiabikdaYaqabaGccqGGPaqkcqGGPaqkaeaacqWIVlctaeaacyGGSbaBcqGGVbWBcqGGNbWzcqGGOaakcqWGybawdaWgaaWcbaGaemyAaKgabeaakiabcIcaOiabdsha0naaBaaaleaacqaIYaGmaeqaaOGaeiykaKIaeiykaKcabaGaeS47IWeabaGagiiBaWMaei4Ba8Maei4zaCMaeiikaGIaemiwaG1aaSbaaSqaaiabd2eanbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaeGOmaidabeaakiabcMcaPiabcMcaPaqaaiabl6Uinbqaaiabl6Uinbqaaiabl+Uimbqaaiabl6Uinbqaaiabl+Uimbqaaiabl6UinbqaaiabigdaXaqaaiGbcYgaSjabc+gaVjabcEgaNjabcIcaOiabdIfaynaaBaaaleaacqaIXaqmaeqaaOGaeiikaGIaemiDaq3aaSbaaSqaaiabd6eaobqabaGccqGGPaqkcqGGPaqkaeaacqWIVlctaeaacyGGSbaBcqGGVbWBcqGGNbWzcqGGOaakcqWGybawdaWgaaWcbaGaemyAaKgabeaakiabcIcaOiabdsha0naaBaaaleaacqWGobGtaeqaaOGaeiykaKIaeiykaKcabaGaeS47IWeabaGagiiBaWMaei4Ba8Maei4zaCMaeiikaGIaemiwaG1aaSbaaSqaaiabd2eanbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaemOta4eabeaakiabcMcaPiabcMcaPaaaaiaawUfacaGLDbaacqGGUaGlaaa@BDF9@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>As is standard with multiple linear regression models, the production parameter vector <it>Vp</it><sub><it>i </it></sub>can be obtained as</p>
            <p>
               <display-formula id="M10"><it>Vp</it><sub><it>i </it></sub>= (<it>L</it><sup><it>T</it></sup><it>L</it>)<sup>-1 </sup><it>L</it><sup><it>T</it></sup><it>y</it><sub><it>i</it></sub>,</display-formula>
            </p>
            <p>as long as the inverse exists. Substituting this result in Equation 8 directly yields</p>
            <p>
               <display-formula id="M11"><it>L</it>(<it>L</it><sup><it>T</it></sup><it>L</it>)<sup>-1 </sup><it>L</it><sup><it>T</it></sup><it>y</it><sub><it>i </it></sub>= <it>y</it><sub><it>i</it></sub>.</display-formula>
            </p>
            <p>Recall that vector <it>y</it><sub><it>i </it></sub>is a function of the degradation parameters (<it>&#946; </it><sub><it>i </it></sub>and <it>h</it><sub><it>ij</it></sub>), which thus must satisfy Equation 11. Specifically, <it>y</it><sub><it>i </it></sub>must be an eigenvector of the matrix <it>W </it>= <it>L</it>(<it>L</it><sup><it>T</it></sup><it>L</it>)<sup>-1</sup><it>L</it><sup><it>T </it></sup>with an eigenvalue equalling 1.</p>
            <p>We used several standard algorithms to calculate the eigenvector of the matrix <it>W </it>directly, but none of them returned a satisfactory result. The presumed reason is that any vector which belongs to the eigenspace of <it>W </it>corresponding to eigenvalue 1 satisfies the Equation 11. We therefore forced the eigenvector <it>y</it><sub><it>i </it></sub>to be in the form log(<it>S</it><sub><it>i</it></sub>+<it>DT</it><sub><it>i</it></sub>) and reformulated the task as a minimization problem for the logarithm of the squared residuals between the right and left side hands in Equation 11 and defined this problem in matrix form with the cost function</p>
            <p>
               <display-formula id="M12">
                  <m:math name="1752-0509-2-35-i11" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mi>F</m:mi>
                           <m:mo>=</m:mo>
                           <m:mi>log</m:mi>
                           <m:mo>&#8289;</m:mo>
                           <m:mrow>
                              <m:mo>(</m:mo>
                              <m:mrow>
                                 <m:msup>
                                    <m:mrow>
                                       <m:mrow>
                                          <m:mo>(</m:mo>
                                          <m:mrow>
                                             <m:msub>
                                                <m:mover accent="true">
                                                   <m:mi>y</m:mi>
                                                   <m:mo>^</m:mo>
                                                </m:mover>
                                                <m:mi>i</m:mi>
                                             </m:msub>
                                             <m:mo>&#8722;</m:mo>
                                             <m:msub>
                                                <m:mi>y</m:mi>
                                                <m:mi>i</m:mi>
                                             </m:msub>
                                          </m:mrow>
                                          <m:mo>)</m:mo>
                                       </m:mrow>
                                    </m:mrow>
                                    <m:mi>T</m:mi>
                                 </m:msup>
                                 <m:mrow>
                                    <m:mo>(</m:mo>
                                    <m:mrow>
                                       <m:msub>
                                          <m:mover accent="true">
                                             <m:mi>y</m:mi>
                                             <m:mo>^</m:mo>
                                          </m:mover>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                       <m:mo>&#8722;</m:mo>
                                       <m:msub>
                                          <m:mi>y</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                    </m:mrow>
                                    <m:mo>)</m:mo>
                                 </m:mrow>
                              </m:mrow>
                              <m:mo>)</m:mo>
                           </m:mrow>
                           <m:mo>,</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemOrayKaeyypa0JagiiBaWMaei4Ba8Maei4zaC2aaeWaaeaadaqadaqaaiqbdMha5zaajaWaaSbaaSqaaiabdMgaPbqabaGccqGHsislcqWG5bqEdaWgaaWcbaGaemyAaKgabeaaaOGaayjkaiaawMcaamaaCaaaleqabaGaemivaqfaaOWaaeWaaeaacuWG5bqEgaqcamaaBaaaleaacqWGPbqAaeqaaOGaeyOeI0IaemyEaK3aaSbaaSqaaiabdMgaPbqabaaakiaawIcacaGLPaaaaiaawIcacaGLPaaacqGGSaalaaa@4769@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>where <inline-formula><m:math name="1752-0509-2-35-i12" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mover accent="true"><m:mi>y</m:mi><m:mo>^</m:mo></m:mover><m:mi>i</m:mi></m:msub><m:mo>=</m:mo><m:mi>W</m:mi><m:msub><m:mi>y</m:mi><m:mi>i</m:mi></m:msub></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGafmyEaKNbaKaadaWgaaWcbaGaemyAaKgabeaakiabg2da9iabdEfaxjabdMha5naaBaaaleaacqWGPbqAaeqaaaaa@3430@</m:annotation></m:semantics></m:math></inline-formula>. The gradients of this function with respect to the degradation parameters are given by Equations 13 and 14:</p>
            <p>
               <display-formula id="M13">
                  <m:math name="1752-0509-2-35-i13" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mfrac>
                              <m:mrow>
                                 <m:mo>&#8706;</m:mo>
                                 <m:mi>F</m:mi>
                              </m:mrow>
                              <m:mrow>
                                 <m:mo>&#8706;</m:mo>
                                 <m:msub>
                                    <m:mi>&#946;</m:mi>
                                    <m:mi>i</m:mi>
                                 </m:msub>
                              </m:mrow>
                           </m:mfrac>
                           <m:mo>=</m:mo>
                           <m:mfrac>
                              <m:mn>2</m:mn>
                              <m:mi>&#981;</m:mi>
                           </m:mfrac>
                           <m:msup>
                              <m:mrow>
                                 <m:mrow>
                                    <m:mo>[</m:mo>
                                    <m:mrow>
                                       <m:mrow>
                                          <m:mo>(</m:mo>
                                          <m:mrow>
                                             <m:mi>W</m:mi>
                                             <m:mo>&#8722;</m:mo>
                                             <m:mi>I</m:mi>
                                          </m:mrow>
                                          <m:mo>)</m:mo>
                                       </m:mrow>
                                       <m:mrow>
                                          <m:mo>(</m:mo>
                                          <m:mrow>
                                             <m:mrow>
                                                <m:mo>(</m:mo>
                                                <m:mrow>
                                                   <m:mstyle displaystyle="true">
                                                      <m:munderover>
                                                         <m:mo>&#8719;</m:mo>
                                                         <m:mrow>
                                                            <m:mi>j</m:mi>
                                                            <m:mo>=</m:mo>
                                                            <m:mn>1</m:mn>
                                                         </m:mrow>
                                                         <m:mi>M</m:mi>
                                                      </m:munderover>
                                                      <m:mrow>
                                                         <m:msubsup>
                                                            <m:mi>X</m:mi>
                                                            <m:mi>j</m:mi>
                                                            <m:mrow>
                                                               <m:msub>
                                                                  <m:mi>h</m:mi>
                                                                  <m:mrow>
                                                                     <m:mi>i</m:mi>
                                                                     <m:mi>j</m:mi>
                                                                  </m:mrow>
                                                               </m:msub>
                                                            </m:mrow>
                                                         </m:msubsup>
                                                      </m:mrow>
                                                   </m:mstyle>
                                                </m:mrow>
                                                <m:mo>)</m:mo>
                                             </m:mrow>
                                             <m:mo>&#8728;</m:mo>
                                             <m:msup>
                                                <m:mrow>
                                                   <m:mrow>
                                                      <m:mo>(</m:mo>
                                                      <m:mrow>
                                                         <m:msub>
                                                            <m:mi>S</m:mi>
                                                            <m:mi>i</m:mi>
                                                         </m:msub>
                                                         <m:mo>+</m:mo>
                                                         <m:mi>D</m:mi>
                                                         <m:msub>
                                                            <m:mi>T</m:mi>
                                                            <m:mi>i</m:mi>
                                                         </m:msub>
                                                      </m:mrow>
                                                      <m:mo>)</m:mo>
                                                   </m:mrow>
                                                </m:mrow>
                                                <m:mrow>
                                                   <m:mo>&#8728;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mn>1</m:mn>
                                                </m:mrow>
                                             </m:msup>
                                          </m:mrow>
                                          <m:mo>)</m:mo>
                                       </m:mrow>
                                    </m:mrow>
                                    <m:mo>]</m:mo>
                                 </m:mrow>
                              </m:mrow>
                              <m:mi>T</m:mi>
                           </m:msup>
                           <m:mrow>
                              <m:mo>[</m:mo>
                              <m:mrow>
                                 <m:mrow>
                                    <m:mo>(</m:mo>
                                    <m:mrow>
                                       <m:mi>W</m:mi>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mi>I</m:mi>
                                    </m:mrow>
                                    <m:mo>)</m:mo>
                                 </m:mrow>
                                 <m:mi>log</m:mi>
                                 <m:mo>&#8289;</m:mo>
                                 <m:mrow>
                                    <m:mo>(</m:mo>
                                    <m:mrow>
                                       <m:msub>
                                          <m:mi>S</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                       <m:mo>+</m:mo>
                                       <m:mi>D</m:mi>
                                       <m:msub>
                                          <m:mi>T</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                    </m:mrow>
                                    <m:mo>)</m:mo>
                                 </m:mrow>
                              </m:mrow>
                              <m:mo>]</m:mo>
                           </m:mrow>
                           <m:mo>,</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbwvMCKfMBHbqedmvETj2BSbqee0evGueE0jxyaibaieYdOi=BI8qipeYdI8qiW7rqqrFfpeea0xe9LqFf0xc9q8qqaqFn0dXdHiVcFbIOFHK8Feei0lXdar=Jb9qqFfeaYRXxe9vr0=vr0=LqpWqaaeaabiGaciaacaqabeaabeqacmaaaOqaaKqbaoaalaaabaGaeyOaIyRaamOraaqaaiabgkGi2kabek7aInaaBaaabaGaamyAaaqabaaaaOGaeyypa0tcfa4aaSaaaeaacaaIYaaabaGaeqy1dOgaaOWaamWaaeaadaqadaqaaiaadEfacqGHsislcaWGjbaacaGLOaGaayzkaaWaaeWaaeaadaqadaqaamaarahabaGaamiwamaaDaaaleaacaWGQbaabaGaamiAamaaBaaameaacaWGPbGaamOAaaqabaaaaaWcbaGaamOAaiabg2da9iaaigdaaeaacaWGnbaaniabg+GivdaakiaawIcacaGLPaaacqWIyiYBdaqadaqaaiaadofadaWgaaWcbaGaamyAaaqabaGccqGHRaWkcaWGebGaamivamaaBaaaleaacaWGPbaabeaaaOGaayjkaiaawMcaamaaCaaaleqabaGaeSigI8MaeyOeI0IaaGymaaaaaOGaayjkaiaawMcaaaGaay5waiaaw2faamaaCaaaleqabaGaamivaaaakmaadmaabaWaaeWaaeaacaWGxbGaeyOeI0IaamysaaGaayjkaiaawMcaaiGacYgacaGGVbGaai4zamaabmaabaGaam4uamaaBaaaleaacaWGPbaabeaakiabgUcaRiaadseacaWGubWaaSbaaSqaaiaadMgaaeqaaaGccaGLOaGaayzkaaaacaGLBbGaayzxaaGaaiilaaaa@6971@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>
               <display-formula id="M14">
                  <m:math name="1752-0509-2-35-i14" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mfrac>
                              <m:mrow>
                                 <m:mo>&#8706;</m:mo>
                                 <m:mi>F</m:mi>
                              </m:mrow>
                              <m:mrow>
                                 <m:mo>&#8706;</m:mo>
                                 <m:msub>
                                    <m:mi>h</m:mi>
                                    <m:mrow>
                                       <m:mi>i</m:mi>
                                       <m:mi>j</m:mi>
                                    </m:mrow>
                                 </m:msub>
                              </m:mrow>
                           </m:mfrac>
                           <m:mo>=</m:mo>
                           <m:mfrac>
                              <m:mn>2</m:mn>
                              <m:mi>&#981;</m:mi>
                           </m:mfrac>
                           <m:msup>
                              <m:mrow>
                                 <m:mrow>
                                    <m:mo>[</m:mo>
                                    <m:mrow>
                                       <m:mrow>
                                          <m:mo>(</m:mo>
                                          <m:mrow>
                                             <m:mi>W</m:mi>
                                             <m:mo>&#8722;</m:mo>
                                             <m:mi>I</m:mi>
                                          </m:mrow>
                                          <m:mo>)</m:mo>
                                       </m:mrow>
                                       <m:mrow>
                                          <m:mo>(</m:mo>
                                          <m:mrow>
                                             <m:mrow>
                                                <m:mo>(</m:mo>
                                                <m:mrow>
                                                   <m:msub>
                                                      <m:mi>&#946;</m:mi>
                                                      <m:mi>i</m:mi>
                                                   </m:msub>
                                                   <m:mstyle displaystyle="true">
                                                      <m:munderover>
                                                         <m:mo>&#8719;</m:mo>
                                                         <m:mrow>
                                                            <m:mi>j</m:mi>
                                                            <m:mo>=</m:mo>
                                                            <m:mn>1</m:mn>
                                                         </m:mrow>
                                                         <m:mi>M</m:mi>
                                                      </m:munderover>
                                                      <m:mrow>
                                                         <m:msubsup>
                                                            <m:mi>X</m:mi>
                                                            <m:mi>j</m:mi>
                                                            <m:mrow>
                                                               <m:msub>
                                                                  <m:mi>h</m:mi>
                                                                  <m:mrow>
                                                                     <m:mi>i</m:mi>
                                                                     <m:mi>j</m:mi>
                                                                  </m:mrow>
                                                               </m:msub>
                                                            </m:mrow>
                                                         </m:msubsup>
                                                      </m:mrow>
                                                   </m:mstyle>
                                                   <m:mo>&#8728;</m:mo>
                                                   <m:mi>log</m:mi>
                                                   <m:mo>&#8289;</m:mo>
                                                   <m:mrow>
                                                      <m:mo>(</m:mo>
                                                      <m:mrow>
                                                         <m:msub>
                                                            <m:mi>X</m:mi>
                                                            <m:mi>j</m:mi>
                                                         </m:msub>
                                                      </m:mrow>
                                                      <m:mo>)</m:mo>
                                                   </m:mrow>
                                                </m:mrow>
                                                <m:mo>)</m:mo>
                                             </m:mrow>
                                             <m:mo>&#8728;</m:mo>
                                             <m:msup>
                                                <m:mrow>
                                                   <m:mrow>
                                                      <m:mo>(</m:mo>
                                                      <m:mrow>
                                                         <m:msub>
                                                            <m:mi>S</m:mi>
                                                            <m:mi>i</m:mi>
                                                         </m:msub>
                                                         <m:mo>+</m:mo>
                                                         <m:mi>D</m:mi>
                                                         <m:msub>
                                                            <m:mi>T</m:mi>
                                                            <m:mi>i</m:mi>
                                                         </m:msub>
                                                      </m:mrow>
                                                      <m:mo>)</m:mo>
                                                   </m:mrow>
                                                </m:mrow>
                                                <m:mrow>
                                                   <m:mo>&#8728;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mn>1</m:mn>
                                                </m:mrow>
                                             </m:msup>
                                          </m:mrow>
                                          <m:mo>)</m:mo>
                                       </m:mrow>
                                    </m:mrow>
                                    <m:mo>]</m:mo>
                                 </m:mrow>
                              </m:mrow>
                              <m:mi>T</m:mi>
                           </m:msup>
                           <m:mrow>
                              <m:mo>[</m:mo>
                              <m:mrow>
                                 <m:mrow>
                                    <m:mo>(</m:mo>
                                    <m:mrow>
                                       <m:mi>W</m:mi>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mi>I</m:mi>
                                    </m:mrow>
                                    <m:mo>)</m:mo>
                                 </m:mrow>
                                 <m:mi>log</m:mi>
                                 <m:mo>&#8289;</m:mo>
                                 <m:mrow>
                                    <m:mo>(</m:mo>
                                    <m:mrow>
                                       <m:msub>
                                          <m:mi>S</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                       <m:mo>+</m:mo>
                                       <m:mi>D</m:mi>
                                       <m:msub>
                                          <m:mi>T</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                    </m:mrow>
                                    <m:mo>)</m:mo>
                                 </m:mrow>
                              </m:mrow>
                              <m:mo>]</m:mo>
                           </m:mrow>
                           <m:mo>.</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaqcfa4aaSaaaeaacqGHciITcqWGgbGraeaacqGHciITcqWGObaAdaWgaaqaaiabdMgaPjabdQgaQbqabaaaaOGaeyypa0tcfa4aaSaaaeaacqaIYaGmaeaacqaHvpGAaaGcdaWadaqaamaabmaabaGaem4vaCLaeyOeI0IaemysaKeacaGLOaGaayzkaaWaaeWaaeaadaqadaqaaiabek7aInaaBaaaleaacqWGPbqAaeqaaOWaaebCaeaacqWGybawdaqhaaWcbaGaemOAaOgabaGaemiAaG2aaSbaaWqaaiabdMgaPjabdQgaQbqabaaaaaWcbaGaemOAaOMaeyypa0JaeGymaedabaGaemyta0eaniabg+GivdGccqWIyiYBcyGGSbaBcqGGVbWBcqGGNbWzdaqadaqaaiabdIfaynaaBaaaleaacqWGQbGAaeqaaaGccaGLOaGaayzkaaaacaGLOaGaayzkaaGaeSigI82aaeWaaeaacqWGtbWudaWgaaWcbaGaemyAaKgabeaakiabgUcaRiabdseaejabdsfaunaaBaaaleaacqWGPbqAaeqaaaGccaGLOaGaayzkaaWaaWbaaSqabeaacqWIyiYBcqGHsislcqaIXaqmaaaakiaawIcacaGLPaaaaiaawUfacaGLDbaadaahaaWcbeqaaiabdsfaubaakmaadmaabaWaaeWaaeaacqWGxbWvcqGHsislcqWGjbqsaiaawIcacaGLPaaacyGGSbaBcqGGVbWBcqGGNbWzdaqadaqaaiabdofatnaaBaaaleaacqWGPbqAaeqaaOGaey4kaSIaemiraqKaemivaq1aaSbaaSqaaiabdMgaPbqabaaakiaawIcacaGLPaaaaiaawUfacaGLDbaacqGGUaGlaaa@814F@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>Here, the symbol <it>&#959; </it>represents the Hadamard product between vectors <abbrgrp><abbr bid="B29">29</abbr></abbrgrp> and <it>&#966; </it>is the logarithm of the argument of the right hand side of the Equation 12. Analogous gradient equations are obtained for the production terms. The algorithm avoids unfeasible solutions by satisfying the feasibility constraints</p>
            <p>
               <display-formula id="M15">
                  <m:math name="1752-0509-2-35-i15" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:msub>
                              <m:mi>S</m:mi>
                              <m:mi>i</m:mi>
                           </m:msub>
                           <m:mo stretchy="false">(</m:mo>
                           <m:msub>
                              <m:mi>t</m:mi>
                              <m:mi>n</m:mi>
                           </m:msub>
                           <m:mo stretchy="false">)</m:mo>
                           <m:mo>+</m:mo>
                           <m:msub>
                              <m:mi>&#946;</m:mi>
                              <m:mi>i</m:mi>
                           </m:msub>
                           <m:mstyle displaystyle="true">
                              <m:munderover>
                                 <m:mo>&#8719;</m:mo>
                                 <m:mrow>
                                    <m:mi>j</m:mi>
                                    <m:mo>=</m:mo>
                                    <m:mn>1</m:mn>
                                 </m:mrow>
                                 <m:mi>M</m:mi>
                              </m:munderover>
                              <m:mrow>
                                 <m:msub>
                                    <m:mi>X</m:mi>
                                    <m:mi>j</m:mi>
                                 </m:msub>
                                 <m:msup>
                                    <m:mrow>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>t</m:mi>
                                          <m:mi>n</m:mi>
                                       </m:msub>
                                       <m:mo stretchy="false">)</m:mo>
                                    </m:mrow>
                                    <m:mrow>
                                       <m:msub>
                                          <m:mi>h</m:mi>
                                          <m:mrow>
                                             <m:mi>i</m:mi>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msub>
                                    </m:mrow>
                                 </m:msup>
                              </m:mrow>
                           </m:mstyle>
                           <m:mo>></m:mo>
                           <m:mn>0</m:mn>
                           <m:mo>,</m:mo>
                           <m:mi>n</m:mi>
                           <m:mo>=</m:mo>
                           <m:mn>1</m:mn>
                           <m:mo>,</m:mo>
                           <m:mn>2</m:mn>
                           <m:mo>,</m:mo>
                           <m:mo>&#8943;</m:mo>
                           <m:mo>,</m:mo>
                           <m:mi>N</m:mi>
                           <m:mo>.</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaem4uam1aaSbaaSqaaiabdMgaPbqabaGccqGGOaakcqWG0baDdaWgaaWcbaGaemOBa4gabeaakiabcMcaPiabgUcaRiabek7aInaaBaaaleaacqWGPbqAaeqaaOWaaebCaeaacqWGybawdaWgaaWcbaGaemOAaOgabeaakiabcIcaOiabdsha0naaBaaaleaacqWGUbGBaeqaaOGaeiykaKYaaWbaaSqabeaacqWGObaAdaWgaaadbaGaemyAaKMaemOAaOgabeaaaaaaleaacqWGQbGAcqGH9aqpcqaIXaqmaeaacqWGnbqta0Gaey4dIunakiabg6da+iabicdaWiabcYcaSiabd6gaUjabg2da9iabigdaXiabcYcaSiabikdaYiabcYcaSiabl+UimjabcYcaSiabd6eaojabc6caUaaa@5815@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>We used the <b>fmincon </b>routine in MATLAB<sup>&#174; </sup>(MathWorks) with built-in Sequential Quadratic Programming to execute the cost function constrained minimization.</p>
         </sec>
         <sec>
            <st>
               <p>Initial parameters guesses</p>
            </st>
            <p>Like all numerical optimization algorithms, the proposed method requires initial guesses. Satisfying the constraints in Equation 15, the proposed algorithm calculates initial guesses for the kinetic order <it>h</it><sub><it>ij</it></sub>, given a user-supplied value <it>&#946;</it><sub><it>i</it></sub>; specifically, <it>h</it><sub><it>ij </it></sub>and a small buffer value <it>&#949; </it>are chosen such that</p>
            <p>
               <display-formula id="M16">
                  <m:math name="1752-0509-2-35-i16" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:msub>
                              <m:mi>&#946;</m:mi>
                              <m:mi>i</m:mi>
                           </m:msub>
                           <m:mstyle displaystyle="true">
                              <m:munderover>
                                 <m:mo>&#8719;</m:mo>
                                 <m:mrow>
                                    <m:mi>j</m:mi>
                                    <m:mo>=</m:mo>
                                    <m:mn>1</m:mn>
                                 </m:mrow>
                                 <m:mi>M</m:mi>
                              </m:munderover>
                              <m:mrow>
                                 <m:msubsup>
                                    <m:mi>X</m:mi>
                                    <m:mi>j</m:mi>
                                    <m:mrow>
                                       <m:msub>
                                          <m:mi>h</m:mi>
                                          <m:mrow>
                                             <m:mi>i</m:mi>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msub>
                                    </m:mrow>
                                 </m:msubsup>
                              </m:mrow>
                           </m:mstyle>
                           <m:mo>=</m:mo>
                           <m:mi>&#949;</m:mi>
                           <m:mo>&#8722;</m:mo>
                           <m:msubsup>
                              <m:mi>S</m:mi>
                              <m:mi>i</m:mi>
                              <m:mo>&#8722;</m:mo>
                           </m:msubsup>
                           <m:mo>,</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaeqOSdi2aaSbaaSqaaiabdMgaPbqabaGcdaqeWbqaaiabdIfaynaaDaaaleaacqWGQbGAaeaacqWGObaAdaWgaaadbaGaemyAaKMaemOAaOgabeaaaaaaleaacqWGQbGAcqGH9aqpcqaIXaqmaeaacqWGnbqta0Gaey4dIunakiabg2da9iabew7aLjabgkHiTiabdofatnaaDaaaleaacqWGPbqAaeaacqGHsislaaGccqGGSaalaaa@452F@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>where <inline-formula><m:math name="1752-0509-2-35-i17" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>S</m:mi><m:mi>i</m:mi><m:mo>&#8722;</m:mo></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaem4uam1aa0baaSqaaiabdMgaPbqaaiabgkHiTaaaaaa@2F79@</m:annotation></m:semantics></m:math></inline-formula> represents all negative slope values from the time series of <it>X</it><sub>i</sub>. A simple linear regression step in logarithmic space thus suffices to determine admissible initial guesses for the kinetic orders <it>h</it><sub><it>ij</it></sub>. In this fashion, for a given <it>&#946;</it><sub><it>i</it></sub>, small values of kinetic orders <it>h</it><sub><it>ij </it></sub>are provided to the optimization algorithm. As a technical note, it is easier to keep a null parameter value than to bring it to zero during the optimization. If the slope vector contains no negative values, the procedure is performed without <it>&#949;</it>. A flowchart of the proposed algorithm is shown in Figure <figr fid="F8">8</figr>.</p>
            <fig id="F8">
               <title>
                  <p>Figure 8</p>
               </title>
               <caption>
                  <p>Flowchart</p>
               </caption>
               <text>
                  <p><b>Flowchart</b>. Flowchart of the proposed algorithm. To perform the optimization process, the algorithm requires only the time series set and an initial <it>&#946; </it>value as input.</p>
               </text>
               <graphic file="1752-0509-2-35-8"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>Refining solutions</p>
            </st>
            <p>Differently parameterized S-systems can exhibit quite similar temporal dynamics. This behavior is due the fact that S-systems are composed of production and degradation terms that may compensate for each other through different kinetic orders and constant rates that ultimately produce very similar time courses. As one consequence, it is quite common that optimization schemes identify non-zero values for parameters that should in truth be zero. Moreover, it is unlikely that any algorithm based on gradients will obtain parameters values exactly equal to zero. For these reasons, our algorithm automatically checks parameter values and forces kinetics orders below a quite arbitrary threshold of (0.009) to be zero; a new optimization process is the initiated in which the parameter is constrained to be zero.</p>
         </sec>
         <sec>
            <st>
               <p>Extension to constrained topologies</p>
            </st>
            <p>To address linear pathway sections, constraints are imposed in accordance with the structure of the system when the parameter optimization is performed. For instance, for the linear system with precursor-product relationships (Figure <figr fid="F6">6</figr>), the optimization is performed with the degradation term of the precursor metabolite forced to be equal to the production terms of the product. In such a case, the Equation 11 is formulated for each state variable</p>
            <p>
               <display-formula id="M17">
                  <m:math name="1752-0509-2-35-i18" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mtable>
                              <m:mtr>
                                 <m:mtd>
                                    <m:mrow>
                                       <m:mi>W</m:mi>
                                       <m:msub>
                                          <m:mi>y</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>&#946;</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>h</m:mi>
                                          <m:mrow>
                                             <m:mn>1</m:mn>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>S</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">)</m:mo>
                                       <m:mo>=</m:mo>
                                       <m:msub>
                                          <m:mi>y</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>&#946;</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>h</m:mi>
                                          <m:mrow>
                                             <m:mn>1</m:mn>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>S</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">)</m:mo>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr>
                                 <m:mtd>
                                    <m:mrow>
                                       <m:mi>W</m:mi>
                                       <m:msub>
                                          <m:mi>y</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>&#945;</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>g</m:mi>
                                          <m:mrow>
                                             <m:mn>2</m:mn>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>S</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">)</m:mo>
                                       <m:mo>=</m:mo>
                                       <m:msub>
                                          <m:mi>y</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msub>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>&#945;</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msub>
                                       <m:mo>,</m:mo>
                                       <m:msub>
                                          <m:mi>g</m:mi>
                                          <m:mrow>
                                             <m:mn>2</m:mn>
                                             <m:mi>j</m:mi>
                                          </m:mrow>
                                       </m:msu