<title>Background</title> <p>Microarray experiments are popular tools in functional genomics. Correspondingly, many techniques have been developed to analyze their results. Typical questions asked include which genes are differentially expressed [##UREF##0##1##], and which groups of genes show similar expression in multiple related experiments [##UREF##1##2##]. Identifying functional patterns among the resulting list or groups of genes is a separate step that is not supported by standard clustering techniques. Biclustering techniques have been developed to group functions and experiments simultaneously [##UREF##2##3##,##REF##12169541##4##]. Gene expression information is also used to predict gene functions [##REF##10618406##5##]. In experiments related to transcriptional regulation, the objective is to understand the regulation process rather than predicting protein function. That means that predictive techniques are not appropriate.</p> <p>Recently, gene set enrichment analysis, GSEA [##REF##16199517##6##,##REF##17644558##7##], has become a popular tool for relating expression values to properties that define sets of genes. Gene set analysis conventionally tests the relationship of gene expression experiments related to a discrete phenotype to any one of a number of possible grouping criteria. A phenotype may distinguish between healthy and diseased tissue or between different strains of bacteria. GSEA also enables such analysis for continuous phenotype labels. This feature can be used for time series gene expression data. However, this analysis type requires knowing what the profile of interest is. Two example applications are suggested in the GSEA documentation [##UREF##3##8##]: An expected profile such as a peak or alternatively the expression of a particular gene may be used as profile of interest.</p> <p>Our algorithm does not require any input of an expected profile. The distribution of gene expression profiles alone is what determines whether the gene set shows enrichment. This allows us to not only consider time course experiments for which a particular profile may be natural to expect but any group of related experiments. Fig. ##FIG##0##1## illustrates the concept: The same set of curves is shown in the left and in the right panel of the figure. Each curve represents a gene expression profile over multiple related experiments. In each panel, a different subset of profiles is highlighted, corresponding to genes of a different functional designation. The highlighted profiles in the left panel show a clear pattern, while the ones in the right panel do not. We quantify the presence of patterns by identifying neighboring relationships among profiles using a product measure. If a gene has many neighbors with a similar expression profile – more than would be expected by random chance – then it supports the existence of a pattern. The number of neighbors, for all genes that show the function, is summarized in a histogram. In the left panel, two of the profiles have all other three genes as neighbors, and the others have two neighbors. In the right panel, in contrast, none of the profiles has any neighbor. It is expected that some profiles may have neighbors by random chance alone. For this reason, we compare the resulting histograms with ones that are generated for random subsets of the same size.</p> <p>The concept of gene set enrichment has previously been applied to the results of clustering or biclustering [##REF##16176576##9##]. In this approach it is tested whether any one particular functional category shows enrichment for the clustering that was determined. Fig. ##FIG##1##2## illustrates the limitations of such a two-step process. This schematic uses the same type of representation as Fig. ##FIG##0##1##, in which experiments are shown side-by-side and are connected by lines. The example was constructed such, that there are two clear clusters that would be identified by most clustering algorithms. One cluster is formed by the five genes that have primarily positive expression values and the other cluster by those that have primarily negative values. Neither of these clusters shows enrichment for the function that is highlighted, since each of them has two out of five members with the annotation. The genes with the annotation, nevertheless, show a clear pattern. The right panel illustrates that the histogram of neighbors for the subset of highlighted genes differs from what would be expected for a random subset, showing that such patterns are accessible to our algorithm. Notice that the similarity among the highlighted genes is not sufficient to consider them as a cluster based on expression values alone. Our algorithm, in contrast, tests solely whether their distribution within the space of gene expression values differs from what would be expected. No information is lost prior to that test. If clustering/biclustering is performed first, the information that the highlighted genes are similar despite being in different clusters is lost. This limitation of the clustering-based approach cannot be resolved by using different clustering algorithms that use functional information [##UREF##4##10##] since such algorithms would distort the probability of finding enrichment. Our one-step approach resolves the problems of the two-step approaches at a fundamental level.</p> <p>Work by Kim <italic>et al. </italic>[##REF##18021416##11##] can also be compared with our approach. In this work conventional statistical techniques are used, in particular the Pearson correlation coefficient. For that reason, gene sets have to be grouped into functional clusters first, such that there is a sufficiently large number of genes in each group. The histogram-based analysis in our presented algorithm can be applied to fewer genes, and furthermore performs a direct comparison with a randomized distribution. Using the Pearson correlation coefficient directly as a measure of coherence amounts to an assumption of a homogeneous comparison distribution, much as our theoretical model, which is introduced as a high-performing alternative. In contrast to the work by Kim and coworkers, our algorithm allows a more accurate comparison based on resampling. Other modifications have been proposed to the gene set enrichment concept, such as dimensionality reduction [##REF##17127676##12##] and considering multiple functional groups [##REF##15840702##13##]. Reviews of some related techniques can be found in [##REF##18202032##14##,##REF##15950303##15##].</p> <p>Our algorithm is tested on a published set of microarray data [##REF##12366850##16##], in which each experiment corresponds to one knock-out mutant that represents one two-component system, compared to wild-type <italic>E. coli</italic>. Two-component systems are regulatory systems that involve two protein components, a histidine kinase and a response regulator. In response to an environmental stimulus, the histidine kinase phosphorylates itself and then transfers the phosphate to the response regulator. Transcription regulation only happens when the response regulator is in its phosphorylated state. In this sense, two-component systems are the predominant signal transduction system in bacteria, being used for the response to a diverse set of environmental signals (for a review on the physiological role of two-component systems, please, see [##UREF##5##17##]). Two-component systems have attracted the attention of bioinformatics researchers for the past years. The abundance of these systems makes them particularly suitable for genomics studies. Many bacteria have two-component systems, the majority of them possessing multiple of them. In addition, sensor domains that are unrelated to the sensor kinase domain and the response regulator domain are abundant within two-component systems, further increasing their complexity. Crosstalk between different signaling systems completes the signaling network (for an early study on the signaling network, please, see [##UREF##6##18##]).</p> <p>Genomics studies involving two-component systems include sequence comparisons of a single two-component system (chemotaxis) across many different bacteria [##REF##17628132##19##], sequence based structural classification of several response regulators across many genomes [##REF##16740923##20##], and the development of new protocols to identify two-component systems in newly sequenced genomes [##REF##17628134##21##]. Evolutionary studies identified recently evolved signaling molecules, indicating increased selective pressure upon the bacteria [##REF##17083272##22##]. A new database, Sentra [##REF##17135204##23##,##UREF##7##24##], includes many two-component systems, as well as other signaling proteins. It was hypothesized that a network of two-component systems might equip the bacteria with a rudimentary form of intelligence [##REF##15817384##25##].</p> <p>All of these studies use a comparative genomics approach to obtain structural and/or functional information. As the function of most of these two-component systems (exception chemotaxis) lies in gene regulation, functional genomics experiments have been performed for a small number of them [##REF##15322361##26##,##REF##11929534##27##]. The data set used for this study constitutes the most complete compilation of data on gene regulation by two-component systems that is currently available [##REF##12366850##16##]. We will use an integrated approach to analyze this data set, combining functional or domain information with gene expression data. Throughout this manuscript, we will refer to the two-component system mutants as attributes and the log expression ratios between mutant and wild-type as attribute values.</p> <p>The objective of the study is to find functional groups that are preferentially regulated by a specific set of two-component systems. Such information is of interest in understanding gene regulation. The objective is different from conventional clustering approaches, in which the actual gene clusters are in the foreground [##UREF##1##2##] and functional information may be used to improve clustering results [##UREF##2##3##,##UREF##4##10##,##UREF##8##28##]. Functional information has also been considered in the context of determining the significance of clustering results [##REF##15713738##29##]. Our approach, in contrast, finds the significance of the relationship between the function and the differential expression. A related algorithm, using a subspace-based distance measure, has been discussed previously [##UREF##9##30##], and applied to cell cycle experiments in yeast.</p> <p>This study is based on the perspective that groups of similar data points represent patterns in the data. Most clustering techniques implicitly use this concept and density-based techniques [##UREF##10##31##] are explicitly based on it. Pattern-based techniques have also been used to find differentially expressed genes [##UREF##11##32##,##UREF##12##33##]. While most algorithms use the full data set to find patterns, in this study we only consider the subset of data points that have a particular property of interest. Properties may either be functional designations, as provided through Gene Ontology (GO-terms [##REF##10802651##34##]) or hidden Markov models for protein domains (HMMs [##REF##14681378##35##]). If the subset shows an inhomogeneous distribution of data points, then we conclude that the property is related to the gene expression data set.</p> <p>The objective of our study is, hence, slightly different from the goals of GSEA, where a main motivation is summarized by Efron &amp; Tibshirani [##UREF##13##36##] as "By borrowing strength across the gene-set, there is potential for increased statistical power". Towards this goal, it is essential to correctly take into consideration that not just one test is performed, but multiple. The GSEA algorithm does so by controlling the false discovery rate [##REF##11682119##37##]. In a multiple hypothesis testing context, overlap between gene sets has to be carefully taken into consideration [##REF##16606683##38##,##REF##18203773##39##]. In our work, the focus is on establishing that any one pattern we find is significant. It is not our intention to increase the significance of the gene expression experiment, but rather to find non-obvious patterns involving multiple, possibly independent, experiments. We thereby follow the pattern mining paradigm, which typically takes the perspective that any one reported pattern should be significant, but each pattern is an independently determined entity [##UREF##14##40##].</p>
<title>Methods</title> <p>The data set used for this study was constructed by Oshima and coworkers [##REF##12366850##16##]. They examined mRNA levels in 36 two-component deletion mutants and compared them to those of wild-type bacteria. Growth conditions were kept constant between experiments. The data were expressed as expression ratios, dividing the expression level of each gene in the mutant by that of the wild-type. The mutant collection covers all of the two-component systems that <italic>E. coli </italic>possesses. In cases where kinase and response regulator are encoded by genes that form one operon, this two-component system only yields one mutant. In other cases, kinase and response regulator genes are far apart on the chromosome and then there are two mutants to cover these two genes.</p> <p>As a first processing step, the data were converted to log expression ratios by taking a log<sub>10</sub>. We then applied the <italic>z</italic>-normalization that is required by the algorithm itself. About 14% of the data points are missing in the whole data set. This can happen because not all genes are expressed under all conditions. We replaced the missing values with a log ratio of 0, since 0 does not contribute to the similarity using the product measure. As a next step, we eliminated genes that were not differentially expressed, i.e. we only kept those genes that had an absolute log expression ratio of at least log<sub>10</sub>(2) for at least one of the two-component systems. 2570 genes satisfied this criterion and were used for the remainder of the analysis.</p> <p>As function data we used the GO and PF annotations from previously published work [##REF##17147788##61##], and a threshold was applied that requires an annotation to be held by at least 15 genes, leaving us with 13 functions. A standard <italic>χ</italic><sup>2 </sup>test was used on the histograms after the following preprocessing: Bins at both ends of the distribution were merged until the expected number was at least 5. If the intermediate bins had an expected number smaller than 5, then pairs of bins were merged until no more bins had an expected number smaller than 5. A function was considered as significantly related to the expression data if the <italic>χ</italic><sup>2 </sup>goodness-of-fit test yielded a <italic>p</italic>-value ≤ 0.05. The algorithm was implemented in C++, compiled by C++Builder 6.0.</p> <p>A quantitative biofilm assay was used to test one of the hypotheses that our algorithm had generated. This assay involved the measurement of ATP, an energy molecule whose concentration is considered consistent across various growth conditions [##REF##14670952##62##], in a bioluminescence reaction. The assay was performed as previously described [##UREF##16##53##] with 12 wells per strain on a 96 well plate. Triplicate experiments were performed, average and standard deviation are presented. The bacterial strains used were BW25311 [##REF##10829079##63##,##REF##16738554##64##], as well as their isogenic <italic>basSR, ntrBC</italic>, and <italic>uvrY </italic>mutants [##REF##12897016##65##]. These strains are the same strains that the data (Tables ##TAB##3##4## and ##TAB##4##5##) had been derived from. Biofilms were formed in tryptone broth (1% tryptone, 0.5% NaCl) at 37°C for 40 h.</p>
<title>Results and discussion</title> <title>Algorithm</title> <p>The algorithm has two objectives: (1) Identifying subsets that have a distribution that significantly differs from what would be expected for a random subset and (2) finding those data points that have more neighbors than expected. We define a density measure that is evaluated for each data point, and is given by the number of neighbors that are close according to a product similarity measure. Product similarity is used, rather than cosine similarity or Euclidean distance, since we expect those vector pairs to be most relevant that exhibit a large absolute value of differential expression as well as a small angle between vectors. The product similarity measure for vectors x<sup>(<italic>j</italic>) </sup>and x<sup>(<italic>k</italic>)</sup>, with coordinates  and  respectively, is defined as follows</p> <p></p> <p>where N is the number of selected data points, and <italic>d </italic>the number of dimensions, i.e. the number of experiments that are being considered. Vectors for which <italic>S</italic><sub><italic>jk </italic></sub>exceeds a threshold <italic>t </italic>are considered neighbors. The threshold is given as</p> <p></p> <p>where <italic>μ </italic>is chosen to be 0.3 in the evaluation. The algorithm does not strongly depend on the choice of <italic>μ </italic>as will be discussed in the section on choices within the algorithm. Each data point is associated with a density that is of type integer: the number of neighbors that satisfy the product similarity criterion. The occurring density values for all data points can be summarized using histograms. Density calculations are done on column-wise <italic>z</italic>-normalized data [##REF##12707371##41##], i.e. for each attribute, the mean is subtracted and the attribute values are divided by the standard deviation. The rationale for using column-wise rather than row-wise normalization is that overall large absolute log expression ratios of individual genes are thereby preserved. This choice is also discussed in detail later. Fig. ##FIG##2##3## and ##FIG##3##4## show examples of histograms of the observed density values that are derived using the product similarity criterion (blue bars). These examples are derived as part of the evaluation on the Oshima data set on two-component systems [##REF##12366850##16##], which is discussed in more detail in the next section.</p> <p>Even randomly distributed vectors are expected to have some neighbors. We, therefore, have to evaluate the expected distribution of densities. This is done by randomly selecting a subset of genes that has the same number of elements as the protein function under consideration. A histogram is then constructed for the random subset. The process is repeated multiple times and the results averaged over 20 runs. Table ##TAB##0##1## summarizes this resampling-based algorithm. Figs. ##FIG##2##3## and ##FIG##3##4## (white bars) show the distribution for random data sets in addition to the experimental ones.</p> <p>An observed histogram is considered significant if it would be unlikely to encounter it based on a randomly selected set of genes. A <italic>χ</italic><sup>2 </sup>goodness-of-fit test is used to compare the histogram with its randomized counterpart. We consider patterns as significant, if the comparison yields a <italic>p</italic>-value ≤ 0.05. The methods section provides details on the significance testing. Fig. ##FIG##2##3## shows three vector-item patterns that are considered significant, while Fig. ##FIG##3##4## shows one counter example that is not considered significant.</p> <title>Application of the algorithm to two-component system data</title> <p>We applied the algorithm to the two-component system data from Oshima and coworkers [##REF##12366850##16##]. Throughout the entire data set, expression ratios represent the expression of mutants divided by those of the wild-type strain. Therefore, an expression ratio above 1 indicates that the gene is repressed by the corresponding two-component system. Expression ratios below 1 indicate activation by the two-component system. Log expression ratios for individual experiments are considered dimensions in a <italic>d</italic>-dimensional vector space, where <italic>d </italic>is the number of experiments considered. Histograms for all functional groups were derived. Seven functional designations were found to be significant, as shown in Table ##TAB##1##2## and Fig. ##FIG##4##5##. The histograms for the gene ontology terms GO:0009057 = macromolecule_catabolism, GO:0009260 = response_to_desiccation, and GO:0043283 = biopolymer_metabolism are presented in Fig. ##FIG##2##3##.</p> <p>Table ##TAB##1##2## shows the <italic>p</italic>-values for each of the significant functional groups. The fifth column shows how many genes have the respective functional designation. When constructing histograms, some genes may have substantially more neighbors than would be expected from the randomized or theoretical model. These genes are considered particularly important since they have an unusual number of similar genes and may hence be considered as representing a pattern as was shown in Fig. ##FIG##0##1##. We define the tail of the histogram as those genes on the right side of the distribution, for which the expected density is less than 1. Table ##TAB##1##2## shows in column 6 how many of the genes in each of the functional groups are tail genes. Notice that all significant patterns involve GO-terms and none of them Pfam HMMs. This observation is not surprising given that GO terms are expected to represent protein function far more effectively.</p> <p>To understand our result better we also calculated the variance of the expression of genes that have the functional designation (column 3) in comparison with the overall data set (0.02676). We expect that the genes with a significant functional designation should rather be more clearly differentially expressed, i.e. have a higher variance of the differential expression. This is not required for our algorithm and the variance is not used in our algorithm. However, it might be an indication of a problem if significant functional designations were consistently less expressed. The same holds to an even greater extent for the genes that are in the tail of the distribution (column 4). These genes represent the patterns that contribute to the significance of the functional designation. If the patterns were due to genes that showed a low differential expression, the value of our observations to biologists would be questionable. In fact, when we used a previous algorithm [##UREF##9##30##] on our data set, this is exactly what we found: Significant patterns were found that were due to genes with an exceptionally low variance of differential expression. Later, we will present details on the comparison between our previous and our current algorithm and show that the variance of expression can be used as a means of validating if our results are useful from a biological perspective. Fig. ##FIG##5##6## shows the expression profiles of all those genes in the above functional groups that have a larger number of points in the neighborhood than any of the points in the histograms for the random subset (blue tails in the histograms). The individual genes that form this group are indicated in the inserted legends. The numbers on the x-axis symbolize the individual two-component systems. The order of two-component systems (attributes) is identical to the original data set [##REF##12366850##16##]. For the purpose of this study, #3 is OmpR/EnvZ, #4 is BasSR, #9 is YfhA, #15 is UvrY, #16 is YpdAB, #19 is DcuSR, #20 is NtrBC, and #22 is ArcB. These are the two-component systems for which the grouping of expression ratios is most visible within the profiles. Tables ##TAB##2##3##, ##TAB##3##4##, and ##TAB##4##5## provide the log<sub>10 </sub>expression ratios for the genes that are in the histogram tails. The first row in both tables lists the two-component systems and the first column the genes that belong to the respective functional group. Log expression ratios that are &lt; log<sub>10</sub>(0.5) or &gt; log<sub>10</sub>(2) are presented in bold face.</p> <title>Biological significance of the data</title> <p>The first functional group of study is GO:0009057 = macromolecule_catabolism (Table ##TAB##2##3##). This group contains seven genes in four operons. Three operons include genes for galactarate and glucarate degradation. These are <italic>garD</italic>, <italic>garP </italic>(also containing <italic>garLRK</italic>), and <italic>gudP </italic>(also containing <italic>gudD</italic>). The fourth operon is <italic>ptsA </italic>(also containing <italic>fsaB </italic>and <italic>gldA</italic>) that encodes a phosphotransferase system.</p> <p>The results suggest that two-component signaling plays an important role in the regulation of the galactarate and glucarate genes. This is important because little has previously been known about the regulation of these genes. Galactarate and glucarate are contained in various fruits. They can serve as growth substrates for several bacteria, including <italic>E. coli</italic>. The pathway that is used for the degradation of galactarate and glucarate leads to the production of pyruvate and glycerate.</p> <p>The second functional group that is analyzed more closely is GO:0009269 = response_to_desiccation (Table ##TAB##3##4##). The eleven genes listed in Table ##TAB##3##4## are all part of the <italic>cps </italic>operon. They encode enzymes, such as glycosyl and acetyl transferases and other auxiliary proteins that contribute to the formation of the colanic acid capsule (<italic>cps</italic>). The genes for the colanic acid capsule are clustered at about 45 min on the chromosome and expressed from a single promoter upstream of the gene <italic>wza </italic>[##REF##8763957##42##]. This promoter is characterized by its -10 and -35 sites, as well as the RcsAB box that permits binding of RcsAB [##REF##10702265##43##]. The Rcs system is the major system of regulation for the <italic>cps </italic>operon. It constitutes an unusual form of a phosphorelay, involving two of each, the kinase and the response regulator domains. It is not included in the data set that was used for this study [##REF##12366850##16##].</p> <p>The two-component systems that appear as most important for the regulation of the capsule genes (Table ##TAB##3##4##) respond to diverse environmental signals, such as iron [##REF##15322361##26##], carbon [##REF##12533459##44##], nitrogen [##REF##11121068##45##], oxygen [##UREF##15##46##], and osmolarity [##REF##1660927##47##]. It becomes obvious that the production of capsules is under tight environmental control, including many two-component systems. This regulation is in addition to the known regulation by the Rcs system [##REF##3888955##48##]. It is consistent with the observation that colanic acid capsules have no known role in the virulence of the bacteria [##REF##16153174##49##], but are needed for various lifestyles outside the host. Examples for stressful situations include osmotic shock or desiccation. Complex gene regulation by several two-component systems would enable the bacteria to perform this complex adaptation.</p> <p>The third functional group under investigation is GO:0043283 = biopolymer_metabolism. As the most interesting observation, this group contains many of the genes of the <italic>cps </italic>operon that were discussed above. However, additional genes are included in this group. These are listed at the bottom of Table ##TAB##4##5## and include <italic>rfbC</italic>, <italic>rfbX</italic>, <italic>wbbH</italic>, <italic>wbbJ</italic>, and <italic>cld</italic>. The regulation of these five genes by DcuSR is all above the two fold threshold and, therefore, more pronounced than regulation of any of the other genes by any of the other two-component systems. It appears that DcuSR is the major regulator of these genes. Additional minor regulators might be UvrY and NtrBC.</p> <p>The <italic>rfbC</italic>, <italic>rfbX</italic>, <italic>wbbH</italic>, <italic>wbbJ</italic>, and <italic>cld </italic>genes are all involved in the synthesis of the O-antigen. The O-antigen is another surface polymer (for a review on capsular polysaccharides in <italic>E. coli</italic>, please, see [##REF##16756484##50##]). Variation in its structure is the reason for the many O-specific serotypes that <italic>E. coli </italic>can exhibit. It provides a challenge to the host immune system, having to continuously adapt to new bacterial surface proteins. The colanic acid genes and the O-antigen genes cluster together on the <italic>E. coli </italic>chromosome, with the O-antigen genes being located downstream of the capsule genes (Fig. ##FIG##6##7##). An additional promoter (besides the <italic>wza </italic>promoter) has been postulated within this gene cluster. It resides in the intergenic region between <italic>galF </italic>and <italic>rfbB </italic>and probably constitutes a transcriptional start site for the O-antigen genes. According to our data, the <italic>wza </italic>promoter could be regulated by BasSR, UvrY, NtrBC, and YpdAB. The <italic>rfbB </italic>promoter might be regulated by UvrY, NtrBC, and DcuSR. This indicates that our algorithm is able to predict transcriptional units within gene clusters, based upon similarity in function and gene expression profiles.</p> <title>Biological questions and hypotheses derived from this study</title> <p>We used the new analysis of the previously published data set [##REF##12366850##16##] to design biological questions that could lead to future experiments. Three questions were asked in particular:</p> <p>1. Under which conditions is <italic>E. coli </italic>able to use galactarate and glucarate as growth substrates? The observation that several two-component systems are involved in the regulation of the galactarate and glucarate genes indicates that <italic>E. coli </italic>might be able to grow on galactarate and glucarate under more environmental conditions than previously thought.</p> <p>2. Are the two-component systems BasS/BasR, BarA/UvrY, NtrB/NtrC, and ArcB/ArcA involved in the formation of biofilms? In a recent review article, we summarized a network of regulation that involved the agellar master regulator FlhD/FlhC and several two-component systems [##REF##16707665##51##]. The network affected the expression and synthesis of several cell surface organelles, including capsules. The formation of biofilms was used as a connecting theme to explain regulations within the network. This study extends previous observations. The number of two-component systems that is involved in the regulation of biofilms might be larger than anticipated earlier [##REF##16707665##51##]. Whether any or all of these two-component systems are really involved in the formation of biofilms, can easily be determined experimentally.</p> <p>3. Do our data indicate new functions for two-component systems of previously unknown function? YfhA is the response regulator that is phosphorylated by its cognate kinase, YfhK [##REF##15522865##52##]. Considering that the expression ratios for YfhA are higher than for the other two-component systems that contribute to the regulation of the galactare and glucarate genes (Table ##TAB##2##3##), one might assume that YfhA is a major regulator of these genes. YpdAB is another two-component system whose function is currently unknown. It appears in our data as the major negative regulator of the colanic acid capsule genes (Table ##TAB##3##4##).</p> <title>Testing of one hypothesis derived from this study</title> <p>We tested part of hypothesis two, the involvement of two-component systems in biofilm formation, with a quantitative biofilm assay that was previously described [##UREF##16##53##]. The two-component systems tested were BasSR, NtrBC, and UvrY. Mutants in <italic>basSR, ntrBC</italic>, and <italic>uvrY </italic>were compared to their isogenic wild-type strain (Fig. ##FIG##7##8##). All three mutants produced more biofilm than the wild-type. This is consistent with our hypothesis.</p> <title>Application of the algorithm to a second data set</title> <p>To test the algorithm for its general usefulness, we applied it to a second data set. The data set by Baev and coworkers [##REF##16628448##54##, ####REF##16575570##55##, ##REF##16645822##56####16645822##56##] contains a total of 12 experiments, each representing a time point in the growth profile of <italic>E. coli </italic>growing in LB at 37°C. Applying the algorithm to this data set yielded one structural group of proteins that exhibited similar expression profiles. Histograms and profiles are shown in Fig. ##FIG##8##9##. The group hmm.mfs-1 consists of transporters that belong to the major facilitator superfamily. Many of them are involved in drug export and multidrug resistance. This functional group was not analyzed in the three previous publications [##REF##16628448##54##, ####REF##16575570##55##, ##REF##16645822##56####16645822##56##]. This analysis is a good example of how the biological question asked and the algorithm used impact the results that are to be expected. Baev and coworkers identified functional groups first and analyzed their expression profiles in a second step. They found proteins transporting a certain compound and the enzymes that are used for the degradation of this compound exhibit similar expression profiles. Our algorithm identifies patterns involving functional groups and gene expression data in one step. We found one large group of transporters. This demonstrates that applying a new algorithm to an already well analyzed data set can still yield new information.</p> <title>Comparison with the GSEA algorithm</title> <p>We compared our algorithm with the gene set enrichment analysis algorithm, GSEA [##REF##16199517##6##]. In order to use this algorithm, the gene expression data were transformed to GSEA format, then phenotype files as well as gene sets for each domain were created. For both the Oshima and Baev data sets, no domain was considered significantly enriched at nominal <italic>p</italic>-value <italic>&lt;</italic>0.05 by the GSEA algorithm. All possible combinations of parameters, which include 'metric for ranking genes' and 'gene list sorting mode', were used.</p> <title>Comparison with clustering and biclustering followed by enrichment analysis</title> <p>We then applied biclustering to the Oshima data set. For this comparison, we first considered the Bimax algorithm [##REF##16500941##57##], which is available as part of the Biclustering Analysis Toolbox BicAT [##REF##16551664##58##]. With default settings, this algorithm did not return any results. When setting the 'discretization threshold' to 0.3, which approximately corresponds to the log<sub>10</sub>(2) we received 950 clusters as a result, but each of them with no more than 4 genes which was too small for further statistical analysis.</p> <p>We then used the Expander software [##REF##16176576##9##], following the suggestions in the documentation (providing unnormalized log<sub>2 </sub>values of the expression ratios as input, followed by a standardization of "Mean 0 and Variance 1", i.e. row-wise <italic>z</italic>-normalization). For consistency reasons we used the same gene annotation data as for our own algorithm. TANGO enrichment analysis was performed, both on the results of the SAMBA biclustering [##REF##12169541##4##] and the CLICK clustering algorithm [##UREF##17##59##], using default parameters throughout. Both SAMBA and CLICK results led to the identification of two enriched functional groups, however only one of them (GO:0008610 = lipid_biosynthesis) was found by both algorithms. The SAMBA result showed enrichment for GO:0009269 = response_to_desiccation and the CLICK result for GO:0044260 = cellular_macromolecule_metabolism.</p> <p>Both GO:0009269 = response_to_desiccation and GO:0044260 = cellular_macromolecule_metabolism are also found by our algorithm. In addition, our algorithm identifies five functional categories as significant that are not found by the comparison methods. As expected, based on the discussion that accompanies Fig. ##FIG##1##2##, our algorithm is able to identify patterns that are not accessible by a two-step method. Note that GO:0008610 = lipid_biosynthesis, which is found by both comparison methods does not satisfy the filter condition of a minimum of 15 genes that we applied to the data set when using our own algorithm. The clustering- and biclustering-based approaches also return a smaller number of genes as members of the significant clusters (4–8 genes). Fig. ##FIG##9##10## highlights genes identified by each algorithm for GO:0009269 = response_to_desiccation. Two genes in the <italic>cps </italic>operon were considered significant by both ours and the SAMBA-based algorithm. Our algorithm found nine additional genes within the same functional group, whereas SAMBA/TANGO found only four additional genes. Both algorithms pointed to the same operon, in which all genes are expected to be similarly expressed and have related functions.</p> <title>Comparison with a previously proposed subspace-based algorithm</title> <p>The development of this new algorithm was motivated by problems that we observed when applying one of our previous algorithms [##UREF##9##30##] (which we will call subspace-based) to the Oshima data set. The subspace-based algorithm calculates histograms based on the following definition of a neighborhood: A gene is considered a neighbor of another gene if it is within a predefined range for at least a predefined fraction of dimensions. That means that two genes can be considered neighbors because they both show a particularly small differential expression. Table ##TAB##5##6## illustrates this problem: For the subspace-base algorithm (column 4), the variance of the differential expression of genes in the tail of the distribution is smaller than the variance of all genes with the respective functional designation. That means that the corresponding functional annotations are significant, based on genes that show little or no differential expression. Note that from a statistical perspective such functional annotations may very well be significant, but from a practical perspective they are only of interest to biological researchers if the goal is to identify housekeeping genes and not differentially expressed genes.</p> <p>The similarity measure used in this work is inherently designed to measure the degree to which positive or negative differential expression matches between any two genes. Table ##TAB##5##6## illustrates that for the new algorithm, as expected, the variance in the tail is indeed larger than the overall variance (column 2). Note that the variance of the differential expression does not enter the algorithm as such but rather is a result.</p> <title>Choices within the algorithm</title> <p>We tested how sensitive the algorithm is with respect to the value of the threshold value <italic>μ</italic>. We compared the outcome of the analysis for eight different choices of <italic>μ </italic>in the range from 0.03 to 0.39. Six of the 20 functional annotations were significantly related to the gene expression data for all choices of <italic>μ</italic>, and 3 were not significant for any of the choices. For each of the remaining 4 choices, the value at <italic>μ </italic>= 0.3 matched the result for at least half of the parameter choices. It can be concluded that the algorithm is not very sensitive to the choice of <italic>μ</italic>.</p> <p>In addition, we evaluated the impact of data imputation on the results. Our data set has 14% unavailable data, and hence it can be argued that selecting those from the estimated distribution of values is more appropriate than replacing them with the mean. We used the multiple imputation software by Allison [##UREF##18##60##] for this purpose. The functional groups, for which the majority of <italic>μ</italic>-values indicate a significant relationship with the gene expression data, as well as the result for <italic>μ </italic>= 0.3 remain the same. We found that no more than, on average, one gene is considered as being in the tail without imputation and not in the tail with imputation or vice versa for the functional annotations that are significant in both settings. Hence, we conclude that imputation does not have a strong impact on the outcome of the analysis either. Finally, we tested how strongly the normalization affects the result. For this comparison, we applied <italic>z</italic>-normalization to rows and then applied the algorithm as previously. We found that only one additional functional annotation was considered significant, the ABC_transporter domain from Pfam. We also checked whether the significant relationships were due to highly expressed genes. The results are shown as column 3 of Table ##TAB##5##6##. It can be seen that the variance of expression values for the genes in the tail is typically smaller than the corresponding quantity based on all genes that share the functional annotation. Only two of the annotations show higher variance in the tails (ABC_transporter and macromolecule_catabolism). For the column-wise normalization that we use otherwise, the genes in the tail of the distribution have an higher variance for all functional annotations, i.e. the genes in the tail are more clearly differentially expressed. We, therefore, consider the results with column-wise normalization to more likely represent useful information.</p> <title>Performance</title> <p>The algorithm scales linearly with the number of domain or function subsets. For each domain, scaling as a function of domain size is approximately quadratic, as Fig. ##FIG##10##11## shows. For the <italic>E. coli </italic>data set that was used in this study, the quadratic complexity is not a problem, and it can be seen that execution times are so small that performance is not expected to be a bottleneck even for larger genomes.</p> <p>The runtime for one subset can be expressed as follow:</p> <p></p> <p>Where <italic>T</italic><sub><italic>c </italic></sub>is the runtime of the algorithm for one subset, <italic>T</italic><sub><italic>hist </italic></sub>the time to create the histogram for one subset, <italic>T</italic><sub><italic>extract </italic></sub>is the time for extracting the subset of genes, <italic>R </italic>is the number of runs for random subsets (<italic>R </italic>= 20 in the evaluation) and  is the time for the statistical analysis. Under the assumption that data sets are small enough such that all genes can be kept in memory, the time is dominated by <italic>T</italic><sub><italic>hist</italic></sub>, which is quadratic in the number genes in a subset.</p> <p>Notice that the main contribution to <italic>T</italic><sub><italic>c </italic></sub>comes from the histogram evaluation on random subsets. In the following section, we discuss a theoretical model for deriving the random histogram without resampling. The model ignores correlations that may occur even among unrelated genes, and is hence not expected to be as accurate as the randomized evaluation. Nevertheless, it provides an alternative if the data sets are very large.</p> <title>Theoretical model for histograms</title> <p>The resampling version of the algorithm, which is used for the remainder of this study, is robust with respect to uctuations in the data set. The theoretical derivation of a comparison distribution that is presented in this section is given for the sake of performance improvement where necessary, but is not expected to lead to equally robust results. For the random model that is used in the theoretical derivation, we assume that all experimental data follow a normal distribution. This assumption is not expected to be fully accurate, since gene expression experiments typically do not exactly follow such a distribution. The calculation also assumes that dimensions for the random comparison model are unrelated, which is a different approximation. Both assumptions only apply to the theoretical model and not to the resampling approach that is used for this study. The resampling model is expected to be substantially more accurate, and the theoretical model should only be used if the computational complexity of the resampling model is considered prohibitive.</p> <p>The coordinates of two experiments are denoted by vectors <bold>x </bold>and <bold>y</bold>. All those pairs of genes are considered significantly related, for which the product is greater than threshold <italic>t</italic>. The expected probability that the product for any two experiments is beyond the threshold <italic>t </italic>can be calculated by integrating the following expression over the relevant Gaussian distribution functions:</p> <p></p> <p>where <italic>θ </italic>is the Heaviside step function, which is 1 for a positive argument and 0 otherwise. We integrate over all directions of <bold>x </bold>and <bold>y </bold>with their respective weights</p> <p></p> <p>Note the data are normalized using <italic>z</italic>-normalization, resulting in mean 0 and standard deviation 1 for both vectors <bold>x </bold>and <bold>y</bold>. The radius of the vector <bold>x </bold>will be denoted by <italic>r </italic>and the integration re-written</p> <p></p> <p>where <italic>S</italic><sub><italic>n </italic></sub>is the surface of a hypervolume in <italic>n </italic>dimensions</p> <p></p> <p>The integration over <bold>y </bold>can be written as an integration over the coordinate in the direction of <bold>x</bold>, which we will denote as <italic>z </italic>and the vector perpendicular to <bold>x</bold>, represented by <bold>u</bold>. We can now rewrite the <italic>θ</italic>-function as follows</p> <p></p> <p>This function does not depend on <bold>u</bold>. The <italic>n </italic>- 1-dimensional integration over <bold>u</bold>, therefore only has a normalized <italic>n </italic>- 1 dimensional Gaussian function as integral, and thereby trivially gives the result 1. The probability of a product beyond the threshold is</p> <p></p> <p>The integration over z can be performed by recognizing that the <italic>θ </italic>function is 1 only for  and 0 otherwise.</p> <p></p> <p>Given this probability <italic>p</italic>, we can calculate the theoretical distribution for the selected subsets:</p> <p></p> <p>Fig. ##FIG##11##12## shows the histograms of the theoretical distribution, resampled distribution (random subsets) and the observed distribution (biopolymer metabolism) for one of the three discussed functions. The resampled distribution is slightly more stretched than the theoretical one, which can be attributed to correlations among the experiments that are not considered in the theoretical model. Fig. ##FIG##10##11## shows that the complexity of the algorithm is significantly decreased, although it is still roughly quadratic.</p> <p>Using the theoretical model, the algorithm of Table ##TAB##0##1## can be modified as shown in Table ##TAB##6##7##.</p>
<title>Results and discussion</title> <title>Algorithm</title> <p>The algorithm has two objectives: (1) Identifying subsets that have a distribution that significantly differs from what would be expected for a random subset and (2) finding those data points that have more neighbors than expected. We define a density measure that is evaluated for each data point, and is given by the number of neighbors that are close according to a product similarity measure. Product similarity is used, rather than cosine similarity or Euclidean distance, since we expect those vector pairs to be most relevant that exhibit a large absolute value of differential expression as well as a small angle between vectors. The product similarity measure for vectors x<sup>(<italic>j</italic>) </sup>and x<sup>(<italic>k</italic>)</sup>, with coordinates  and  respectively, is defined as follows</p> <p></p> <p>where N is the number of selected data points, and <italic>d </italic>the number of dimensions, i.e. the number of experiments that are being considered. Vectors for which <italic>S</italic><sub><italic>jk </italic></sub>exceeds a threshold <italic>t </italic>are considered neighbors. The threshold is given as</p> <p></p> <p>where <italic>μ </italic>is chosen to be 0.3 in the evaluation. The algorithm does not strongly depend on the choice of <italic>μ </italic>as will be discussed in the section on choices within the algorithm. Each data point is associated with a density that is of type integer: the number of neighbors that satisfy the product similarity criterion. The occurring density values for all data points can be summarized using histograms. Density calculations are done on column-wise <italic>z</italic>-normalized data [##REF##12707371##41##], i.e. for each attribute, the mean is subtracted and the attribute values are divided by the standard deviation. The rationale for using column-wise rather than row-wise normalization is that overall large absolute log expression ratios of individual genes are thereby preserved. This choice is also discussed in detail later. Fig. ##FIG##2##3## and ##FIG##3##4## show examples of histograms of the observed density values that are derived using the product similarity criterion (blue bars). These examples are derived as part of the evaluation on the Oshima data set on two-component systems [##REF##12366850##16##], which is discussed in more detail in the next section.</p> <p>Even randomly distributed vectors are expected to have some neighbors. We, therefore, have to evaluate the expected distribution of densities. This is done by randomly selecting a subset of genes that has the same number of elements as the protein function under consideration. A histogram is then constructed for the random subset. The process is repeated multiple times and the results averaged over 20 runs. Table ##TAB##0##1## summarizes this resampling-based algorithm. Figs. ##FIG##2##3## and ##FIG##3##4## (white bars) show the distribution for random data sets in addition to the experimental ones.</p> <p>An observed histogram is considered significant if it would be unlikely to encounter it based on a randomly selected set of genes. A <italic>χ</italic><sup>2 </sup>goodness-of-fit test is used to compare the histogram with its randomized counterpart. We consider patterns as significant, if the comparison yields a <italic>p</italic>-value ≤ 0.05. The methods section provides details on the significance testing. Fig. ##FIG##2##3## shows three vector-item patterns that are considered significant, while Fig. ##FIG##3##4## shows one counter example that is not considered significant.</p> <title>Application of the algorithm to two-component system data</title> <p>We applied the algorithm to the two-component system data from Oshima and coworkers [##REF##12366850##16##]. Throughout the entire data set, expression ratios represent the expression of mutants divided by those of the wild-type strain. Therefore, an expression ratio above 1 indicates that the gene is repressed by the corresponding two-component system. Expression ratios below 1 indicate activation by the two-component system. Log expression ratios for individual experiments are considered dimensions in a <italic>d</italic>-dimensional vector space, where <italic>d </italic>is the number of experiments considered. Histograms for all functional groups were derived. Seven functional designations were found to be significant, as shown in Table ##TAB##1##2## and Fig. ##FIG##4##5##. The histograms for the gene ontology terms GO:0009057 = macromolecule_catabolism, GO:0009260 = response_to_desiccation, and GO:0043283 = biopolymer_metabolism are presented in Fig. ##FIG##2##3##.</p> <p>Table ##TAB##1##2## shows the <italic>p</italic>-values for each of the significant functional groups. The fifth column shows how many genes have the respective functional designation. When constructing histograms, some genes may have substantially more neighbors than would be expected from the randomized or theoretical model. These genes are considered particularly important since they have an unusual number of similar genes and may hence be considered as representing a pattern as was shown in Fig. ##FIG##0##1##. We define the tail of the histogram as those genes on the right side of the distribution, for which the expected density is less than 1. Table ##TAB##1##2## shows in column 6 how many of the genes in each of the functional groups are tail genes. Notice that all significant patterns involve GO-terms and none of them Pfam HMMs. This observation is not surprising given that GO terms are expected to represent protein function far more effectively.</p> <p>To understand our result better we also calculated the variance of the expression of genes that have the functional designation (column 3) in comparison with the overall data set (0.02676). We expect that the genes with a significant functional designation should rather be more clearly differentially expressed, i.e. have a higher variance of the differential expression. This is not required for our algorithm and the variance is not used in our algorithm. However, it might be an indication of a problem if significant functional designations were consistently less expressed. The same holds to an even greater extent for the genes that are in the tail of the distribution (column 4). These genes represent the patterns that contribute to the significance of the functional designation. If the patterns were due to genes that showed a low differential expression, the value of our observations to biologists would be questionable. In fact, when we used a previous algorithm [##UREF##9##30##] on our data set, this is exactly what we found: Significant patterns were found that were due to genes with an exceptionally low variance of differential expression. Later, we will present details on the comparison between our previous and our current algorithm and show that the variance of expression can be used as a means of validating if our results are useful from a biological perspective. Fig. ##FIG##5##6## shows the expression profiles of all those genes in the above functional groups that have a larger number of points in the neighborhood than any of the points in the histograms for the random subset (blue tails in the histograms). The individual genes that form this group are indicated in the inserted legends. The numbers on the x-axis symbolize the individual two-component systems. The order of two-component systems (attributes) is identical to the original data set [##REF##12366850##16##]. For the purpose of this study, #3 is OmpR/EnvZ, #4 is BasSR, #9 is YfhA, #15 is UvrY, #16 is YpdAB, #19 is DcuSR, #20 is NtrBC, and #22 is ArcB. These are the two-component systems for which the grouping of expression ratios is most visible within the profiles. Tables ##TAB##2##3##, ##TAB##3##4##, and ##TAB##4##5## provide the log<sub>10 </sub>expression ratios for the genes that are in the histogram tails. The first row in both tables lists the two-component systems and the first column the genes that belong to the respective functional group. Log expression ratios that are &lt; log<sub>10</sub>(0.5) or &gt; log<sub>10</sub>(2) are presented in bold face.</p> <title>Biological significance of the data</title> <p>The first functional group of study is GO:0009057 = macromolecule_catabolism (Table ##TAB##2##3##). This group contains seven genes in four operons. Three operons include genes for galactarate and glucarate degradation. These are <italic>garD</italic>, <italic>garP </italic>(also containing <italic>garLRK</italic>), and <italic>gudP </italic>(also containing <italic>gudD</italic>). The fourth operon is <italic>ptsA </italic>(also containing <italic>fsaB </italic>and <italic>gldA</italic>) that encodes a phosphotransferase system.</p> <p>The results suggest that two-component signaling plays an important role in the regulation of the galactarate and glucarate genes. This is important because little has previously been known about the regulation of these genes. Galactarate and glucarate are contained in various fruits. They can serve as growth substrates for several bacteria, including <italic>E. coli</italic>. The pathway that is used for the degradation of galactarate and glucarate leads to the production of pyruvate and glycerate.</p> <p>The second functional group that is analyzed more closely is GO:0009269 = response_to_desiccation (Table ##TAB##3##4##). The eleven genes listed in Table ##TAB##3##4## are all part of the <italic>cps </italic>operon. They encode enzymes, such as glycosyl and acetyl transferases and other auxiliary proteins that contribute to the formation of the colanic acid capsule (<italic>cps</italic>). The genes for the colanic acid capsule are clustered at about 45 min on the chromosome and expressed from a single promoter upstream of the gene <italic>wza </italic>[##REF##8763957##42##]. This promoter is characterized by its -10 and -35 sites, as well as the RcsAB box that permits binding of RcsAB [##REF##10702265##43##]. The Rcs system is the major system of regulation for the <italic>cps </italic>operon. It constitutes an unusual form of a phosphorelay, involving two of each, the kinase and the response regulator domains. It is not included in the data set that was used for this study [##REF##12366850##16##].</p> <p>The two-component systems that appear as most important for the regulation of the capsule genes (Table ##TAB##3##4##) respond to diverse environmental signals, such as iron [##REF##15322361##26##], carbon [##REF##12533459##44##], nitrogen [##REF##11121068##45##], oxygen [##UREF##15##46##], and osmolarity [##REF##1660927##47##]. It becomes obvious that the production of capsules is under tight environmental control, including many two-component systems. This regulation is in addition to the known regulation by the Rcs system [##REF##3888955##48##]. It is consistent with the observation that colanic acid capsules have no known role in the virulence of the bacteria [##REF##16153174##49##], but are needed for various lifestyles outside the host. Examples for stressful situations include osmotic shock or desiccation. Complex gene regulation by several two-component systems would enable the bacteria to perform this complex adaptation.</p> <p>The third functional group under investigation is GO:0043283 = biopolymer_metabolism. As the most interesting observation, this group contains many of the genes of the <italic>cps </italic>operon that were discussed above. However, additional genes are included in this group. These are listed at the bottom of Table ##TAB##4##5## and include <italic>rfbC</italic>, <italic>rfbX</italic>, <italic>wbbH</italic>, <italic>wbbJ</italic>, and <italic>cld</italic>. The regulation of these five genes by DcuSR is all above the two fold threshold and, therefore, more pronounced than regulation of any of the other genes by any of the other two-component systems. It appears that DcuSR is the major regulator of these genes. Additional minor regulators might be UvrY and NtrBC.</p> <p>The <italic>rfbC</italic>, <italic>rfbX</italic>, <italic>wbbH</italic>, <italic>wbbJ</italic>, and <italic>cld </italic>genes are all involved in the synthesis of the O-antigen. The O-antigen is another surface polymer (for a review on capsular polysaccharides in <italic>E. coli</italic>, please, see [##REF##16756484##50##]). Variation in its structure is the reason for the many O-specific serotypes that <italic>E. coli </italic>can exhibit. It provides a challenge to the host immune system, having to continuously adapt to new bacterial surface proteins. The colanic acid genes and the O-antigen genes cluster together on the <italic>E. coli </italic>chromosome, with the O-antigen genes being located downstream of the capsule genes (Fig. ##FIG##6##7##). An additional promoter (besides the <italic>wza </italic>promoter) has been postulated within this gene cluster. It resides in the intergenic region between <italic>galF </italic>and <italic>rfbB </italic>and probably constitutes a transcriptional start site for the O-antigen genes. According to our data, the <italic>wza </italic>promoter could be regulated by BasSR, UvrY, NtrBC, and YpdAB. The <italic>rfbB </italic>promoter might be regulated by UvrY, NtrBC, and DcuSR. This indicates that our algorithm is able to predict transcriptional units within gene clusters, based upon similarity in function and gene expression profiles.</p> <title>Biological questions and hypotheses derived from this study</title> <p>We used the new analysis of the previously published data set [##REF##12366850##16##] to design biological questions that could lead to future experiments. Three questions were asked in particular:</p> <p>1. Under which conditions is <italic>E. coli </italic>able to use galactarate and glucarate as growth substrates? The observation that several two-component systems are involved in the regulation of the galactarate and glucarate genes indicates that <italic>E. coli </italic>might be able to grow on galactarate and glucarate under more environmental conditions than previously thought.</p> <p>2. Are the two-component systems BasS/BasR, BarA/UvrY, NtrB/NtrC, and ArcB/ArcA involved in the formation of biofilms? In a recent review article, we summarized a network of regulation that involved the agellar master regulator FlhD/FlhC and several two-component systems [##REF##16707665##51##]. The network affected the expression and synthesis of several cell surface organelles, including capsules. The formation of biofilms was used as a connecting theme to explain regulations within the network. This study extends previous observations. The number of two-component systems that is involved in the regulation of biofilms might be larger than anticipated earlier [##REF##16707665##51##]. Whether any or all of these two-component systems are really involved in the formation of biofilms, can easily be determined experimentally.</p> <p>3. Do our data indicate new functions for two-component systems of previously unknown function? YfhA is the response regulator that is phosphorylated by its cognate kinase, YfhK [##REF##15522865##52##]. Considering that the expression ratios for YfhA are higher than for the other two-component systems that contribute to the regulation of the galactare and glucarate genes (Table ##TAB##2##3##), one might assume that YfhA is a major regulator of these genes. YpdAB is another two-component system whose function is currently unknown. It appears in our data as the major negative regulator of the colanic acid capsule genes (Table ##TAB##3##4##).</p> <title>Testing of one hypothesis derived from this study</title> <p>We tested part of hypothesis two, the involvement of two-component systems in biofilm formation, with a quantitative biofilm assay that was previously described [##UREF##16##53##]. The two-component systems tested were BasSR, NtrBC, and UvrY. Mutants in <italic>basSR, ntrBC</italic>, and <italic>uvrY </italic>were compared to their isogenic wild-type strain (Fig. ##FIG##7##8##). All three mutants produced more biofilm than the wild-type. This is consistent with our hypothesis.</p> <title>Application of the algorithm to a second data set</title> <p>To test the algorithm for its general usefulness, we applied it to a second data set. The data set by Baev and coworkers [##REF##16628448##54##, ####REF##16575570##55##, ##REF##16645822##56####16645822##56##] contains a total of 12 experiments, each representing a time point in the growth profile of <italic>E. coli </italic>growing in LB at 37°C. Applying the algorithm to this data set yielded one structural group of proteins that exhibited similar expression profiles. Histograms and profiles are shown in Fig. ##FIG##8##9##. The group hmm.mfs-1 consists of transporters that belong to the major facilitator superfamily. Many of them are involved in drug export and multidrug resistance. This functional group was not analyzed in the three previous publications [##REF##16628448##54##, ####REF##16575570##55##, ##REF##16645822##56####16645822##56##]. This analysis is a good example of how the biological question asked and the algorithm used impact the results that are to be expected. Baev and coworkers identified functional groups first and analyzed their expression profiles in a second step. They found proteins transporting a certain compound and the enzymes that are used for the degradation of this compound exhibit similar expression profiles. Our algorithm identifies patterns involving functional groups and gene expression data in one step. We found one large group of transporters. This demonstrates that applying a new algorithm to an already well analyzed data set can still yield new information.</p> <title>Comparison with the GSEA algorithm</title> <p>We compared our algorithm with the gene set enrichment analysis algorithm, GSEA [##REF##16199517##6##]. In order to use this algorithm, the gene expression data were transformed to GSEA format, then phenotype files as well as gene sets for each domain were created. For both the Oshima and Baev data sets, no domain was considered significantly enriched at nominal <italic>p</italic>-value <italic>&lt;</italic>0.05 by the GSEA algorithm. All possible combinations of parameters, which include 'metric for ranking genes' and 'gene list sorting mode', were used.</p> <title>Comparison with clustering and biclustering followed by enrichment analysis</title> <p>We then applied biclustering to the Oshima data set. For this comparison, we first considered the Bimax algorithm [##REF##16500941##57##], which is available as part of the Biclustering Analysis Toolbox BicAT [##REF##16551664##58##]. With default settings, this algorithm did not return any results. When setting the 'discretization threshold' to 0.3, which approximately corresponds to the log<sub>10</sub>(2) we received 950 clusters as a result, but each of them with no more than 4 genes which was too small for further statistical analysis.</p> <p>We then used the Expander software [##REF##16176576##9##], following the suggestions in the documentation (providing unnormalized log<sub>2 </sub>values of the expression ratios as input, followed by a standardization of "Mean 0 and Variance 1", i.e. row-wise <italic>z</italic>-normalization). For consistency reasons we used the same gene annotation data as for our own algorithm. TANGO enrichment analysis was performed, both on the results of the SAMBA biclustering [##REF##12169541##4##] and the CLICK clustering algorithm [##UREF##17##59##], using default parameters throughout. Both SAMBA and CLICK results led to the identification of two enriched functional groups, however only one of them (GO:0008610 = lipid_biosynthesis) was found by both algorithms. The SAMBA result showed enrichment for GO:0009269 = response_to_desiccation and the CLICK result for GO:0044260 = cellular_macromolecule_metabolism.</p> <p>Both GO:0009269 = response_to_desiccation and GO:0044260 = cellular_macromolecule_metabolism are also found by our algorithm. In addition, our algorithm identifies five functional categories as significant that are not found by the comparison methods. As expected, based on the discussion that accompanies Fig. ##FIG##1##2##, our algorithm is able to identify patterns that are not accessible by a two-step method. Note that GO:0008610 = lipid_biosynthesis, which is found by both comparison methods does not satisfy the filter condition of a minimum of 15 genes that we applied to the data set when using our own algorithm. The clustering- and biclustering-based approaches also return a smaller number of genes as members of the significant clusters (4–8 genes). Fig. ##FIG##9##10## highlights genes identified by each algorithm for GO:0009269 = response_to_desiccation. Two genes in the <italic>cps </italic>operon were considered significant by both ours and the SAMBA-based algorithm. Our algorithm found nine additional genes within the same functional group, whereas SAMBA/TANGO found only four additional genes. Both algorithms pointed to the same operon, in which all genes are expected to be similarly expressed and have related functions.</p> <title>Comparison with a previously proposed subspace-based algorithm</title> <p>The development of this new algorithm was motivated by problems that we observed when applying one of our previous algorithms [##UREF##9##30##] (which we will call subspace-based) to the Oshima data set. The subspace-based algorithm calculates histograms based on the following definition of a neighborhood: A gene is considered a neighbor of another gene if it is within a predefined range for at least a predefined fraction of dimensions. That means that two genes can be considered neighbors because they both show a particularly small differential expression. Table ##TAB##5##6## illustrates this problem: For the subspace-base algorithm (column 4), the variance of the differential expression of genes in the tail of the distribution is smaller than the variance of all genes with the respective functional designation. That means that the corresponding functional annotations are significant, based on genes that show little or no differential expression. Note that from a statistical perspective such functional annotations may very well be significant, but from a practical perspective they are only of interest to biological researchers if the goal is to identify housekeeping genes and not differentially expressed genes.</p> <p>The similarity measure used in this work is inherently designed to measure the degree to which positive or negative differential expression matches between any two genes. Table ##TAB##5##6## illustrates that for the new algorithm, as expected, the variance in the tail is indeed larger than the overall variance (column 2). Note that the variance of the differential expression does not enter the algorithm as such but rather is a result.</p> <title>Choices within the algorithm</title> <p>We tested how sensitive the algorithm is with respect to the value of the threshold value <italic>μ</italic>. We compared the outcome of the analysis for eight different choices of <italic>μ </italic>in the range from 0.03 to 0.39. Six of the 20 functional annotations were significantly related to the gene expression data for all choices of <italic>μ</italic>, and 3 were not significant for any of the choices. For each of the remaining 4 choices, the value at <italic>μ </italic>= 0.3 matched the result for at least half of the parameter choices. It can be concluded that the algorithm is not very sensitive to the choice of <italic>μ</italic>.</p> <p>In addition, we evaluated the impact of data imputation on the results. Our data set has 14% unavailable data, and hence it can be argued that selecting those from the estimated distribution of values is more appropriate than replacing them with the mean. We used the multiple imputation software by Allison [##UREF##18##60##] for this purpose. The functional groups, for which the majority of <italic>μ</italic>-values indicate a significant relationship with the gene expression data, as well as the result for <italic>μ </italic>= 0.3 remain the same. We found that no more than, on average, one gene is considered as being in the tail without imputation and not in the tail with imputation or vice versa for the functional annotations that are significant in both settings. Hence, we conclude that imputation does not have a strong impact on the outcome of the analysis either. Finally, we tested how strongly the normalization affects the result. For this comparison, we applied <italic>z</italic>-normalization to rows and then applied the algorithm as previously. We found that only one additional functional annotation was considered significant, the ABC_transporter domain from Pfam. We also checked whether the significant relationships were due to highly expressed genes. The results are shown as column 3 of Table ##TAB##5##6##. It can be seen that the variance of expression values for the genes in the tail is typically smaller than the corresponding quantity based on all genes that share the functional annotation. Only two of the annotations show higher variance in the tails (ABC_transporter and macromolecule_catabolism). For the column-wise normalization that we use otherwise, the genes in the tail of the distribution have an higher variance for all functional annotations, i.e. the genes in the tail are more clearly differentially expressed. We, therefore, consider the results with column-wise normalization to more likely represent useful information.</p> <title>Performance</title> <p>The algorithm scales linearly with the number of domain or function subsets. For each domain, scaling as a function of domain size is approximately quadratic, as Fig. ##FIG##10##11## shows. For the <italic>E. coli </italic>data set that was used in this study, the quadratic complexity is not a problem, and it can be seen that execution times are so small that performance is not expected to be a bottleneck even for larger genomes.</p> <p>The runtime for one subset can be expressed as follow:</p> <p></p> <p>Where <italic>T</italic><sub><italic>c </italic></sub>is the runtime of the algorithm for one subset, <italic>T</italic><sub><italic>hist </italic></sub>the time to create the histogram for one subset, <italic>T</italic><sub><italic>extract </italic></sub>is the time for extracting the subset of genes, <italic>R </italic>is the number of runs for random subsets (<italic>R </italic>= 20 in the evaluation) and  is the time for the statistical analysis. Under the assumption that data sets are small enough such that all genes can be kept in memory, the time is dominated by <italic>T</italic><sub><italic>hist</italic></sub>, which is quadratic in the number genes in a subset.</p> <p>Notice that the main contribution to <italic>T</italic><sub><italic>c </italic></sub>comes from the histogram evaluation on random subsets. In the following section, we discuss a theoretical model for deriving the random histogram without resampling. The model ignores correlations that may occur even among unrelated genes, and is hence not expected to be as accurate as the randomized evaluation. Nevertheless, it provides an alternative if the data sets are very large.</p> <title>Theoretical model for histograms</title> <p>The resampling version of the algorithm, which is used for the remainder of this study, is robust with respect to uctuations in the data set. The theoretical derivation of a comparison distribution that is presented in this section is given for the sake of performance improvement where necessary, but is not expected to lead to equally robust results. For the random model that is used in the theoretical derivation, we assume that all experimental data follow a normal distribution. This assumption is not expected to be fully accurate, since gene expression experiments typically do not exactly follow such a distribution. The calculation also assumes that dimensions for the random comparison model are unrelated, which is a different approximation. Both assumptions only apply to the theoretical model and not to the resampling approach that is used for this study. The resampling model is expected to be substantially more accurate, and the theoretical model should only be used if the computational complexity of the resampling model is considered prohibitive.</p> <p>The coordinates of two experiments are denoted by vectors <bold>x </bold>and <bold>y</bold>. All those pairs of genes are considered significantly related, for which the product is greater than threshold <italic>t</italic>. The expected probability that the product for any two experiments is beyond the threshold <italic>t </italic>can be calculated by integrating the following expression over the relevant Gaussian distribution functions:</p> <p></p> <p>where <italic>θ </italic>is the Heaviside step function, which is 1 for a positive argument and 0 otherwise. We integrate over all directions of <bold>x </bold>and <bold>y </bold>with their respective weights</p> <p></p> <p>Note the data are normalized using <italic>z</italic>-normalization, resulting in mean 0 and standard deviation 1 for both vectors <bold>x </bold>and <bold>y</bold>. The radius of the vector <bold>x </bold>will be denoted by <italic>r </italic>and the integration re-written</p> <p></p> <p>where <italic>S</italic><sub><italic>n </italic></sub>is the surface of a hypervolume in <italic>n </italic>dimensions</p> <p></p> <p>The integration over <bold>y </bold>can be written as an integration over the coordinate in the direction of <bold>x</bold>, which we will denote as <italic>z </italic>and the vector perpendicular to <bold>x</bold>, represented by <bold>u</bold>. We can now rewrite the <italic>θ</italic>-function as follows</p> <p></p> <p>This function does not depend on <bold>u</bold>. The <italic>n </italic>- 1-dimensional integration over <bold>u</bold>, therefore only has a normalized <italic>n </italic>- 1 dimensional Gaussian function as integral, and thereby trivially gives the result 1. The probability of a product beyond the threshold is</p> <p></p> <p>The integration over z can be performed by recognizing that the <italic>θ </italic>function is 1 only for  and 0 otherwise.</p> <p></p> <p>Given this probability <italic>p</italic>, we can calculate the theoretical distribution for the selected subsets:</p> <p></p> <p>Fig. ##FIG##11##12## shows the histograms of the theoretical distribution, resampled distribution (random subsets) and the observed distribution (biopolymer metabolism) for one of the three discussed functions. The resampled distribution is slightly more stretched than the theoretical one, which can be attributed to correlations among the experiments that are not considered in the theoretical model. Fig. ##FIG##10##11## shows that the complexity of the algorithm is significantly decreased, although it is still roughly quadratic.</p> <p>Using the theoretical model, the algorithm of Table ##TAB##0##1## can be modified as shown in Table ##TAB##6##7##.</p>
<title>Conclusion</title> <p>We have introduced an algorithm that permits relating protein functions to gene expression data. It allows us to identify functions that are common in proteins whose genes are regulated similarly across the spectrum of two-component systems. Our analysis led to the development of biological hypotheses that suggest further experimentation. Initial experiments confirmed one of the hypotheses.</p>
<p>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/2.0"/>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</p> <title>Background</title> <p>Obtaining physiological insights from microarray experiments requires computational techniques that relate gene expression data to functional information. Traditionally, this has been done in two consecutive steps. The first step identifies important genes through clustering or statistical techniques, while the second step assigns biological functions to the identified groups. Recently, techniques have been developed that identify such relationships in a single step.</p> <title>Results</title> <p>We have developed an algorithm that relates patterns of gene expression in a set of microarray experiments to functional groups in one step. Our only assumption is that patterns co-occur frequently. The effectiveness of the algorithm is demonstrated as part of a study of regulation by two-component systems in <italic>Escherichia coli</italic>. The significance of the relationships between expression data and functional annotations is evaluated based on density histograms that are constructed using product similarity among expression vectors. We present a biological analysis of three of the resulting functional groups of proteins, develop hypotheses for further biological studies, and test one of these hypotheses experimentally. A comparison with other algorithms and a different data set is presented.</p> <title>Conclusion</title> <p>Our new algorithm is able to find interesting and biologically meaningful relationships, not found by other algorithms, in previously analyzed data sets. Scaling of the algorithm to large data sets can be achieved based on a theoretical model.</p>
<title>Competing interests</title> <p>The authors declare that they have no competing interests.</p> <title>Authors' contributions</title> <p>JW and AMD developed the algorithm and MKT and BMP performed the biological analysis of the data. PS performed the biofilm experiments. The manuscript was jointly written and approved by all authors.</p>
<title>Acknowledgements</title> <p>Many thanks to Chris Besemann, NDSU, for his work in assembling a data resource and to Alan J. Wolfe, Loyola University Chicago, Chicago, IL, for providing mutants. A.M.D. and J.W. were supported by grant IDM-0415190 from the National Science Foundation. J.W. was also supported by the NDSU Center for Nanoscale Science and Engineering. M.K.T. and B.M.P. were funded by the USDA Cooperative State Research, Education and Extension Service (CSREES) Grant #2006-35604-16675. P.S. was funded by an earmark grant on Agrosecurity: Disease Surveillance and Public Health through USDA-APHIS and the NDSU Development Foundation.</p>
<fig position="float" id="F1"><label>Figure 1</label><caption><p><bold>Sample expression profiles for two subsets of data</bold>. The top panels show gene expression profiles over multiple related experiments. The same set of curves are shown in the left and in the right panel. In each panel, a different subset of profiles is highlighted, corresponding to genes of a different functional designation. The bottom panels quantify the presence of patterns by identifying neighboring relationships among profiles using a product similarity measure. The number of neighbors, for all genes that show the function, is summarized in a histogram.</p></caption></fig> <fig position="float" id="F2"><label>Figure 2</label><caption><p><bold>Toy example to illustrate limitations of a two-step approach</bold>. The schematic demonstrates why clustering or biclustering followed by gene-enrichment analysis may miss patterns that can be found by our approach. The left panel shows two hypothetical experiments side by side using the same type of visualization as in Fig. 1. Genes with a particular functional annotation are highlighted; others are represented by dashed lines. It can be seen that the natural clusters in the data set do not show enrichment and would, hence not be considered significant by a two-step approach. In contrast, for our approach the histogram of neighbors (right panel) differs from what would be expected for a random subset.</p></caption></fig> <fig position="float" id="F3"><label>Figure 3</label><caption><p><bold>Experimental and randomized histograms for the functions macromolecule catabolism, response to desiccation, and biopolymer metabolism</bold>. A density measure that is evaluated for each data point is given by the number of neighbors that are close according to a product similarity measure. The blue bars in the histograms represent the sum of all these densities. Those vector pairs are expected to be most relevant that exhibit a large absolute value of differential expression and a small angle between vectors. The white bars show the randomly distributed vectors that are expected to have some neighbors as well. Subsets of genes that have the same number of elements as the protein function under consideration were randomly selected. The histogram was constructed for this random subset. The process was repeated multiple times and averaged over 20 runs. The top panel shows the histogram for the macromolecule catabolism function, the middle panels for the response to desiccation function, and the bottom panel for the biopolymer metabolism function.</p></caption></fig> <fig position="float" id="F4"><label>Figure 4</label><caption><p><bold>Experimental and randomized histograms for the function response regulators</bold>. Experimental and randomized histograms were constructed as described for Fig. 2. The response regulator function is one example of a function for which the experimental and the randomized histogram did not yield any major differences.</p></caption></fig> <fig position="float" id="F5"><label>Figure 5</label><caption><p><bold><italic>p</italic>-values for all domain sets</bold>. <italic>p</italic>-values of the <italic>χ</italic><sup>2 </sup>goodness-of-fit test were performed on all 20 domains. Seven domains were considered significant.</p></caption></fig> <fig position="float" id="F6"><label>Figure 6</label><caption><p><bold>Gene expression profiles for the functions macromolecule catabolism, response to desiccation, and biopolymer metabolism</bold>. Profiles were obtained for all those genes in the functional groups of catabolism, response to desiccation, and biopolymer metabolism that have a larger number of points in the neighborhood than any of the points in the histograms for the random subset (blue tails in the histograms). The individual genes that form this group are indicated in the inserted legends. The numbers on the x-axis symbolize the individual two-component systems. The order of two-component systems (attributes) is identical to the original data set [##REF##12366850##16##]. The following two-component systems are discussed in the text: #3 is OmpR/EnvZ, #4 is BasSR, #9 is YfhA, #15 is UvrY, #16 is YpdAB, #19 is DcuSR, #20 is NtrBC, and #22 is ArcB.</p></caption></fig> <fig position="float" id="F7"><label>Figure 7</label><caption><p><bold>Schematic of the capsule gene cluster</bold>. Each arrow represents one gene in the direction of transcription. Genes in red are genes that are contained in the response to desiccation function. This operon encodes proteins of the colonic acid capsule. Genes in blue are genes that are contained in the biopolymer metabolism function and are not included in the response to desiccation function. This operon encodes components of the O-antigen. Two-component systems that regulate each group of genes are indicated.</p></caption></fig> <fig position="float" id="F8"><label>Figure 8</label><caption><p><bold>Quantitative biofilm assay</bold>. The ability to form biofilms was compared between wild-type bacteria and mutants in <italic>basSR, ntrBC</italic>, and <italic>uvrY</italic>. Bioluminescence is indicative of biomass and calculated relative to wild-type <italic>E. coli</italic>. The experiment was performed three times. Average and standard deviations are presented.</p></caption></fig> <fig position="float" id="F9"><label>Figure 9</label><caption><p><bold>Experimental and randomized histogram and profile for the function hmm.mfs_1 for the Baev data set</bold>. Top panel: A density measure that is evaluated for each data point is given by the number of neighbors that are close according to a product similarity measure. The blue bars in the histograms represent the sum of all these densities. Those vector pairs are expected to be most relevant that exhibit a large absolute value of differential expression and a small angle between vectors. The white bars show the randomly distributed vectors that are expected to have some neighbors as well. Subsets of genes that have the same number of elements as the protein function under consideration were randomly selected. The histogram was constructed for this random subset. The process was repeated multiple times and averaged over 20 runs. Bottom panel: Gene expression profile for the function hmm.mfs_1. Profiles were obtained for all those genes in the functional group of hmm.mfs_1 that have a larger number of points in the neighborhood than any of the points in the histograms for the random subset (tails in the histograms). The individual genes that form this group are indicated in the inserted figure legends. The numbers on the x-axis symbolize the individual two-component systems. The order of two-component systems (attributes) is identical to Fig. 5.</p></caption></fig> <fig position="float" id="F10"><label>Figure 10</label><caption><p><bold>Comparison of the two-step approach with our algorithm for GO:0009269 = response_to_desiccation</bold>. Expander's [##REF##16176576##9##] biclustering algorithm Samba followed by enrichment analysis Tango is used as exemplary two-step approach and compared with our single-step approach. Each arrow represents one gene in the <italic>cps </italic>gene cluster. The genes of the GO:0009269 = response_to_desiccation that were identified as significant are highlighted. Genes that were returned by both algorithm are highlighted in red, additional genes that were found by our algorithm are printed in blue and genes that were found only by the comparison algorithm are in green.</p></caption></fig> <fig position="float" id="F11"><label>Figure 11</label><caption><p><bold>Runtime for evaluation of all significant domains</bold>. Comparison of complexity between random model and theoretical model. The complexity of the theoretical model is significantly smaller. The slope of the logarithmic regression is 1.90 for the random model and 1.83 for the theoretical model.</p></caption></fig> <fig position="float" id="F12"><label>Figure 12</label><caption><p><bold>Resampled and theoretical histograms for the macromolecule catabolism function</bold>. In addition to the histogram in Fig. 2A, the histogram is presented that resembles the theoretical distribution of genes.</p></caption></fig>
<table-wrap position="float" id="T1"><label>Table 1</label><caption><p>Resampling-based Algorithm</p></caption><table frame="hsides" rules="groups"><tbody><tr><td align="left"><bold>Data</bold>: <italic>genes</italic>;</td><td align="left">/* expression values */</td></tr><tr><td align="left"><bold>Data</bold>: <italic>functions</italic></td><td align="left">/* for each function */</td></tr><tr><td align="left"><bold>Result</bold>: <italic>significance, tailGenes</italic>;</td><td align="left">   /* vector of zeros */</td></tr><tr><td align="left"><bold>1 </bold><italic>normGenes </italic>= normalize(<italic>genes</italic>);</td><td/></tr><tr><td align="left"><bold>2 </bold><italic>hist </italic>= zeros(1, nPts);</td><td/></tr><tr><td align="left"><bold>3 </bold><bold>foreach </bold><italic>f </italic>∈ <italic>function </italic><bold>do</bold></td><td/></tr><tr><td align="left"><bold>4 </bold>   <italic>subset </italic>= findPoints(<italic>normGenes</italic>, <italic>f</italic>);</td><td/></tr><tr><td align="left"><bold>5 </bold>   <bold>foreach </bold><italic>x </italic>∈ <italic>subset </italic><bold>do</bold></td><td/></tr><tr><td align="left"><bold>6 </bold>      <italic>dens </italic>= NumberOfNeighbors(x);</td><td/></tr><tr><td align="left"><bold>7 </bold>      <italic>hist</italic>(<italic>dens</italic>)++;</td><td/></tr><tr><td align="left"><bold>8 </bold>   <italic>randHist </italic>= findRandomHistogram(1, <italic>nPts, normGenes</italic>);</td><td/></tr><tr><td align="left"><bold>9 </bold>   <italic>significance</italic>(<italic>f</italic>) = chiSquaredGoodynessOfFit(<italic>hist, randHist</italic>);</td><td/></tr><tr><td align="left"><bold>10 </bold>   <italic>tailGenes</italic>(<italic>f</italic>) = findTailGenes(<italic>hist, randHist</italic>);</td><td/></tr><tr><td align="left"><bold>11 </bold><bold>return </bold><italic>significance, tailGenes</italic></td><td/></tr></tbody></table></table-wrap> <table-wrap position="float" id="T2"><label>Table 2</label><caption><p>Significant vector-item patterns</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left"><bold>Function Name</bold></td><td align="center"><italic>p</italic><bold>-Value</bold></td><td align="center"><bold>Variance for group</bold></td><td align="center"><bold>Variance for tail genes</bold></td><td align="center"><bold>Number of genes in group</bold></td><td align="center"><bold>Number of genes in tail</bold></td></tr></thead><tbody><tr><td align="left">cellular biosynthesis</td><td align="center">1.88e-008</td><td align="center">0.025</td><td align="center">0.028</td><td align="center">37</td><td align="center">11</td></tr><tr><td align="left">macromolecule catabolism</td><td align="center">0.011</td><td align="center">0.033</td><td align="center">0.055</td><td align="center">15</td><td align="center">7</td></tr><tr><td align="left">carbohydrate metabolism</td><td align="center">3.18e-7</td><td align="center">0.029</td><td align="center">0.039</td><td align="center">44</td><td align="center">15</td></tr><tr><td align="left">cellular macromolecule metabolism</td><td align="center">1.98e-8</td><td align="center">0.025</td><td align="center">0.030</td><td align="center">32</td><td align="center">12</td></tr><tr><td align="left">macromolecule biosynthesis</td><td align="center">1.08e-5</td><td align="center">0.025</td><td align="center">0.030</td><td align="center">32</td><td align="center">12</td></tr><tr><td align="left">biopolymer metabolism</td><td align="center">5.92e-5</td><td align="center">0.025</td><td align="center">0.030</td><td align="center">34</td><td align="center">13</td></tr><tr><td align="left">response to desiccation</td><td align="center">0.019</td><td align="center">0.027</td><td align="center">0.029</td><td align="center">18</td><td align="center">11</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T3"><label>Table 3</label><caption><p>Macromolecule catabolism</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td align="left"><bold>OmpR/EnvZ</bold></td><td align="left"><bold>YfhA</bold></td><td align="left"><bold>UvrY</bold></td><td align="left"><bold>DcuSR</bold></td><td align="left"><bold>ArcB</bold></td><td align="left"><bold>Protein Function</bold></td></tr></thead><tbody><tr><td align="left"><bold><italic>garP</italic></bold></td><td align="left"><bold>-0.92</bold></td><td align="left">0.29</td><td align="left"><bold>-0.48</bold></td><td align="left">0.22</td><td align="left"><bold>-0.77</bold></td><td align="left">D-galactarate transporter</td></tr><tr><td align="left"><italic>garL</italic></td><td align="left"><bold>-0.37</bold></td><td align="left">0.29</td><td align="left"><bold>-0.34</bold></td><td align="left">0.17</td><td align="left">-0.24</td><td align="left">2-dehydro-3-desoxygalactarate aldolase</td></tr><tr><td align="left"><italic>garR</italic></td><td align="left"><bold>-0.74</bold></td><td align="left">0.19</td><td align="left">-0.27</td><td align="left">0.09</td><td align="left"><bold>-0.42</bold></td><td align="left">Tartronate semialdehyde reductase</td></tr><tr><td align="left"><bold><italic>garD</italic></bold></td><td align="left"><bold>-0.64</bold></td><td align="left"><bold>0.64</bold></td><td align="left">-0.21</td><td align="left"><bold>0.35</bold></td><td align="left"><bold>-0.33</bold></td><td align="left">D-galactarate dehydratase</td></tr><tr><td align="left"><bold><italic>gudP</italic></bold></td><td align="left"><bold>-0.74</bold></td><td align="left">0.19</td><td align="left">-0.27</td><td align="left">-</td><td align="left"><bold>-0.42</bold></td><td align="left">D-glucarate transporter</td></tr><tr><td align="left"><italic>gudX</italic></td><td align="left"><bold>-0.33</bold></td><td align="left">0.24</td><td align="left">-0.08</td><td align="left">0.24</td><td align="left">-0.18</td><td align="left">D-glucarate dehydratase</td></tr><tr><td align="left"><italic>ptsA</italic></td><td align="left">0.06</td><td align="left">0.18</td><td align="left">-</td><td align="left">0.18</td><td align="left">-0.02</td><td align="left">Phosphotransferase system I</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T4"><label>Table 4</label><caption><p>Response to desiccation</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td align="left"><bold>BasSR</bold></td><td align="left"><bold>UvrY</bold></td><td align="left"><bold>NtrBC</bold></td><td align="left"><bold>YpdAB</bold></td><td align="left"><bold>Protein Function</bold></td></tr></thead><tbody><tr><td align="left"><italic>wza</italic></td><td align="left">-0.19</td><td align="left">-0.22</td><td align="left">-0.24</td><td align="left">-</td><td align="left">Outer membrane auxillary Wza</td></tr><tr><td align="left"><italic>wzc</italic></td><td align="left">-0.19</td><td align="left">-</td><td align="left"><bold>-0.43</bold></td><td align="left">-</td><td align="left">Autophosphorylating protein tyrosine kinase Wzc</td></tr><tr><td align="left"><italic>wcaC</italic></td><td align="left">-0.24</td><td align="left">-0.19</td><td align="left">-0.22</td><td align="left">0.03</td><td align="left">Putative colonic acid biosynthesis glycosyl transferase</td></tr><tr><td align="left"><italic>wcaE</italic></td><td align="left">-0.20</td><td align="left"><bold>-0.59</bold></td><td align="left">-0.11</td><td align="left"><bold>0.34</bold></td><td align="left">Putative colonic acid biosynthesis glycosyl transferase</td></tr><tr><td align="left"><italic>wcaF</italic></td><td align="left">-0.25</td><td align="left">-0.23</td><td align="left">-0.25</td><td align="left">-0.17</td><td align="left">Putative colonic acid biosynthesis acetyl transferase</td></tr><tr><td align="left"><italic>gmd</italic></td><td align="left">-0.19</td><td align="left">-</td><td align="left">-0.28</td><td align="left">0.04</td><td align="left">Fucose biosynthesis, GDP-D-mannose 4,6-dehydratase</td></tr><tr><td align="left"><italic>fcl</italic></td><td align="left"><bold>-0.40</bold></td><td align="left"><bold>-0.49</bold></td><td align="left">0.04</td><td align="left"><bold>0.34</bold></td><td align="left">NADPH dependent GDP-L-fucose synthase</td></tr><tr><td align="left"><italic>cpsB</italic></td><td align="left"><bold>-0.41</bold></td><td align="left">0.00</td><td align="left">-0.12</td><td align="left">-</td><td align="left">Mannose 6-phosphate isomerase</td></tr><tr><td align="left"><italic>cpsG</italic></td><td align="left">-0.04</td><td align="left">-</td><td align="left">-0.21</td><td align="left"><bold>0.30</bold></td><td align="left">Phosphomannomutase isozyme</td></tr><tr><td align="left"><italic>wcaJ</italic></td><td align="left">-0.22</td><td align="left">-0.28</td><td align="left">-0.03</td><td align="left">0.05</td><td align="left">Putative colonic isozyme biosynthesis</td></tr><tr><td/><td/><td/><td/><td/><td align="left">UDP-glucose lipid carrier transferase</td></tr><tr><td align="left"><italic>wcaK</italic></td><td align="left">-0.12</td><td align="left"><bold>-0.32</bold></td><td align="left">-0.01</td><td align="left">0.17</td><td align="left">Colanic acid biosynthesis protein</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T5"><label>Table 5</label><caption><p>Biopolymer metabolism</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td align="left"><bold>BasSR</bold></td><td align="left"><bold>UvrY</bold></td><td align="left"><bold>NtrBC</bold></td><td align="left"><bold>YpdAB</bold></td><td align="left"><bold>DcuSR</bold></td><td align="left"><bold>Protein Function</bold></td></tr></thead><tbody><tr><td align="left"><italic>wzb</italic></td><td align="left">-0.10</td><td align="left">-</td><td align="left">0.05</td><td align="left">-0.04</td><td align="left">0.25</td><td align="left">Protein tyrosine phosphatase</td></tr><tr><td align="left"><italic>wzc</italic></td><td align="left">-0.19</td><td align="left">-</td><td align="left"><bold>-0.43</bold></td><td align="left">-</td><td align="left">0.13</td><td align="left">Autophosphorylating protein tyrosine kinase Wzc</td></tr><tr><td align="left"><italic>wcaC</italic></td><td align="left">-0.24</td><td align="left">-0.19</td><td align="left">-0.22</td><td align="left">0.03</td><td align="left">-0.22</td><td align="left">Putative colonic acid biosynthesis glycosyl transferase</td></tr><tr><td align="left"><italic>wcaE</italic></td><td align="left">-0.20</td><td align="left"><bold>-0.59</bold></td><td align="left">-0.11</td><td align="left"><bold>0.34</bold></td><td align="left">-0.11</td><td align="left">Putative colonic acid biosynthesis glycosyl transferase</td></tr><tr><td align="left"><italic>wcaF</italic></td><td align="left">-0.25</td><td align="left">-0.23</td><td align="left">-0.25</td><td align="left">-0.17</td><td align="left">-0.25</td><td align="left">Putative colonic acid biosynthesis acetyl transferase</td></tr><tr><td align="left"><italic>gmd</italic></td><td align="left">-0.19</td><td align="left">-</td><td align="left">-0.28</td><td align="left">0.04</td><td align="left">-0.28</td><td align="left">Fucose biosynthesis, GDP-D-mannose 4,6-dehydratase</td></tr><tr><td align="left"><italic>cpsB</italic></td><td align="left"><bold>-0.40</bold></td><td align="left">0.00</td><td align="left">-0.12</td><td align="left">-</td><td align="left">0.00</td><td align="left">Mannose 6-phosphate isomerase</td></tr><tr><td align="left"><italic>wcaK</italic></td><td align="left">-0.12</td><td align="left"><bold>-0.32</bold></td><td align="left">-0.01</td><td align="left">0.17</td><td align="left">-0.07</td><td align="left">Colanic acid biosynthesis protein</td></tr><tr><td align="left"><italic>rfbC</italic></td><td align="left">-0.06</td><td align="left">-0.17</td><td align="left">-0.12</td><td align="left">0.13</td><td align="left"><bold>-0.30</bold></td><td align="left">D-TDP-4-dehydrorhamnose 3,5-epimerase</td></tr><tr><td align="left"><italic>rfbX</italic></td><td align="left">-0.13</td><td align="left">-0.24</td><td align="left">-0.19</td><td align="left">-0.03</td><td align="left"><bold>-0.46</bold></td><td align="left">O-antigen translocase</td></tr><tr><td align="left"><italic>wbbH</italic></td><td align="left">-0.22</td><td align="left">-0.24</td><td align="left"><bold>-0.30</bold></td><td align="left">-0.06</td><td align="left"><bold>-0.60</bold></td><td align="left">O-antigen translocase</td></tr><tr><td align="left"><italic>wbbJ</italic></td><td align="left">-0.03</td><td align="left">-0.19</td><td align="left">-0.12</td><td align="left">0.00</td><td align="left"><bold>-0.36</bold></td><td align="left">O-acetyltransferase</td></tr><tr><td align="left"><italic>cld</italic></td><td align="left">-0.09</td><td align="left">0.00</td><td align="left">-0.10</td><td align="left">-0.06</td><td align="left"><bold>-0.30</bold></td><td align="left">Chain length regulator</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T6"><label>Table 6</label><caption><p>Comparison of variance of gene expression level</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left"><bold>Function</bold></td><td align="center" colspan="3"><bold>Variance for tail genes</bold></td><td align="center"><bold>Variance for group</bold></td><td align="center"><bold>Variance overall</bold></td></tr><tr><td/><td colspan="3"><hr/></td><td/><td/></tr><tr><td/><td align="center"><bold>Product similarity</bold></td><td/><td align="center"><bold>Subspace algorithm </bold>[##UREF##9##30##]</td><td/><td/></tr><tr><td/><td colspan="2"><hr/></td><td/><td/><td/></tr><tr><td/><td align="center"><bold>Column-wise</bold></td><td align="center"><bold>Row-wise</bold></td><td/><td/><td/></tr></thead><tbody><tr><td align="left">cellular biosynthesis</td><td align="center">0.028</td><td align="center">0.023</td><td align="center">0.018</td><td align="center">0.025</td><td align="center">0.027</td></tr><tr><td align="left">macromolecule catabolism</td><td align="center">0.055</td><td align="center">0.044</td><td align="center">not significant</td><td align="center">0.033</td><td/></tr><tr><td align="left">carbohydrate metabolism</td><td align="center">0.039</td><td align="center">0.025</td><td align="center">0.017</td><td align="center">0.029</td><td/></tr><tr><td align="left">cellular macromolecule metabolism</td><td align="center">0.030</td><td align="center">0.022</td><td align="center">0.023</td><td align="center">0.025</td><td/></tr><tr><td align="left">macromolecule biosynthesis</td><td align="center">0.030</td><td align="center">0.022</td><td align="center">0.020</td><td align="center">0.025</td><td/></tr><tr><td align="left">biopolymer metabolism</td><td align="center">0.030</td><td align="center">0.023</td><td align="center">0.018</td><td align="center">0.025</td><td/></tr><tr><td align="left">response to desiccation</td><td align="center">0.029</td><td align="center">0.020</td><td align="center">not significant</td><td align="center">0.027</td><td/></tr><tr><td align="left">ABC transporter</td><td align="center">not significant</td><td align="center">0.028</td><td align="center">not significant</td><td align="center">0.026</td><td/></tr></tbody></table></table-wrap> <table-wrap position="float" id="T7"><label>Table 7</label><caption><p>Distribution-based Algorithm</p></caption><table frame="hsides" rules="groups"><tbody><tr><td align="left"><bold>Data</bold>: <italic>genes</italic>;</td><td align="left">/* expression values */</td></tr><tr><td align="left"><bold>Data</bold>: <italic>functions</italic></td><td align="left">/* for each function */</td></tr><tr><td align="left"><bold>Result</bold>: <italic>significance, tailGenes</italic>;</td><td align="left">   /* vector of zeros */</td></tr><tr><td align="left"><bold>1 </bold><italic>normGenes </italic>= normalize(<italic>genes</italic>);</td><td/></tr><tr><td align="left"><bold>2 </bold><italic>hist </italic>= zeros(1, nPts);</td><td/></tr><tr><td align="left"><bold>3 </bold><bold>foreach </bold><italic>f </italic>∈ <italic>function </italic><bold>do</bold></td><td/></tr><tr><td align="left"><bold>4 </bold>   <italic>subset </italic>= findPoints(<italic>normGenes</italic>,<italic>f</italic>);</td><td/></tr><tr><td align="left"><bold>5 </bold>   <bold>foreach </bold><italic>x </italic>∈ <italic>subset </italic><bold>do</bold></td><td/></tr><tr><td align="left"><bold>6 </bold>      <italic>dens </italic>= NumberOfNeighbors(x);</td><td/></tr><tr><td align="left"><bold>7 </bold>      <italic>hist</italic>(<italic>dens</italic>)++;</td><td/></tr><tr><td align="left"><bold>8 </bold>   <bold>if </bold><italic>NunmberOf(genes) greater than a threshold </italic><bold>then</bold></td><td/></tr><tr><td align="left"><bold>9 </bold>      <italic>randHist </italic>= findTheoreticalHistogram(1, <italic>nPts, normGenes</italic>);</td><td/></tr><tr><td align="left"><bold>10 </bold>   <bold>else</bold></td><td/></tr><tr><td align="left"><bold>11 </bold>      <italic>randHist </italic>= findRandomHistogram(1, <italic>nPts, normGenes</italic>);</td><td/></tr><tr><td align="left"><bold>12 </bold>   <italic>significance</italic>(<italic>f</italic>) = chiSquaredGoodnessOfFit(<italic>hist, randHist</italic>);</td><td/></tr><tr><td align="left"><bold>13 </bold>   <italic>tailGenes</italic>(<italic>f</italic>) = findTailGenes(<italic>hist, randHist</italic>);</td><td/></tr><tr><td align="left"><bold>14 </bold><bold>return </bold><italic>significance, tailGenes</italic></td><td/></tr></tbody></table></table-wrap>
<inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M1" name="1471-2105-9-294-i1" overflow="scroll"><mml:semantics><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M2" name="1471-2105-9-294-i2" overflow="scroll"><mml:semantics><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM1"><label>(1)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M3" name="1471-2105-9-294-i3" overflow="scroll"><mml:semantics><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mo>=</mml:mo></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>d</mml:mi></mml:munderover><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow/></mml:mtd><mml:mtd columnalign="left"><mml:mrow/></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>≤</mml:mo><mml:mi>j</mml:mi><mml:mo>≤</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>and</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>≤</mml:mo><mml:mi>k</mml:mi><mml:mo>≤</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM2"><label>(2)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M4" name="1471-2105-9-294-i4" overflow="scroll"><mml:semantics><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>μ</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mo>∈</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM3"><label>(3)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M5" name="1471-2105-9-294-i5" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>R</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>∗</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>x</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>h</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>χ</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>−</mml:mo><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M6" name="1471-2105-9-294-i6" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>χ</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>−</mml:mo><mml:mi>t</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM4"><label>(4)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M7" name="1471-2105-9-294-i7" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mi>θ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>−</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM5"><label>(5)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M8" name="1471-2105-9-294-i8" overflow="scroll"><mml:semantics><mml:mrow><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:mi>θ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>−</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msqrt><mml:mrow><mml:mn>2</mml:mn><mml:mi>π</mml:mi></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mstyle><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mtext>d</mml:mtext><mml:mi>n</mml:mi></mml:msup><mml:mi>x</mml:mi><mml:msup><mml:mtext>d</mml:mtext><mml:mi>n</mml:mi></mml:msup><mml:mi>y</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM6"><label>(6)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M9" name="1471-2105-9-294-i9" overflow="scroll"><mml:semantics><mml:mrow><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msqrt><mml:mrow><mml:mn>2</mml:mn><mml:mi>π</mml:mi></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mi>n</mml:mi></mml:msup><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mtext>d</mml:mtext><mml:mi>n</mml:mi></mml:msup><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mtext>d</mml:mtext><mml:mi>r</mml:mi></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:mrow></mml:mstyle></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM7"><label>(7)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M10" name="1471-2105-9-294-i10" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:msup><mml:mi>π</mml:mi><mml:mrow><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>!</mml:mo><mml:mo>!</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>for </mml:mtext><mml:mi>n</mml:mi><mml:mtext> odd</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mi>π</mml:mi><mml:mrow><mml:mfrac><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:mfrac><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>!</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>for </mml:mtext><mml:mi>n</mml:mi><mml:mtext> even</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM8"><label>(8)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M11" name="1471-2105-9-294-i11" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>θ</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>−</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>θ</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>r</mml:mi><mml:mi>z</mml:mi><mml:mo>−</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM9"><label>(9)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M12" name="1471-2105-9-294-i12" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn><mml:mi>π</mml:mi></mml:mrow></mml:msqrt><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mrow></mml:mstyle><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mstyle><mml:msub><mml:mi>S</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>θ</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>r</mml:mi><mml:mi>z</mml:mi><mml:mo>−</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mtext>d</mml:mtext><mml:mi>r</mml:mi><mml:mtext> d</mml:mtext><mml:mi>z</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M13" name="1471-2105-9-294-i13" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>z</mml:mi><mml:mo>&gt;</mml:mo><mml:mfrac><mml:mi>t</mml:mi><mml:mi>r</mml:mi></mml:mfrac></mml:mrow></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM10"><label>(10)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M14" name="1471-2105-9-294-i14" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>∫</mml:mo><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msqrt><mml:mrow><mml:mn>2</mml:mn><mml:mi>π</mml:mi></mml:mrow></mml:msqrt><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mrow></mml:mstyle><mml:msub><mml:mi>S</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>−</mml:mo><mml:mtext>erf</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mi>t</mml:mi><mml:mrow><mml:msqrt><mml:mn>2</mml:mn></mml:msqrt><mml:mi>r</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mtext>d</mml:mtext><mml:mi>r</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM11"><label>(11)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M15" name="1471-2105-9-294-i15" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mi>N</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>k</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>−</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mo>−</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></disp-formula>
<table-wrap-foot><p>Column 1: Function name from GO annotation.</p><p>Column 2: <italic>p</italic>-value for standard <italic>χ</italic><sup>2 </sup>goodness-of-fit test.</p><p>Column 3: The average expression level of genes with the given function.</p><p>Column 4: The average expression level of genes with the given tail.</p><p>Column 5: Number of genes with the function.</p><p>Column 6: Number of genes in the tail.</p></table-wrap-foot> <table-wrap-foot><p>Column 1: Genes that are part of the function macromolecule catablism. The first gene in each operon is printed in bold.</p><p>Column 2 through 6: Two-component systems that are involved in the regulation of the genes in column 1. These are the most dramatic peaks in Fig. 6, top panel.</p><p>Column 7: Functions of the proteins that are encoded by the genes in column 1.</p></table-wrap-foot> <table-wrap-foot><p>Column 1: Genes that are part of the function response to desiccation. The first gene in each operon is printed in bold.</p><p>Column 2 through 5: Two-component systems that are involved in the regulation of the genes in column 1. These are the most dramatic peaks in Fig. 6, middle panel.</p><p>Column 6: Functions of the proteins that are encoded by the genes in column 1.</p></table-wrap-foot> <table-wrap-foot><p>Column 1: Genes that are part of the function biopolymer metabolism. The first gene in each operon is printed in bold.</p><p>Column 2 through 6: Two-component systems that are involved in the regulation of the genes in column 1. These are the most dramatic peaks in Fig. 6, bottom panel.</p><p>Column 7: Functions of the proteins that are encoded by the genes in column 1.</p></table-wrap-foot> <table-wrap-foot><p>Column 1: Function name from GO annotation.</p><p>Column 2: The average expression level of genes in the tail for the product-based similarity. using column-wise <italic>z</italic>-normalization.</p><p>Column 3: The average expression level of genes in the tail for the product-based similarity. using row-wise <italic>z</italic>-normalization.</p><p>Column 4: The average expression level of genes in the tail for the subspace-based similarity.</p><p>Column 5: The average expression level of genes with the function.</p><p>Column 6: The average expression level of genes in the whole data set.</p></table-wrap-foot>
<graphic xlink:href="1471-2105-9-294-1"/> <graphic xlink:href="1471-2105-9-294-2"/> <graphic xlink:href="1471-2105-9-294-3"/> <graphic xlink:href="1471-2105-9-294-4"/> <graphic xlink:href="1471-2105-9-294-5"/> <graphic xlink:href="1471-2105-9-294-6"/> <graphic xlink:href="1471-2105-9-294-7"/> <graphic xlink:href="1471-2105-9-294-8"/> <graphic xlink:href="1471-2105-9-294-9"/> <graphic xlink:href="1471-2105-9-294-10"/> <graphic xlink:href="1471-2105-9-294-11"/> <graphic xlink:href="1471-2105-9-294-12"/>
[{"surname": ["Dudoit", "Yang", "Speed", "Callow"], "given-names": ["S", "Y", "T", "M"], "article-title": ["Statistical methods for identifying differentially expressed genes in replicated cDNA microarray experiments"], "source": ["Stat Sin"], "year": ["2002"], "volume": ["12"], "fpage": ["111"], "lpage": ["139"]}, {"surname": ["Jiang", "Tang", "Zhang"], "given-names": ["D", "C", "A"], "article-title": ["Cluster analysis for gene expression data: a survey"], "source": ["IEEE Trans Knowl Data Eng"], "year": ["2004"], "volume": ["16"], "fpage": ["1370"], "lpage": ["1386"]}, {"surname": ["Cheng", "Church"], "given-names": ["Y", "G"], "article-title": ["Biclustering of expression data"], "source": ["Proc 8th Int'l Conf on Intelligent Systems for Mol Bio (ISMB)"], "year": ["2000"], "fpage": ["93"], "lpage": ["103"]}, {"article-title": ["GSEA Documentation"], "year": ["2008"], "comment": ["accessed"]}, {"surname": ["Kaski", "Sinkkonen", "Nikkil\u00e4"], "given-names": ["S", "J", "J"], "article-title": ["Clustering gene expression data by mutual information with gene function"], "source": ["Proc of the Int'l Conference on Artificial Neural Networks (ICANN)"], "year": ["2001"], "fpage": ["81"], "lpage": ["86"]}, {"surname": ["Bekker", "de Mattos", "Hellingwerf"], "given-names": ["M", "MT", "K"], "article-title": ["The role of two-component regulation systems in the physiology of the bacterial cell"], "source": ["Science in Progress"], "year": ["2006"], "volume": ["89"], "fpage": ["213"], "lpage": ["242"]}, {"surname": ["Galperin"], "given-names": ["M"], "article-title": ["Bacterial signal transduction network in a genomic perspective"], "source": ["Appl Environ Microbiol"], "year": ["2004"], "volume": ["6"], "fpage": ["552"], "lpage": ["567"]}, {"article-title": ["Sentra database of prokaryotic signal transduction proteins"], "year": ["2008"], "comment": ["accessed"]}, {"surname": ["Jonsson", "Laurio", "Lubovac", "Olsson", "Andersson"], "given-names": ["P", "K", "Z", "B", "ML"], "article-title": ["Using functional annotation to improve clusterings of gene expression patterns"], "source": ["Proc of the 6th Joint Conference on Information Science"], "year": ["2002"], "fpage": ["1257"], "lpage": ["1262"]}, {"surname": ["Wu", "Denton"], "given-names": ["J", "A"], "article-title": ["Mining vector-item patterns for annotating protein domains"], "source": ["Proc of the Workshop on Mining Multiple Information in conj with the ACM SIGKDD Int'l Conf on Data Mining (KDD), San Jose"], "year": ["2007"]}, {"surname": ["Hinneburg", "Keim"], "given-names": ["A", "D"], "article-title": ["A general approach to clustering in large databases with noise"], "source": ["Knowl Inf Syst"], "year": ["2003"], "volume": ["5"], "fpage": ["387"], "lpage": ["415"]}, {"surname": ["Denton", "Kar"], "given-names": ["A", "A"], "article-title": ["Finding differentially expressed gens through noise elimination"], "source": ["Proc Workshop on Data Mining for Biomedical Informatics in conjunction with the 6th SIAM Int'l Conf on Data Mining, Minneapolis, MN"], "year": ["2007"]}, {"surname": ["Ben-Dor", "Chor", "Karp", "Yakhini"], "given-names": ["A", "B", "R", "Z"], "article-title": ["Discovering local structure in gene expression data: the order-preserving submatrix problem"], "source": ["RECOMB '02:Proc 6th Annual Int'l Conf on Computational Biology, New York, NY"], "year": ["2002"]}, {"surname": ["Efron", "Tibshirani"], "given-names": ["B", "R"], "article-title": ["On testing the significance of sets of genes"], "source": ["Ann Appl Stat"], "year": ["2007"], "volume": ["1"], "fpage": ["107"], "lpage": ["129"]}, {"surname": ["Silverstein", "Brin", "Motwani"], "given-names": ["C", "S", "R"], "article-title": ["Beyond market baskets: Generalizing association rules to dependence rules"], "source": ["Data Mining and Knowledge Discovery"], "year": ["1998"], "volume": ["2"], "fpage": ["39"], "lpage": ["68"]}, {"surname": ["Shalel-Levanon", "San", "Bennett"], "given-names": ["S", "K", "G"], "article-title": ["Effect of ArcA and FNR on the expression of genes related to the oxygen regulation and the glycolysis pathway in "], "italic": ["Escherichia coli "], "source": ["Biotechnol and Bioengin"], "year": ["2005"], "volume": ["92"], "fpage": ["147"], "lpage": ["159"]}, {"surname": ["Sule", "Wadhawan", "Wolfe", "Pr\u00fc\u00df"], "given-names": ["P", "T", "A", "B"], "article-title": ["Use of the BacTiter-Glo microbial cell viability assay to study bacterial attachment in biofilm formation"], "source": ["Promega Notes"], "year": ["2008"], "volume": ["99"], "fpage": ["19"], "lpage": ["21"]}, {"surname": ["Sharan", "Shamir"], "given-names": ["R", "R"], "article-title": ["CLICK: A Clustering Algorithm with Applications to Gene Expression Analysis"], "source": ["Proc ISMB 2000"], "year": ["2000"], "fpage": ["307"], "lpage": ["316"]}, {"surname": ["Allison"], "given-names": ["P"], "article-title": ["Multiple imputation for missing data: A cautionary tale"], "source": ["Sociol Meth and Res"], "year": ["2000"], "volume": ["28"], "fpage": ["301"], "lpage": ["309"]}]
BMC Bioinformatics. 2008 Jun 25; 9:294