<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art>
   <ui>1471-2105-9-228</ui>
   <ji>1471-2105</ji>
   <fm>
      <dochead>Methodology article</dochead>
      <bibl>
         <title>
            <p>Inferring the role of transcription factors in regulatory networks</p>
         </title>
         <aug>
            <au id="A1" ca="yes">
               <snm>Veber</snm>
               <fnm>Philippe</fnm>
               <insr iid="I1"/>
               <email>philippe.veber@googlemail.com</email>
            </au>
            <au id="A2">
               <snm>Guziolowski</snm>
               <fnm>Carito</fnm>
               <insr iid="I1"/>
               <email>cvargas@irisa.fr</email>
            </au>
            <au id="A3">
               <snm>Le Borgne</snm>
               <fnm>Michel</fnm>
               <insr iid="I2"/>
               <email>michel.leborgne@irisa.fr</email>
            </au>
            <au id="A4">
               <snm>Radulescu</snm>
               <fnm>Ovidiu</fnm>
               <insr iid="I1"/>
               <insr iid="I3"/>
               <email>ovidiu.radulescu@irisa.fr</email>
            </au>
            <au id="A5">
               <snm>Siegel</snm>
               <fnm>Anne</fnm>
               <insr iid="I4"/>
               <email>anne.siegel@irisa.fr</email>
            </au>
         </aug>
         <insg>
            <ins id="I1">
               <p>Centre INRIA Rennes Bretagne Atlantique, IRISA, Rennes, France</p>
            </ins>
            <ins id="I2">
               <p>Universit&#233; de Rennes 1, IRISA, Rennes, France</p>
            </ins>
            <ins id="I3">
               <p>Universit&#233; de Rennes 1, IRMAR, Rennes, France</p>
            </ins>
            <ins id="I4">
               <p>CNRS, UMR 6074, IRISA, Rennes, France</p>
            </ins>
         </insg>
         <source>BMC Bioinformatics</source>
         <issn>1471-2105</issn>
         <pubdate>2008</pubdate>
         <volume>9</volume>
         <issue>1</issue>
         <fpage>228</fpage>
         <url>http://www.biomedcentral.com/1471-2105/9/228</url>
         <xrefbib>
            <pubidlist>
               <pubid idtype="pmpid">18460200</pubid>
               <pubid idtype="doi">10.1186/1471-2105-9-228</pubid>
            </pubidlist>
         </xrefbib>
      </bibl>
      <history>
         <rec>
            <date>
               <day>24</day>
               <month>5</month>
               <year>2007</year>
            </date>
         </rec>
         <acc>
            <date>
               <day>06</day>
               <month>5</month>
               <year>2008</year>
            </date>
         </acc>
         <pub>
            <date>
               <day>06</day>
               <month>5</month>
               <year>2008</year>
            </date>
         </pub>
      </history>
      <cpyrt>
         <year>2008</year>
         <collab>Veber et al; licensee BioMed Central Ltd.</collab>
         <note>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<url>http://creativecommons.org/licenses/by/2.0</url>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</note>
      </cpyrt>
      <abs>
         <sec>
            <st>
               <p>Abstract</p>
            </st>
            <sec>
               <st>
                  <p>Background</p>
               </st>
               <p>Expression profiles obtained from multiple perturbation experiments are increasingly used to reconstruct transcriptional regulatory networks, from well studied, simple organisms up to higher eukaryotes. Admittedly, a key ingredient in developing a reconstruction method is its ability to integrate heterogeneous sources of information, as well as to comply with practical observability issues: measurements can be scarce or noisy. In this work, we show how to combine a network of genetic regulations with a set of expression profiles, in order to infer the functional effect of the regulations, as inducer or repressor. Our approach is based on a consistency rule between a network and the signs of variation given by expression arrays.</p>
            </sec>
            <sec>
               <st>
                  <p>Results</p>
               </st>
               <p>We evaluate our approach in several settings of increasing complexity. First, we generate artificial expression data on a transcriptional network of <it>E. coli </it>extracted from the literature (1529 nodes and 3802 edges), and we estimate that 30% of the regulations can be annotated with about 30 profiles. We additionally prove that at most 40.8% of the network can be inferred using our approach. Second, we use this network in order to validate the predictions obtained with a compendium of real expression profiles. We describe a filtering algorithm that generates particularly reliable predictions. Finally, we apply our inference approach to <it>S. cerevisiae </it>transcriptional network (2419 nodes and 4344 interactions), by combining ChIP-chip data and 15 expression profiles. We are able to detect and isolate inconsistencies between the expression profiles and a significant portion of the model (15% of all the interactions). In addition, we report predictions for 14.5% of all interactions.</p>
            </sec>
            <sec>
               <st>
                  <p>Conclusion</p>
               </st>
               <p>Our approach does not require accurate expression levels nor times series. Nevertheless, we show on both data, real and artificial, that a relatively small number of perturbation experiments are enough to determine a significant portion of regulatory effects. This is a key practical asset compared to statistical methods for network reconstruction. We demonstrate that our approach is able to provide accurate predictions, even when the network is incomplete and the data is noisy.</p>
            </sec>
         </sec>
      </abs>
   </fm>
   <bdy>
      <sec>
         <st>
            <p>Background</p>
         </st>
         <p>A central problem in molecular genetics is to understand the transcriptional regulation of gene expression. A transcription factor (TF) is a protein that binds to a typical domain on the DNA and influences transcription. The effect of this TF can be either a repression or an activation of transcription depending on the type of binding site, the distance to coding regions, or on the presence of other molecules. Finding which gene is controlled by which TF is a reverse engineering problem, usually named <it>network reconstruction</it>. This question has been approached over the past years by various groups.</p>
         <p>A first approach to achieve this task is to collect the information spread in the primary literature. Following this idea, a large number of databases that take protein and regulatory interactions from the literature and curate them have been developed <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B2">2</abbr><abbr bid="B3">3</abbr><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr></abbrgrp>. For the bacteria <it>E. coli</it>, RegulonDB is a dedicated database that contains experimentally verified regulatory interactions <abbrgrp><abbr bid="B6">6</abbr></abbrgrp>. For the budding yeast (<it>S. cerevisiae</it>), the Yeast Proteome Database contains a large amount of regulatory information <abbrgrp><abbr bid="B7">7</abbr></abbrgrp>. In this latter case, however, the amount of available information is not sufficient to build a reasonably accurate model of transcriptional regulation. Databases with regulatory knowledge extracted from the literature are, nevertheless, an unavoidable starting point for network reconstruction.</p>
         <p>The alternative to a literature-curated approach is a data-driven approach. This approach is supported by the availability of high-throughput experimental data including microarray expression analysis of deletion mutants (simple or more rarely double non-lethal knockouts), over expression of TF-encoding genes, protein-protein interactions, protein localisation, or ChIP-chip experiments coupled with promoter sequence analysis. We may cite several classes of methods that use these kinds of data, such as correlation, mutual information or causality studies, Bayesian networks, path analysis, information-theoretic approaches, and ordinary differential equations <abbrgrp><abbr bid="B8">8</abbr><abbr bid="B9">9</abbr><abbr bid="B10">10</abbr></abbrgrp>.</p>
         <p>In short, most available approaches so far are based on a probabilistic framework which defines a probability distribution over the set of models. The reconstructed network is then defined as the most likely model given the data. Such an optimization problem is usually non convex, and finding a global optimum cannot be guaranteed in practice. Existing algorithms report a local optimum which should be interpreted with care: errors can appear and no consensual model may be produced.</p>
         <p>As an illustration, special attention has been paid to the reconstruction of <it>S. cerevisiae network </it>from ChIP-chip data and protein-protein interaction networks <abbrgrp><abbr bid="B11">11</abbr></abbrgrp>. A first regulatory network was obtained with promoter sequence analysis methods <abbrgrp><abbr bid="B12">12</abbr><abbr bid="B13">13</abbr></abbrgrp>, yet, some undetected transcriptional regulatory motifs were proposed using non-parametric causality tests <abbrgrp><abbr bid="B14">14</abbr></abbrgrp>. Moreover, Bayesian analysis also identified new regulatory modules for this network <abbrgrp><abbr bid="B15">15</abbr><abbr bid="B16">16</abbr></abbrgrp>. Thus, the results obtained with the different methods do not coincide and a fully data-driven search is in general subject to over-fitting and not fully reliable <abbrgrp><abbr bid="B17">17</abbr></abbrgrp>.</p>
         <p>In regulatory networks an important and non-trivial physiological information is the regulatory role of TFs as inducer or repressor, also called <it>the sign of the interaction</it>. This information is needed if one wants to know, for instance, the physiological effect of a change caused by external conditions or the effect of a perturbation on the TF. While this can be achieved for one gene at a time with (long and expensive) dedicated experiments, probabilistic methods such as Bayesian models <abbrgrp><abbr bid="B18">18</abbr></abbrgrp> or path analysis <abbrgrp><abbr bid="B19">19</abbr><abbr bid="B20">20</abbr></abbrgrp> are capable of proposing models from high-throughput experimental data. However, as for the network reconstruction task, these methods are based on optimization algorithms that compute an optimal solution with respect to an interaction model.</p>
         <p>In this paper, we apply formal methods to compute the sign of interactions in networks that have an available topology. By doing so, we also validate the topology of the network. Roughly, we use expression profiles to constrain the possible regulatory roles of TFs, and we report those regulations that are assigned the same role in all feasible models. Thus, we over-approximate the set of <it>feasible </it>models, and then look for <it>invariants </it>in this set. A similar idea was applied in <abbrgrp><abbr bid="B21">21</abbr></abbrgrp> to check the consistency of gene expression assays. However, we use a deeper formalisation and stronger algorithmic methods to achieve the inference task.</p>
         <p>Different sources of large-scale data are exploited in this study: gene expression arrays, which provide information on the interaction signs; and ChIP-chip experiments, which provide the topology of the regulatory network when not available.</p>
         <p>The main tasks we address are the following:</p>
         <p>1. Building a formal model of regulation for a set of genes that integrates information from ChIP-chip data, sequence analysis, and literature annotations.</p>
         <p>2. Checking its consistency with expression profiles on perturbation assays.</p>
         <p>3. Inferring the regulatory role of TFs as inducer or repressor if the model is consistent with expression profiles.</p>
         <p>4. Isolating ambiguous pieces of information if it is not.</p>
         <p>The Results section is organised as follows. We first introduce the mathematical framework which is used to define and to test the consistency between expression profiles and transcriptional networks. Then, we apply our algorithms to address three main issues:</p>
         <p>&#8226; Analysis of the dependence between the number of available observations and the number of inferred regulations. In the case where all genes are observed, we prove that at most 40.8% of <it>E. coli </it>network can be inferred and that 30 perturbation experiments are enough to infer 30% of the network on average. In the case of missing observations, we estimate how the proportion of unobserved genes affects the number of inferred regulations.</p>
         <p>&#8226; Illustration and validation of our method on the transcriptional network of <it>E. coli</it>, obtained from RegulonDB <abbrgrp><abbr bid="B6">6</abbr></abbrgrp>, with a compendium of expression profiles <abbrgrp><abbr bid="B9">9</abbr><abbr bid="B22">22</abbr></abbrgrp>.</p>
         <p>&#8226; Execution of our inference algorithms over the <it>S. cerevisiae </it>transcriptional network. We inferred, for small scale subnetworks, more than 20% of the roles of regulations. For more complex networks, we detected and isolated inconsistencies (ambiguities) between expression profiles and a significant part of the model (15% of all the interactions).</p>
      </sec>
      <sec>
         <st>
            <p>Results</p>
         </st>
         <sec>
            <st>
               <p>Detecting the role of a regulation and validating a model</p>
            </st>
            <p>Our goal is to determine the regulatory role of a TF on its target genes by using expression profiles. Let us illustrate our purpose with a simple example.</p>
            <p>We suppose that we are given the topology of a network (this topology can be obtained from ChIP-chip data or any computational network inference method). In this network, let us consider a node <it>A </it>with a single predecessor. In other words, the model tells us that the protein <it>B </it>acts on the expression of the gene coding for <it>A </it>and no other protein acts on <it>A</it>.</p>
            <p>Independently, we suppose that we have several gene expression arrays at our disposal. One of these arrays indicates that <it>A </it>and <it>B </it>simultaneously increase during a steady state shift experiment. Then, <it>common sense </it>tells us that <it>B </it>must have been an activator of <it>A </it>during the experiment. More precisely, protein <it>B </it>cannot have inhibited gene <it>A </it>since they both have increased. Consequently, we say that the model <it>predicts </it>the sign of the interaction from <it>B </it>to <it>A </it>as positive (see Fig. <figr fid="F1">1</figr>).</p>
            <fig id="F1">
               <title>
                  <p>Figure 1</p>
               </title>
               <caption>
                  <p>Illustration of the simple inference rule</p>
               </caption>
               <text>
                  <p>
                     <b>Illustration of the simple inference rule.</b>
                  </p>
               </text>
               <graphic file="1471-2105-9-228-1"/>
            </fig>
            <p>This naive rule is actually used in a large class of models; we will call it the <it>naive inference rule</it>. When several expression profiles are available, the predictions of the different profiles can be compared. If two expression profiles predict different signs for a given interaction, there is an <it>ambiguity </it>or <it>inconsistency </it>between data and model (see Fig. <figr fid="F2">2</figr>). Then, the ambiguity of the regulatory role can be attributed to three factors: (1) a complex mechanism of regulation, the role of the interaction depends on the state of the system; (2) a missing interaction in the model; (3) an error in the experimental source. This simple strategy is implemented in the Algorithm 1.</p>
            <fig id="F2">
               <title>
                  <p>Figure 2</p>
               </title>
               <caption>
                  <p>A simple case of inconsistency between some data and a model</p>
               </caption>
               <text>
                  <p>
                     <b>A simple case of inconsistency between some data and a model.</b>
                  </p>
               </text>
               <graphic file="1471-2105-9-228-2"/>
            </fig>
            <p>Let us consider now the case when <it>A </it>is activated by two proteins <it>B </it>and <it>C</it>. No more natural deduction can be done when <it>A </it>and <it>B </it>increase during an experiment since the influence of <it>C </it>must be taken into account. A <it>model </it>of interactions between <it>A</it>, <it>B</it>, and <it>C </it>has to be proposed. Probabilistic methods estimate the most probable signs of regulations that fit with the theoretical model <abbrgrp><abbr bid="B18">18</abbr><abbr bid="B23">23</abbr></abbrgrp>.</p>
            <p>Our point of view is different; we introduce a <it>basic rule </it>that shall be checked by each interaction in the model. This rule tells us that <b>any variation of <it>A </it>must be explained by the variation of at least one of its predecessors</b>. In previous papers, we introduced a formal framework to justify this basic rule under some reasonable assumptions. We also tested the consistency between expression profiles and a graphical model of cellular interactions. This formalism will be introduced here in an informal way; its full justification and extensions can be found in the references <abbrgrp><abbr bid="B24">24</abbr><abbr bid="B25">25</abbr><abbr bid="B26">26</abbr><abbr bid="B27">27</abbr></abbrgrp>.</p>
            <p>In our example, the basic rule means that if <it>B </it>and <it>C </it>activate <it>A</it>, and both (<it>B </it>and <it>C</it>) are known to decrease during a steady state experiment, <it>A </it>cannot be observed as increasing. Then <it>A </it>is <it>predicted </it>to decrease (see Fig. <figr fid="F3">3</figr>). More generally, we apply the rule as a constraint for the model, we write constraints for all the nodes of the model, and we use several approaches in order to solve the system of constraints. From the study of the set of solutions, we deduce which signs are surely determined by these rules. Then, we obtain <it>necessary conditions </it>on the signs instead of the <it>most probable signs </it>given by probabilistic methods.</p>
            <fig id="F3">
               <title>
                  <p>Figure 3</p>
               </title>
               <caption>
                  <p>Illustration of a prediction</p>
               </caption>
               <text>
                  <p>
                     <b>Illustration of a prediction.</b>
                  </p>
               </text>
               <graphic file="1471-2105-9-228-3"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>A formal approach</p>
            </st>
            <p>Consider a system of <it>n </it>chemical species {1,...,<it>n</it>}. These species interact with each other and we model these interactions using an <it>interaction graph G </it>= (<it>V, E</it>). The set of nodes is denoted by <it>V </it>= {1,...,<it>n</it>}. There is an edge <it>j </it>&#8594; i &#8712; <it>E </it>if the level of species <it>j </it>influences the production rate of species <it>i</it>. Edges are labelled by a sign {+, -} which indicates whether <it>j </it>activates or represses the production of <it>i</it>.</p>
            <p>In a typical stress perturbation experiment a system leaves an initial steady state following a change in control parameters. After waiting long enough, the system may reach a new steady state. In genetic perturbation experiments, a gene of the cell is either knocked-out or over-expressed; perturbed cells are then compared to the reference. Our approach relies on the signs of the variations in expression or activity of the species in the network. Let us denote by <it>sign</it>(<it>X</it><sub><it>i</it></sub>) &#8712; {+, -, <b>0</b>} the sign of the variation of species <it>i </it>during a given perturbation experiment, and by <it>sign</it>(<it>j </it>&#8594; <it>i</it>) &#8712; {+, -} the sign of the edge <it>j </it>&#8594; <it>i </it>in the interaction graph.</p>
            <p>Let us fix species <it>i </it>such that there is no positive self-regulating action on <it>i</it>. For every predecessor <it>j </it>of <it>i</it>, <it>sign</it>(<it>j </it>&#8594; <it>i</it>) * <it>sign</it>(<it>X</it><sub><it>j</it></sub>) provides the sign of the <it>influence </it>of <it>j </it>on the species <it>i</it>. Then, we can write a constraint on the variation to interpret the rule that was previously stated: <it>the variation of species i is explained by the variation of at least one of its predecessors in the graph</it>.</p>
            <p>
               <display-formula id="M1">
                  <m:math name="1471-2105-9-228-i1" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mi>s</m:mi>
                           <m:mi>i</m:mi>
                           <m:mi>g</m:mi>
                           <m:mi>n</m:mi>
                           <m:mo stretchy="false">(</m:mo>
                           <m:msub>
                              <m:mi>X</m:mi>
                              <m:mi>i</m:mi>
                           </m:msub>
                           <m:mo stretchy="false">)</m:mo>
                           <m:mo>&#8776;</m:mo>
                           <m:mstyle displaystyle="true">
                              <m:munder>
                                 <m:mo>&#8721;</m:mo>
                                 <m:mrow>
                                    <m:mi>j</m:mi>
                                    <m:mo>&#8594;</m:mo>
                                    <m:mi>i</m:mi>
                                 </m:mrow>
                              </m:munder>
                              <m:mrow>
                                 <m:mi>s</m:mi>
                                 <m:mi>i</m:mi>
                                 <m:mi>g</m:mi>
                                 <m:mi>n</m:mi>
                                 <m:mo stretchy="false">(</m:mo>
                                 <m:mi>j</m:mi>
                                 <m:mo>&#8594;</m:mo>
                                 <m:mi>i</m:mi>
                                 <m:mo stretchy="false">)</m:mo>
                                 <m:mi>s</m:mi>
                                 <m:mi>i</m:mi>
                                 <m:mi>g</m:mi>
                                 <m:mi>n</m:mi>
                                 <m:mo stretchy="false">(</m:mo>
                                 <m:msub>
                                    <m:mi>X</m:mi>
                                    <m:mi>j</m:mi>
                                 </m:msub>
                                 <m:mo stretchy="false">)</m:mo>
                              </m:mrow>
                           </m:mstyle>
                           <m:mo>.</m:mo>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaem4CamNaemyAaKMaem4zaCMaemOBa4MaeiikaGIaemiwaG1aaSbaaSqaaiabdMgaPbqabaGccqGGPaqkcqGHijYUdaaeqbqaaiabdohaZjabdMgaPjabdEgaNjabd6gaUjabcIcaOiabdQgaQjabgkziUkabdMgaPjabcMcaPiabdohaZjabdMgaPjabdEgaNjabd6gaUjabcIcaOiabdIfaynaaBaaaleaacqWGQbGAaeqaaOGaeiykaKcaleaacqWGQbGAcqGHsgIRcqWGPbqAaeqaniabggHiLdGccqGGUaGlaaa@556D@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>When the experiment is a genetic perturbation, the same equation holds for every node that was not genetically perturbed during the experiment and such that all its predecessors were not genetically perturbed. If a predecessor <it>X</it><sub><it>M </it></sub>of the node was knocked-out, the equation becomes</p>
            <p>
               <display-formula id="M2">
                  <m:math name="1471-2105-9-228-i2" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mtable columnalign="left">
                              <m:mtr columnalign="left">
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mi>s</m:mi>
                                       <m:mi>i</m:mi>
                                       <m:mi>g</m:mi>
                                       <m:mi>n</m:mi>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:msub>
                                          <m:mi>X</m:mi>
                                          <m:mi>i</m:mi>
                                       </m:msub>
                                       <m:mo stretchy="false">)</m:mo>
                                    </m:mrow>
                                 </m:mtd>
                                 <m:mtd columnalign="left">
                                    <m:mo>&#8776;</m:mo>
                                 </m:mtd>
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mo>&#8722;</m:mo>
                                       <m:mi>s</m:mi>
                                       <m:mi>i</m:mi>
                                       <m:mi>g</m:mi>
                                       <m:mi>n</m:mi>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:mi>M</m:mi>
                                       <m:mo>&#8594;</m:mo>
                                       <m:mi>i</m:mi>
                                       <m:mo stretchy="false">)</m:mo>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr columnalign="left">
                                 <m:mtd columnalign="left">
                                    <m:mrow/>
                                 </m:mtd>
                                 <m:mtd columnalign="left">
                                    <m:mrow/>
                                 </m:mtd>
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mo>+</m:mo>
                                       <m:mstyle displaystyle="true">
                                          <m:munder>
                                             <m:mo>&#8721;</m:mo>
                                             <m:mtable columnalign="left">
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mi>j</m:mi>
                                                         <m:mo>&#8594;</m:mo>
                                                         <m:mi>i</m:mi>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mi>j</m:mi>
                                                         <m:mo>&#8800;</m:mo>
                                                         <m:mi>M</m:mi>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                             </m:mtable>
                                          </m:munder>
                                          <m:mrow>
                                             <m:mi>s</m:mi>
                                             <m:mi>i</m:mi>
                                             <m:mi>g</m:mi>
                                             <m:mi>n</m:mi>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:mi>j</m:mi>
                                             <m:mo>&#8594;</m:mo>
                                             <m:mi>i</m:mi>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mi>s</m:mi>
                                             <m:mi>i</m:mi>
                                             <m:mi>g</m:mi>
                                             <m:mi>n</m:mi>
                                             <m:mo stretchy="false">(</m:mo>
                                             <m:msub>
                                                <m:mi>X</m:mi>
                                                <m:mi>j</m:mi>
                                             </m:msub>
                                             <m:mo stretchy="false">)</m:mo>
                                             <m:mo>.</m:mo>
                                          </m:mrow>
                                       </m:mstyle>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                           </m:mtable>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaqbaeaabiWaaaqaaiabdohaZjabdMgaPjabdEgaNjabd6gaUjabcIcaOiabdIfaynaaBaaaleaacqWGPbqAaeqaaOGaeiykaKcabaGaeyisISlabaGaeyOeI0Iaem4CamNaemyAaKMaem4zaCMaemOBa4MaeiikaGIaemyta0KaeyOKH4QaemyAaKMaeiykaKcabaaabaaabaGaey4kaSYaaabuaeaacqWGZbWCcqWGPbqAcqWGNbWzcqWGUbGBcqGGOaakcqWGQbGAcqGHsgIRcqWGPbqAcqGGPaqkcqWGZbWCcqWGPbqAcqWGNbWzcqWGUbGBcqGGOaakcqWGybawdaWgaaWcbaGaemOAaOgabeaakiabcMcaPiabc6caUaWceaqabeaacqWGQbGAcqGHsgIRcqWGPbqAaeaacqWGQbGAcqGHGjsUcqWGnbqtaaqab0GaeyyeIuoaaaaaaa@6735@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>The same holds with +<it>sign</it>(<it>M </it>&#8594; <it>i</it>) when the predecessor <it>X</it><sub><it>M </it></sub>was over-expressed. There is no equation for the genetically perturbed node.</p>
            <p>The <it>sign algebra </it>is the suitable framework for reading these equations <abbrgrp><abbr bid="B26">26</abbr></abbrgrp>. It is defined as the set {+, -, <b>?</b>, <b>0</b>}, provided with a sign consistency relation &#8776;, and arithmetic operations + and &#215;. The following tables describe this algebra:</p>
            <p>
               <display-formula>
                  <m:math name="1471-2105-9-228-i3" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mtable>
                              <m:mtr>
                                 <m:mtd>
                                    <m:mrow>
                                       <m:mtable>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>+</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>+</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>+</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>+</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>+</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>+</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>=</m:mo>
                                                   <m:mo>?</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#215;</m:mo>
                                                   <m:mn>0</m:mn>
                                                   <m:mo>=</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                       </m:mtable>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr>
                                 <m:mtd>
                                    <m:mrow>
                                       <m:mtable>
                                          <m:mtr>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#8777;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>+</m:mo>
                                                   <m:mo>&#8776;</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>&#8722;</m:mo>
                                                   <m:mo>&#8776;</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#8776;</m:mo>
                                                   <m:mo>+</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#8776;</m:mo>
                                                   <m:mo>&#8722;</m:mo>
                                                </m:mrow>
                                             </m:mtd>
                                             <m:mtd>
                                                <m:mrow>
                                                   <m:mo>?</m:mo>
                                                   <m:mo>&#8776;</m:mo>
                                                   <m:mn>0</m:mn>
                                                </m:mrow>
                                             </m:mtd>
                                          </m:mtr>
                                       </m:mtable>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                           </m:mtable>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaqbaeqabiqaaaqaauaabeqafqaaaaaabaGaey4kaSIaey4kaSIaeyOeI0Iaeyypa0Jaei4pa8dabaGaey4kaSIaey4kaSIaey4kaSIaeyypa0Jaey4kaScabaGaey4kaSIaey41aqRaeyOeI0Iaeyypa0JaeyOeI0cabaGaey4kaSIaey41aqRaey4kaSIaeyypa0Jaey4kaScabaGaeyOeI0Iaey4kaSIaeyOeI0Iaeyypa0JaeyOeI0cabaGaey4kaSIaey4kaSccbeGae8hmaaJaeyypa0Jaey4kaScabaGaeyOeI0Iaey41aqRaeyOeI0Iaeyypa0Jaey4kaScabaGaey4kaSIaey41aqRae8hmaaJaeyypa0Jae8hmaadabaGae8hmaaJaey4kaSIae8hmaaJaeyypa0Jae8hmaadabaGaeyOeI0Iaey4kaSIae8hmaaJaeyypa0JaeyOeI0cabaGae8hmaaJaey41aqRae8hmaaJaeyypa0Jae8hmaadabaGaeyOeI0Iaey41aqRae8hmaaJaeyypa0Jae8hmaadabaGaei4pa8Jaey4kaSIaeyOeI0Iaeyypa0Jaei4pa8dabaGaei4pa8Jaey4kaSIaey4kaSIaeyypa0Jaei4pa8dabaGaei4pa8Jaey41aqRaeyOeI0Iaeyypa0Jaei4pa8dabaGaei4pa8Jaey41aqRaey4kaSIaeyypa0Jaei4pa8dabaGaei4pa8Jaey4kaSIaei4pa8Jaeyypa0Jaei4pa8dabaGaei4pa8Jaey4kaSIae8hmaaJaeyypa0Jaei4pa8dabaGaei4pa8Jaey41aqRaei4pa8Jaeyypa0Jaei4pa8dabaGaei4pa8Jaey41aqRae8hmaaJaeyypa0Jae8hmaadaaaqaauaabeqabyaaaaqaaiabgUcaRmrtHrhAL1wy0L2yHndaryqtHrhAL1wy0L2yHndaiqaacqGFjjstcqGHsislaeaacqGHRaWkcqGHijYUcqWFWaamaeaacqGHsislcqGHijYUcqWFWaamaeaacqGG=aWpcqGHijYUcqGHRaWkaeaacqGG=aWpcqGHijYUcqGHsislaeaacqGG=aWpcqGHijYUcqWFWaamaaaaaaaa@B519@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>For a given interaction graph <it>G</it>, we will refer to the <it>qualitative system </it>associated with <it>G </it>as the set made up by applying constraint (1) for each node in <it>G</it>. We say that node variations <it>X</it><sub><it>i </it></sub>&#8712; {+, -, <b>0</b>} are <it>consistent </it>with the graph <it>G </it>when they satisfy all the constraints associated with <it>G </it>using the sign consistency relation &#8776;.</p>
            <p>With this material at hand, let us come back to our original problem, namely to infer the regulatory role of TFs from the combination of heterogeneous data. In the following we assume that:</p>
            <p>&#8226; The interaction graph is either given by a model to be validated, or built from ChIP-chip data and TF binding site search in promoter sequences. Thus, as soon as a TF <it>j </it>binds to the promoter sequence of gene <it>i</it>, <it>j </it>is assumed to regulate <it>i</it>. This is represented by an arrow <it>j </it>&#8594; <it>i </it>in the interaction graph.</p>
            <p>&#8226; The regulatory role of a TF <it>j </it>on a gene <it>i </it>(as inducer or repressor) is represented by the variable <it>S</it><sub><it>ji</it></sub>, which is constrained by Eqs. (1) or (2).</p>
            <p>&#8226; Expression profiles provide the sign of variation of the gene expression for a set of <it>r </it>steady-state perturbation, mutant, or over-expression experiments. In the following, <inline-formula><m:math name="1471-2105-9-228-i4" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>x</m:mi><m:mi>i</m:mi><m:mi>k</m:mi></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdMgaPbqaaiabdUgaRbaaaaa@3035@</m:annotation></m:semantics></m:math></inline-formula> will stand for the sign of the observed variation of gene <it>i </it>in experiment <it>k</it>.</p>
            <p>Our inference problem can now be stated as finding values in {+, -} for <it>S</it><sub><it>ji</it></sub>, subject to the constraints:</p>
            <p>
               <display-formula id="M3">
                  <m:math name="1471-2105-9-228-i5" xmlns:m="http://www.w3.org/1998/Math/MathML">
                     <m:semantics>
                        <m:mrow>
                           <m:mtable columnalign="left">
                              <m:mtr columnalign="left">
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mtext>for&#160;all&#160;</m:mtext>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:mn>1</m:mn>
                                       <m:mo>&#8804;</m:mo>
                                       <m:mi>i</m:mi>
                                       <m:mo>&#8804;</m:mo>
                                       <m:mi>n</m:mi>
                                       <m:mo stretchy="false">)</m:mo>
                                       <m:mo>,</m:mo>
                                       <m:mo stretchy="false">(</m:mo>
                                       <m:mn>1</m:mn>
                                       <m:mo>&#8804;</m:mo>
                                       <m:mi>k</m:mi>
                                       <m:mo>&#8804;</m:mo>
                                       <m:mi>r</m:mi>
                                       <m:mo stretchy="false">)</m:mo>
                                       <m:mo>,</m:mo>
                                       <m:mtext>s</m:mtext>
                                       <m:mtext>.t</m:mtext>
                                       <m:mtext>.&#160;</m:mtext>
                                       <m:mi>i</m:mi>
                                       <m:mtext>&#8201;</m:mtext>
                                       <m:mtext>is&#160;not</m:mtext>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr columnalign="left">
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mtext>genetically&#160;perturbed&#160;in&#160;the&#160;</m:mtext>
                                       <m:mi>k</m:mi>
                                       <m:mtext>-th&#160;experiment</m:mtext>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                              <m:mtr columnalign="left">
                                 <m:mtd columnalign="left">
                                    <m:mrow>
                                       <m:mrow>
                                          <m:mo>{</m:mo>
                                          <m:mrow>
                                             <m:mtable>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:msubsup>
                                                            <m:mi>x</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>k</m:mi>
                                                         </m:msubsup>
                                                      </m:mrow>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mo>&#8776;</m:mo>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mtable>
                                                            <m:mtr>
                                                               <m:mtd>
                                                                  <m:mrow>
                                                                     <m:mstyle displaystyle="true">
                                                                        <m:msub>
                                                                           <m:mo>&#8721;</m:mo>
                                                                           <m:mrow>
                                                                              <m:mi>j</m:mi>
                                                                              <m:mo>&#8594;</m:mo>
                                                                              <m:mi>i</m:mi>
                                                                           </m:mrow>
                                                                        </m:msub>
                                                                        <m:mrow>
                                                                           <m:msub>
                                                                              <m:mi>S</m:mi>
                                                                              <m:mrow>
                                                                                 <m:mi>j</m:mi>
                                                                                 <m:mi>i</m:mi>
                                                                              </m:mrow>
                                                                           </m:msub>
                                                                           <m:msubsup>
                                                                              <m:mi>x</m:mi>
                                                                              <m:mi>j</m:mi>
                                                                              <m:mi>k</m:mi>
                                                                           </m:msubsup>
                                                                        </m:mrow>
                                                                     </m:mstyle>
                                                                  </m:mrow>
                                                               </m:mtd>
                                                               <m:mtd>
                                                                  <m:mrow>
                                                                     <m:mtext>if&#160;all&#160;predecessors&#160;</m:mtext>
                                                                     <m:mi>j</m:mi>
                                                                  </m:mrow>
                                                               </m:mtd>
                                                            </m:mtr>
                                                         </m:mtable>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mtext>are&#160;not&#160;genetically&#160;perturbed</m:mtext>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:msubsup>
                                                            <m:mi>x</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>k</m:mi>
                                                         </m:msubsup>
                                                      </m:mrow>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mo>&#8776;</m:mo>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mo>&#8722;</m:mo>
                                                         <m:msub>
                                                            <m:mi>S</m:mi>
                                                            <m:mrow>
                                                               <m:mi>M</m:mi>
                                                               <m:mi>i</m:mi>
                                                            </m:mrow>
                                                         </m:msub>
                                                         <m:mo>+</m:mo>
                                                         <m:mstyle displaystyle="true">
                                                            <m:msub>
                                                               <m:mo>&#8721;</m:mo>
                                                               <m:mrow>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mo>&#8594;</m:mo>
                                                                  <m:mi>i</m:mi>
                                                                  <m:mo>,</m:mo>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mo>&#8800;</m:mo>
                                                                  <m:mi>M</m:mi>
                                                               </m:mrow>
                                                            </m:msub>
                                                            <m:mrow>
                                                               <m:msub>
                                                                  <m:mi>S</m:mi>
                                                                  <m:mrow>
                                                                     <m:mi>j</m:mi>
                                                                     <m:mi>i</m:mi>
                                                                  </m:mrow>
                                                               </m:msub>
                                                               <m:msubsup>
                                                                  <m:mi>x</m:mi>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mi>k</m:mi>
                                                               </m:msubsup>
                                                            </m:mrow>
                                                         </m:mstyle>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mtext>if&#160;</m:mtext>
                                                         <m:mi>M</m:mi>
                                                         <m:mtext>&#8201;</m:mtext>
                                                         <m:mtext>is&#160;knocked-out</m:mtext>
                                                         <m:mtext>.</m:mtext>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:msubsup>
                                                            <m:mi>x</m:mi>
                                                            <m:mi>i</m:mi>
                                                            <m:mi>k</m:mi>
                                                         </m:msubsup>
                                                      </m:mrow>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mo>&#8776;</m:mo>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:msub>
                                                            <m:mi>S</m:mi>
                                                            <m:mrow>
                                                               <m:mi>M</m:mi>
                                                               <m:mi>i</m:mi>
                                                            </m:mrow>
                                                         </m:msub>
                                                         <m:mo>+</m:mo>
                                                         <m:mstyle displaystyle="true">
                                                            <m:msub>
                                                               <m:mo>&#8721;</m:mo>
                                                               <m:mrow>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mo>&#8594;</m:mo>
                                                                  <m:mi>i</m:mi>
                                                                  <m:mo>,</m:mo>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mo>&#8800;</m:mo>
                                                                  <m:mi>M</m:mi>
                                                               </m:mrow>
                                                            </m:msub>
                                                            <m:mrow>
                                                               <m:msub>
                                                                  <m:mi>S</m:mi>
                                                                  <m:mrow>
                                                                     <m:mi>j</m:mi>
                                                                     <m:mi>i</m:mi>
                                                                  </m:mrow>
                                                               </m:msub>
                                                               <m:msubsup>
                                                                  <m:mi>x</m:mi>
                                                                  <m:mi>j</m:mi>
                                                                  <m:mi>k</m:mi>
                                                               </m:msubsup>
                                                            </m:mrow>
                                                         </m:mstyle>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                                <m:mtr>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow/>
                                                   </m:mtd>
                                                   <m:mtd>
                                                      <m:mrow>
                                                         <m:mtext>if&#160;</m:mtext>
                                                         <m:mi>M</m:mi>
                                                         <m:mtext>&#160;isover-expressed</m:mtext>
                                                         <m:mo>.</m:mo>
                                                      </m:mrow>
                                                   </m:mtd>
                                                </m:mtr>
                                             </m:mtable>
                                          </m:mrow>
                                       </m:mrow>
                                    </m:mrow>
                                 </m:mtd>
                              </m:mtr>
                           </m:mtable>
                        </m:mrow>
                        <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xI8qiVKYPFjYdHaVhbbf9v8qqaqFr0xc9vqFj0dXdbba91qpepeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaqbaeaabmqaaaqaaiabbAgaMjabb+gaVjabbkhaYjabbccaGiabbggaHjabbYgaSjabbYgaSjabbccaGiabcIcaOiabigdaXiabgsMiJkabdMgaPjabgsMiJkabd6gaUjabcMcaPiabcYcaSiabcIcaOiabigdaXiabgsMiJkabdUgaRjabgsMiJkabdkhaYjabcMcaPiabcYcaSiabbohaZjabb6caUiabbsha0jabb6caUiabbccaGiabdMgaPjaaykW7cqqGPbqAcqqGZbWCcqqGGaaicqqGUbGBcqqGVbWBcqqG0baDaeaacqqGNbWzcqqGLbqzcqqGUbGBcqqGLbqzcqqG0baDcqqGPbqAcqqGJbWycqqGHbqycqqGSbaBcqqGSbaBcqqG5bqEcqqGGaaicqqGWbaCcqqGLbqzcqqGYbGCcqqG0baDcqqG1bqDcqqGYbGCcqqGIbGycqqGLbqzcqqGKbazcqqGGaaicqqGPbqAcqqGUbGBcqqGGaaicqqG0baDcqqGObaAcqqGLbqzcqqGGaaicqWGRbWAcqqGTaqlcqqG0baDcqqGObaAcqqGGaaicqqGLbqzcqqG4baEcqqGWbaCcqqGLbqzcqqGYbGCcqqGPbqAcqqGTbqBcqqGLbqzcqqGUbGBcqqG0baDaeaadaGabaqaauaabeqagmaaaaqaaiabdIha4naaDaaaleaacqWGPbqAaeaacqWGRbWAaaaakeaacqGHijYUaeaafaqabeqacaaabaWaaabeaeaacqWGtbWudaWgaaWcbaGaemOAaOMaemyAaKgabeaakiabdIha4naaDaaaleaacqWGQbGAaeaacqWGRbWAaaaabaGaemOAaOMaeyOKH4QaemyAaKgabeqdcqGHris5aaGcbaGaeeyAaKMaeeOzayMaeeiiaaIaeeyyaeMaeeiBaWMaeeiBaWMaeeiiaaIaeeiCaaNaeeOCaiNaeeyzauMaeeizaqMaeeyzauMaee4yamMaeeyzauMaee4CamNaee4CamNaee4Ba8MaeeOCaiNaee4CamNaeeiiaaIaemOAaOgaaaqaaaqaaaqaaiabbggaHjabbkhaYjabbwgaLjabbccaGiabb6gaUjabb+gaVjabbsha0jabbccaGiabbEgaNjabbwgaLjabb6gaUjabbwgaLjabbsha0jabbMgaPjabbogaJjabbggaHjabbYgaSjabbYgaSjabbMha5jabbccaGiabbchaWjabbwgaLjabbkhaYjabbsha0jabbwha1jabbkhaYjabbkgaIjabbwgaLjabbsgaKbqaaiabdIha4naaDaaaleaacqWGPbqAaeaacqWGRbWAaaaakeaacqGHijYUaeaacqGHsislcqWGtbWudaWgaaWcbaGaemyta0KaemyAaKgabeaakiabgUcaRmaaqababaGaem4uam1aaSbaaSqaaiabdQgaQjabdMgaPbqabaGccqWG4baEdaqhaaWcbaGaemOAaOgabaGaem4AaSgaaaqaaiabdQgaQjabgkziUkabdMgaPjabcYcaSiabdQgaQjabgcMi5kabd2eanbqab0GaeyyeIuoaaOqaaaqaaaqaaiabbMgaPjabbAgaMjabbccaGiabd2eanjaaykW7cqqGPbqAcqqGZbWCcqqGGaaicqqGRbWAcqqGUbGBcqqGVbWBcqqGJbWycqqGRbWAcqqGLbqzcqqGKbazcqqGTaqlcqqGVbWBcqqG1bqDcqqG0baDcqqGUaGlaeaacqWG4baEdaqhaaWcbaGaemyAaKgabaGaem4AaSgaaaGcbaGaeyisISlabaGaem4uam1aaSbaaSqaaiabd2eanjabdMgaPbqabaGccqGHRaWkdaaeqaqaaiabdofatnaaBaaaleaacqWGQbGAcqWGPbqAaeqaaOGaemiEaG3aa0baaSqaaiabdQgaQbqaaiabdUgaRbaaaeaacqWGQbGAcqGHsgIRcqWGPbqAcqGGSaalcqWGQbGAcqGHGjsUcqWGnbqtaeqaniabggHiLdaakeaaaeaaaeaacqqGPbqAcqqGMbGzcqqGGaaicqWGnbqtcqqGGaaicqqGPbqAcqqGZbWCcqqGVbWBcqqG2bGDcqqGLbqzcqqGYbGCcqqGTaqlcqqGLbqzcqqG4baEcqqGWbaCcqqGYbGCcqqGLbqzcqqGZbWCcqqGZbWCcqqGLbqzcqqGKbazcqGGUaGlaaaacaGL7baaaaaaaa@5D5B@</m:annotation>
                     </m:semantics>
                  </m:math>
               </display-formula>
            </p>
            <p>Most of the time, this inference problem has a huge number of solutions. However, some variables <it>S</it><sub><it>ji </it></sub>may be assigned the same value in <it>all </it>solutions of the system. Then, the recurrent value assigned to <it>S</it><sub><it>ji </it></sub>is a logical consequence of the constraints (3), and a prediction of the model. We will refer to these inferred interaction signs as <it>predictions </it>of the qualitative system, that is, sign variables <it>S</it><sub><it>ji </it></sub>that have the same value in all solutions of a qualitative system (3). When the inference problem has <it>no solution</it>, we say that the model and the data are <it>inconsistent </it>or <it>ambiguous</it>.</p>
            <p>Let us illustrate this formulation with a very simple (yet informative) example. Suppose that we have a system of three genes <it>A</it>, <it>B</it>, <it>C</it>, where <it>B </it>and <it>C </it>influence <it>A</it>, as given in Fig. <figr fid="F4">4</figr>. Let us say that for this interaction graph we obtained six experiments, and in each of them the variation of all products in the graph was observed. Using some or all of the experiments provided will lead us to different qualitative systems, as shown in Table <tblr tid="T1">1</tblr>, hence to different inference results.</p>
            <fig id="F4">
               <title>
                  <p>Figure 4</p>
               </title>
               <caption>
                  <p>Interaction graph of three genes <it>A</it>, <it>B</it>, <it>C</it>, where their changes in expression was observed in six stress perturbation experiments</p>
               </caption>
               <text>
                  <p>
                     <b>Interaction graph of three genes <it>A</it>, <it>B</it>, <it>C</it>, where their changes in expression was observed in six stress perturbation experiments.</b>
                  </p>
               </text>
               <graphic file="1471-2105-9-228-4"/>
            </fig>
            <tbl id="T1">
               <title>
                  <p>Table 1</p>
               </title>
               <caption>
                  <p>Illustration of the sign inference process</p>
               </caption>
               <tblbdy cols="5">
                  <r>
                     <c ca="center">
                        <p>Experiments used</p>
                     </c>
                     <c ca="center">
                        <p>Qualitative system</p>
                     </c>
                     <c ca="center">
                        <p>Replacing values from experiments</p>
                     </c>
                     <c ca="center">
                        <p>Consistent solutions (<it>S</it><sub><it>BA</it></sub>,<it>S</it><sub><it>CA</it></sub>)</p>
                     </c>
                     <c ca="center">
                        <p>Inferred signs (identical in all solutions)</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="5">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>{<it>e</it><sub>1</sub>}</p>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i6" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabigdaXaaaaaa@2F76@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(+) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (+)</p>
                     </c>
                     <c ca="center">
                        <p>(+, +)</p>
                        <p>(+, -)</p>
                        <p>(-, +)</p>
                     </c>
                     <c ca="center">
                        <p>&#8709;</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="5">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>{<it>e</it><sub>1</sub>, <it>e</it><sub>2</sub>}</p>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i6" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabigdaXaaaaaa@2F76@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(+) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (+)</p>
                     </c>
                     <c ca="center">
                        <p>(+,+)</p>
                     </c>
                     <c ca="center">
                        <p>{<it>S</it><sub><it>BA </it></sub>= +}</p>
                     </c>
                  </r>
                  <r>
                     <c>
                        <p/>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i7" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabikdaYaaaaaa@2F78@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(+) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (-)</p>
                     </c>
                     <c ca="center">
                        <p>(+, -)</p>
                     </c>
                     <c>
                        <p/>
                     </c>
                  </r>
                  <r>
                     <c cspan="5">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>{<it>e</it><sub>1</sub>, <it>e</it><sub>2</sub>, <it>e</it><sub>3</sub>}</p>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i6" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>1</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabigdaXaaaaaa@2F76@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(+) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (+)</p>
                     </c>
                     <c ca="center">
                        <p>(+, +)</p>
                     </c>
                     <c ca="center">
                        <p>{<it>S</it><sub><it>BA </it></sub>= +, <it>S</it><sub><it>CA </it></sub>= +}</p>
                     </c>
                  </r>
                  <r>
                     <c>
                        <p/>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i7" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>2</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabikdaYaaaaaa@2F78@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(+) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (-)</p>
                     </c>
                     <c>
                        <p/>
                     </c>
                     <c>
                        <p/>
                     </c>
                  </r>
                  <r>
                     <c>
                        <p/>
                     </c>
                     <c ca="center">
                        <p>
                           <inline-formula>
                              <m:math name="1471-2105-9-228-i8" xmlns:m="http://www.w3.org/1998/Math/MathML">
                                 <m:semantics>
                                    <m:mrow>
                                       <m:msubsup>
                                          <m:mi>x</m:mi>
                                          <m:mi>A</m:mi>
                                          <m:mn>3</m:mn>
                                       </m:msubsup>
                                    </m:mrow>
                                    <m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemiEaG3aa0baaSqaaiabdgeabbqaaiabiodaZaaaaaa@2F7A@</m:annotation>
                                 </m:semantics>
                              </m:math>
                           </inline-formula>
                        </p>
                     </c>
                     <c ca="center">
                        <p>(-) &#8776; <it>S</it><sub><it>BA </it></sub>&#215; (+) + <it>S</it><sub><it>CA </it></sub>&#215; (-)</p>
                     </c>
                     <c>
                        <p/>
                     </c>
                     <c>
                        <p/>
                     </c>
                  </r>
               </tblbdy>
               <tblfn>
                  <p>In this example the variables are only the roles of regulations (signs) in the interaction graph. Variations of the species in the graph are obtained from six experiments. Using different sets of experiments we infer different roles of regulation. Using experiments {<it>e</it><sub>1</sub>, <it>e</it><sub>2</sub>, <it>e</it><sub>3</sub>}, for example, our qualitative system will have three constraints and not all valuations of variables <it>S<sub>BA</sub></it>and <it>S<sub>CA</sub></it>satisfy this system according to the sign algebra rules. As we obtain unique values for these variables in the solution of the system, we consider them as inferred (predicted).</p>
               </tblfn>
            </tbl>
         </sec>
         <sec>
            <st>
               <p>Algorithmic procedure</p>
            </st>
            <p>When the signs on edges of the interaction graph are known (<it>i.e</it>. fixed values of <it>S</it><sub><it>ji</it></sub>), finding consistent node variations <it>X</it><sub><it>i </it></sub>is a NP-complete problem <abbrgrp><abbr bid="B26">26</abbr></abbrgrp>. When the node variations are known (<it>i.e</it>. fixed values of <it>X</it><sub><it>i</it></sub>), finding the signs of edges <it>S</it><sub><it>ji </it></sub>from <it>X</it><sub><it>i </it></sub>can be proven NP-complete in a very similar way. However, we have been able to design algorithms that perform efficiently on a wide class of regulatory networks. These algorithms predict signs of the edges when the network topology and the expression profiles are consistent. In case of inconsistency, though, they identify ambiguous motifs and propose predictions on parts of the network that are not concerned with ambiguities.</p>
            <p>The general process flow is as follows (see the Methods section for details):</p>
            <p><b>Step 1 </b>Sign Inference</p>
            <p>Divide the graph into motifs (each node with its predecessors). For each motif, find sign valuations (see Algorithm 1 in the Appendix section) that are consistent with all expression profiles. If there are no solutions, call the motif <it>Multiple Behaviours Module (MBM) </it>and remove it from the network.</p>
            <p>Solve again the remaining equations and determine the edge signs that are fixed to the same value in all the solutions. These fixed signs are called <it>predicted edge </it>and represent our predictions.</p>
            <p><b>Step 2 </b>Global test/correction of the inferred signs</p>
            <p>Solutions at the previous step are not guaranteed to be global. Indeed, two node motifs at step 1 can be consistent separately, but not altogether (with respect to all expression profiles). This step checks global consistency by solving the equations for each expression profile. New <it>Multiple Behaviours Modules </it>can be found and removed from the system.</p>
            <p><b>Step 3 </b>Extending the original set of observations</p>
            <p>Once all conflicts have been removed, we get a set of solutions in which signs are assessed to both nodes and edges. <it>Predicted nodes</it>, representing inferred gene variations can be found in the same way as we did for edges. We add the new variations to the set of observations and return to step 1. The algorithm is iterated until no new signs are inferred.</p>
            <p><b>Step 4 </b>Filtering predictions</p>
            <p>In the inconsistent case, the validity of the predictions depends on the accuracy of the model and on the correct identification of the MBMs. The model can be incomplete (missing interactions), and MBMs are not always identifiable in a unique way. Thus, it is useful to sort predictions according to their reliability. Our filtering parameter is a positive integer <it>k </it>representing the number of different experiments with which the predicted sign is consistent. For a filtering value <it>k</it>, all the predictions that are consistent with less than <it>k </it>profiles are rejected.</p>
            <p>The inference process then generates three results:</p>
            <p>1. <it>A set of MBMs</it>, containing interactions whose role was unclear and generated inconsistencies. We have identified several types of MBMs:</p>
            <p>&#8226; Modules of Type I: are composed of several direct regulations towards the same gene. They are detected in the Step 1 of the algorithm, and most of them are composed of only one edge like illustrated in Fig. <figr fid="F5">5</figr>, but bigger examples exist.</p>
            <fig id="F5">
               <title>
                  <p>Figure 5</p>
               </title>
               <caption>
                  <p>Classification of the Multiple Behaviours Modules (MBM) found in <it>S. cerevisiae </it>transcriptional network</p>
               </caption>
               <text>
                  <p><b>Classification of the Multiple Behaviours Modules (MBM) found in <it>S. cerevisiae </it>transcriptional network. </b>Green and red interactions correspond to inferred activations and repressions respectively. Significant differentially expressed genes of the MBM, during one experimental condition, are coloured green (up-regulated), or red (down-regulated) (a) <b>Type I </b>modules are composed by regulations towards the same gene. Regulations in this module were found to be inconsistent in at least 2 experiments. (b) <b>Type II </b>are composed by genes regulated by the same direct predecessor. Explanation: The interaction among Sum1 and <it>YFL040W </it>is inferred at the Step 1 of the algorithm as an activation, while among Sum1 and <it>DIT2 </it>as an inhibition. During the <it>correction </it>step (Step 2), expression profiles related to one experiment showed that the expression of these two genes (<it>YFL040W </it>and <it>DIT2</it>) is up-regulated. As it is impossible to state if <it>SUM1 </it>is up or down-regulated (inconsistency), we mark this module as MBM. (c) <b>Type III </b>are composed by coloured genes that share a predecessor. (d) <b>Type IV </b>are composed by coloured genes sharing the same predecessor or successor.</p>
               </text>
               <graphic file="1471-2105-9-228-5"/>
            </fig>
            <p>&#8226; Modules of Type II, III, IV: are detected in Steps 2 or 3, hence they contain either direct regulations coming from the same protein or indirect regulations and/or loops. Each of these regulations represents a consensus of all the experiments, but when we attempt to assess them globally, they lead to contradictions. The indices II-IV have no topological meaning, they label the most frequent situations and are illustrated in Fig. <figr fid="F5">5</figr>.</p>
            <p>2. <it>A set of inferred signs</it>, meaning that the expression profiles fix the signs of certain interactions in a unique way.</p>
            <p>3. <it>A reliability ranking of inferred signs</it>. The filtering parameter <it>k </it>used for ranking is the number of different expression profiles that validate a given sign.</p>
            <p>On a computational level, the division between Step 1 (which considers each small motif with all profiles together) and Step 2 (which considers the whole network with each profile separately) is necessary to overcome the memory complexity of the search for solutions. To handle large scale systems we combine decision diagrams and constraint solvers (see details in the Methods section).</p>
            <p>Since our basic rule is a weak constraint, we expect it to produce very robust predictions. On the other hand, there are theoretical limits to this approach. For certain interaction graphs, not a single sign may be inferred even with a high number of experiments. In the next paragraphs, we comment on the maximum number of signs that can be inferred from a given graph.</p>
            <p>In perturbation experiments, gene responses are observed following changes of external conditions (temperature, nutritional stress, <it>etc</it>.), gene inactivations, knock-outs, or over-expression. When one expression profile is available for all the genes in the network we say that we have a <it>complete profile</it>, otherwise the profile is <it>partial </it>(data is missing).</p>
            <p>In the following pragraphs we describe the results we obtained. First of all, in order to validate our formal approach, we evaluated the percentage of the <it>E. coli </it>network recovered from a reasonable number of artificial randomly generated perturbation experiments. Secondly, we combined real perturbation experiments with the <it>E. coli </it>network and computed the percentage of the recovered network. Finally, we performed the same previous analysis in a real setting of the <it>S. cerevisiae </it>network obtained from ChIP-chip data.</p>
            <p>On a computational level, we checked that our algorithms were able to handle large scale data, as produced by high-throughput measurement techniques (expression arrays, ChIP-chip data). This is demonstrated in the following by considering networks of thousands of genes.</p>
         </sec>
         <sec>
            <st>
               <p>Stress perturbation experiments: how many do you need?</p>
            </st>
            <p>For any given network topology, even when considering all possible experimental profiles, there are signs that cannot be determined (see Table <tblr tid="T1">1</tblr>). Sign inference has thus a theoretical limit, referred to here as <it>theoretical percentage of recovered signs</it>, that is unique for a given network topology. If only some perturbation experiments are available, and/or data is missing, the percentage of inferred signs will be lower. For a given number <it>N </it>of available expression profiles, <it>the average percentage of recovered signs </it>is defined over all sets of <it>N </it>different expression profiles consistent with the qualitative constraints Eqs. (1) and (2).</p>
            <p>In order to calculate the theoretical and the average percentages of recovered signs for the transcriptional network of <it>E. coli</it>, we modelled the network as an interaction graph using the public database RegulonDB <abbrgrp><abbr bid="B6">6</abbr></abbrgrp>. For each transcriptional regulation <it>A </it>&#8594; <it>B </it>we added the corresponding arrow between genes <it>A </it>and <it>B </it>in the interaction graph. This graph will be referred to as the <it>unsigned interaction graph</it>.</p>
            <p>From the unsigned interaction graph of <it>E. coli</it>, we build the <it>signed interaction graph </it>by annotating the edges with a sign. Most of the time, the regulatory role of a TF is available in RegulonDB, however, when it is unknown or depends on the TF level, we arbitrarily choose the value + for this regulation. This provides a graph with 1529 nodes and 3802 edges, all signed edges. The signed interaction graph is used to generate <it>complete expression profiles </it>that simulate the effect of perturbations. More precisely, a perturbation experiment is represented by a set of gene expression variations {<it>X</it><sub><it>i</it></sub>}<sub><it>i </it>= 1,...,<it>n </it></sub>that are not entirely random, for they are constrained by Eqs.(1) and (2). Then, we forget the signs of the network edges and compute the qualitative system with the signs of regulations as unknown.</p>
            <p>The <it>theoretical maximum percentage of inference </it>is given by the number of signs that can be recovered assuming that <it>complete </it>expression profiles of <it>all </it>conceivable perturbation experiments are available. We computed this maximum percentage using constraint solvers (see Algorithm 2 in the Appendix section). We found that <it>at most </it>40.8% of the signs in the network can be inferred, corresponding to <it>M</it><sub><it>max </it></sub>= 1551 edges.</p>
            <p>However, this maximum can be obtained only if all conceivable (more than 2<sup>50</sup>) perturbation experiments are done, which is in practice not possible. We performed computations to understand the influence of the number of experiments (<it>N</it>) on the inference. For each value of <it>N </it>(from 5 to 200), we generated 100 sets of <it>N complete </it>random expression profiles and performed our algorithm for each set. Then, the percentage of inference was calculated as a function of <it>N</it>. The resulting statistics are shown in Fig. <figr fid="F6">6</figr>.</p>
            <fig id="F6">
               <title>
                  <p>Figure 6</p>
               </title>
               <caption>
                  <p>(Both) Statistics of the sign-inference process on the regulatory network of <it>E. coli </it>from <it>complete </it>expression profiles</p>
               </caption>
               <text>
                  <p><b>(Both) Statistics of the sign-inference process on the regulatory network of <it>E. coli </it>from <it>complete </it>expression profiles.</b> The signed interaction graph is used to generate sets of <it>N </it>random artificial expression profiles which cover the <it>whole </it>network. Then, each set of <it>N </it>profiles is used with the unsigned interaction graph to recover regulatory roles. X-axis: number <it>N </it>of expression profiles in the dataset. Y-axis: percentage of recovered signs in the unsigned interaction graph. Each set of <it>N </it>random profiles was generated 100 times; the distribution of the recovered signs is plotted as a boxplot. The continuous line corresponds to the theoretical formula <it>Y </it>= <it>M</it><sub>1 </sub>+ <it>M</it><sub>2</sub>(1 - (1 - <it>p</it>)<sup><it>X</it></sup>); <it>M</it><sub>1 </sub>denotes the number of single incoming regulations inferred with probability one from any complete profile (using the naive inference algorithm), and <it>M</it><sub>2 </sub>denotes the number of signs inferred with a probability <it>p </it>(0 &lt;<it>p </it>&lt; 1) per experiment. (Left) Statistics using the <it>whole E. coli </it>regulatory network. We estimated that at most 37.3% of the network can be inferred from a small number of different complete profiles. Among the inferred regulations, we estimated to <it>M</it><sub>1 </sub>= 609 the number of signs inferred with probability one from any complete expression profile. The remaining <it>M</it><sub>2 </sub>= 811 signs are inferred with a probability whose average is <it>p </it>= 0.049 per experiment. Hence, 30 perturbation experiments are enough to infer 33% of the network. (Right) Statistics using only the <it>core </it>of the former graph (see definition of a core in the text). We estimated <it>M</it><sub>1 </sub>= 18 and <it>M</it><sub>2 </sub>= 9, implying that the maximum rate of inference is 47.4%. Since <it>p </it>= 0.0011, the number of expression profiles required to obtain a given percentage of inference is greater than in the case using the whole network (<it>N </it>= 100 to infer 33% of the network).</p>
               </text>
               <graphic file="1471-2105-9-228-6"/>
            </fig>
            <p>We can obtain a theoretical formula explaining the saturation aspect of the curve in Fig. <figr fid="F6">6</figr>. Let us suppose that the network contains <it>M</it><sub>1 </sub>single incoming regulations. These can be inferred with probability one from only one experiment, using the naive algorithm (see Algorithm 1). Let us suppose a second category of interactions, whose signs are inferred with probability <it>p </it>(0 &lt;<it>p </it>&lt; 1) on average, per experiment. This implies that the average number of inferred signs for one experiment is <it>M</it>(1) = <it>M</it><sub>1 </sub>+ <it>pM</it><sub>2</sub>, where <it>M</it><sub>2 </sub>is the number of interactions in the second category. Supposing now that inference failures are independent for different experiments, we obtain the average number of inferred signs for <it>N </it>experiments: <it>M</it>(<it>N</it>) = <it>M</it><sub>1 </sub>+ <it>M</it><sub>2</sub>(1 - (1 - <it>p</it>)<sup><it>N</it></sup>). In general, we have <it>M</it><sub>1 </sub>+ <it>M</it><sub>2 </sub>&lt;<it>E </it>(<it>E </it>is the total number of edges), meaning that there are edges whose signs cannot be inferred.</p>
            <p>In our example, the value <it>M</it><sub>1 </sub>= 609 corresponds to the average number of signs inferred by the naive algorithm. Surprisingly, by using our method we can significantly improve the naive inference with little effort. For the whole <it>E. coli </it>network it appears that a few expression profiles are enough to infer a significant percentage of the network. More precisely, 30 different expression profiles may be enough to infer one third of the network (1267 regulatory roles). Adding more expression profiles continuously increases the percentage of inferred signs. For <it>N </it>> 100 we are practically on the plateau close to 37.3% (this corresponds to <it>M </it>= 1420 signed regulations).</p>
            <p>According to our estimates the position of the plateau is <it>M </it>= <it>M</it><sub>1 </sub>+ <it>M</it><sub>2 </sub>= 1420, which is smaller than the theoretical maximum <it>M </it>&lt;<it>M</it><sub><it>max</it></sub>. The difference, although negligible in practice (to obtain <it>M</it><sub><it>max </it></sub>one has to perform <it>N </it>> 2<sup>50 </sup>experiments), suggests that the plateau has a very weak slope. This means that contributions of different experiments to sign inference are weakly dependent.</p>
            <p>The values of <it>M</it><sub>1</sub><it>, M</it><sub>2</sub>, <it>p </it>estimate the efficiency of our method: large <it>p</it>,<it>M</it><sub>1</sub>,<it>M</it><sub>2 </sub>mean small number of expression profiles needed for inference.</p>
         </sec>
         <sec>
            <st>
               <p>Inferring the core of the network</p>
            </st>
            <p>Obviously, not all interactions play the same role in the network. The <it>core </it>is a subnetwork that naturally appears for computational purposes and plays an important role in the system. It consists of all oriented loops and of all oriented chains leading to loops. All oriented chains leaving the core without returning are discarded when reducing the network to its core. Acyclic graphs and in particular trees have no core. The main property of the core is that if a system of qualitative equations has no solution, neither has the reduced system built from its core. Hence it corresponds to the most difficult part of the constraints to solve. It is obtained by reduction techniques that are very similar to those used in <abbrgrp><abbr bid="B28">28</abbr></abbrgrp> (see details in the Methods section). As an example, the core of <it>E. coli </it>network (shown in Fig. <figr fid="F7">7</figr>) only has 28 nodes and 57 edges.</p>
            <fig id="F7">
               <title>
                  <p>Figure 7</p>
               </title>
               <caption>
                  <p>Core of <it>E. coli </it>network</p>
               </caption>
               <text>
                  <p><b>Core of <it>E. coli </it>network.</b> It consists of all oriented loops and of all oriented chains leading to loops. The core contains the dynamical information of the network, hence sign edges are more difficult to infer.</p>
               </text>
               <graphic file="1471-2105-9-228-7"/>
            </fig>
            <p>In the previous section, we applied the same inference process to this graph. Not surprisingly, we noticed a rather different behaviour when inferring signs on a core graph than on a whole graph as demonstrated in Fig. <figr fid="F6">6</figr>. In the former case, we needed many more experiments for the inference since the sets of expression profiles contained from <it>N </it>= 50 to 2000 random profiles.</p>
            <p>Two observations may be concluded. First, a greater number of experiments is required to reach a comparable percentage of inference; the value of <it>p </it>is smaller than for the whole network. This confirms that the core is more difficult to infer than the rest of the network. Second, Fig. <figr fid="F6">6</figr> displays a much less continuous behaviour for the core. More precisely, when using the core, different perturbation experiments have a strongly variable impact on sign inference. For instance, the experimental maximum percentage of inference (27 signs over 58) can be obtained already from about 400 expression profiles, yet, most of the datasets with 400 profiles infer only 22 signs.</p>
            <p>This suggests that not only the core of the network is more difficult to infer, but also that a brute force approach (multiplying the number of experiments) may fail as well. This situation encourages us to apply experiment design and planning, that is, computational methods to minimise the number of perturbation experiments while inferring a maximal number of regulatory roles.</p>
            <p>This also illustrates why our approach is complementary to dynamical modelling. In the case of large scale networks, when an interaction stands outside the core of the graph, an inference approach is suitable for inferring the sign of the interaction. However, when an interaction belongs to the core of the network, more complex behaviours occur (<it>e.g</it>. influences that depend on activation thresholds) thus, a precise modelling of the dynamical behaviour of this part of the network should be performed <abbrgrp><abbr bid="B29">29</abbr></abbrgrp>.</p>
         </sec>
         <sec>
            <st>
               <p>Influence of missing data</p>
            </st>
            <p>In the previous paragraphs, we assumed that all products in the network were observed. That is, in each experiment each node is assigned a value in {+, <b>0</b>, -}. However, in real measurement devices, such as expression profiles, a part of the values is discarded due to technical reasons. A practical method for network inference should cope with missing data.</p>
            <p>We studied the impact of missing values on the percentage of inference. For this, we have considered a fixed number of expression profiles (<it>N </it>= 30 for the whole <it>E. coli </it>network, <it>N </it>= 30 and <it>N </it>= 200 for its core). Then, we have randomly discarded a growing percentage of observed products in the profiles, and computed the percentage of inferred regulations. The resulting statistics are shown in Fig. <figr fid="F8">8</figr>.</p>
            <fig id="F8">
               <title>
                  <p>Figure 8</p>
               </title>
               <caption>
                  <p>(All) Statistics of the sign-inference process on the regulatory network of <it>E. coli </it>from <it>partial </it>expression profiles</p>
               </caption>
               <text>
                  <p><b>(All) Statistics of the sign-inference process on the regulatory network of <it>E. coli </it>from <it>partial </it>expression profiles.</b> The setting is similar to the one used in Fig. 6, except for the cardinal of the expression profiles (<it>N </it>is fixed), and for the variable on X-axis which represents the percentage of missing values in the expression profiles. The continuous line corresponds to the theoretical prediction <it>M</it><sub><it>i </it></sub>= <inline-formula><m:math name="1471-2105-9-228-i9" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>M</m:mi><m:mi>i</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemyta00aa0baaSqaaiabdMgaPbqaaiabd2gaTjabdggaHjabdIha4baaaaa@32A7@</m:annotation></m:semantics></m:math></inline-formula> - <it>d </it>* <it>f </it>* <it>M</it><sub><it>total</it></sub>; where <inline-formula><m:math name="1471-2105-9-228-i9" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>M</m:mi><m:mi>i</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemyta00aa0baaSqaaiabdMgaPbqaaiabd2gaTjabdggaHjabdIha4baaaaa@32A7@</m:annotation></m:semantics></m:math></inline-formula> is the number of inferred interactions from <it>complete </it>expression profiles, <it>d </it>is the number of interaction signs no longer inferred when a node is not observed, <it>f </it>is the fraction of unobserved nodes, and <it>M</it><sub><it>total </it></sub>is the total number of nodes. (Left) Statistics for the whole network; we used 30 sets of artificial expression profiles (<it>N </it>= 30). We estimated <it>d </it>= 0.35, meaning that on average we lose one interaction sign for about 2.9 missing values in the profiles. (Middle) Statistics for the core network (<it>N </it>= 30). We estimated <it>d </it>= 0.43; the core of the network, however, is more sensitive to missing data. (Right) Statistics for the core network (<it>N </it>= 200). We estimated <it>d </it>= 0.74; hence, increasing the number of expression profiles increases the sensitivity to missing data.</p>
               </text>
               <graphic file="1471-2105-9-228-8"/>
            </fig>
            <p>In both cases (whole network and core), the dependency between the average percentage of inference and the percentage of missing values is qualitatively linear. Simple arguments allow us to find an analytic dependency. If not observing one node of the network implies losing information on <it>d </it>interaction signs, we are able to obtain the following linear dependency <it>M</it><sub><it>i </it></sub>= <inline-formula><m:math name="1471-2105-9-228-i9" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>M</m:mi><m:mi>i</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemyta00aa0baaSqaaiabdMgaPbqaaiabd2gaTjabdggaHjabdIha4baaaaa@32A7@</m:annotation></m:semantics></m:math></inline-formula> - <it>d </it>* <it>f </it>* <it>M</it><sub><it>total</it></sub>; where <inline-formula><m:math name="1471-2105-9-228-i9" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msubsup><m:mi>M</m:mi><m:mi>i</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msubsup></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacPC6xNi=xH8viVGI8Gi=hEeeu0xXdbba9frFj0xb9qqpG0dXdb9aspeI8k8fiI+fsY=rqGqVepae9pg0db9vqaiVgFr0xfr=xfr=xc9adbaqaaeGaciGaaiaabeqaaeqabiWaaaGcbaGaemyta00aa0baaSqaaiabdMgaPbqaaiabd2gaTjabdggaHjabdIha4baaaaa@32A7@</m:annotation></m:semantics></m:math></inline-formula> is the number of inferred interactions for complete expression profiles (no missing values), <it>f </it>is the fraction of unobserved nodes, and <it>M</it><sub><it>total </it></sub>is the total number of nodes. In order to keep <it>M</it><sub><it>i </it></sub>non negative, <it>d </it>must decrease with <it>f</it>. Our numerical results imply that the constancy of <it>d </it>and the linearity of the above dependency extend to rather large values of <it>f</it>. This indicates that our qualitative inference method is robust enough for practical use. For the whole network we estimated <it>d </it>= 0.35, meaning that on average we lose one interaction sign for about 2.9 missing values. However, for the same number of expression profiles, the core of the network is more sensitive to missing data (the value of <it>d </it>is larger, it corresponds to losing one sign for about 2.3 missing values). For the core, increasing the number of expression profiles increases <it>d </it>and hence the sensitivity to missing data.</p>
         </sec>
         <sec>
            <st>
               <p>Application to <it>E. coli </it>network with a real compendium of expression profiles</p>
            </st>
            <p>We validated our method on the transcriptional <it>E. coli </it>network using the compendium of expression profiles publicly available in <abbrgrp><abbr bid="B9">9</abbr></abbrgrp> and <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>. This time the network was composed of 1418 nodes and 2888 edges. The difference with the previous model are the sigma-factors &#8211; gene interactions.</p>
            <p>Several profiles were available, including a reference condition. We grouped together the different profiles corresponding to the same experiment; for each gene we calculated its average variation in the group of profiles. When profiles were time series, we considered that each time series ends with steady state and we used the last state in the time series. Then, we sorted the measured genes in four classes: 2-fold up-regulated, 2-fold down-regulated, non-observed, and zero variation; this last class corresponds to non significantly (2-fold) expressed genes. Only the first two classes were used in the algorithm. Therefore, there will be missing data: for some edges, neither the input nor the output are observed. Altogether, we have processed 226 sets of expression profiles corresponding to 61 different experiments (over-expression, gene-deletion, and stress perturbation). We verified, for all the experiments, that they correspond to the comparison between one perturbed condition against a control condition with identical levels in all chemical components except for the one altered in the perturbed condition.</p>
            <p>We applied our inference algorithm twice: the first time we used the signed network in a pre-processing step, in order to clean the expression data. It appears that the signed network is consistent with only 31 of the 61 selected experiments. After discarding the inconsistent motifs from each experiment (deleting observations that caused conflicts), we stayed with 61 experiments which only contained the data consistent with the signed network. In these 61 experiments, on average 12.62% of the network nodes were observed. When summing up all the observations, we obtained that 6.5% (190) of the edges (input and output) were observed in at least one expression profile; these represent the maximal set of signs that can be inferred at Steps 1 and 2 of our inference algorithm. In order to test our algorithm we wiped out the information on edge signs and then tried to recover it. Since the profiles and network were consistent, our algorithm found no ambiguity and predicted 38 signs, <it>i.e</it>. 20% of the edges observed at least once (input and output). The naive inference algorithm inferred 31 signs. Hence, 18% of the total of our predictions could not be obtained by the naive algorithm.</p>
            <p>Afterwards, we tested our algorithm with the full set of observations, no data being discarded. Conflicts appeared and we filtered our inference with different parameters on the full set of 61 experiments including inconsistencies. This time 12.9% of the network products were observed on average. When summing all the observations, 17.2% (497) of the edges (input and output) were observed in at least one expression profile. Several values of the filtering parameter <it>k </it>were used from <it>k </it>= 1 to <it>k </it>= 5. Without filtering we predicted 152 signs of the network (30% of the edges observed at least once), among them, 41.4% were not inferred by the naive algorithm. We compared the predictions to the known interaction signs: 28.3% of the predictions were false predictions. Sources of errors may lie on non-modelled interactions (possibly effects of sigma-factors), or in using experiments on different <it>E. coli </it>strains. Filtering improves our score allowing us to retain only reliable predictions. Thus, for <it>k </it>= 5, we inferred 41 signs, of them, only 1 was an incorrect prediction (2.5% of false prediction). We conclude that filtering is a good way to strengthen our predictions even when the model is not precise enough. We illustrated the effect of the filtering process in Fig. <figr fid="F9">9</figr>.</p>
            <fig id="F9">
               <title>
                  <p>Figure 9</p>
               </title>
               <caption>
                  <p>Results of the inference algorithm applied to <it>E. coli </it>network with a compendium of 61 experiments not globally coherent</p>
               </caption>
               <text>
                  <p><b>Results of the inference algorithm applied to <it>E. coli </it>network with a compendium of 61 experiments not globally coherent. </b>The dark and light regions of the bars correspond to false positive and validated predictions, respectively. Without filtering, there are 28.3% of false positives. With filtering &#8211; keeping only the sign predictions confirmed by <it>k </it>different experiments &#8211; the rate of false positives decreases to 2.5%.</p>
               </text>
               <graphic file="1471-2105-9-228-9"/>
            </fig>
            <p>It should be noted that we obtained very similar results either by cleaning the data thanks to the signed network, either by using our filtering procedure. This is a particularly clear indication that this filtering procedure is an effective strategy to produce robust predictions.</p>
            <p>Our algorithm also detected ambiguous modules in the network. There are seven MBM of Type I (<it>i.e</it>. single incoming interactions); four of them are also stated as ambiguous by the naive algorithm. In addition, there are 4 MBM of Type II that are not detected by the naive inference algorithm. All the ambiguities are shown in Fig. <figr fid="F10">10</figr>. A list of experimental assays that yield ambiguities on each interaction is given in the Supplementary Web site. This analysis shows that there exist non-modelled interactions that balance the effects on the targets in the MBM detected.</p>
            <fig id="F10">
               <title>
                  <p>Figure 10</p>
               </title>
               <caption>
                  <p>Interactions in the regulatory network of <it>E. coli </it>that are ambiguous with a compendium data of expression profiles</p>
               </caption>
               <text>
                  <p><b>Interactions in the regulatory network of <it>E. coli </it>that are ambiguous with a compendium data of expression profiles.</b> For each interaction, there exist at least two expression profiles that do not predict the same sign on the interaction. Dotted and filled lines represent the MBM of Type I and Type II, respectively.</p>
               </text>
               <graphic file="1471-2105-9-228-10"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>A real case: inference of signs in <it>S. cerevisiae </it>transcriptional regulatory network</p>
            </st>
            <p>We applied our inference algorithm to the transcriptional regulatory network of the budding yeast <it>S. cerevisiae</it>. Let us here briefly review the available sources that can be used to build the unsigned regulatory network. The experimental dataset proposed by Lee <it>et al</it>. <abbrgrp><abbr bid="B11">11</abbr></abbrgrp> is widely used in the network reconstruction literature. It is a study conducted under nutrient rich conditions, and it consists of an extensive ChIP-chip screening of 106 TFs. Estimations regarding the number of yeast TFs that are likely to regulate specific groups of genes by direct binding to the DNA vary from 141 to 209, depending on the selection criteria. In follow-up papers of this work, the ChIP-chip analysis was extended to 203 yeast TFs in rich media conditions and 84 of these regulators in at least one environmental perturbation <abbrgrp><abbr bid="B12">12</abbr></abbrgrp>. Analysis methods were refined in 2005 by MacIsaac <it>et al</it>. <abbrgrp><abbr bid="B13">13</abbr></abbrgrp>. Other studies continued to work in this network using different approaches <abbrgrp><abbr bid="B10">10</abbr><abbr bid="B14">14</abbr><abbr bid="B15">15</abbr><abbr bid="B16">16</abbr></abbrgrp>. Here we selected two of these sources. All networks are provided in the Supplementary Web site.</p>
            <p>(A) The first network consists of the core of the transcriptional ChIP-chip regulatory network produced in <abbrgrp><abbr bid="B11">11</abbr></abbrgrp>. Starting from the full network with a p-value of 0.005, we reduced it to the set of nodes that have at least one output edge. This network was already studied in <abbrgrp><abbr bid="B28">28</abbr></abbrgrp>. It contains 31 nodes and 52 interactions.</p>
            <p>(B) The second network contains all the transcriptional interactions between TFs shown by <abbrgrp><abbr bid="B11">11</abbr></abbrgrp> with a p-value below 0.001. It contains 70 nodes and 96 interactions.</p>
            <p>(C) The third network is the set of interactions among TFs as inferred in <abbrgrp><abbr bid="B13">13</abbr></abbrgrp> from sequence comparisons. We have considered the network corresponding to a p-value of 0.001 and 2 bindings (83 nodes, 131 interactions).</p>
            <p>(D) The last network contains all the transcriptional interactions among genes and regulators shown by <abbrgrp><abbr bid="B11">11</abbr></abbrgrp> with a p-value below 0.001. It contains 2419 nodes and 4344 interactions.</p>
            <sec>
               <st>
                  <p>Inference process with gene-deletion expression profiles</p>
               </st>
               <p>We first applied our inference algorithm to the large scale network (D) using a panel of expression profiles for 210 gene-deletion experiments <abbrgrp><abbr bid="B30">30</abbr></abbrgrp>. The information given by this panel is quite small, since 1.6% of all the products in the network is on average observed, and 12% of the edges (input and output) of the network are observed in at least one expression profile. Using these data, we inferred 162 regulatory roles.</p>
               <p>We validated our prediction with a literature-curated network on Yeast <abbrgrp><abbr bid="B31">31</abbr></abbrgrp>. We found that among the 162 sign-predictions, 12 were referenced with a known interaction in the database, and 9 with a good sign.</p>
               <p>Gene-deletion expression profiles were used in order to compare our results to path analysis methods <abbrgrp><abbr bid="B20">20</abbr><abbr bid="B23">23</abbr></abbrgrp> since the latter can only be applied to knock-out data. Other sign-regulation inference methods needed either other sources of gene-regulatory information (promoter binding information, protein-protein information), or time-series data to be performed <abbrgrp><abbr bid="B10">10</abbr><abbr bid="B15">15</abbr><abbr bid="B18">18</abbr></abbrgrp>.</p>
               <p>First, we tested the consistency between the inferred network obtained from path analysis methods with the 210 gene-deletion experiments. We obtained that the network was inconsistent with 28 of the 210 experiments. Second, we compared the inference results for both methods, our approach and the path analysis method, obtaining in the latter that 234 roles of widely connected paths were inferred; whereas with our method 162 roles were inferred, mainly localised in the branches of the network. Both results intersected on 17 interactions and no contradiction in the inferred role was reported. An illustration of these results is given in the Supplementary Web site.</p>
               <p>This suggests that our approach is complementary to path analysis methods. Our explanation is as follows: in <abbrgrp><abbr bid="B20">20</abbr><abbr bid="B23">23</abbr></abbrgrp>, network inference algorithms identify probable paths of physical interactions connecting a gene knock-out to genes that are differentially expressed as a result of that knock-out. This leads to a search for the smallest number of interactions that carry the largest information in the network. Hence, inferred interactions are located near the core of the network, but not exactly in the core. On the contrary, as we already mentioned, the combinatorics of interactions in the core of the network are too intricate to be determined from a few hundreds of expression profiles with our algorithm, thus, we concentrate on interactions around the core.</p>
            </sec>
            <sec>
               <st>
                  <p>Inference with stress perturbation expression profiles</p>
               </st>
               <p>To overcome the problem exposed using the small amount of information contained in <abbrgrp><abbr bid="B30">30</abbr></abbrgrp>, we have used stress perturbation experiments. These data correspond to curated information available in SGD (Saccharomyces Genome Database) <abbrgrp><abbr bid="B32">32</abbr></abbrgrp>. When time series profiles were available, we selected the last time expression array. Therefore, we collected and treated 15 experiments described in Table <tblr tid="T2">2</tblr>. For each expression array, we sorted the measured genes in four classes: 2-fold up-regulated, 2-fold down-regulated, non-observed, and zero variation. Full datasets are available in the Supplementary Web site.</p>
               <tbl id="T2">
                  <title>
                     <p>Table 2</p>
                  </title>
                  <caption>
                     <p>List of genome expression experiments on <it>S. cerevisiae </it>used in the sign inference process</p>
                  </caption>
                  <tblbdy cols="3">
                     <r>
                        <c ca="center">
                           <p>Experiment Identifier</p>
                        </c>
                        <c ca="left">
                           <p>Description</p>
                        </c>
                        <c ca="center">
      