<title>Background</title> <p>Mouse is one of the most important animal models for human biology and disease, sharing broad molecular, cellular, tissue, and physiological similarities with humans. Most mouse systems are in close enough equivalence to human for direct transfer of gene functions, and even show a frequent equivalence of precise phenotypes, such as the observed high similarity of mouse knockout strain phenotypes and human drug phenotypes [##REF##12509758##1##]. In both mouse and humans, a large fraction of genes is still largely uncharacterized; of the approximately 28,000 mouse genes in the Mouse Genome Database, approximately 11,000 have no functional annotations [##REF##17135206##2##]. Thus, it is of critical importance that approaches be explored for using current data to infer functions for these genes. One approach to interpreting the mouse (and therefore human) genome is to take advantage of the vast available collections of mouse functional genomics and phenotypic data in order to help identify functions of the many uncharacterized mouse genes.</p> <p>When considering how to infer gene function from functional genomics, proteomics, and phenotypic data, two distinct strategies appear most viable. The first is the construction of classifiers that discover mappings from the observed features to the functional annotation of the genes. Classifiers use previously annotated genes as training examples to learn the relationships between genes' features and their annotations (for example, from the Gene Ontology (GO) Consortium [##REF##10802651##3##]). The standard functional prediction approach is to create a family of simple classifiers, each one learning to predict a single GO annotation. This general strategy exploits the tendency of functional genomics data to directly correlate with (or exclude) GO annotation; for example, the presence of a proline dehydrogenase Pfam domain [##REF##11752314##4##] is a strong indicator that the gene should be annotated with the GO term 'proline dehydrogenase activity' (GO:0004657).</p> <p>The second general strategy is not to directly learn mappings from features to GO annotations, but instead to learn functional associations among the genes (that is, learning the probability for each gene pair to share annotations conditioned on the data), then propagate annotations via these associations. This 'guilt-by-association' strategy [##REF##10573421##5##,##REF##10786311##6##] is simple and pragmatic (for example, see [##REF##17094253##7##, ####REF##15585665##8##, ##REF##14981259##9##, ##REF##12855458##10##, ##REF##12431279##11##, ##REF##11101803##12##, ##REF##12826619##13##, ##REF##12740586##14####12740586##14##]), given sufficient data to reconstruct a high-confidence, high-coverage association network. This approach takes advantage of the fact that many of the available types of functional genomics data naturally describe relationships between genes, rather than directly correlate with functions. For example, patterns of mRNA expression may themselves only provide weak features for learning specific GO annotations, but the tendency to share mRNA expression patterns across many experiments can be a strong indication of genes' tendency to work together, and thus to share GO annotations. Likewise, protein interactions directly specify associations, and thus fall naturally within this scheme.</p> <p>Within the framework of the MouseFunc competition [##UREF##0##15##], we explored these two parallel computational strategies for discovering the functions of mouse genes. Using a limited set of functional genomics data provided for the mouse genes within MouseFunc, with gene names disguised and no sequences provided, contestants trained algorithms to learn the GO annotations provided for 90% of the mouse genes, and then made blind predictions on the 10% of genes whose functions were withheld by the organizers. These data and the structure of this contest provide a platform for assessing the relative merits, biases, and complementarities of these two computational strategies. Our submission to the contest combined a functional association network with a classification ensemble network, both of which involved several hand-tuned parameters. The analysis presented in the paper is focused on general properties of the two approaches; thus, we have repeated the contest using a simpler version of the classifier and network approaches. Using the identical subset of GO annotations employed in the MouseFunc competition, we evaluated the relative strengths of these two different approaches, tested several simple strategies for their combination, and evaluated which biological functions were well and poorly inferred. As this work represents a draft functional network of mouse genes, likely to be useful given the absence of large-scale experimental maps of mouse protein interactions or protein complexes, we also provide the network itself and search tools on a supporting website.  </p>
<title>Materials and methods</title> <title>Data</title> <p>In the context of the MouseFunc competition, we were provided with several data sets describing features of the 21,603 genes in the mouse genome (as of February 2006). The datasets are described elsewhere [##UREF##0##15##]; we provide short descriptions here.</p> <p>Three datasets, 'Zhang', 'Su', and 'SAGE', provide mRNA expression data. 'Zhang' contains 55 DNA microarray experiments covering 13,567 genes [##REF##15588312##34##]. 'Su' contains 61 DNA microarray experiments covering 18,209 genes [##REF##15075390##35##,##REF##11904358##36##]. 'SAGE' describes SAGE tag counts at the 'quality 99' cut-off for 139 SAGE libraries in the Mouse Atlas of Gene Expression. Two datasets, 'Pfam' and 'InterPro' provide protein domain data. Pfam contains 3,133 domains covering 15,569 genes [##REF##11752314##4##]. 'InterPro' contains 5,404 domains covering 16,966 genes [##REF##12520011##37##]. There is some overlap between the domains represented in each dataset, and both datasets are very sparse. One dataset, 'PPI', contains protein-protein interaction data from the OPHID database [##REF##15657099##38##]. 'OMIM' contains human disease gene associations for 2,488 diseases/phenotypes and covers 1,938 genes [##REF##15608251##39##]; additional mouse phenotypes were available from the Mouse Genome Database [##REF##17135206##2##] ('MGI') containing 33 phenotypes spanning 3,439 genes, as were very limited phylogenetic profiles calculated using BioMart [##REF##16082012##40##] (18 eukaryotic species) and InParanoid [##REF##11743721##41##] (21 species), covering 15,940 genes and 15,703 genes, respectively.</p> <p>Along with the data sets, some GO annotations were provided for 19,443 of the 21,603 known mouse genes, although fewer than half were annotated by any one major GO branch (BP, CC, or MF). Of the remaining 2,160 genes, 1,718 were designated as the 'test set', for which functions were to be predicted. Mouse genes have been annotated with 5,624 unique GO labels; however, only 2,816 of these were used for the functional prediction problem, selected for having between 3 and 300 positive examples in the data set. Of the 2,816, 1,726 were from BP, 763 from MF, and 326 from CC. After the conclusion of the MouseFunc competition, the organizers provided the annotations of the 1,718 withheld genes. Of the 1,718, 1,339 were annotated and 379 were unannotated.</p> <title>Organization of experiments</title> <p>We evaluated prediction performance in two ways: by average performance over ten-fold cross-validation, and by prediction of the annotations of the MouseFunc held-out genes. For ten-fold cross-validation, we randomly divided the 21,604 MouseFunc genes into 10 equal sized groups. Our evaluation involved ten rounds of holding out one of the groups, training the classifier and networks on the remaining groups, and predicting annotations for the held-out group. For the MouseFunc held-out genes, we trained the classifier and networks on the 19,443 annotated genes, and predicted the annotations for the 1,339 annotated MouseFunc test set genes.</p> <title>Predicting Gene Ontology annotations by a family of naïve Bayes classifiers</title> <p>As a representative example of the classification approach, we trained and applied 2,815 naïve Bayes classifiers, each to predict the presence or absence of one GO annotation. Feature vectors for the classifiers were constructed from the following binary MouseFunc datasets: Pfam, InterPro, PPI, Phenotype, phylogenetic_binary, and InParanoid, totaling 11,000 binary features. Use of binary features allowed training of the naïve Bayes classifiers by simple counting. We used the log-odds form of naïve Bayes, calculated as:</p> <p></p> <p>where <italic>c </italic>is the class assignment (that is, 1 if the gene has the annotation, 0 if not), <italic>f </italic>is a given binary feature, and <italic>i </italic>is a counter across the features. In this form, the log-likelihood on the left hand side will be positive if the features indicate <italic>c </italic>= 1, and negative if the features indicate <italic>c </italic>= 0. Missing features were omitted from the computation. We transformed the resulting log-odds ratio into a score by projecting the log-odds ratio <italic>L </italic>onto a sigmoid using the following transformation:</p> <p></p> <p>We implemented naïve Bayes and the sigmoid transformation in MATLAB (The Mathworks, Natick, MA, USA).</p> <title>Predicting Gene Ontology annotation by the association network</title> <p>The network-based prediction comprised two steps: first, the probability (<italic>P</italic>) was predicted for each pair of genes to share a GO term using a naïve Bayes classifier based on all the available features. This produced a functional network, in which genes formed vertices, with gene pairs connected by edges of weight <italic>P</italic>. Second, the GO annotations of each target gene were inferred by propagating the GO annotations of the gene's network neighbors.</p> <p>In calculating the network, 11 pairwise features were employed (all as provided from the MouseFunc competition): protein-protein interactions, shared interaction partners, shared phenotypes (MGI phenotypes, OMIM diseases), shared domains (Pfam, InterPro), mRNA co-expression (Zhang, Su and SAGE), and phylogenetic profiles (Ensembl, InParanoid). Each feature was scored using one of three scoring schemes: the hypergeometric probability, frequency, or Pearson correlation coefficient.</p> <p>In the case of protein interactions, shared interaction partners and phylogenetic profiles, we calculated the hypergeometric probability of the partners occurring by random chance, calculated as:</p> <p></p> <p>where:</p> <p></p> <p>In this approach, <italic>P </italic>indicates how likely a protein pair (A, B) is to interact (or share at least <italic>k </italic>interaction partners, or show similar phylogenetic profiles, depending on data set) by chance. For protein-protein interactions, <italic>n </italic>and <italic>m </italic>equal the number of interactions in which each protein A and B is involved, respectively. <italic>N </italic>equals the total number of interactions, and <italic>k </italic>equals 1. In the case of shared interaction partners, <italic>n </italic>and <italic>m </italic>are as before, but <italic>N </italic>equals the total number of genes, and <italic>k </italic>equals the number of shared interaction partners between proteins A and B. For phylogenetic profiles, each profile (provided in the competition using both Ensembl and InParanoid) consisted of a binary vector of '1's and '0's, indicating the presence or absence of orthologous genes in the target organisms. In calculating the phylogenetic profile hypergeometric distribution, <italic>n </italic>and <italic>m </italic>equal the sum of each vector for the proteins A and B, respectively, <italic>N </italic>equals the total number of organisms used to construct the phylogenetic profiles, and <italic>k </italic>is the number of shared organisms in the phylogenetic profile. Finally, we calculate -<italic>log P </italic>as the score for each of these data sets for each pair of genes.</p> <p>For the calculation of gene associations using the MGI mouse phenotype, OMIM disease, Pfam domain, and InterPro domain data sets, we employed a frequency model as follows. Each gene was considered to have a feature vector, <italic>v</italic><sub><italic>i</italic></sub>, of length <italic>n</italic>, where each vector element represents the presence (1) or absence (0) of a phenotype, a disease, or a domain. We calculate <italic>P </italic>as the probability of sharing the observed number of vector elements by chance. -<italic>log P </italic>is taken as the score, calculated as:</p> <p></p> <p>where <italic>f</italic><sub><italic>i </italic></sub>is the frequency of the element <italic>i </italic>among the <italic>N </italic>total genes.</p> <p>Finally, for the gene expression data sets (Zhang, Su and, SAGE), we calculated the Pearson correlation coefficient of the mRNA expression levels between each pair of genes across each of the expression data sets.</p> <p>Given this set of scores associated with each pair of genes, we calculated the probability for a gene pair to share GO terms as follows. The scores for each pairwise feature were discretized into bins (9 to 28 bins, depending upon data set). Bins were chosen by ranking the gene pairs by the given score, then selecting bin locations to separate the top scoring pairs of 10,000, 20,000, 50,000, 100,000, 200,000, 500,000 ... 50,000,000 and L (the total number of pairs) gene pairs. In the case of the mRNA expression data sets, a similar process was also performed after ranking the gene pairs in reverse order (capturing anti-correlation of the expression vectors). In the event that the number of bins was less than 7 after merging the same break points, the bin size was reduced by half until the number of bins became 7 or more. For each gene pair, the posterior probability of sharing at least one GO term was then predicted using a naïve Bayesian classifier based upon the discretized bins.</p> <p>Finally, a gene association network was constructed between gene pairs using the top 10% probabilities of sharing GO terms as edge weights. GO terms were predicted for each target gene by propagating the GO terms of its neighbors in the network. For a target gene with <italic>k </italic>neighbors (n<sub>1</sub>, n<sub>2 </sub>... n<sub>k</sub>), the prediction score, <italic>S</italic><sub><italic>i</italic></sub>, for each GO term, <italic>G</italic><sub><italic>i</italic></sub>, was calculated as:</p> <p></p> <p>where <italic>P</italic><sub><italic>k </italic></sub>is the edge weight between the target gene and its <italic>k</italic>-th neighbor.</p> <title>Combination of network and classifier predictions</title> <p>The predicted scores from the network<sub>full </sub>and the classifier were combined by simply applying the given operation (minimum, maximum, mean) to each pair of predictions. If the prediction score by network is S<sub>network </sub>and the score by classifier is S<sub>classifer</sub>, then the combined score will be min(S<sub>network</sub>, S<sub>classifer</sub>), (S<sub>network</sub>+S<sub>classifer</sub>)/2 and max(S<sub>network</sub>, S<sub>classifer</sub>) for the minimum, the mean, and the maximum score, respectively.</p> <title>Evaluation of prediction performance</title> <p>To evaluate the prediction performance of the various algorithms, we calculated the AUC, or area under a ROC curve, for each classification approach as applied to each GO term, and then examined the mean, median, and distribution of the AUC values. An ROC curve plots the true positive rate (sensitivity, TP/[TP+FN]) versus the false positive rate (1 - specificity, FP/(FP+TN)), where TP is true positives, FN is false negatives, FP is false positives, and TN is true negatives. A randomly guessing classifier will have an equal true positive rate and false positive rate, yielding an AUC of 0.5. A classifier making predictions better than random will produce a curve above the diagonal, and an AUC greater than 0.5, with a perfect classifier having an AUC of 1.0. A classifier making predictions worse than random will produce a curve below the diagonal, yielding an AUC between 0 and 0.5. The AUC was calculated using the ROCR library [##UREF##4##42##], which is shown to generate nearly the same AUC values as the script used for the MouseFunc competition.</p> <p>We calculated the AUC for the 1,339 annotated genes (out of the 1,714 total genes) in the MouseFunc test set, using the same February 2006 GO annotations used in the competition, and the identical held-out test set of annotated genes. Summary statistics for groups of GO terms (mean, median, standard deviation) include only annotations with at least one positive example. The mean for a given group - for example, 'BP 3 to 10' - is the mean of the AUCs computed for the 1,339 annotated test set genes, for all of the GO terms belonging to the group 'BP 3 to 10', where its GO terms belong to the biological process class and the term frequency is between 3 and 10 in the MouseFunc training data set.</p>
<title>Results</title> <title>Data and task</title> <p>The data provided in the context of the MouseFunc competition (described in Materials and methods and in [##UREF##0##15##]) consisted of mRNA expression data, eukaryotic and prokaryotic phlylogenetic profiles, Pfam and Interpro protein domain annotations, and Online Mendelian Inheritance in Man (OMIM) disease annotations, for a total of approximately 18 million individual observations. These data sets were provided (with widely varying coverage) for 21,603 mouse genes. At the time of the MouseFunc competition, 19,443 of those genes were supplied with labels, and of the remaining 2,160 unlabeled genes, 1,718 were designated as targets for functional prediction.</p> <p>The gene annotations provided and to be predicted were terms from the GO. Roughly 5,600 distinct GO annotations have been defined for mouse genes, falling into three broad classes: 3,185 labeling biological processes (BP; that is, pathways), 1,874 labeling molecular functions (MF; that is, biochemical activities), and 566 labeling cellular components (CC; that is, subcellular locations and complexes). For the contest, 2,816 terms (1,726 BP, 763 MF, and 326 CC) were selected for prediction evaluation. These were separated into four frequency categories (3 to 10 occurrences among the MouseFunc gene set, 11 to 30 occurrences, 31 to 100 occurrences, and 101 to 300 occurrences).</p> <p>Participants' functional prediction performance was evaluated by computing the quality of the predictions of the 2,816 designated GO annotations on the target genes, with the evaluation broken down by hierarchy (BP, MF, and CC) and frequency (3 to 10, 11 to 30, 31 to 100, and 101 to 300).</p> <title>Prediction strategies</title> <p>Any functional prediction technique should identify some structure between features and annotations in the labeled data that allow the prediction of annotations in the unlabeled set. We examined two approaches for discovering this structure and using it to make predictions: a feature-based approach and a network-based approach. We also examined the complementarity of these two approaches and simple approaches for combining them.</p> <p>The feature-based approach to this problem is conceptually straightforward: learn a mapping from the features (that is, the datasets) to the GO annotations. Each mapping (classifier) takes the responsibility for predicting presence or absence of one of the GO terms. Once trained, the 2,816 individual classifiers map the features of the unlabeled genes to 2,816 predictions regarding the presence or absence of GO annotations. As our representative of this strategy, we used a simple naïve Bayes classifier trained on all of the binary features (that is, excluding the co-expression datasets).</p> <p>As a second strategy, we employed a network-based approach that operated on the assumption that genes are associated in a functional network, and that shared GO annotation indicates a functional linkage. The network approach learns functional associations by looking at every pair-wise combination of genes in the training set. When a pair of genes shares a given GO term, the features shared by that pair are taken to be indicative of the functional connection indicated by the shared annotations. The unlabeled genes are incorporated into the network by their features, and then annotations are propagated according to the observed linkages. To test this approach, we calculated a functional gene association network using a naïve Bayes strategy spanning approximately 91% to 98% (depending on major GO class) of the mouse genes (as described in the Materials and methods) and then propagated training set annotation terms through the network to calculate GO annotations for all of the held-out test set genes. We constructed two networks: a 'full' network ('network<sub>full</sub>') from all of the features and a 'slim' network ('network<sub>slim</sub>') from the same binary features used in the classifier.</p> <p>Since these methods take dramatically different approaches to the functional prediction problem, it would be reasonable to investigate whether the two approaches are complementary, with one excelling in some areas and the other in others. To explore this possibility, we tested simple combinations of the results of the two approaches (network<sub>full </sub>and classifier), evaluating the maximum, mean, and minimum of their scores.</p> <title>Evaluation of the overall prediction accuracy</title> <p>In order to measure the prediction performance, we calculated the AUC (area under the receiver operating characteristic [ROC] curve) and APR (average precision) for each GO class (BP, MF, and CC) and frequency category. AUC is appropriate for normalized, class distribution insensitive evaluations across many GO terms. APR provides a complementary evaluation, particularly for highly skewed data sets [##UREF##1##16##].</p> <p>We conducted two sets of functional prediction experiments, one using ten-fold cross-validation and another repeating the MouseFunc contest. Our primary result comes from conducting the ten-fold cross-validation on all 21,603 genes of the contest. In each fold, 10% of the genes were used as a test set, and the prediction models were trained on the remaining 90%. The overall performance of each approach is plotted as average AUC and average APR across all ten folds in Figure ##FIG##0##1##. In general, we observed the network-based approach to outperform the classifier, particularly for less frequent categories (3 to 10, and 11 to 30). In more frequent categories (31 to 100, and 101 to 300), the evaluations by AUC and APR were not always consistent (Figure ##FIG##0##1a,b##). In CC, the network performed better or at least similarly in terms of both AUC and APR. For BP and MF, the classifier showed higher APR than the network, although the two approaches were similar in terms of AUC. Although the network<sub>full </sub>outperformed network<sub>slim </sub>across all GO classes and categories, the performances were not very different for both AUC and APR. Combinations of the two approaches (for example, 'mean' and 'max') generally performed the best but only slightly better than the network on its own.</p> <p>The overall predictive accuracy was remarkably high, and the median AUC and APR values are summarized in Tables ##TAB##0##1## and ##TAB##1##2##, respectively. Across the entire set of GO annotations tested, the median AUC = 0.865 and the median APR = 0.195, indicating the high power of data mining on existing datasets for the directed learning of mammalian gene functions. In addition to the ten-fold cross validation, we recreated the MouseFunc contest, using the 19,433 genes of the contest training set for training. Of the 1,718 contest target genes, we used the 1,339 annotated with at least one of the contest target GO terms. The results of this experiment are very similar to those of the cross-validation (see Additional data file ##SUPPL##0##1## for the overall performance for the MouseFunc target genes).</p> <p>Both of the experiments exhibited consistent trends. BP was more difficult to predict than MF and CC by both approaches. The network-based approach generally outperformed the classifier based approach for infrequent annotations as measured by both AUC and APR, but the two approaches performed more similarly for frequent terms. The network approach showed more consistent performance across GO frequency categories, while the performance of the classifier approach varied more widely.</p> <title>The relative merits of the association network versus the classifier</title> <p>Given the general dominance of the network-based approach for less frequent terms, we investigated further the relative performance of each approach. To directly compare the two approaches, we considered 'network<sub>slim</sub>', constructed using only the binary features in the data, which comprised exactly the same data set used to train the classifier. Figures ##FIG##1##2## and ##FIG##2##3## plot the relative performance of the classifier and the network<sub>slim </sub>for each specific GO term, separated out by GO class and frequency category. In terms of both AUC and APR, the network method performed better in the 3 to 10 and 11 to 30 frequency groups across all three hierarchies (Figures ##FIG##1##2## and ##FIG##2##3##, respectively). In the other frequency groups (31 to 100 and 101 to 300), the points are concentrated along the diagonal, suggesting highly similar performances from both approaches. For the most specific terms (3 to 10), many GO terms show AUC<sub>classifier </sub>approximately 0.5 and AUC<sub>network_slim </sub>&gt;&gt; 0.5 (Figure ##FIG##1##2##). This suggests that many GO terms could be predicted effectively only by the network approach even based on the same training data, for example 'male sex differentiation' (GO:0046661), with AUC<sub>classifier </sub>= 0.54 and AUC<sub>network_slim </sub>= 0.95 (recall that AUC of approximately 0.5 indicates random prediction). In contrast, there were cases where the classifier was much better at predicting the target GO term, for example 'triplet codon-amino acid adaptor activity' (GO:0030533), with AUC<sub>classifier </sub>= 0.97 and AUC<sub>network_slim </sub>= 0.50, and 'antigen binding' (GO:0003823), with AUC<sub>classifier </sub>= 0.92 and AUC<sub>network_slim </sub>= 0.71. For MF, this classifier bias could result from a strong association with a particular domain. For example, the term 'peptide antigen binding' (GO:0042605), with AUC<sub>classifier </sub>= 0.87 and AUC<sub>network_slim </sub>= 0.64, was highly predictable by the classifier due to the annotation's strong correlation with the Pfam domain 'Perilipin family' [PF03036] involved in lipid/peptide binding. The prediction bias for network and classifier approaches is discussed in more detail in the next section.</p> <title>The network and the classifier show different, specific functional biases</title> <p>Given the differences observed above between the two general strategies, we asked on which specific GO terms was there the largest difference in performance between predictions by the network and the classifier. Again, the network<sub>slim </sub>and the classifier were compared for consistency of training data. As AUC is insensitive to class distribution, that is, GO term frequency [##UREF##2##17##], we used AUC to measure the relative performance between the two approaches. In our investigation, we rank-ordered each GO term by the difference in AUC based on the network versus the classifier, and then examined those terms with the largest ΔAUC (Figures ##FIG##3##4## to ##FIG##5##6##). The minimum AUC for either method was set to 0.5, thus ΔAUC values ranged from 0 to 0.5.</p> <p>We observed strong differences in the predictability for some GO terms, suggesting functional biases depending on the prediction method. For example, the MF term 'triplet codon-amino acid adaptor activity' (GO:0030533) was effectively predicted by the classifier, but only poorly by the network; in contrast, the term 'fibroblast growth factor receptor binding' (GO:0005104) was predicted well by the network, but only poorly by the classifier (Figure ##FIG##4##5##). The biases do not appear confined to specific types or classes of GO terms. For example, both the network and the classifier-biased BP terms include diverse cellular functions, such as metabolism, differentiation/development and cell cycle (Figure ##FIG##3##4##). For the CC terms, the network predictions are consistent with a known ability of probabilistic gene networks to effectively capture core cellular complexes [##REF##15567862##18##], such as transcription/translation apparatus, nucleotide-excision repair complex and cell signaling (Figure ##FIG##5##6##).</p> <title>Overall evaluation of well-predicted and poorly predicted mouse gene functions</title> <p>We next took the best performing approach (the 'mean' combination of the network<sub>full </sub>and classifier) and evaluated its overall predictive performance, asking which overall biological functions were well and poorly predicted. The correlation between AUC and APR ranged from 0.55 to 0.76 for all tested GO terms, depending on the prediction algorithm. For our purpose here, AUC is chosen as the primary measure and APR as the secondary one.</p> <p>We employed high level GO terms, choosing terms from the second level (BP and MF) and the second and the third levels (CC) of the GO hierarchy. The GO terms in ancestor-descendant relationships were merged to the ancestor term to avoid redundancy. We examined the distribution of AUC values for all GO terms that were descendants of each high-level GO term in the hierarchy. This method allowed us to evaluate which general functions remain difficult to predict. Figures ##FIG##6##7## to ##FIG##8##9## plot the results, showing the distributions of AUCs and APRs as box plots rank ordered by median AUC. Both the AUCs and the APRs tend to show high variance, although the GO terms in each box plot share the same high level GO term as a more general function.</p> <p>In the BP hierarchy, many of the core cellular processes are well predicted, for example 'cell proliferation' (GO:0008283), 'RNA localization' (GO:0006403), and 'cytokine production' (GO:0001816) (Figure ##FIG##6##7##). Interestingly, many GO annotations that are not single cell-based, but rather tissue specific, are also well-predicted, for example 'homeostasis of number of cells' (GO:0048872), 'immune system process' (GO:0002376), 'reproductive development process' (GO:0003006), and 'synaptic organization and biogenesis' (GO:0050808). At the lower end of performance, several other high-level GO BP terms are poorly predicted, among them 'response to abiotic stimulus' (GO:0009628), 'sexual reproduction' (GO:0019953), and 'behavioral interaction between organisms' (GO:0051705). As a wide variety of genes in many different pathways could participate in these processes and these are primarily emergent behavioral properties, it is perhaps not surprising that they are hard to learn from molecular data.</p> <p>Similar trends are observed amongst MF (Figure ##FIG##7##8##) and CC categories (Figure ##FIG##8##9##), although, in general, the predictions were strongest for the MF category, with a median AUC of 0.926 across all tested MF annotations (Table ##TAB##0##1##).</p> <title>A draft association network of mouse genes</title> <p>Although the primary goal of this work was to predict the functions of genes by specifically learning their GO annotation terms, the gene association network itself carries value beyond the prediction of GO terms. In particular, such networks have proven useful, especially in unicellular organisms such as yeast, for accurately predicting gene functional associations (for example [##REF##16510899##19##, ####REF##17912365##20##, ##REF##16420673##21##, ##REF##16762047##22####16762047##22##]), gene essentiality [##REF##11333967##23##], and the effect of gene disruption on growth rates (for example [##REF##14578455##24##]). It is likely that the mouse gene network created here might have similar utility. In all, the network model is quite extensive; from the MouseFunc datasets, we estimated the probability of sharing at least one GO term for all pairs of mouse genes. The top-scoring 10% of the associations (&gt;23 million pairs) were used to construct the association network, covering 91% to 98% of the total genes, depending on GO class. Even limiting the network to those gene pairs predicted at high confidence (<italic>P </italic>&gt; 0.5) to share annotation results in a network comprising &gt;1.6 million associations among approximately 72% to 74% of the total mouse genes. In order that this network may be used for research beyond that considered here, the complete set of links with <italic>P </italic>&gt; 0.5 is made available on the supporting website [##UREF##3##25##]. Users can input a specific set of genes and retrieve additional genes most likely to operate in the same processes as the input set. This approach is thus not limited to currently annotated processes, but should be useful even for gene sets without current GO annotations for which functional relationships are captured in the network.</p>
<title>Discussion</title> <title>Relative performance of the network and classifiers</title> <p>We observe a significant difference in the relative performance of the two overall computational approaches. The network approach showed relatively uniform performance (AUC) across GO frequency categories, while the performance of the classifier approach showed performance positively correlated to frequency group. The network-based approach strongly outperformed the classifier approach for more specific, lower frequency GO terms. For more general (and more frequent) GO terms, the two approaches were comparable in terms of both AUC and APR. Since prediction performance is influenced by a number of factors, such the amount of data in the training genes, the data available for the test genes, the reliability of the data set, the algorithm and its parameters, and the inherent predictability of each GO term or target function, the reason for the performance differential on infrequent annotations is not obvious. We offer two plausible explanations below.</p> <p>First, in the network approach, a test gene prediction is made by the transfer of GO term annotations from its network neighbors. As long as the network is more densely connected among the genes sharing a target GO term, the prediction score for the target GO term will dominate the scores for other terms. As the connectivity of a gene is independent of term frequency but is determined by the number and the types of available features, the network approach may show uniform performance across the GO frequency groups. In contrast, the classifier approach may need a certain amount of training data to effectively capture the signal for a particular function. This may explain why AUC<sub>classifier </sub>increased from '3 to 10' to '31 to 100' and reached a plateau between '31 to 100' and '101 to 300' for all classes of BP, MF, and CC (Figure ##FIG##0##1a##).</p> <p>Second, some of the binary data represent relationships (for example, PPI, phylogenetic profiles) that are probably more useful to the network approach than to the classifier approach as the network framework is concerned with deducing relationships between genes. Thus, from these data sets, the network can infer strong associations leading to better propagation of annotation via these associations. While in principle the classification strategy should be amenable to this as well, the simple implementation practiced here may not have exploited the contribution of many weak features effectively for infrequent terms.</p> <p>Given these potential explanations, it should be noted that the classifier did outperform the network on a small fraction of infrequent terms (Figures ##FIG##1##2## and ##FIG##2##3##), and that for a subset of GO annotations the classifier complemented the network predictions (upper diagonal in Figures ##FIG##1##2## and ##FIG##2##3##), with the result that the mean score of the two approaches generally showed a higher performance than either alone (Figure ##FIG##0##1a,b##).</p> <title>Compatibility of relational data with the network approach</title> <p>Many of the functional genomic data types naturally describe relationships among genes and are thus amenable to the network-based strategy but not to the classifier approach in a straightforward way. For example, mRNA expression patterns, when gathered over many distinct experimental conditions, can strongly indicate genes belonging to the same pathways, as was noted in early analyses of DNA microarray experiments [##REF##9843981##26##]; the inferred pair-wise relationships are simple to incorporate in the network framework [##REF##10573421##5##]. Protein-protein interactions and phylogenetic profiles are also highly compatible with the network approach. In our experiments, network<sub>full </sub>(including the expression data) consistently outperformed network<sub>slim </sub>(excluding the expression data), supporting the inclusion of such relational data, easily accommodated in the network approach.</p> <title>Enhancement of learning rare Gene Ontology annotations</title> <p>The strikingly improved performance of the network for rare (for example, level 3 to 10) GO annotations raises the question of why the network should show such an improvement for these cases. In particular, the related MouseFunc implementation of this algorithm was one of the top performers in the MouseFunc competition for the GO level 3 to 10 annotation predictions on held-out genes, and by a considerable margin in the BP and CC categories. One possibility for this enhanced performance relates to an intrinsic property of the network for allowing only functionally related genes to propagate annotation - that is, not all terms are considered as candidates for all genes, but rather only those genes directly linked to a gene carrying a term can be considered for having that term. This local connectivity produces two related effects, one on the prior odds of each annotation being awarded and one on the prior odds of each gene to receive the annotation. First, it awards terms in proportion to the prior odds of having that term - rare terms annotate only a few genes, which have limited neighbors, which in turn are the only genes considered for those terms, thereby resulting in those terms being assigned only rarely in the resulting predictions. Second, as indicated above, in addition to enforcing the low prior odds for awarding rare terms, only the linked genes can receive the rare term; not all genes have equal chances of being labeled with the term. We speculate that these dual effects may augment the network-based prediction of rare terms relative to the classification-based strategies.</p> <title>Implications for discovery of remaining gene functions</title> <p>One point in particular bears noting: the data employed in the MouseFunc competition represented only a small fraction of that currently available; thus, simply by including more of the data sets already in existence, we can expect a large improvement in prediction of the remaining gene functions. In particular, there is considerable additional mRNA expression data spanning diverse mouse/human tissues, cell types, and treatments (&gt;500 mouse and &gt;600 human DNA microarray datasets are available in the Gene Expression Omnibus database [##REF##15608262##27##], &gt;200 mouse and &gt;300 human SAGE libraries are available in NCBI SAGEmap [##REF##10899154##28##], and approximately 600 mouse and &gt;6,000 human DNA microarray data sets are available from the Stanford Microarray Database [##REF##12519956##29##]). There are also considerable data regarding protein interactions, such as human yeast two-hybrid protein interaction data (for example [##REF##16189514##30##]), omitted from MouseFunc, and considerable data from comparative genomics approaches for inferring interactions (reviewed in [##REF##10866208##31##]), such as the approaches of phylogenetic profiles, gene fusions, and conserved gene neighbors.</p> <p>While these latter methods do not measure protein sequence similarity, they require amino acid sequences to calculate, and therefore were excluded from the MouseFunc competition; they nonetheless add considerable value for analyzing animal gene functions. For example, knowledge of bacterial or archaeal homologs' operon organization has been shown to be a useful predictor of functional relationships among animal genes [##REF##18223650##32##]; in the absence of sequence information, these data could not be included. Likewise, phylogenetic profiles based primarily upon eukaryotic genomes, as in the competition, are known to be much poorer predictors of gene functional associations than phylogenetic profiles based entirely upon bacterial genomes (for example, see [##REF##17912365##20##,##REF##15947018##33##]). Beyond these data, incorporation of data from other species via orthology also offers a rich source of evidence likely useful for predicting mouse gene function. We estimate that these various data (not even considering orthologous data sets) represent approximately 120 million individual experimental observations, that is, more than ten-fold more data than employed in the MouseFunc competition. Thus, there is a great opportunity for data-mining approaches of the sort explored here to directly infer mouse gene functions even if limited to current datasets.</p>
<title>Conclusion</title> <p>We demonstrate that mouse gene functions can be accurately learned directly from current functional genomics, proteomics, and phenotypic data sets. Using a combination of approaches, our median performance for predicting all of the held-out test set mouse gene GO annotations is reasonably high (AUC = 0.865, APR = 0.195). We explored the relative contributions to the predictions of two different computational strategies - propagation of annotation through a functional gene network and direct prediction of annotation using an ensemble of classifiers - and showed that the network-based strategy significantly outperformed the tested classifier-based strategy for relatively infrequent GO terms, while performing similarly for frequent terms. Analysis of the functions that remain poorly predicted highlights areas for improved data integration and analyses. Finally, this work also results in a single gene network that both spans the majority of mouse genes (&gt;70% of mouse genes in the high confidence network) and is predictive of mouse (and therefore often human) gene function [##UREF##3##25##].</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> <p>The complete set of mouse genes, as with the set of human genes, is still largely uncharacterized, with many pieces of experimental evidence accumulating regarding the activities and expression of the genes, but the majority of genes as yet still of unknown function. Within the context of the MouseFunc competition, we developed and applied two distinct large-scale data mining approaches to infer the functions (Gene Ontology annotations) of mouse genes from experimental observations from available functional genomics, proteomics, comparative genomics, and phenotypic data. The two strategies — the first using classifiers to map features to annotations, the second propagating annotations from characterized genes to uncharacterized genes along edges in a network constructed from the features — offer alternative and possibly complementary approaches to providing functional annotations. Here, we re-implement and evaluate these approaches and their combination for their ability to predict the proper functional annotations of genes in the MouseFunc data set. We show that, when controlling for the same set of input features, the network approach generally outperformed a naïve Bayesian classifier approach, while their combination offers some improvement over either independently. We make our observations of predictive performance on the MouseFunc competition hold-out set, as well as on a ten-fold cross-validation of the MouseFunc data. Across all 1,339 annotated genes in the MouseFunc test set, the median predictive power was quite strong (median area under a receiver operating characteristic plot of 0.865 and average precision of 0.195), indicating that a mining-based strategy with existing data is a promising path towards discovering mammalian gene functions. As one product of this work, a high-confidence subset of the functional mouse gene network was produced — spanning &gt;70% of mouse genes with &gt;1.6 million associations — that is predictive of mouse (and therefore often human) gene function and functional associations. The network should be generally useful for mammalian gene functional analyses, such as for predicting interactions, inferring functional connections between genes and pathways, and prioritizing candidate genes. The network and all predictions are available on the worldwide web.</p>
<title>Abbreviations</title> <p>APR, average precision; AUC, area under a ROC curve; BP, biological process; CC, cellular component; GO, Gene Ontology; MF, molecular function; OMIM, Online Mendelian Inheritance in Man; ROC, receiver operating characteristic.</p> <title>Competing interests</title> <p>The authors declare that they have no competing interests.</p> <title>Authors' contributions</title> <p>WKK, CK and EMM conceived the research. WKK and CK performed the experiments. WKK, CK and EMM wrote the paper.</p> <title>Additional data file</title> <p>The following additional data are available with the online version of this paper. Additional data file ##SUPPL##0##1## is a figure showing overall performance for the MouseFunc target genes.</p> <title>Supplementary Material</title>
<title>Acknowledgements</title> <p>The authors acknowledge support from grants from the NSF (IIS-0325116, EIA-0219061), NIH (GM06779-01, GM076536-01), Welch Foundation (F1515), and a Packard Fellowship (EMM).</p> <p>This article has been published as part of <italic>Genome Biology </italic>Volume 9 Supplement 1, 2008: Quantitative inference of gene function from diverse large-scale datasets. The full contents of the supplement are available online at <ext-link ext-link-type="uri" xlink:href="http://genomebiology.com/supplements/9/S1"/></p>
<fig position="float" id="F1"><label>Figure 1</label><caption><p>Overall performance of the various algorithms' capacity to predict mouse gene GO annotation. The performance of each general strategy ('network<sub>full</sub>', network-based prediction including expression data; 'network<sub>slim</sub>', network-based prediction excluding expression data; and 'classifier', naïve Bayes classifiers) as well as several methods of combining the network<sub>full </sub>and classifier scores ('mean', arithmetic mean of network and classifier scores; 'min', minimum of their scores; and 'max', maximum of their scores) is plotted as <bold>(a) </bold>the mean AUC and <bold>(b) </bold>the average APR across all Gene Ontology (GO) annotations averaged across ten-fold predictions in the indicated hierarchies (BP, biological process; CC, cellular component; MF, molecular function) and annotation specificities (terms annotating 3 to 10, 11 to 30, 31 to 100, or 101 to 300 genes). The network approach clearly outperforms the classification approach on the infrequent annotations ('3 to 10' and '11 to 30'), while the two methods perform nearly equivalently on the frequent annotations ('31 to 100' and '101 to 300'). The mean and max combinations generally perform slightly better than either of their constituents (network<sub>full</sub>and classifier). The full network shows a significant advantage over the slim network for CC terms and, to a lesser degree, for BP and MF terms. AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F2"><label>Figure 2</label><caption><p>Relative performance of the network and the classifier methods by AUC. Each filled circle represents a specific Gene Ontology (GO) annotation term in the biological process (BP), cellular component (CC), or molecular function (MF) class, plotting AUC for the slim network on the x-axis and for the classifier on the y-axis. For less frequent categories ('3 to 10', '11 to 30'), AUC tends to be higher in the network<sub>slim </sub>than in the classifier, with most points falling under the diagonal. For more frequent terms ('31 to 100', '101 to 300'), most points are concentrated near the diagonal, suggesting that the two approaches perform similarly. This network-bias for less frequent terms was observed across all GO classes of BP, MF and CC. It is notable that for the most specific GO terms ('3 to 10'), many GO terms were predicted effectively by the network but not by the classifier with AUC<sub>network </sub>&gt;&gt; 0.5 and AUC<sub>classifier</sub>, although the two approaches used the same data set for training and testing. AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F3"><label>Figure 3</label><caption><p>Relative performance of the network and the classifier methods by APR. Each filled circle represents a specific Gene Ontology (GO) annotation term in the biological process (BP), cellular component (CC), or molecular function (MF) class, plotting average precision (APR) for the slim network on the x-axis and for the classifier on the y-axis. The APR of the network and the classifier show a similar trend to the AUC in Figure 2. The APRs tends to be higher in the network<sub>slim </sub>than in the classifier for less frequent categories ('3 to 10', '11 to 30') with most points falling under the diagonal, but are similar for more frequent terms ('31 to 100', '101 to 300'), with most points near the diagonal.</p></caption></fig> <fig position="float" id="F4"><label>Figure 4</label><caption><p>Biological process GO terms showing highly divergent predictability by the network and the classifier ensemble. Specific functional biases of biological process (BP) terms between the network and classifier ensemble are highlighted by plotting the difference between AUC<sub>network_slim </sub>and AUC<sub>classifier </sub>for GO terms showing the largest ΔAUC = max(AUC<sub>network</sub>, 0.5) - max(AUC<sub>classifier</sub>, 0.5). The GO terms with ancestor-descendant relationships were merged to the ancestor term to remove redundancy. The Gene Ontology (GO) terms with |ΔAUC| &gt; 0.15 were plotted. As the overall performance was better in the network than in the classifier, most GO terms show positive ΔAUC. For brevity, the maximum number of terms was set to 15 and 65 for negative and positive ΔAUCs, respectively. AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F5"><label>Figure 5</label><caption><p>Molecular function GO terms showing highly divergent predictability by the network and the classifier ensemble. Specific functional biases of molecular function (MF) terms between the network and classifier ensemble are highlighted by plotting the difference between AUC<sub>network_slim </sub>and AUC<sub>classifier </sub>for Gene Ontology (GO) terms showing the largest ΔAUC = max(AUC<sub>network</sub>, 0.5) - max(AUC<sub>classifier</sub>, 0.5). The plot was generated using the same method as in Figure 4. AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F6"><label>Figure 6</label><caption><p>Cellular component GO terms showing highly divergent predictability by the network and the classifier ensemble. Specific functional biases of cellular component (CC) terms between the network and classifier ensemble are highlighted by plotting the difference between AUC<sub>network_slim </sub>and AUC<sub>classifier </sub>for Gene Ontology (GO) terms showing the largest ΔAUC = max(AUC<sub>network</sub>, 0.5) - max(AUC<sub>classifier</sub>, 0.5). The plot was generated using the same method as in Figure 4. GO, Gene Ontology.</p></caption></fig> <fig position="float" id="F7"><label>Figure 7</label><caption><p>Summary of the overall performance on biological process terms. The AUC and APR distributions of high level (second level) biological process (BP) terms are plotted for the 'mean' combination of the network<sub>full </sub>and the classifier. The results of ten-fold cross-validation and the MouseFunc test set were merged by taking the MouseFunc test set as 11th fold. For each of the high level Gene Ontology (GO) terms, the AUC distribution (left panel) and the APR distribution (right panel) of its descendant annotations in the GO hierarchy are plotted. GO annotations are sorted from top to bottom by median AUC (bold vertical bar). Each box indicates first and third quartile; whiskers indicate minimum and maximum values. The GO terms with ancestor-descendant relationships were merged to the ancestor term to remove redundancy. APR, average precision; AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F8"><label>Figure 8</label><caption><p>Summary of the overall performance on molecular function terms. The AUC and APR distributions of high level (second level) molecular function (MF) terms are plotted for the 'mean' combination of the network<sub>full </sub>and the classifier. The plot was generated in the same way as in Figure 7. APR, average precision; AUC, area under the receiver operating characteristic.</p></caption></fig> <fig position="float" id="F9"><label>Figure 9</label><caption><p>Summary of the overall performance on cellular component terms. The AUC and APR distributions of high level (second and third level) cellular component (CC) terms are plotted for the 'mean' combination of the network<sub>full </sub>and the classifier. The plot was generated in the same way as in Figure 7. APR, average precision; AUC, area under the receiver operating characteristic.</p></caption></fig>
<table-wrap position="float" id="T1"><label>Table 1</label><caption><p>Median AUC in a ten-fold cross validation across BP, MF, CC and all the target GO annotations</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td align="center">BP</td><td align="center">MF</td><td align="center">CC</td><td align="center">All GO</td></tr></thead><tbody><tr><td align="left">Network<sub>full</sub></td><td align="center">0.830</td><td align="center">0.912</td><td align="center">0.883</td><td align="center">0.856</td></tr><tr><td align="left">Min</td><td align="center">0.697</td><td align="center">0.780</td><td align="center">0.758</td><td align="center">0.734</td></tr><tr><td align="left">Mean</td><td align="center"><bold>0.844</bold></td><td align="center"><bold>0.926</bold></td><td align="center">0.885</td><td align="center"><bold>0.865</bold></td></tr><tr><td align="left">Max</td><td align="center">0.841</td><td align="center">0.920</td><td align="center"><bold>0.888</bold></td><td align="center">0.863</td></tr><tr><td align="left">Classifier</td><td align="center">0.678</td><td align="center">0.770</td><td align="center">0.747</td><td align="center">0.712</td></tr><tr><td align="left">Network<sub>slim</sub></td><td align="center">0.819</td><td align="center">0.905</td><td align="center">0.834</td><td align="center">0.842</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T2"><label>Table 2</label><caption><p>Median APR in a ten-fold cross validation across BP, MF, CC and all the target GO annotations</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td align="center">BP</td><td align="center">MF</td><td align="center">CC</td><td align="center">All GO</td></tr></thead><tbody><tr><td align="left">Network<sub>full</sub></td><td align="center">0.114</td><td align="center">0.388</td><td align="center"><bold>0.237</bold></td><td align="center">0.157</td></tr><tr><td align="left">Min</td><td align="center">0.108</td><td align="center">0.318</td><td align="center">0.163</td><td align="center">0.145</td></tr><tr><td align="left">Mean</td><td align="center"><bold>0.144</bold></td><td align="center"><bold>0.431</bold></td><td align="center">0.196</td><td align="center"><bold>0.195</bold></td></tr><tr><td align="left">Max</td><td align="center">0.119</td><td align="center">0.403</td><td align="center">0.209</td><td align="center">0.165</td></tr><tr><td align="left">Classifier</td><td align="center">0.088</td><td align="center">0.261</td><td align="center">0.128</td><td align="center">0.119</td></tr><tr><td align="left">Network<sub>slim</sub></td><td align="center">0.107</td><td align="center">0.390</td><td align="center">0.207</td><td align="center">0.152</td></tr></tbody></table></table-wrap>
<disp-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M1" name="gb-2008-9-S1-S5-i1" overflow="scroll">
                     <mml:semantics>
                        <mml:mrow>
                           <mml:mi>L</mml:mi>
                           <mml:mo>=</mml:mo>
                           <mml:mtext>log</mml:mtext>
                           <mml:mo>⁡</mml:mo>
                           <mml:mfrac>
                              <mml:mrow>
                                 <mml:mi>P</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>1</mml:mn>
                                 <mml:mo>|</mml:mo>
                                 <mml:mi>f</mml:mi>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                              <mml:mrow>
                                 <mml:mi>p</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>0</mml:mn>
                                 <mml:mo>|</mml:mo>
                                 <mml:mi>f</mml:mi>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                           </mml:mfrac>
                           <mml:mo>=</mml:mo>
                           <mml:mtext>log</mml:mtext>
                           <mml:mo>⁡</mml:mo>
                           <mml:mfrac>
                              <mml:mrow>
                                 <mml:mi>P</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>1</mml:mn>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                              <mml:mrow>
                                 <mml:mi>P</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>0</mml:mn>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                           </mml:mfrac>
                           <mml:mo>+</mml:mo>
                           <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>n</mml:mi>
                              </mml:munderover>
                              <mml:mrow>
                                 <mml:mtext>log</mml:mtext>
                                 <mml:mo>⁡</mml:mo>
                                 <mml:mi>P</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:msub>
                                    <mml:mi>f</mml:mi>
                                    <mml:mi>i</mml:mi>
                                 </mml:msub>
                                 <mml:mo>|</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>1</mml:mn>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                           </mml:mstyle>
                           <mml:mo>−</mml:mo>
                           <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>n</mml:mi>
                              </mml:munderover>
                              <mml:mrow>
                                 <mml:mtext>log</mml:mtext>
                                 <mml:mo>⁡</mml:mo>
                                 <mml:mi>P</mml:mi>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:msub>
                                    <mml:mi>f</mml:mi>
                                    <mml:mi>i</mml:mi>
                                 </mml:msub>
                                 <mml:mo>|</mml:mo>
                                 <mml:mi>c</mml:mi>
                                 <mml:mo>=</mml:mo>
                                 <mml:mn>0</mml:mn>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                           </mml:mstyle>
                        </mml:mrow>
                        
                     </mml:semantics>
                  </mml:math></disp-formula> <disp-formula><italic>s </italic>= <italic>e</italic><sup><italic>L</italic></sup>/(1 + <italic>e</italic><sup><italic>L</italic></sup>)</disp-formula> <disp-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M2" name="gb-2008-9-S1-S5-i2" overflow="scroll">
                     <mml:semantics>
                        <mml:mrow>
                           <mml:mo>−</mml:mo>
                           <mml:mtext>log</mml:mtext>
                           <mml:mo>⁡</mml:mo>
                           <mml:mi>P</mml:mi>
                           <mml:mo>=</mml:mo>
                           <mml:mo>−</mml:mo>
                           <mml:mtext>log</mml:mtext>
                           <mml:mo>⁡</mml:mo>
                           <mml:mrow>
                              <mml:mo>(</mml:mo>
                              <mml:mrow>
                                 <mml:mstyle displaystyle="true">
                                    <mml:munderover>
                                       <mml:mo>∑</mml:mo>
                                       <mml:mrow>
                                          <mml:mi>i</mml:mi>
                                          <mml:mo>=</mml:mo>
                                          <mml:mi>k</mml:mi>
                                       </mml:mrow>
                                       <mml:mrow>
                                          <mml:mi>min</mml:mi>
                                          <mml:mo>⁡</mml:mo>
                                          <mml:mo stretchy="false">(</mml:mo>
                                          <mml:mi>n</mml:mi>
                                          <mml:mo>,</mml:mo>
                                          <mml:mi>m</mml:mi>
                                          <mml:mo stretchy="false">)</mml:mo>
                                       </mml:mrow>
                                    </mml:munderover>
                                    <mml:mrow>
                                       <mml:mi>p</mml:mi>
                                       <mml:mo stretchy="false">(</mml:mo>
                                       <mml:mi>i</mml:mi>
                                       <mml:mo>|</mml:mo>
                                       <mml:mi>n</mml:mi>
                                       <mml:mo>,</mml:mo>
                                       <mml:mi>m</mml:mi>
                                       <mml:mo>,</mml:mo>
                                       <mml:mi>N</mml:mi>
                                       <mml:mo stretchy="false">)</mml:mo>
                                    </mml:mrow>
                                 </mml:mstyle>
                              </mml:mrow>
                              <mml:mo>)</mml:mo>
                           </mml:mrow>
                        </mml:mrow>
                        
                     </mml:semantics>
                  </mml:math></disp-formula> <disp-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M3" name="gb-2008-9-S1-S5-i3" overflow="scroll">
                     <mml:semantics>
                        <mml:mrow>
                           <mml:mi>p</mml:mi>
                           <mml:mo stretchy="false">(</mml:mo>
                           <mml:mi>i</mml:mi>
                           <mml:mo>|</mml:mo>
                           <mml:mi>n</mml:mi>
                           <mml:mo>,</mml:mo>
                           <mml:mi>m</mml:mi>
                           <mml:mo>,</mml:mo>
                           <mml:mi>N</mml:mi>
                           <mml:mo stretchy="false">)</mml:mo>
                           <mml:mo>=</mml:mo>
                           <mml:mfrac>
                              <mml:mrow>
                                 <mml:mrow>
                                    <mml:mo>(</mml:mo>
                                    <mml:mtable columnalign="left">
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>n</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>i</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                    </mml:mtable>
                                    <mml:mo>)</mml:mo>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mo>(</mml:mo>
                                    <mml:mtable columnalign="left">
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>N</mml:mi>
                                             <mml:mo>−</mml:mo>
                                             <mml:mi>n</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>m</mml:mi>
                                             <mml:mo>−</mml:mo>
                                             <mml:mi>i</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                    </mml:mtable>
                                    <mml:mo>)</mml:mo>
                                 </mml:mrow>
                              </mml:mrow>
                              <mml:mrow>
                                 <mml:mrow>
                                    <mml:mo>(</mml:mo>
                                    <mml:mtable columnalign="left">
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>N</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                       <mml:mtr>
                                          <mml:mtd>
                                             <mml:mi>m</mml:mi>
                                          </mml:mtd>
                                       </mml:mtr>
                                    </mml:mtable>
                                    <mml:mo>)</mml:mo>
                                 </mml:mrow>
                              </mml:mrow>
                           </mml:mfrac>
                        </mml:mrow>
                        
                     </mml:semantics>
                  </mml:math></disp-formula> <disp-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M4" name="gb-2008-9-S1-S5-i4" overflow="scroll">
                     <mml:semantics>
                        <mml:mrow>
                           <mml:mo>−</mml:mo>
                           <mml:mtext>log</mml:mtext>
                           <mml:mo>⁡</mml:mo>
                           <mml:mi>P</mml:mi>
                           <mml:mo>=</mml:mo>
                           <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>n</mml:mi>
                              </mml:munderover>
                              <mml:mrow>
                                 <mml:mo>−</mml:mo>
                                 <mml:mtext>log</mml:mtext>
                                 <mml:mo>⁡</mml:mo>
                                 <mml:msup>
                                    <mml:mrow>
                                       <mml:mrow>
                                          <mml:mo>(</mml:mo>
                                          <mml:mrow>
                                             <mml:mfrac>
                                                <mml:mrow>
                                                   <mml:msub>
                                                      <mml:mi>f</mml:mi>
                                                      <mml:mi>i</mml:mi>
                                                   </mml:msub>
                                                </mml:mrow>
                                                <mml:mi>N</mml:mi>
                                             </mml:mfrac>
                                          </mml:mrow>
                                          <mml:mo>)</mml:mo>
                                       </mml:mrow>
                                    </mml:mrow>
                                    <mml:mn>2</mml:mn>
                                 </mml:msup>
                              </mml:mrow>
                           </mml:mstyle>
                        </mml:mrow>
                        
                     </mml:semantics>
                  </mml:math></disp-formula> <disp-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M5" name="gb-2008-9-S1-S5-i5" overflow="scroll">
                     <mml:semantics>
                        <mml:mrow>
                           <mml:msub>
                              <mml:mi>S</mml:mi>
                              <mml:mi>i</mml:mi>
                           </mml:msub>
                           <mml:mo>=</mml:mo>
                           <mml:mn>1</mml:mn>
                           <mml:mo>−</mml:mo>
                           <mml:mstyle displaystyle="true">
                              <mml:munder>
                                 <mml:mo>∏</mml:mo>
                                 <mml:mi>k</mml:mi>
                              </mml:munder>
                              <mml:mrow>
                                 <mml:mo stretchy="false">(</mml:mo>
                                 <mml:mn>1</mml:mn>
                                 <mml:mo>−</mml:mo>
                                 <mml:msub>
                                    <mml:mi>P</mml:mi>
                                    <mml:mi>k</mml:mi>
                                 </mml:msub>
                                 <mml:mo stretchy="false">)</mml:mo>
                              </mml:mrow>
                           </mml:mstyle>
                        </mml:mrow>
                        
                     </mml:semantics>
                  </mml:math></disp-formula>
<supplementary-material content-type="local-data" id="S1"><caption><title>Additional data file 1</title><p>Overall performance of the various algorithms' capacity to predict mouse gene GO annotation for the MouseFunc contest 'held out' genes.</p></caption></supplementary-material>
<table-wrap-foot><p>The best prediction quality in each column is highlighted in bold. AUC, area under the receiver operating characteristic; BP, biological process; CC, cellular component; GO, Gene Ontology; MF, molecular function.</p></table-wrap-foot> <table-wrap-foot><p>The best prediction quality in each column is highlighted in bold. APR, average precision; BP, biological process; CC, cellular component; GO, Gene Ontology; MF, molecular function.</p></table-wrap-foot>
<graphic xlink:href="gb-2008-9-s1-s5-1"/> <graphic xlink:href="gb-2008-9-s1-s5-2"/> <graphic xlink:href="gb-2008-9-s1-s5-3"/> <graphic xlink:href="gb-2008-9-s1-s5-4"/> <graphic xlink:href="gb-2008-9-s1-s5-5"/> <graphic xlink:href="gb-2008-9-s1-s5-6"/> <graphic xlink:href="gb-2008-9-s1-s5-7"/> <graphic xlink:href="gb-2008-9-s1-s5-8"/> <graphic xlink:href="gb-2008-9-s1-s5-9"/>
<media xlink:href="gb-2008-9-s1-s5-S1.pdf" mimetype="application" mime-subtype="pdf"><caption><p>Click here for file</p></caption></media>
[{"surname": ["Pe\u00f1a-Castillo", "Tasan", "Myers", "Lee", "Joshi", "Zhang", "Guan", "Leone", "Pagnani", "Kim", "Krumpelman", "Tian", "Obozinski", "Qi", "Mostafavi", "Ning Lin", "Berriz", "Gibbons", "Lanckriet", "Qiu", "Grant", "Barutcuoglu", "Hill", "Warde-Farley", "Grouios", "Ray", "Blake", "Deng", "Jordan", "Noble"], "given-names": ["L", "M", "C", "H", "T", "C", "Y", "M", "A", "W", "C", "W", "G", "Y", "S", "G", "GF", "FD", "G", "J", "C", "Z", "DP", "D", "C", "D", "JA", "M", "MI", "WS"], "article-title": ["A critical assessment of "], "italic": ["Mus musculus "], "source": ["Genome Biol"], "year": ["2008"], "volume": ["9"], "issue": ["Suppl 1"], "fpage": ["S2"]}, {"surname": ["Davis", "Goadrich", "Cohen WW, Moore A"], "given-names": ["J", "M"], "article-title": ["The relationship between Precision-Recall and ROC curves."], "source": ["Proceedings of the 23rd International Conference on Machine Learning: June 25-29, 2006; Pittsburgh, Pennsylvania"], "year": ["2006"], "publisher-name": ["New York: ACM Press"], "fpage": ["233"], "lpage": ["240"]}, {"surname": ["Fawcett"], "given-names": ["T"], "article-title": ["ROC graphs: notes and practical considerations for researchers."], "source": ["Tech report"], "year": ["2004"], "volume": ["HPL-2003-4"], "fpage": ["1"], "lpage": ["38"]}, {"article-title": ["www.FunctionalNet.org Server"]}, {"article-title": ["ROCR"]}]
Genome Biol. 2008 Jun 27; 9(Suppl 1):S5