<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Genet.</journal-id>
<journal-title>Frontiers in Genetics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Genet.</abbrev-journal-title>
<issn pub-type="epub">1664-8021</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">815476</article-id>
<article-id pub-id-type="doi">10.3389/fgene.2022.815476</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Genetics</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Totoro: Identifying Active Reactions During the Transient State for Metabolic Perturbations</article-title>
<alt-title alt-title-type="left-running-head">Galv&#x00E3;o Ferrarini et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">Totoro for Identifying Active Reactions</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Galv&#x00E3;o Ferrarini</surname>
<given-names>Mariana</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/587358/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Ziska</surname>
<given-names>Irene</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Andrade</surname>
<given-names>Ricardo</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Julien-Laferri&#xe8;re</surname>
<given-names>Alice</given-names>
</name>
<xref ref-type="aff" rid="aff5">
<sup>5</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1567220/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Duchemin</surname>
<given-names>Louis</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>C&#xe9;sar</surname>
<given-names>Roberto Marcondes</given-names>
<suffix>Jr.</suffix>
</name>
<xref ref-type="aff" rid="aff4">
<sup>4</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1668731/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Mary</surname>
<given-names>Arnaud</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Vinga</surname>
<given-names>Susana</given-names>
</name>
<xref ref-type="aff" rid="aff6">
<sup>6</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/127432/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Sagot</surname>
<given-names>Marie-France</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/594476/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Laboratoire de Biom&#xe9;trie et Biologie &#xc9;volutive</institution>, <institution>UMR 5558</institution>, <institution>CNRS</institution>, <institution>Universit&#xe9; de Lyon</institution>, <institution>Universit&#xe9; Lyon 1</institution>, <addr-line>Villeurbanne</addr-line>, <country>France</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>Univ Lyon, INRAE, INSA-Lyon, BF2I, UMR 203</institution>, <addr-line>Villeurbanne</addr-line>, <country>France</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>INRIA Grenoble Rh&#xf4;ne-Alpes</institution>, <addr-line>Villeurbanne</addr-line>, <country>France</country>
</aff>
<aff id="aff4">
<sup>4</sup>
<institution>Institute of Mathematics and Statistics (IME)</institution>, <institution>University of S&#xe3;o Paulo</institution>, <addr-line>S&#xe3;o Paulo</addr-line>, <country>Brazil</country>
</aff>
<aff id="aff5">
<sup>5</sup>
<institution>Soladis GmBH</institution>, <addr-line>Basel</addr-line>, <country>Switzerland</country>
</aff>
<aff id="aff6">
<sup>6</sup>
<institution>INESC-ID</institution>, <institution>Instituto Superior T&#xe9;cnico</institution>, <institution>Universidade de Lisboa</institution>, <addr-line>Lisboa</addr-line>, <country>Portugal</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/124337/overview">Marco Pellegrini</ext-link>, Italian National Research Council, Italy</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1561572/overview">Philipp Wendering</ext-link>, University of Potsdam, Germany</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/32757/overview">Samuel Seaver</ext-link>, Argonne National Laboratory (DOE), United&#x20;States</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Marie-France Sagot, <email>marie-france.sagot@inria.fr</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Computational Genomics, a section of the journal Frontiers in Genetics</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>21</day>
<month>02</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>13</volume>
<elocation-id>815476</elocation-id>
<history>
<date date-type="received">
<day>15</day>
<month>11</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>24</day>
<month>01</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Galv&#x00E3;o Ferrarini, Ziska, Andrade, Julien-Laferri&#xe8;re, Duchemin, C&#xe9;sar, Mary, Vinga and Sagot.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Galv&#x00E3;o Ferrarini, Ziska, Andrade, Julien-Laferri&#xe8;re, Duchemin, C&#xe9;sar, Mary, Vinga and Sagot</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>
<bold>Motivation:</bold> The increasing availability of metabolomic data and their analysis are improving the understanding of cellular mechanisms and how biological systems respond to different perturbations. Currently, there is a need for novel computational methods that facilitate the analysis and integration of increasing volume of available&#x20;data.</p>
<p>
<bold>Results:</bold> In this paper, we present <sc>Totoro</sc> a new constraint-based approach that integrates quantitative non-targeted metabolomic data of two different metabolic states into genome-wide metabolic models and predicts reactions that were most likely active during the transient state. We applied <sc>Totoro</sc> to real data of three different growth experiments (pulses of glucose, pyruvate, succinate) from <italic>Escherichia coli</italic> and we were able to predict known active pathways and gather new insights on the different metabolisms related to each substrate. We used both the <italic>E.&#x20;coli</italic> core and the iJO1366 models to demonstrate that our approach is applicable to both smaller and larger networks.</p>
<p>
<bold>Availability:</bold> <sc>Totoro</sc> is an open source method (available at <ext-link ext-link-type="uri" xlink:href="https://gitlab.inria.fr/erable/totoro">https://gitlab.inria.fr/erable/totoro</ext-link>) suitable for any organism with an available metabolic model. It is implemented in C&#x2b;&#x2b; and depends on IBM CPLEX which is freely available for academic purposes.</p>
</abstract>
<kwd-group>
<kwd>metabolomics</kwd>
<kwd>metabolic networks</kwd>
<kwd>transient state</kwd>
<kwd>metabolic perturbation</kwd>
<kwd>omics integration</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>The increasing availability of metabolomic data and their analysis are currently enhancing our knowledge on diverse biological mechanisms and elucidating how cells and organisms respond to different perturbations (<xref ref-type="bibr" rid="B32">Sevin et&#x20;al., 2015</xref>). Metabolomics can be used to obtain a metabolic profile that characterizes the physiological response of a cell, tissue or organism to a stress or to a general perturbation (<xref ref-type="bibr" rid="B28">Roessner and Bowne, 2009</xref>), and experiments ranging from shorter-term responses (such as stress response programs) to longer-term responses (such as acclimation) are broadly available for diverse species. Different network-based strategies for metabolomic data analysis have been recently reviewed in (<xref ref-type="bibr" rid="B25">Perez de Souza et&#x20;al., 2020</xref>) and amongst others, such strategies can be used to establish associations between metabolites or to integrate them into metabolic pathways.</p>
<p>Metabolic profiles are often analyzed and interpreted with the help of bioinformatic software such as <sc>MetExplore</sc> (<xref ref-type="bibr" rid="B7">Cottret et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B9">Frainay et&#x20;al., 2019</xref>), <sc>MetaboAnalyst</sc> (<xref ref-type="bibr" rid="B37">Xia et&#x20;al., 2015</xref>; <xref ref-type="bibr" rid="B5">Chong et&#x20;al., 2018</xref>) or <sc>3Omics</sc> (<xref ref-type="bibr" rid="B17">Kuo et&#x20;al., 2013</xref>) that can identify the set of metabolites with a significant change in their concentration. The metabolomic data are projected on the annotated metabolic pathways in order to highlight the processes that may be linked to the observed changes. The aforementioned software also try to integrate different kinds of omic data (such as transcriptomic, metabolomic or proteomic data) in order to give a deeper understanding of the studied mechanisms (<xref ref-type="bibr" rid="B3">Cambiaghi et&#x20;al., 2017</xref>). Different approaches were reviewed in (<xref ref-type="bibr" rid="B30">Rosato et&#x20;al., 2018</xref>; <xref ref-type="bibr" rid="B12">Ivanisevic and Want, 2019</xref>; <xref ref-type="bibr" rid="B33">Stanstrup et&#x20;al., 2019</xref>) and software for the enrichment analysis of metabolomic data were evaluated and their results compared in (<xref ref-type="bibr" rid="B19">Marco-Ramell et&#x20;al., 2018</xref>). However, metabolic pathways have subjective definitions and can differ between databases (<xref ref-type="bibr" rid="B11">Ginsburg, 2009</xref>). Additionally, this kind of analysis can make it hard to identify the connections between metabolites since they can be part of many pathways and it is thus possible to miss paths which traverse several biological pathways.</p>
<p>Another approach is to use graph-based methods that allow to consider the whole metabolism as an integrated system focusing on the parts that are connecting the metabolites of interest. Usually, these methods rely mainly on the network structure, chemical information and on an input list of metabolites (<xref ref-type="bibr" rid="B10">Frainay and Jourdan, 2017</xref>). Another example can be seen in (<xref ref-type="bibr" rid="B1">Acu&#xf1;a et&#x20;al., 2012</xref>; <xref ref-type="bibr" rid="B20">Milreu et&#x20;al., 2014</xref>), with the enumeration of metabolic stories. A metabolic story is defined by the authors as the set of reactions that summarize the flow of matter from a set of source metabolites to a set of target metabolites and is characterized as a maximum directed acyclic subgraph connecting the metabolites of interest. One of the drawbacks of this approach is that a metabolic story is acyclic and thus, it is not possible to obtain sets of reactions that contain cycles. Nevertheless, cycles are common in metabolic networks and this assumption does not reflect reality. Additionally, the method does not take into account the stoichiometry of the reactions, which can lead to a set of unfeasible reactions in practice.</p>
<p>Metabolite concentrations have also been used to assess the responses to small perturbations in the context of constraint-based models (<xref ref-type="bibr" rid="B23">Palsson, 2000</xref>; <xref ref-type="bibr" rid="B8">Covert and Palsson, 2003</xref>; <xref ref-type="bibr" rid="B15">Klamt et&#x20;al., 2014</xref>), and has been reviewed in detail by (<xref ref-type="bibr" rid="B35">Topfer et&#x20;al., 2015</xref>). While standard flux balance analysis (FBA) tries to predict the flux distribution for one specific steady-state condition, dynamic FBA, as described in (<xref ref-type="bibr" rid="B18">Mahadevan et&#x20;al., 2002</xref>), has been extensively used in smaller models to predict the evolution of the fluxes and of the metabolite concentrations over time. In (<xref ref-type="bibr" rid="B27">Reznik et&#x20;al., 2013</xref>), the authors provide a method derived from the classical FBA framework, and showed that the variables of the dual problem (the so-called shadow prices, which correspond to the sensitivity of FBA to imbalances in the flux) can indicate if a metabolite is a growth-limiting metabolite in FBA. In (<xref ref-type="bibr" rid="B2">Bordbar et&#x20;al., 2017</xref>) the authors describe the unsteady-FBA method (uFBA), created to integrate dynamic time-course metabolomics with a constraint-based metabolic model, allowing a bypass into the steady-state assumption for intracellular metabolites that are measured. In (<xref ref-type="bibr" rid="B29">Rohwer and Hofmeyr, 2008</xref>; <xref ref-type="bibr" rid="B6">Christensen et&#x20;al., 2015</xref>), methods are presented to identify regulatory metabolites and paths by varying <italic>in silico</italic> their known concentrations in a measured steady-state using supply-demand analysis. Therefore, these methods are based on the response of an organism to a relatively small perturbation and on the influence of the metabolite concentrations on the reaction rates of the system to return to the original equilibrium.</p>
<p>In this paper, we focus not on the metabolite pools in one condition but on the difference of the obtained measurements between two conditions, which could be measured either within shorter or longer timeframes, depending on the biological question to be addressed. We also do not need neither comprehensive time-course datasets nor coupled data from the relative expression of genes or proteins, which are much harder to obtain. Our main hypothesis is that the difference of metabolite pools between two metabolic states can provide information on the transient state, that is, on the transition between the two measured conditions.</p>
<p>Similar problems have been studied in the literature. In (<xref ref-type="bibr" rid="B31">Sajitz-Hermstein et&#x20;al., 2016</xref>), the authors provide a method (<sc>iReMet-Flux</sc>) to integrate relative metabolomic measurements in order to make predictions about differential fluxes. They use a constraint-based approach which minimizes the distance between the two flux vectors of the two different states based on the ratio between the measured metabolite concentrations in both conditions. For both states, steady-state is assumed for the flux vectors. However, the authors identify differential fluxes between the two conditions whereas we aim at finding reactions that are likely active during the transient state. In (<xref ref-type="bibr" rid="B4">Case et&#x20;al., 2016</xref>), the authors investigated reachability problems in chemical reaction networks. Given two different states of the network, the goal is to identify a path that leads the network from the first state to the second one. They prove that this problem can be solved in polynomial time. However, they also discuss that a variant of this problem in which the maximum size of the path is fixed is more difficult to solve. Our approach overcomes this limitation at the same time that it minimizes the number of active reactions in the solutions, since we are interested in identifying only the parts of the network that are potentially active during the transient state. Even though other methods could be adapted to answer this problem, our objective is much simpler, requiring less computational complexity. By reformulating our problem in a simpler way we can also address larger genome-scale metabolic models, instead of focusing on smaller portions of the metabolism (e.g., core models).</p>
<p>We use constraint-based modeling to enumerate sets of reactions that explain the changes in concentrations for some measured metabolites, i.e.,&#x20;how the system moved from a state to another. We implemented our approach in a software we called <sc>Totoro</sc> (for &#x201c;Transient respOnse to meTabOlic pertuRbation inferred at the whole netwOrk level&#x201d;), that is publicly available at <ext-link ext-link-type="uri" xlink:href="https://gitlab.inria.fr/erable/totoro">https://gitlab.inria.fr/erable/totoro</ext-link>, along with the test datasets presented in this study. It is implemented in C&#x2b;&#x2b; and depends on IBM CPLEX which is freely available for academic purposes. We also tested our method with data from pulse experiments with different carbon sources (glucose, pyruvate and succinate) in <italic>Escherichia&#x20;coli</italic>.</p>
</sec>
<sec id="s2">
<title>2 Methods</title>
<p>A metabolic network can be represented as a weighted directed hypergraph <inline-formula id="inf1">
<mml:math id="m1">
<mml:mi>H</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> where <inline-formula id="inf2">
<mml:math id="m2">
<mml:mi mathvariant="script">V</mml:mi>
</mml:math>
</inline-formula> is the set of vertices, <inline-formula id="inf3">
<mml:math id="m3">
<mml:mi mathvariant="script">R</mml:mi>
</mml:math>
</inline-formula> the set of hyperarcs and <inline-formula id="inf4">
<mml:math id="m4">
<mml:mi mathvariant="script">S</mml:mi>
</mml:math>
</inline-formula> the stoichiometric matrix representing weights on the hyperarcs. Each <inline-formula id="inf5">
<mml:math id="m5">
<mml:mi>c</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:math>
</inline-formula> represents a metabolite of the network and each hyperarc <inline-formula id="inf6">
<mml:math id="m6">
<mml:mi>r</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:math>
</inline-formula> a reaction that connects two sets of disjoint metabolites <italic>Subs</italic>
<sub>
<italic>r</italic>
</sub>, <italic>Prod</italic>
<sub>
<italic>r</italic>
</sub> with <inline-formula id="inf7">
<mml:math id="m7">
<mml:mi>S</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>b</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>P</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>o</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2286;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:math>
</inline-formula>. To each hyperarc, a set of weights is associated representing the stoichiometric coefficients of the metabolites participating to the corresponding reaction. These weights are given by the stoichiometric matrix <inline-formula id="inf8">
<mml:math id="m8">
<mml:mi mathvariant="script">S</mml:mi>
</mml:math>
</inline-formula> which is a <italic>m</italic>&#x20;&#xd7; <italic>n</italic> matrix where each column represents a reaction and each row a different metabolite. It contains the stoichiometric coefficients which are positive if a metabolite is produced by a reaction and negative if it is consumed.</p>
<p>The set <inline-formula id="inf9">
<mml:math id="m9">
<mml:mi>X</mml:mi>
<mml:mo>&#x2286;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:math>
</inline-formula> contains all measured metabolites. The metabolomic data is given as a list which, for each measured metabolite in <italic>X</italic>, contains an interval. This interval describes by how much the internal metabolite concentration changed between two different states. Usually, small deviations for the measurements are available which can be used to calculate the minimum and the maximum possible difference between the internal metabolite concentrations. Furthermore, all reversible reactions of the network are split into forward and backward reactions.</p>
<p>We are interested in solving the following problem: Given a network <italic>H</italic> and a list containing the changes for some metabolite concentrations before and after a perturbation, we want to identify sets of reactions that were involved in diverting the system from the initial state before the perturbation to the state after the perturbation (<xref ref-type="fig" rid="F1">Figure&#x20;1A</xref>). Here, we present a constraint-based approach to solve this problem where the change of concentrations (&#x394;) between two states is represented as an interval.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>
<sc>Totoro</sc> method explained. <bold>(A)</bold> <sc>Totoro</sc> is able to integrate a metabolic model with metabolomic data in order to predict active reactions during the transient state between two conditions (or simply after a perturbation). The inputs of <sc>Totoro</sc> are an SBML metabolic model, and a list of intervals for the difference in concentration (&#x394;) for each measured metabolite. In the metabolic model panel, grey circles depict metabolites and arrows depict reactions. In the metabolic data panel, accumulated metabolites are depicted in red circles, depleted metabolites are depicted in blue circles. The method <sc>Totoro</sc> then requires two additional user-defined parameters to fine tune the results, namely <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic>. <sc>Totoro</sc> provides as output the predicted variation of metabolites and reactions that were most likely active between the two states in each enumerated solution as well as metric files grouping all enumerated solutions. In the figure, reaction occurrence is depicted as a percentage in all enumerated solutions. <bold>(B)</bold> The fine-tuning of parameters <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic> are provided within a toy network, in which active reactions are showed in orange and dashed arrows indicate several reactions in a row. When we don&#x2019;t allow an accumulation of non-measured metabolites (<italic>&#x3f5;</italic> &#x3d; 0), the method will try to connect the input deltas of distant and possibly unrelated metabolites; and in the case exchange reactions are not blocked, the method will most likely propagate the accumulation or depletion towards outside of the boundaries of the model. When accumulation is allowed (<italic>&#x3f5;</italic> &#x3e; 0) a low lambda (<italic>&#x3bb;</italic> &#x3d; 0.1) will favor solutions in which fewer non-measured metabolites accumulate or deplete, and will include a larger number of reactions within the solutions. As we raise the parameter lambda (<italic>&#x3bb;</italic> &#x3d; 0.9), we favor local and smaller solutions.</p>
</caption>
<graphic xlink:href="fgene-13-815476-g001.tif"/>
</fig>
<sec id="s2-1">
<title>2.1 Core Method</title>
<p>The variation of the concentrations in time of the metabolites in <italic>X</italic> can be written as:<disp-formula id="e1">
<mml:math id="m10">
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>In this equation, <italic>v</italic> is a flux vector and the (&#x22c5;)<sub>
<italic>X</italic>
</sub> operator means that only the entries of the vector corresponding to the metabolites in <italic>X</italic> are taken into account. We use [<italic>X</italic>]<sub>
<italic>t</italic>
</sub> to denote the concentration for the metabolites in <italic>X</italic> at time point <italic>t</italic>. Considering two points <italic>t</italic>
<sub>0</sub> and <italic>t</italic>
<sub>1</sub> in time and <inline-formula id="inf10">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, one can write:<disp-formula id="e2">
<mml:math id="m12">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>In this case, each entry of the vector <italic>&#x3c6;</italic> can be interpreted as the overall number of moles that passed through the reaction <italic>j</italic> during the time interval [<italic>t</italic>
<sub>0</sub>, <italic>t</italic>
<sub>
<italic>f</italic>
</sub>] which corresponds to the area under the reaction rate curve in this time interval:<disp-formula id="e3">
<mml:math id="m13">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
<label>(3)</label>
</disp-formula>Due to biological and technical variability that can arise from different replicates of the same experiment, we assume that the measured variations in concentrations of the metabolites in <italic>X</italic> are represented by an interval rather than using a fixed number:<disp-formula id="e4">
<mml:math id="m14">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>Furthermore, for the non-measured metabolites, we do not know if their concentration changed or not. Therefore, similarly to the approach of <sc>uFBA</sc> (<xref ref-type="bibr" rid="B2">Bordbar et&#x20;al., 2017</xref>) and their &#x2018;node relaxation&#x2019; to allow for changes in non-measured metabolites, we assume that a variation (<italic>&#x3f5;</italic>) is possible for all non-measured metabolites <inline-formula id="inf11">
<mml:math id="m15">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mo>&#x5c;</mml:mo>
<mml:mi>X</mml:mi>
</mml:math>
</inline-formula>:<disp-formula id="e5">
<mml:math id="m16">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.3333em" class="nbsp"/>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3f5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>Based on these assumptions, we can model the production or consumption of metabolites between two states by the following constraints:<disp-formula id="e6">
<mml:math id="m17">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="right">
<mml:mspace width="1em"/>
<mml:mo>&#x2200;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(6)</label>
</disp-formula>All <italic>&#x3c6;</italic>
<sub>
<italic>j</italic>
</sub> are positive and have an upper bound <italic>u</italic>
<sub>
<italic>j</italic>
</sub>. We have that &#x394;<sup>min</sup> is a vector composed of <inline-formula id="inf12">
<mml:math id="m18">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <italic>&#x3f5;</italic>
<sup>min</sup> while &#x394;<sup>max</sup> is composed of <inline-formula id="inf13">
<mml:math id="m19">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <italic>&#x3f5;</italic>
<sup>max</sup>.</p>
<p>As showed above, in our formulation, the variable <italic>&#x3c6;</italic> can only be zero or have a positive value. For this, we use an additional constraint as explained in <xref ref-type="sec" rid="s2-2">Section 2.2</xref> in order to prevent both forward and reverse senses of reversible reactions from being picked in any given solution. However, this means that we do not know if the activity of the corresponding reaction was increased or decreased during the shift compared to the initial steady state. We only know that if <italic>&#x3c6;</italic>
<sub>
<italic>j</italic>
</sub> is zero in the solution, reaction <italic>j</italic> is proposed as inactive during the shift while if <italic>&#x3c6;</italic>
<sub>
<italic>j</italic>
</sub> has a non-zero value, reaction <italic>j</italic> is proposed as active during the shift. Hence, we are only interested in the reactions that have a non-zero <italic>&#x3c6;</italic> because we want to identify the part of the metabolic network that was active during the metabolic shift. These reactions are represented by the support of the vector <italic>&#x3c6;</italic>.</p>
</sec>
<sec id="s2-2">
<title>2.2 Minimizing the Number of Reactions and the Variation of the Concentrations for the Non-Measured Metabolites</title>
<p>Since the number of possible paths that can explain the measured metabolic shifts can be very large, we will focus on finding the smallest solutions with regard to the number of active reactions that still explain the metabolic shift. This corresponds to the parsimonious assumption that the fewest possible resources are used or the smallest changes are made. Thus, we are interested in identifying minimum sets of reactions that play a major role in the metabolic shift. For each reaction <italic>j</italic>, a binary variable <italic>y</italic>
<sub>
<italic>j</italic>
</sub> is then introduced that is set to zero if and only if the corresponding <italic>&#x3c6;</italic>
<sub>
<italic>j</italic>
</sub> is zero and therefore, the reaction is not part of the solution. In this way, these variables will correspond to the support vector of <italic>&#x3c6;</italic> and it will be sufficient to minimize their sum:<disp-formula id="e7">
<mml:math id="m20">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&#x2194;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="right">
<mml:mo>&#x2200;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(7)</label>
</disp-formula>Additionally, to prevent that both a reaction <italic>j</italic> and its reversible <inline-formula id="inf14">
<mml:math id="m21">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> can be picked at the same time for one solution, the following constraint is used:<disp-formula id="e8">
<mml:math id="m22">
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
<mml:mo>&#x2200;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
<mml:mo>.</mml:mo>
</mml:math>
<label>(8)</label>
</disp-formula>To minimize the number of reactions that are part of the solution, the objective function is written as:<disp-formula id="e9">
<mml:math id="m23">
<mml:mi>min</mml:mi>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>However, we are not only interested in minimizing the number of reactions in the solution but also in minimizing the variation in concentration for the non-measured metabolites <inline-formula id="inf15">
<mml:math id="m24">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>. Since the measured compounds are usually the more important ones for analyzing the biological experiment, it is reasonable to aim for solutions where other compounds do not accumulate or deplete a lot. This leads to the following minimization:<disp-formula id="e10">
<mml:math id="m25">
<mml:mi>min</mml:mi>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>.</mml:mo>
</mml:math>
<label>(10)</label>
</disp-formula>On the other hand, we are trying to explain as much change in the concentration as possible for the measured metabolites:<disp-formula id="e11">
<mml:math id="m26">
<mml:mi>max</mml:mi>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>.</mml:mo>
</mml:math>
<label>(11)</label>
</disp-formula>To combine both ideas in one objective function, a weight <italic>&#x3bb;</italic> is used for both objectives:<disp-formula id="e12">
<mml:math id="m27">
<mml:mi>min</mml:mi>
<mml:mi>&#x3bb;</mml:mi>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>.</mml:mo>
</mml:math>
<label>(12)</label>
</disp-formula>The value for <italic>&#x3bb;</italic> should lie between 0 and 1. Finding a good balance between these two objectives can be challenging but necessary to identify meaningful biological solutions (for a schematic representation of <sc>Totoro</sc>, see <xref ref-type="fig" rid="F1">Figure&#x20;1A</xref>). A toy network example is provided in <xref ref-type="fig" rid="F1">Figure&#x20;1B</xref> to show the influence of parameters <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic> on the solutions. This will be further discussed in the following sections.</p>
<p>Summing up, the mixed-integer linear program (MILP) that is implemented in our software <sc>Totoro</sc> is the following:<disp-formula id="e13">
<mml:math id="m28">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:msub>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
<mml:mi>&#x3bb;</mml:mi>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>X</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="left"/>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>s</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi>t</mml:mi>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2264;</mml:mo>
<mml:mi mathvariant="script">S</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mi>&#x3c6;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="right">
<mml:mo>&#x2200;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&#x2194;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="right">
<mml:mo>&#x2200;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
<mml:mtd columnalign="right">
<mml:mo>&#x2200;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right"/>
<mml:mtd columnalign="left">
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
</sec>
<sec id="s2-3">
<title>2.3 Enumerating Different Solutions</title>
<p>To enumerate different solutions, once a solution is found, it must be excluded for the next iteration. Two solutions are different if they do not contain the same reactions. We are using the following constraint where <italic>y</italic>&#x2a; is a previously found solution vector:<disp-formula id="e14">
<mml:math id="m29">
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
<mml:mo>:</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:math>
<label>(14)</label>
</disp-formula>This prevents that the exact same combination of reactions gets chosen again. Afterwards, we can solve the updated MILP again to compute a different solution. We repeat this process until no more new solutions can be found or until a desired number of solutions has been computed.</p>
</sec>
<sec id="s2-4">
<title>2.4 Dealing With Source/Sink Reactions and Non-Measured Metabolites</title>
<p>Source and sink reaction (i.e.,&#x20;reactions that have only products or only substrates) of the network should be blocked to avoid that changes in the concentration are just transferred outside of the network where they cannot be taken into account by the objective function. However, no information is lost if source and sink reactions are blocked. If the substrates of a sink reaction are accumulated or the products of a source reaction are depleted in a solution, this indicates that the corresponding source/sink reaction is active. Their use is limited by the chosen <italic>&#x3f5;</italic> but it can be set to a very low or large value to imitate an infinite source or sink. Hence, specific sources or sinks can be added to the problem by specifying a large negative &#x394;<sup>min</sup> or a large positive &#x394;<sup>max</sup> for certain metabolites, but the method will remain robust to small variations, as long as the range of this parameter remains within a similar order of magnitude of the values of the measured metabolites.</p>
<p>However, if the minimization of the number of active reactions is prioritized (<italic>&#x3bb;</italic> &#x2248; 1) and the value of <italic>&#x3f5;</italic> for the non-measured metabolites is higher than the one for the measured metabolites, the changes in concentration of the measured metabolites can simply be distributed to (accumulated on or taken from) the nearby non-measured metabolites (<xref ref-type="fig" rid="F1">Figure&#x20;1B</xref>, <italic>&#x3f5;</italic> &#x3e; 0, <italic>&#x3bb;</italic> &#x3d; 0.9) and prevents that larger sub-hypergraphs are chosen (which would instead connect several measured metabolites and explain how the depletion of one measured metabolite leads to the accumulation of another measured metabolite, or vice-versa). However, this can be addressed by decreasing the value of <italic>&#x3bb;</italic> in the objective function and thereby giving more weight to the portion of the function that minimizes the accumulation in non-measured metabolites <xref ref-type="fig" rid="F1">Figure&#x20;1B</xref>, <italic>&#x3f5;</italic> &#x3e; 0, <italic>&#x3bb;</italic> &#x3d; 0.1). This should result in solutions that are larger but that connect the measured metabolites better than when only the number of reactions is minimized. Furthermore, based on other experimental data, the user might choose smaller values of <italic>&#x3f5;</italic>, or constrain it to the highest measured metabolite to further restrict the accumulation/depletion of the non-measured metabolites.</p>
</sec>
</sec>
<sec id="s3">
<title>3 Results</title>
<p>To evaluate our approach, we used data from different pulse experiments with different carbon sources in <italic>E.&#x20;coli</italic> as presented in (<xref ref-type="bibr" rid="B34">Taymaz-Nikerel et&#x20;al., 2013</xref>). The authors measured the internal concentrations for several metabolites for a glucose baseline and for glucose, pyruvate and succinate pulse experiments. These data were used to apply the method on the <italic>E.&#x20;coli</italic> core model (<xref ref-type="bibr" rid="B22">Orth et&#x20;al., 2010</xref>) and the <italic>E.&#x20;coli</italic> iJO1366 model (<xref ref-type="bibr" rid="B21">Orth et&#x20;al., 2011</xref>) available from the BiGG database (<xref ref-type="bibr" rid="B14">King et&#x20;al., 2015b</xref>). The <italic>E.&#x20;coli</italic> core model consists of 72 metabolites and 95 reactions, the <italic>E.&#x20;coli</italic> iJO1366 model of 1,805 metabolites and 2,583 reactions.</p>
<p>We were interested in the difference between the glucose baseline and the pseudo-steady state which was achieved in about 30&#x2013;40s after each pulse. In (<xref ref-type="bibr" rid="B34">Taymaz-Nikerel et&#x20;al., 2013</xref>), the authors provided the internal concentrations for the baseline, including the deviations for their measurements and the fold changes for the three different pseudo-steady states which we used to calculate the internal concentrations for each pseudo-steady state. In (<xref ref-type="bibr" rid="B34">Taymaz-Nikerel et&#x20;al., 2013</xref>), deviations for the measured concentration of the glucose baseline are given that were derived from several replicates of the same experiment. We used them to be able to calculate the minimum difference <inline-formula id="inf16">
<mml:math id="m30">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and maximum difference <inline-formula id="inf17">
<mml:math id="m31">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> in the concentrations between the glucose baseline and each pseudo-steady state. A detailed explanation can be found in the <xref ref-type="sec" rid="s11">Supplementary Material Section S1.1</xref>. The calculated <inline-formula id="inf18">
<mml:math id="m32">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf19">
<mml:math id="m33">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> for all three pulse experiments can be found in the <xref ref-type="sec" rid="s11">Supplementary Tables S1&#x2013;S3</xref>.</p>
<p>We used all measured metabolites that are present in the network and that had a significant change in their concentration as input. It should be noted that a change for each given metabolite must be either positive or negative. For further details, see the <xref ref-type="sec" rid="s11">Supplementary Material Section&#x20;S1.1</xref>.</p>
<p>Furthermore, source and sink reactions cannot be chosen as part of the solution and therefore glucose, pyruvate and succinate were added as sources for the corresponding pulse experiments. Oxygen was added as another source because in (<xref ref-type="bibr" rid="B34">Taymaz-Nikerel et&#x20;al., 2013</xref>), the authors identified increased oxygen uptake rates during the pulse experiment. To allow unlimited growth, the biomass was added as&#x20;sink.</p>
<p>The expected active reactions in the core metabolism of <italic>E.&#x20;coli</italic> are displayed in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref> for each pulse experiment.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Expected active reactions for different pulse experiments. These essential reactions along with their expected directions are highlighted in orange whereas other non-essential reactions (but which nonetheless could be chosen) are depicted in grey. Each pulse is indicated by the short red arrow (Glc: glucose; Pyr: pyruvate and Suc: Succinate). During the glucose pulse, the glycolysis reactions (depicted in green) should be active in order to generate ATP from the hydrolysis of glucose. On the other hand, the pyruvate and succinate pulse experiments should show gluconeogenesis activation (also depicted in green but in the opposite sense), generating glucose-6-phosphate from these two carbon sources. Furthermore, the TCA cycle (depicted in blue) can be fed from pyruvate during the pyruvate and glucose pulses. During the succinate pulse, the overflow in the TCA cycle should lead to the production of pyruvate with a subsequent activation of gluconeogenesis to produce biomass precursors. The pentose phosphate pathway (depicted in purple) is most likely active in all pulses in order to generate biomass precursors; however, since this pathway is a mere interconversion of carbohydrates, there is no particular expectation as to the actual direction of these reactions.</p>
</caption>
<graphic xlink:href="fgene-13-815476-g002.tif"/>
</fig>
<sec id="s3-1">
<title>3.1&#x20;<italic>E.&#x20;coli</italic> Core Model</title>
<p>At first, the method was applied using the <italic>E.&#x20;coli</italic> core model. To better understand how the different parts of our model impacted the solutions, we did several runs with different values for <italic>&#x3bb;</italic> (0.1, 0.5, and 0.9) and <italic>&#x3f5;</italic> (5 and 10) for each pulse experiment. Although a single solution should be enough to identify some pathways responsible for the shift, we wanted to see if we could also obtain alternative pathways. Furthermore, we wanted to investigate how the solutions evolve when they are slightly suboptimal. For each different parameter setting, 100 different solutions were therefore enumerated. The results are displayed using <italic>Escher</italic> (<xref ref-type="bibr" rid="B13">King et&#x20;al., 2015a</xref>) in the Supplementary Figures S1to&#x20;S18.</p>
<p>In general, we could observe that solutions with <italic>&#x3bb;</italic> &#x3d; 0.1 were preferable since usually the goal is to have a final solution which is overall more connected. In this way, we were able to extract connected sub-hypergraphs that resemble complete biological pathways which played a role during the metabolic shifts. This was the case for all three pulse experiments. A higher <italic>&#x3bb;</italic> led to solutions that were less connected since the optimizer prioritizes solutions with fewer active reactions, and depending on the case, it might be harder to interpret these solutions biologically. Nevertheless, the user is able to fine-tune the number of reactions in the final solution and the degree of connectivity (for instance, if the goal is to highlight only parts of the complete metabolic network instead of finding a connected sub-hypergraphs).</p>
<p>By adjusting the parameters <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic>, <sc>Totoro</sc> could propose connected sub-hypergraphs for all three pulse experiments. The predicted solutions did not use co-factors as shortcuts through the network. We therefore did not modify our method further to treat co-factors separately.</p>
<sec id="s3-1-1">
<title>3.1.1 Pyruvate Pulse</title>
<p>For the pyruvate pulse, we expected that the activity of the TCA cycle would increase and that reactions for gluconeogenesis would be active (see <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>). Both observations could be reproduced with a <italic>&#x3bb;</italic> &#x3d; 0.1 (see <xref ref-type="fig" rid="F3">Figure&#x20;3</xref> for a comparison of the values of <italic>&#x3bb;</italic>), while higher values of lambda constrained the solutions locally around the measured metabolites. For <italic>&#x3bb;</italic> &#x3d; 0.9, neither the TCA cycle nor the gluconeogenesis pathway were proposed to be active. Setting <italic>&#x3bb;</italic> to 0.5 already improved the results: the TCA cycle was proposed as active but the complete gluconeogenesis pathway was only recovered in less than 50% of the solutions.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>
<italic>E.&#x20;coli</italic> core model - Results for Gluconeogenesis and TCA Cycle in the pyruvate pulse (red arrow in Pyr) with <italic>&#x3f5;</italic> &#x3d; 5 and varying <italic>&#x3bb;</italic> (0.1, 0.5, and 0.9). The metabolites that were given as input are highlighted in blue if the corresponding input deltas were below zero and red if they were above zero. Reactions that are highlighted in orange were chosen in almost all of the enumerated solutions, while light yellow corresponds to very few occurrences (less than 5%). Reactions in gray were not chosen in any solution. The expected reactions of the gluconeogenesis and part of the TCA cycle are active in all 100 solutions for <italic>&#x3bb;</italic> &#x3d; 0.1. The reversible reactions of the gluconeogenesis were chosen in the correct direction. For simplicity reasons, side compounds and cofactors were excluded from the figure. Abbreviations for metabolites: G6P, glucose-6-phosphate; F6P, fructose-6-phosphate; FDP, fructose-biphosphate; PEP, phosphoenolpyruvate; Pyr, pyruvate; Lac, lactate; For, formate; Mal, malate; Fum, fumarate; Cit, citrate; Icit, isocitrate; Glu, glutamate; Gln, glutamine; Abbreviations for reaction names (_R indicates the reverse direction of a reversible reaction within the original model): G6PDH2r, glucose 6-phosphate dehydrogenase; PGI, glucose-6-phosphate isomerase; FBP, fructose-bisphosphatase; FBA_R, fructose-bisphosphate aldolase; TPI, triose-phosphate isomerase; GAPD, glyceraldehyde-3-phosphate dehydrogenase; PGK, phosphoglycerate kinase; PGM, phosphoglycerate mutase; ENO, enolase; PPS, phosphoenolpyruvate synthase; LDH, D-lactate dehydrogenase; PFL, pyruvate formate lyase; PPC, phosphoenolpyruvate carboxylase; PDH, pyruvate dehydrogenase; CS, citrate synthase; ACONTa, Aconitase (half reaction A); ACONTb, Aconitase (half reaction B); ICDHyr, Isocitrate dehydrogenase; AKGDH, 2-Oxoglutarate dehydrogenase; SUCOAS, Succinyl-CoA synthetase; SUCDi, Succinate dehydrogenase; FUM, fumarase; MDH, malate dehydrogenase; ICL, isocitrate lyase; MALS, malate synthase; GLUDy, glutamate dehydrogenase; GLUSy, glutamate synthase; GLUN, glutaminase.</p>
</caption>
<graphic xlink:href="fgene-13-815476-g003.tif"/>
</fig>
<p>The four measured metabolites citrate, isocitrate, L-malate and fumarate had positive input deltas and could thus be used as sinks. The results showed how the TCA cycle can be fed from pyruvate either by the phosphoenolpyruvate carboxylase (PPC) or by the combination of pyruvate dehydrogenase (PDH) and citrate synthase (CS). Furthermore, the pathway from pyruvate to glucose 6-phosphate (G6P) was active in 100% of solutions for <italic>&#x3bb;</italic> &#x3d; 0.1. The pathway from pyruvate to G6P contains nine reactions including seven reversible ones: glucose-6-phosphate isomerase (PGI), fructose-bisphosphate aldolase (FBA_R), triose isomerase (TPI), glyceraldehyde-3-phosphate dehydrogenase (GAPD), phosphoglycerate kinase (PGK), phosphoglycerate mutase (PGM) and enolase (ENO). Especially here, it is important to state that all these reversible reactions were predicted in the correct direction going from pyruvate towards G6P. The core network results can be seen in <xref ref-type="sec" rid="s11">Supplementary Figures S1&#x2013;S6</xref>, with varying <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic>. These figures were created using <italic>Escher</italic> (<xref ref-type="bibr" rid="B13">King et&#x20;al., 2015a</xref>).</p>
<p>We do not fix the objective value in our optimization problem after obtaining the first solution but in every iteration, the minimization problem is solved again after excluding the newly found solution. This means that the next solution can have the same objective value but it is also possible that the objective value is worse than in the previous iteration. In this particular case, the 100th solution had an objective value that was only 5.5% worse than the objective value of the first solution (see <xref ref-type="table" rid="T1">Table&#x20;1</xref>) which shows that, as concerns optimality, all 100 solutions were very similar. They also had very similar active reactions. Comparing the 100 enumerated solutions for <italic>&#x3bb;</italic> &#x3d; 0.1 and <italic>&#x3f5;</italic> &#x3d; 5, a total of 43 reactions with a specific direction were chosen in all solutions. Out of these 43 reactions, 24 were chosen in every solution (including reactions in the TCA cycle and the gluconeogenesis pathway). This means that certain core pathways were consistently picked also in slightly suboptimal solutions. Looking at only the ten best solutions, already 38 out of the 43 reactions were identified. The missing reactions were mostly part of the pentose phosphate pathway which also contains reactions that were part of the solution only in a few cases. Even with only ten solutions, we were able to obtain the alternative pathways feeding the TCA cycle (PPC/PDH). This indicates that it is not necessary to enumerate a large amount of solutions to get significant results and to identify alternative biological pathways.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparison of different objective values for the best runs for each experiment. Since we are not fixing the objective value of the first solution in our optimization problem, the objective values for the subsequent solutions can be worse. In this table, we are comparing the difference in the objective values between the first solution and the 100th solution. In addition to the absolute differences, also the percentage of how much the objective value worsened compared to the first solution is displayed. The underlying optimization problem is a minimization problem. Therefore, smaller objective values are better.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Pulse experiment</th>
<th align="center">1st sol.</th>
<th align="center">100th sol.</th>
<th align="center">Abs. diff.</th>
<th align="center">%</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Pyruvate (<italic>&#x3bb;</italic> &#x3d; 0.1, <italic>&#x3f5;</italic> &#x3d; 5)</td>
<td align="center">&#x2212;32.139&#x2009;4</td>
<td align="center">&#x2212;30.663&#x2009;5</td>
<td align="char" char=".">1.48</td>
<td align="char" char=".">5.5</td>
</tr>
<tr>
<td align="left">Glucose (<italic>&#x3bb;</italic> &#x3d; 0.1, <italic>&#x3f5;</italic> &#x3d; 1.2)</td>
<td align="center">5.383&#x2009;0</td>
<td align="center">6.558&#x2009;2</td>
<td align="char" char=".">1.18</td>
<td align="char" char=".">21.8</td>
</tr>
<tr>
<td align="left">Succinate (<italic>&#x3bb;</italic> &#x3d; 0.1, <italic>&#x3f5;</italic> &#x3d; 5)</td>
<td align="center">&#x2212;158.177&#x2009;0</td>
<td align="center">&#x2212;157.576&#x2009;0</td>
<td align="char" char=".">0.60</td>
<td align="char" char=".">0.4</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To check the robustness of the method against small perturbations, we tested within the pyruvate pulse the results of <sc>Totoro</sc> for the values of <italic>&#x3bb;</italic> &#x3d; 0.1 and 0.9, excluding one metabolite at a time, recomputing the results, and computing the distances to the results on the complete metabolite set for reaction occurrence (in terms of absolute difference of occurrences). Overall, the results for both <italic>&#x3bb;</italic> &#x3d; 0.1 and 0.9 differed from less than 5% to around 20%. In general, the results were robust (<inline-formula id="inf20">
<mml:math id="m34">
<mml:mo>&#x3c;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mi>%</mml:mi>
</mml:math>
</inline-formula> in average distance) for 70&#x2013;80% of the metabolites tested (with <italic>&#x3bb;</italic> &#x3d; 0.1, and 0.9, respectively), but we noticed that excluding metabolites with a higher neighborhood connectivity (such as glutamate and glutamine) had a greater impact on the final results. These results show that even though the distances were small, the amount of information provided by different metabolites varied widely.</p>
<p>Moreover, we tested 10 random sets of measured metabolites (<xref ref-type="sec" rid="s11">Supplementary Tables S4, S5</xref>), with a varying number of excluded metabolites to detect at which point the method would not behave as with the complete dataset. In accordance with the previous results for single exclusions, and within the tests with less than 50% of the measured metabolites excluded, the smallest distance <inline-formula id="inf21">
<mml:math id="m35">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mi>%</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> to the complete results came from a random dataset which included glutamate, glutamine and pyruvate (to ensure the carbon source uptake). As expected, when more than 50% of the measured metabolites were excluded, we detected a much higher difference <inline-formula id="inf22">
<mml:math id="m36">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mo>&#x2248;</mml:mo>
<mml:mn>40</mml:mn>
<mml:mi>%</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> between the results from the complete dataset and those from the random datasets.</p>
</sec>
<sec id="s3-1-2">
<title>3.1.2 Glucose Pulse</title>
<p>For the glucose pulse, we expected that reactions that are part of the glycolysis pathway would be active as they convert glucose into pyruvate generating energy. Consequently, the TCA cycle should also be fed (see <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>). For <italic>&#x3bb;</italic> &#x3d; 0.9 and 0.5, the active reactions proposed by <sc>Totoro</sc> were disconnected and it was not possible to identify active pathways. We believe that the results coming from this pulse were less insightful since the bacteria were already grown in glucose prior to the pulse, which in turn might be a reason why the changes in metabolites were not as informative as the other pulses. This was for the most part corrected if more metabolites were added as input to <sc>Totoro</sc> when using the complete network as presented in <xref ref-type="sec" rid="s3-2">Section 3.2</xref>. This also shows the importance of careful experimental design and how subtle perturbations may generate results that are not always homogeneous.</p>
<p>Even for <italic>&#x3bb;</italic> &#x3d; 0.1 and <italic>&#x3f5;</italic> &#x3d; 5, only disconnected parts of the network were active (see <xref ref-type="sec" rid="s11">Supplementary Figure S9</xref>). Since we were interested in testing the method to obtain more connected sub-hypergraphs, we decided to fine-tune the solutions by lowering the value of <italic>&#x3f5;</italic> as much as possible. The result for <italic>&#x3f5;</italic> &#x3d; 2 and 1.2 can be found in <xref ref-type="sec" rid="s11">Supplementary Figures S10, S11</xref>, respectively. Lowering the value of <italic>&#x3f5;</italic> to 1.1 rendered the underlying optimization problem infeasible. For <italic>&#x3f5;</italic> &#x3d; 1.2, we got solutions that linked intermediate metabolites of the glycolysis pathway to the TCA cycle through the PPC reaction. In some solutions, the TCA cycle was also fed by PDH and CS to account for the accumulation of citrate. As previously mentioned, when the solutions are disconnected and this is unwanted, decreasing the value of <italic>&#x3f5;</italic> can sometimes help to obtain more connected solutions. However, this should be used carefully in order to avoid linking unrelated and distant metabolites, which might not be meaningful biologically.</p>
<p>The 100 solutions were very similar (<italic>&#x3bb;</italic> &#x3d; 0.1, <italic>&#x3f5;</italic> &#x3d; 1.2). They accounted for a total of 47 reactions (with distinct directions) and 30 of these appeared in all solutions. Similarly to the pyruvate pulse, the difference in these solutions were mostly based on a few reactions that are not part of the main pathways (glycolysis/TCA cycle). One critical observation is that the D-glucose transport reaction (GLCpts) was not part of every solution although glucose should be used as important source. As previously mentioned, the bacteria were already grown in glucose prior to the glucose pulse, which is possibly a reason why glucose was already internalized prior to the initial pulse. When comparing the objective values for these 100 solutions, the absolute difference between the first solution and the 100th one was similar to the one observed for the pyruvate pulse (see <xref ref-type="table" rid="T1">Table&#x20;1</xref>). However, proportionally this value was 21.8% worse than for the first solution. When we repeated the run for <italic>&#x3bb;</italic> &#x3d; 0.1 and <italic>&#x3f5;</italic> &#x3d; 1.2 with 50 iterations, the D-glucose transport reaction was part of 42 solutions. For ten iterations, this reaction was picked in all ten solutions. Hence, the glucose transport reaction was active in solutions with the best objective values. This showed that although the solutions remained very similar, there was a decline in their quality. And similarly to the pyruvate pulse, we saw that it is not necessary to enumerate a large amount of solutions.</p>
</sec>
<sec id="s3-1-3">
<title>3.1.3 Succinate Pulse</title>
<p>After the succinate pulse, part of the TCA cycle should always be active. Furthermore, the gluconeogenesis pathway should be active to produce G3P and glucose-6-phosphate from succinate. Again, the results for <italic>&#x3bb;</italic> &#x3d; 0.5 and 0.9 led to smaller solutions that were more disconnected (see <xref ref-type="sec" rid="s11">Supplementary Figures S13&#x2013;S16</xref>). Therefore, we focused on the analysis of the results for <italic>&#x3bb;</italic> &#x3d; 0.1 (see <xref ref-type="sec" rid="s11">Supplementary Figures S17, S18</xref>). For both <italic>&#x3f5;</italic> &#x3d; 5 and 10, succinate entered the TCA cycle and turned into oxaloacetate. <sc>Totoro</sc> proposed two possibilities to output the excess of the TCA cycle: Either phosphoenolpyruvate (PEP) was produced by PEP carboxykinase (PPCK) or by PEP synthase (PPS) using pyruvate as intermediate substrate. Subsequently, PEP was, as expected, transformed to G3P. The lower right part of the TCA cycle predicted as active can be explained by the fact that the concentration of L-glutamate decreased and the concentration of citrate increased. The active reaction in this part connected these two metabolites. Furthermore, reactions of the pentose phosphate pathway were proposed as active and the biomass precursors R5P, E4P, and G3P were produced.</p>
<p>The results for <italic>&#x3f5;</italic> &#x3d; 5 and 10 were very similar. For example, one difference was that for <italic>&#x3f5;</italic> &#x3d; 10, the reverse D-lactate dehydrogenase (LDH) was predicted to be active in 56 solutions which led to a small accumulation of D-lactate. It does make sense biologically because in general, D-lactate is one of the main products of the fermentation but we do not have the measurements for the concentration of D-lactate for this pulse experiment to actually verify this observation. However, in total, the differences were negligible and in contrast to the glucose pulse, the parameter <italic>&#x3f5;</italic> had a lower impact on the outcome.</p>
<p>Again, the core reactions of all 100 solutions were very similar. In total, 41 reactions (with distinct directions) appeared in all 100 solutions (for <italic>&#x3bb;</italic> &#x3d; 0.1, <italic>&#x3f5;</italic> &#x3d; 5). We observed that 22 of these were always active (mostly in the gluconeogenesis pathway and part of the TCA cycle). The objective values for all 100 solutions were extremely close (see <xref ref-type="table" rid="T1">Table&#x20;1</xref>).</p>
</sec>
</sec>
<sec id="s3-2">
<title>3.2&#x20;<italic>E.&#x20;coli</italic> iJO1366 Model</title>
<p>Based on the results for the <italic>E.&#x20;coli</italic> core model, we only did runs with <italic>&#x3bb;</italic> &#x3d; 0.1 for the <italic>E.&#x20;coli</italic> iJO1366 model. The inputs were updated because this network contains more metabolites and therefore, more measured metabolites could be added. The amount of iterations was decreased to ten because the runtime in the larger network is significantly higher and we had already established in the core model that it was not necessary to enumerate a larger amount of solutions. To decrease the runtime for each solution, CPLEX was configured differently. The relative MIP gap tolerance was set to 0.05 which means that the solver will stop an iteration if a solution is found that is within 5% of the optimal. This allows for a faster result and we could see in the core model that the first 100 solutions tended to be very similar. This means that even if we are enumerating slightly suboptimal solutions, we should be able to compute solutions that are very similar to the actual optimal solution. If the 5% limit is not reached after 48&#xa0;h, the iteration is stopped. The memory usage of CPLEX was limited to 10&#x20;GB.</p>
<p>The runtime for the different pulse experiments differed a lot. The results for the pyruvate and glucose pulses were computed on a cluster. For the pyruvate pulse, the 5% limit was reached only in three iterations (see <xref ref-type="sec" rid="s11">Supplementary Table S6</xref>). All other iterations were stopped after 48&#xa0;h. However, all solutions obtained were within 7% of the optimum. Thus, we still took them into account when analyzing the predicted active reactions. In none of the iterations for the glucose pulse, the 5% limit was reached. The obtained solutions were within 8.5% of the optimal value (see <xref ref-type="sec" rid="s11">Supplementary Table&#x20;S7</xref>).</p>
<p>In contrast to the pyruvate and the glucose pulses, the 5% limit was reached in all iterations for the succinate pulse and computing all ten solutions took less than 5&#xa0;min on a personal machine (2.90&#xa0;GHz Intel i7-7820HQ CPU, 16 GB RAM). This shows that the constraints describing the input deltas in the MILP have a large influence on the difficulty of the optimization problem, and thus also on the runtime.</p>
<p>However, although the obtained solutions were suboptimal, the active reactions predicted by <sc>Totoro</sc> for the core metabolism were similar to the best results of the <italic>E.&#x20;coli</italic> core model for all three pulse experiments. For instance, in the pyruvate pulse results, out of 12 reactions in the TCA cycle within the large network, 8 were also present in the core model. In total, 5 were chosen in 100% of the solutions in the same direction in both core and large networks. The complete network was also able to correct the only inconsistency within the TCA cycle for the core network: the direction of the reaction ICDHyr, which shows the advantage of relying on complete networks whenever available. For the glycolysis/gluconeogenesis pathways, out of 12 reactions, 9 were also included in the core model. In total, 6 reactions were chosen in 100% and 1 in more than 80% of the solutions in the same direction in both networks. <sc>Totoro</sc> predicted as active for pyruvate, glucose and succinate (in at least 1 solution) a total of 221, 284, and 189 reactions respectively. Moreover, 52% of the reactions were chosen across all iterations in the pyruvate pulse dataset, 81% in the succinate pulse dataset and 62% in the glucose pulse dataset.</p>
<p>The additional measurements that were added as input deltas for the large network were mostly amino acids (see <xref ref-type="sec" rid="s11">Supplementary Tables S1&#x2013;S3</xref>). In (<xref ref-type="bibr" rid="B36">Waschina et&#x20;al., 2016</xref>), the authors show for the example of amino acid production in <italic>E.&#x20;coli</italic> how the production cost for individual amino acids can depend on the available carbon source, and reactions close to the entry point of the carbon source might have considerably higher fluxes. A schematic representation of this is provided in <xref ref-type="fig" rid="F4">Figure&#x20;4A</xref>. Indeed, from the experimental data, alanine and valine only accumulated during the pyruvate pulse, and were depleted with the other two carbon sources. Pyruvate is a direct precursor for valine production. We therefore expected that reactions of the alanine and valine biosynthesis should play a greater role in the predicted results for pyruvate compared to the other two pulses. <sc>Totoro</sc> predicted an activation of the pathway from pyruvate to alanine and valine, which resulted in the accumulation of these amino acids (<xref ref-type="fig" rid="F4">Figure&#x20;4B</xref>). In accordance with the predictions in (<xref ref-type="bibr" rid="B36">Waschina et&#x20;al., 2016</xref>), another example is the accumulation of threonine during the succinate pulse. Threonine and succinate are closely connected, and <sc>Totoro</sc> predicted active reactions leading to its biosynthesis and accumulation in the succinate pulse (<xref ref-type="fig" rid="F4">Figure&#x20;4B</xref>). Compared to the results for succinate, <sc>Totoro</sc> predicted more active reactions consuming threonine during the glucose pulse, and no reactions producing it in the pyruvate pulse, resulting in the depletion of this amino acid with those carbon sources. Moreover, only during the glucose pulse, phenylalanine was accumulated, and <sc>Totoro</sc> proposed the complete pathway for the phenylalanine biosynthesis as active when compared to the pyruvate and succinate pulses (<xref ref-type="fig" rid="F4">Figure&#x20;4B</xref>), in accordance with the predictions in (<xref ref-type="bibr" rid="B36">Waschina et&#x20;al., 2016</xref>) of lower cost to produce this amino acid with glucose as carbon source.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Amino acid biosynthesis in the <italic>E.&#x20;coli</italic> iJO1366 model. <bold>(A)</bold> Schematic representation of carbon sources with closely related amino acids. Glycolysis/Gluconeogenesis in green; TCA cycle in blue and Pentose Phosphate Pathway in purple. <bold>(B)</bold> <sc>Totoro</sc> results explaining the accumulation of valine (Val) and alanine (Ala) in the pyruvate (Pyr) pulse; accumulation of phenylalanine (Phe) from the glucose (Glc) pulse and accumulation of threonine (Thr) from the succinate (Succ) pulse. For simplicity reasons, side compounds and cofactors were excluded from the figure. Dashed arrows indicate several reactions from the shikimate and chorismate pathways. Abbreviations for reaction names are as follows: VALTA, valine transaminase; VPAMTr, valine-pyruvate aminotransferase; CHORM, chorismate mutase; PPNDH, prephenate dehydratase; PHETA1, phenylalanine transaminase; ASPTA, aspartate transaminase; ASPK, aspartate kinase; ASAD, aspartate-semialdehyde dehydrogenase; HSDy, homoserine dehydrogenase; HSK, homoserine kinase; THRS, threonine synthase; THRD_L, L-threonine deaminase.</p>
</caption>
<graphic xlink:href="fgene-13-815476-g004.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Discussion</title>
<p>
<sc>Totoro</sc> was able to predict expected pathways as active based on the differences in the measured concentrations for some internal metabolites for both the <italic>E.&#x20;coli</italic> core and complete models. We show that in general, it is preferable to use smaller values of <italic>&#x3bb;</italic> (e.g., <italic>&#x3bb;</italic> &#x3d; 0.1) though the method is not critically sensible to this setup, being robust to small perturbations. However, it is worth noting that a higher <italic>&#x3bb;</italic> can lead to smaller solutions which might be biologically irrelevant. Here, we focused in extracting connected sub-hypergraphs that explained the changes in concentration between two different conditions. We also show that a reduction of <italic>&#x3f5;</italic> can also be used to obtain more connected solutions. However, there might be situations where the user might be interested in only local changes around the measurements. In this context, it might be advantageous to choose higher values for <italic>&#x3bb;</italic> and <italic>&#x3f5;</italic>. We did not encounter problems specific to co-factors which is a known problem when looking for shortest paths in metabolic networks. This is probably due to the fact that we are not only minimizing the number of active reactions in the solutions but also focusing on the changes in the metabolite concentrations. By splitting reversible reactions, <sc>Totoro</sc> was able to predict distinct directions for&#x20;them.</p>
<p>Both in the core network and in the larger network, we were able to recover biologically meaningful pathways. Additionally, although the larger network contains more reactions and we added more input deltas, the predictions for the core metabolism of <italic>E.&#x20;coli</italic> were fairly similar to the results for the core network. We also showed a particular case in which the perturbation was subtle, and the results from the complete model were more insightful than the ones from the core model. It must be however noted that the predictions do depend on the measured metabolites. If for large parts of the network, no metabolite concentrations are measured, <sc>Totoro</sc> will likely not be able to find active pathways for these parts of the network.</p>
<p>Moreover, we could also see that it is not necessary to enumerate a high number of solutions which is especially important when larger networks are used and the runtime of <sc>Tororo</sc> increases. We enumerated 100 different solutions for the core network. However, in our case, the enumerated solutions were very similar and a large amount of reactions appeared in all 100 solutions. Therefore, already one (or few) solution(s) would have been sufficient to infer the most important reactions that were proposed to be active.</p>
</sec>
<sec id="s5">
<title>5 Conclusion</title>
<p>In this paper, we presented <sc>Totoro</sc>, a method that identifies active reactions during the transient state based on the differences in the concentrations for some measured metabolites from two different conditions and we showed its prediction power on the example of different pulse experiments in <italic>E.&#x20;coli</italic>. It is important to note that even though we provided several biologically trivial results, <sc>Totoro</sc> only used metabolomic data as basis for these predictions, without any other source of bias such as defined metabolic pathways. Our method was also able to handle full networks which take into account model stoichiometry, and we did not perform any type of filtering for cycles, reversible reactions or co-factors.</p>
<p>With the current technologies, it gets more common to have different kinds of data available which creates a need for methods that combine, for instance, metabolomic, transcriptomic and proteomic data. We have recently developed a method for integration of metabolic networks and transcriptomic data (<xref ref-type="bibr" rid="B26">Pusa et&#x20;al., 2019</xref>) and we intend in the future to adapt our approaches to be able to integrate multiple kinds of omic data, similarly to what was proposed in (<xref ref-type="bibr" rid="B24">Pandey et&#x20;al., 2019</xref>) for thermodynamic, transcriptomic and metabolomic data, and in (<xref ref-type="bibr" rid="B16">Kleessen et&#x20;al., 2015</xref>) for transcriptomic and metabolomic data. On a larger scale, it might be interesting also to consider whether some measures used in (hyper)graph theory such as connectivity or (hyper)path length might be related to the parameters used and thus provide an automatic and perhaps more reliable way of setting them. Notice that achieving this would be even more challenging in the case of hypergraphs for which such measures might have to be adapted.</p>
</sec>
</body>
<back>
<sec id="s6">
<title>Data Availability Statement</title>
<p>The original contributions presented in the study are included in the article/<xref ref-type="sec" rid="s11">Supplementary Material</xref>, further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>M-FS, AJ-L, RA, MF, SV: Conception of the work; IZ, RA, AJ-L, AM, LD, RC: Constructed the code; MF, IZ, RA: Analysis of datasets; IZ, MF, AJ-L, M-FS: Wrote the manuscript with input of other authors; All authors approved the last version of the manuscript.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>This work was supported by a postdoctoral fellowship from the Agence Nationale de la Recherche (ANR-GREEN 17_CE20_0031_01) granted to MF; Funda&#xe7;&#xe3;o para a Ci&#x1ebd;ncia e a Tecnologia (UIDB/50021/2020); Funda&#xe7;&#xe3;o de Amparo &#xe0; Pesquisa do Estado de S&#xe3;o Paulo (&#x23;15/13430-9, &#x23;15/22308-2) and was part of a PhD funded by Inria. This project has received funding from the European Union&#x2019;s Horizon 2020 research and innovation programme under grant agreement No. 951970 (OLISSIPO project).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of Interest</title>
<p>Author AJ-L was employed by Soladis&#x20;GmBH.</p>
<p>The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ack>
<p>This work was performed using the computing facilities of the CC LBBE/PRABI.</p>
</ack>
<sec id="s11">
<title>Supplementary Material</title>
<p>The Supplementary Material for this article can be found online at: <ext-link ext-link-type="uri" xlink:href="https://www.frontiersin.org/articles/10.3389/fgene.2022.815476/full#supplementary-material">https://www.frontiersin.org/articles/10.3389/fgene.2022.815476/full&#x23;supplementary-material</ext-link>
</p>
<supplementary-material xlink:href="DataSheet1.pdf" id="SM1" mimetype="application/pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Acu&#xf1;a</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Birmel&#xe9;</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Cottret</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Crescenzi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Jourdan</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Lacroix</surname>
<given-names>V.</given-names>
</name>
<etal/>
</person-group> (<year>2012</year>). <article-title>Telling Stories: Enumerating Maximal Directed Acyclic Graphs with a Constrained Set of Sources and Targets</article-title>. <source>Theor. Computer Sci.</source> <volume>457</volume>, <fpage>1</fpage>&#x2013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1016/j.tcs.2012.07.023</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bordbar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Yurkovich</surname>
<given-names>J.&#x20;T.</given-names>
</name>
<name>
<surname>Paglia</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Rolfsson</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Sigurj&#xf3;nsson</surname>
<given-names>&#xd3;. E.</given-names>
</name>
<name>
<surname>Palsson</surname>
<given-names>B. O.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Elucidating Dynamic Metabolic Physiology through Network Integration of Quantitative Time-Course Metabolomics</article-title>. <source>Sci. Rep.</source> <volume>7</volume>, <fpage>46249</fpage>. <pub-id pub-id-type="doi">10.1038/srep46249</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cambiaghi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ferrario</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Masseroli</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Analysis of Metabolomic Data: Tools, Current Strategies and Future Challenges for Omics Data Integration</article-title>. <source>Brief Bioinform.</source> <volume>18</volume>, <fpage>bbw031</fpage>&#x2013;<lpage>510</lpage>. <pub-id pub-id-type="doi">10.1093/bib/bbw031</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Case</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Lutz</surname>
<given-names>J.&#x20;H.</given-names>
</name>
<name>
<surname>Stull</surname>
<given-names>D. M.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Reachability Problems for Continuous Chemical Reaction Networks</article-title>,&#x201d; in <conf-name>International Conference on Unconventional Computation and Natural Computation</conf-name> (<publisher-name>Springer</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>10</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-41312-9_1</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chong</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Soufan</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Caraus</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Bourque</surname>
<given-names>G.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>MetaboAnalyst 4.0: towards More Transparent and Integrative Metabolomics Analysis</article-title>. <source>Nucleic Acids Res.</source> <volume>46</volume>, <fpage>W486</fpage>&#x2013;<lpage>W494</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gky310</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Christensen</surname>
<given-names>C. D.</given-names>
</name>
<name>
<surname>Hofmeyr</surname>
<given-names>J.-H. S.</given-names>
</name>
<name>
<surname>Rohwer</surname>
<given-names>J.&#x20;M.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Tracing Regulatory Routes in Metabolism Using Generalised Supply-Demand Analysis</article-title>. <source>BMC Syst. Biol.</source> <volume>9</volume>, <fpage>89</fpage>. <pub-id pub-id-type="doi">10.1186/s12918-015-0236-1</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cottret</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Frainay</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Chazalviel</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Cabanettes</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Gloaguen</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Camenen</surname>
<given-names>E.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Metexplore: Collaborative Edition and Exploration of Metabolic Networks</article-title>. <source>Nucleic Acids Res.</source> <volume>46</volume>, <fpage>W495</fpage>&#x2013;<lpage>W502</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gky301</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Covert</surname>
<given-names>M. W.</given-names>
</name>
<name>
<surname>Palsson</surname>
<given-names>B. O.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Constraints-based Models: Regulation of Gene Expression Reduces the Steady-State Solution Space</article-title>. <source>J.&#x20;Theor. Biol.</source> <volume>221</volume>, <fpage>309</fpage>&#x2013;<lpage>325</lpage>. <pub-id pub-id-type="doi">10.1006/jtbi.2003.3071</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Frainay</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Aros</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Chazalviel</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Garcia</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Vinson</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>N.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Metaborank: Network-Based Recommendation System to Interpret and Enrich Metabolomics Results</article-title>. <source>Bioinformatics.</source> <volume>35</volume>, <fpage>274</fpage>&#x2013;<lpage>283</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/bty577</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Frainay</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Jourdan</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Computational Methods to Identify Metabolic Sub-networks Based on Metabolomic Profiles</article-title>. <source>Brief Bioinform.</source> <volume>18</volume>, <fpage>43</fpage>&#x2013;<lpage>56</lpage>. <pub-id pub-id-type="doi">10.1093/bib/bbv115</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ginsburg</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Caveat Emptor: Limitations of the Automated Reconstruction of Metabolic Pathways in Plasmodium</article-title>. <source>Trends Parasitology.</source> <volume>25</volume>, <fpage>37</fpage>&#x2013;<lpage>43</lpage>. <pub-id pub-id-type="doi">10.1016/j.pt.2008.08.012</pub-id> </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ivanisevic</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Want</surname>
<given-names>E. J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>From Samples to Insights into Metabolism: Uncovering Biologically Relevant Information in Lc-Hrms Metabolomics Data</article-title>. <source>Metabolites.</source> <volume>9</volume>, <fpage>308</fpage>. <pub-id pub-id-type="doi">10.3390/metabo9120308</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>King</surname>
<given-names>Z. A.</given-names>
</name>
<name>
<surname>Dr&#xe4;ger</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Ebrahim</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sonnenschein</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Lewis</surname>
<given-names>N. E.</given-names>
</name>
<name>
<surname>Palsson</surname>
<given-names>B. O.</given-names>
</name>
</person-group> (<year>2015a</year>). <article-title>Escher: a Web Application for Building, Sharing, and Embedding Data-Rich Visualizations of Biological Pathways</article-title>. <source>Plos Comput. Biol.</source> <volume>11</volume>, <fpage>e1004321</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1004321</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>King</surname>
<given-names>Z. A.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Dr&#xe4;ger</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Miller</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Federowicz</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lerman</surname>
<given-names>J.&#x20;A.</given-names>
</name>
<etal/>
</person-group> (<year>2015b</year>). <article-title>BiGG Models: A Platform for Integrating, Standardizing and Sharing Genome-Scale Models</article-title>. <source>Nucleic Acids Res.</source> <volume>44</volume>, <fpage>D515</fpage>&#x2013;<lpage>D522</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gkv1049</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Klamt</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>H&#xe4;dicke</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>von Kamp</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>Stoichiometric and Constraint-Based Analysis of Biochemical Reaction Networks</article-title>,&#x201d; in <conf-name>Large-scale networks in engineering and life sciences</conf-name> (<publisher-name>Springer</publisher-name>), <fpage>263</fpage>&#x2013;<lpage>316</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-319-08437-4_5</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kleessen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Irgang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Klie</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Giavalisco</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Nikoloski</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Integration of Transcriptomics and Metabolomics Data Specifies the Metabolic Response of Chlamydomonas to Rapamycin Treatment</article-title>. <source>Plant J.</source> <volume>81</volume>, <fpage>822</fpage>&#x2013;<lpage>835</lpage>. <pub-id pub-id-type="doi">10.1111/tpj.12763</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kuo</surname>
<given-names>T.-C.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>T.-F.</given-names>
</name>
<name>
<surname>Tseng</surname>
<given-names>Y. J.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>3omics: a Web-Based Systems Biology Tool for Analysis, Integration and Visualization of Human Transcriptomic, Proteomic and Metabolomic Data</article-title>. <source>BMC Syst. Biol.</source> <volume>7</volume>, <fpage>64</fpage>. <pub-id pub-id-type="doi">10.1186/1752-0509-7-64</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mahadevan</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Edwards</surname>
<given-names>J.&#x20;S.</given-names>
</name>
<name>
<surname>Doyle</surname>
<given-names>F. J.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Dynamic Flux Balance Analysis of Diauxic Growth in <italic>Escherichia coli</italic>
</article-title>. <source>Biophysical J.</source> <volume>83</volume>, <fpage>1331</fpage>&#x2013;<lpage>1340</lpage>. <pub-id pub-id-type="doi">10.1016/s0006-3495(02)73903-9</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Marco-Ramell</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Palau-Rodriguez</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Alay</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tulipani</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Urpi-Sarda</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sanchez-Pla</surname>
<given-names>A.</given-names>
</name>
<etal/>
</person-group> (<year>2018</year>). <article-title>Evaluation and Comparison of Bioinformatic Tools for the Enrichment Analysis of Metabolomics Data</article-title>. <source>BMC bioinformatics.</source> <volume>19</volume>, <fpage>1</fpage>. <pub-id pub-id-type="doi">10.1186/s12859-017-2006-0</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Milreu</surname>
<given-names>P. V.</given-names>
</name>
<name>
<surname>Klein</surname>
<given-names>C. C.</given-names>
</name>
<name>
<surname>Cottret</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Acu&#xf1;a</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Birmel&#xe9;</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Borassi</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <article-title>Telling Metabolic Stories to Explore Metabolomics Data: a Case Study on the Yeast Response to Cadmium Exposure</article-title>. <source>Bioinformatics.</source> <volume>30</volume>, <fpage>61</fpage>&#x2013;<lpage>70</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btt597</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Orth</surname>
<given-names>J.&#x20;D.</given-names>
</name>
<name>
<surname>Conrad</surname>
<given-names>T. M.</given-names>
</name>
<name>
<surname>Na</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Lerman</surname>
<given-names>J.&#x20;A.</given-names>
</name>
<name>
<surname>Nam</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Feist</surname>
<given-names>A. M.</given-names>
</name>
<etal/>
</person-group> (<year>2011</year>). <article-title>A Comprehensive Genome&#x2010;scale Reconstruction of <italic>Escherichia coli</italic> Metabolism-2011</article-title>. <source>Mol. Syst. Biol.</source> <volume>7</volume>, <fpage>535</fpage>. <pub-id pub-id-type="doi">10.1038/msb.2011.65</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Orth</surname>
<given-names>J.&#x20;D.</given-names>
</name>
<name>
<surname>Fleming</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Palsson</surname>
<given-names>B. O.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Reconstruction and Use of Microbial Metabolic Networks: the Core escherichia Coli Metabolic Model as an Educational Guide</article-title>. <source>EcoSal plus.</source> <volume>4</volume> (<issue>1</issue>). <pub-id pub-id-type="doi">10.1128/ecosalplus.10.2.1</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Palsson</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>The Challenges of In Silico Biology</article-title>. <source>Nat. Biotechnol.</source> <volume>18</volume>, <fpage>1147</fpage>&#x2013;<lpage>1150</lpage>. <pub-id pub-id-type="doi">10.1038/81125</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pandey</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Hadadi</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Hatzimanikatis</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Enhanced Flux Prediction by Integrating Relative Expression and Relative Metabolite Abundance into Thermodynamically Consistent Metabolic Models</article-title>. <source>Plos Comput. Biol.</source> <volume>15</volume>, <fpage>e1007036</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1007036</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Perez de Souza</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Alseekh</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Brotman</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Fernie</surname>
<given-names>A. R.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Network Based Strategies in Metabolomics Data Analysis and Interpretation: from Molecular Networking to Biological Interpretation</article-title>. <source>Expert Rev. Proteomics</source> <volume>17</volume> (<issue>4</issue>), <fpage>243</fpage>&#x2013;<lpage>255</lpage>. <pub-id pub-id-type="doi">10.1080/14789450.2020.1766975</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pusa</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Ferrarini</surname>
<given-names>M. G.</given-names>
</name>
<name>
<surname>Andrade</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Mary</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Marchetti-Spaccamela</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Stougie</surname>
<given-names>L.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>MOOMIN - Mathematical explOration of &#x27;Omics Data on a MetabolIc Network</article-title>. <source>Bioinformatics.</source> <volume>36</volume>, <fpage>514</fpage>&#x2013;<lpage>523</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btz584</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reznik</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Mehta</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Segr&#xe8;</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Flux Imbalance Analysis and the Sensitivity of Cellular Growth to Changes in Metabolite Pools</article-title>. <source>Plos Comput. Biol.</source> <volume>9</volume>, <fpage>e1003195</fpage>&#x2013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1371/journal.pcbi.1003195</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Roessner</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Bowne</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>What Is Metabolomics All about?</article-title> <source>Biotechniques.</source> <volume>46</volume>, <fpage>363</fpage>&#x2013;<lpage>365</lpage>. <pub-id pub-id-type="doi">10.2144/000113133</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rohwer</surname>
<given-names>J.&#x20;M.</given-names>
</name>
<name>
<surname>Hofmeyr</surname>
<given-names>J.-H. S.</given-names>
</name>
</person-group> (<year>2008</year>). <article-title>Identifying and Characterising Regulatory Metabolites with Generalised Supply-Demand Analysis</article-title>. <source>J.&#x20;Theor. Biol.</source> <volume>252</volume>, <fpage>546</fpage>&#x2013;<lpage>554</lpage>. <pub-id pub-id-type="doi">10.1016/j.jtbi.2007.10.032</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Rosato</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Tenori</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Cascante</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>De Atauri Carulla</surname>
<given-names>P. R.</given-names>
</name>
<name>
<surname>Martins dos Santos</surname>
<given-names>V. A. P.</given-names>
</name>
<name>
<surname>Saccenti</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>From Correlation to Causation: Analysis of Metabolomics Data Using Systems Biology Approaches</article-title>. <source>Metabolomics.</source> <volume>14</volume>, <fpage>37</fpage>. <pub-id pub-id-type="doi">10.1007/s11306-018-1335-y</pub-id> </citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sajitz-Hermstein</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>T&#xf6;pfer</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Kleessen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Fernie</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Nikoloski</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Iremet-Flux: Constraint-Based Approach for Integrating Relative Metabolite Levels into a Stoichiometric Metabolic Models</article-title>. <source>Bioinformatics.</source> <volume>32</volume>, <fpage>i755</fpage>&#x2013;<lpage>i762</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btw465</pub-id> </citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>S&#xe9;vin</surname>
<given-names>D. C.</given-names>
</name>
<name>
<surname>Kuehne</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Zamboni</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Sauer</surname>
<given-names>U.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Biological Insights through Nontargeted Metabolomics</article-title>. <source>Curr. Opin. Biotechnol.</source> <volume>34</volume>, <fpage>1</fpage>&#x2013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1016/j.copbio.2014.10.001</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Stanstrup</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Broeckling</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Helmus</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Hoffmann</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Math&#xe9;</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Naake</surname>
<given-names>T.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>The Metarbolomics Toolbox in Bioconductor and beyond</article-title>. <source>Metabolites.</source> <volume>9</volume>, <fpage>200</fpage>. <pub-id pub-id-type="doi">10.3390/metabo9100200</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Taymaz-Nikerel</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>De Mey</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Baart</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Maertens</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Heijnen</surname>
<given-names>J.&#x20;J.</given-names>
</name>
<name>
<surname>van Gulik</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Changes in Substrate Availability in escherichia Coli lead to Rapid Metabolite, Flux and Growth Rate Responses</article-title>. <source>Metab. Eng.</source> <volume>16</volume>, <fpage>115</fpage>&#x2013;<lpage>129</lpage>. <pub-id pub-id-type="doi">10.1016/j.ymben.2013.01.004</pub-id> </citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>T&#xf6;pfer</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Kleessen</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Nikoloski</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Integration of Metabolomics Data into Metabolic Networks</article-title>. <source>Front. Plant Sci.</source> <volume>6</volume>, <fpage>49</fpage>. <pub-id pub-id-type="doi">10.3389/fpls.2015.00049</pub-id> </citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Waschina</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>D&#x27;Souza</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Kost</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Kaleta</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Metabolic Network Architecture and Carbon Source Determine Metabolite Production Costs</article-title>. <source>Febs J.</source> <volume>283</volume>, <fpage>2149</fpage>&#x2013;<lpage>2163</lpage>. <pub-id pub-id-type="doi">10.1111/febs.13727</pub-id> </citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xia</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Sinelnikov</surname>
<given-names>I. V.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wishart</surname>
<given-names>D. S.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>MetaboAnalyst 3.0-making Metabolomics More Meaningful</article-title>. <source>Nucleic Acids Res.</source> <volume>43</volume>, <fpage>W251</fpage>&#x2013;<lpage>W257</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gkv380</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>