<title>Introduction</title> <p>The rapid development of high-throughput technologies has made it possible to study the properties and relationships of thousands of genes in parallel [##REF##9843569##1##, ####REF##8796352##2##, ##REF##10688190##3##, ##REF##11283351##4##, ##REF##11805826##5##, ##REF##11805837##6####11805837##6##]. A current challenge in genomic analysis is to combine this increasingly rich trove of evidence to infer biological function. The sheer volume of information makes manual human evaluation impracticable. Therefore, it is urgently necessary to develop improved automated algorithms to assist and accelerate the process of functional annotation.</p> <p>The transfer of function annotation from one gene to another via biological relationships ('guilt-by-association') has been widely used, especially on the basis of homology relationships. However, accurate functional annotation via homology often requires high sequence similarity between homologous proteins [##REF##14568541##7##], and many proteins do not have homologs with known function. Function may also be assigned to a gene based on a profile of its characteristics ('guilt-by-profiling'). Sequence-based guilt-by-profiling methods, for example, assign functions based on matches to motifs derived from multiple sequence alignments [##REF##16381856##8##, ####REF##15608177##9##, ##REF##12230034##10##, ##REF##16381852##11####16381852##11##].</p> <p>Sequence-based relationships and characteristics are better suited to predict catalytic activity or structural role rather than involvement in a biological process, for example, osmotic stress response. Biological relationships other than homology have proven useful in guilt-by-association studies, including protein-protein physical interactions [##REF##11101803##12##], genetic interactions derived from examination of double-perturbation and phenotyping experiments [##REF##16729061##13##], correlated gene expression [##REF##12089522##14##], or correlated phylogenetic profiles [##REF##12923548##15##]. Algorithms to predict function from interactions have evolved from simple inspection of neighborhood interactions [##REF##11101803##12##,##REF##11284008##16##] to consider the global structure of the interaction network [##REF##12740586##17##,##REF##14751964##18##].</p> <p>Beyond sequence patterns, a wide variety of biological characteristics has proven useful in guilt-by-profiling function prediction, including phenotype [##REF##14718172##19##,##REF##11836224##20##], subcellular localization [##REF##14562095##21##], gene chromosome neighborhood [##REF##12519996##22##], previously known functional annotations [##REF##12695322##23##], and membership within gene expression clusters [##REF##10929718##24##,##REF##12831889##25##] or protein complexes [##REF##11805826##5##].</p> <p>Many guilt-by-profiling and guilt-by-association efforts have been reported. Some guilt-by-profiling studies have exploited gene-gene relationships by transforming them into gene characteristics [##REF##12089522##14##], and some guilt-by-association studies have exploited gene characteristics by treating shared annotation with a gene characteristic as a gene-gene relationship. Only a few attempts have been made to integrate both types of inference. In particular, Deng and coworkers [##REF##15285902##26##] inferred gene function by exploiting both gene-gene relationships and gene characteristics. This approach, discussed further below, used protein pattern annotation and protein complex information as gene characteristics, and also exploited protein interaction, genetic interaction, and expression correlation relationships.</p> <p>Here, we introduce <italic>Funckenstein</italic>, a new method combining both guilt-by-profiling and guilt-by-association approaches to predict protein function. Initially, <italic>Funckenstein </italic>uses separate classifiers for guilt-by-profiling and guilt-by-association. It can integrate a very large number of gene characteristics and gene-gene relationships to infer functions, thanks to the scalability of its component classifiers. <italic>Funckenstein </italic>then combines prediction results using logistic regression optimized for precision versus recall performance, achieving a better performance than either approach alone.</p> <p>Here we apply <italic>Funckenstein </italic>to a benchmark of integrated <italic>Saccharomyces cerevisiae </italic>genomic data used previously to predict broad gene functions, and show that <italic>Funckenstein </italic>achieves higher precision at all levels of recall. Because predictions of more specific gene functions are generally more useful to experimental biologists, we also apply <italic>Funckenstein </italic>to score 2,455 Gene Ontology (GO) terms for all protein-coding genes in <italic>S</italic>. <italic>cerevisiae</italic>. The results are assessed by cross-validation and by evaluation of top predictions by an expert curator from the <italic>Saccharomyces </italic>Genome Database (SGD). Together, the results show that <italic>Funckenstein </italic>achieves high precision in cross-validation and in the prediction of novel functions.</p>
<title>Materials and methods</title> <title>Prediction methods</title> <title>The probabilistic decision tree classifier</title> <p>The PDT is a simple and effective tool for modeling the probability of one variable describing an object conditioned on other known characteristics of that object [##UREF##4##40##]. The decision tree is a graph describing the recursive division of a set of objects into successively smaller partitions. For a detailed description, see [##UREF##1##28##,##UREF##4##40##]. In short, all objects in the training set are initially assigned to the root node. Objects are recursively split into smaller partitions on the basis of the value of a particular predictive variable. The predictive variable used to split objects at each node was chosen based on the Gini impurity measure [##UREF##1##28##], a measure of uniformity of objects with respect to a given variable of interest. To avoid overfitting, we implemented an 'early stopping' criterion to decide whether the next proposed split provides sufficient information to justify the accompanying increase in model complexity. For the predictive variable offering the largest reduction in Gini impurity, we compute the corresponding hypergeometric distribution probability:</p> <p></p> <p>where <italic>N </italic>is the total number of genes in the parent node, and <italic>N</italic><sub><italic>T </italic></sub>and <italic>N</italic><sub><italic>F </italic></sub>are the total number of genes in the parent node annotated with and without the target GO term, respectively, while <italic>N</italic><sub><italic>TL </italic></sub>and <italic>N</italic><sub><italic>FL</italic></sub>, <italic>N</italic><sub><italic>TR </italic></sub>and <italic>N</italic><sub><italic>FR </italic></sub>are the corresponding numbers at the left and right daughter node given the split, respectively. We reject the split and determine the node to be a 'leaf node' if the hypergeometric distribution probability <italic>P </italic>&gt; α (with α = 0.01 except where otherwise specified). We compute the probability of a given gene <italic>i </italic>to be annotated with the target GO term <italic>j </italic>as:</p> <p></p> <p>where <italic>N</italic><sub><italic>T </italic></sub>and <italic>N</italic><sub><italic>F </italic></sub>are as defined above, <italic>P</italic><sub><italic>T </italic></sub>is the overall fraction of genes annotated with the target GO term and Ψ is the number of pseudocounts used to correct for small sample sizes (Ψ = 1 for all results described).</p> <title>Random forest classifier</title> <p>Whereas the PDT classifier produces only one tree as a predictive model for a given GO term, a RF classifier is composed of an ensemble of many decision trees. Each decision tree in the 'forest' differs from the PDT in that: training genes at the root node are selected by bootstrap resampling (sampling with replacement) from the full training set; at every node, only a fraction of available object characteristics are assessed as candidates for splitting the next node; and there is no early-stopping criterion (since the process of averaging over diverse trees is an intrinsic safeguard against overfitting [##UREF##0##27##]). The score for a given candidate gene and GO term is then the fraction of trees trained on that GO term that classify that gene as positive. More details on the RF classifier can be found in [##UREF##0##27##].</p> <p>Because the extremely large number of predictive variables available in our data set (8.848 for the GO term prediction study) impacts the memory and time efficiency of the RF method, we introduced modifications to the RF method. We performed feature selection to eliminate variables that were marginally uninformative. For feature selection we examined the set of unique genes at the root node and computed the hypergeometric distribution probability <italic>P </italic>(as defined in the PDT description above), retaining only those characteristics with <italic>P </italic>&lt; α. Because of the bootstrap resampling in selecting training genes, the selected features may vary between trees. We also imposed the same early stopping criterion and method for calculating a probability score at each leaf node that were described for PDTs above. The final RF score for a given gene and GO term was then the average of the probability scores at leaf nodes corresponding to that gene across all trees in the forest trained on that GO term.</p> <p>There are three free parameters of the RF classifier: the number of random variables at each split, the threshold for feature selection, and the threshold for early stopping. Optimization of these parameters is described below in the 'Training and cross-validation' section.</p> <p>We also estimated the importance of each variable in predicting each given GO term. Variable importance was computed using Gini impurity (also used above in the context of PDTs). Specifically, importance of a given variable is the sum of the reduction in Gini impurity over all appearances of that variable over all decision trees in the forest [##UREF##0##27##].</p> <title>Guilt-by-association classifier</title> <p>Guilt-by-association was performed using a FL graph, in which each edge in the graph is assigned a weight related to the probability that two genes share a common GO term whose specificity (number of genes) is within the specificity range of a given GO category [##REF##15567862##29##]. The FL graph is then used to assign scores to particular gene and GO term combinations. We produced a separate FL graph for each of 12 GO categories, corresponding to each combination of three GO branches (BP, MF, and CC) and four specificity levels (3 to 10, 11 to 30, 31 to 100, and 101 to 300). We used the PDT method to produce each FL graph. Unlike PDTs predicting specific GO terms where the objects under study are genes, here the objects of interest are gene pairs. The variable to be predicted for each gene pair is the answer to the question 'are these two proteins functionally linked, that is, do they share any one of the specific GO terms in a specified GO category?' The attributes used for this classifier are gene-gene relationships, such as protein or genetic interactions. To limit over-fitting, we used the same PDT early-stopping criterion described in the context of function prediction, with threshold 10<sup>-8</sup>. Thus, for each GO category, each pair of <italic>S</italic>. <italic>cerevisiae </italic>genes is assigned a FL 'weight' reflecting the probability that the gene pair shares a specific GO term in that category. To score the annotation of a particular candidate gene with a particular GO term, we retrieve FL weight scores for all pairings of the candidate gene with genes known to have the GO term and average the top three FL scores.</p> <title>Combining guilt-by-profiling and guilt-by-association scores</title> <p>Guilt-by-profiling and guilt-by-association classifier scores are combined by a simple logistic regression model with one free parameter. For a given gene <italic>i </italic>and a target function <italic>j</italic>, let the probability score computed by the guilt-by-profiling and guilt-by-association classifiers be <italic>P</italic><sub><italic>GBP</italic></sub>(<italic>i</italic>, <italic>j</italic>) and <italic>P</italic><sub><italic>GBA</italic></sub>(<italic>i</italic>, <italic>j</italic>), respectively, then the corresponding combined score <italic>P</italic>(<italic>i</italic>, <italic>j</italic>) is defined as:</p> <p></p> <p>where <italic>w </italic>is optimized over the range from 0 to 1 based on area under the precision versus recall curve obtained in cross-validation.</p> <title>Training and cross-validation</title> <p>For both PDT and RF classifiers, we performed ten-fold cross-validation to obtain a probability score for each gene and used these scores to assess performance. For the RF classifier, we obtained an 'out-of-bag' score for every gene. Each tree in the forest uses only approximately 66% of genes in training. Therefore, for each gene we identified the approximately 33% of trees that did not use that gene in training and averaged the scores for that gene to obtain its 'out-of-bag' score.</p> <p>We optimized the free parameters of the RF classifier according to the performance of 'out-of-bag' scores. To evaluate performance of a set of scores, we obtain at multiple score thresholds the number of true positive (<italic>TP</italic>), false positive (<italic>FP</italic>), true negative (<italic>TN</italic>), and false negative (<italic>FN</italic>) genes at the given threshold. <italic>TP </italic>(<italic>FP</italic>) is defined as the number of proteins with a score greater than the threshold, which are (are not) currently annotated with target function. <italic>FN </italic>(<italic>TN</italic>) is defined as the number of proteins with a score below the threshold that are (are not) currently annotated with the target function. Thus, we can compute 'precision':</p> <p></p> <p>'recall' or 'true positive rate':</p> <p></p> <p>and 'false positive rate':</p> <p></p> <p>Thus, to assess the performance of a given set of scores, we can plot <italic>P</italic><sub><italic>precision </italic></sub>versus <italic>P</italic><sub><italic>recall</italic></sub>, or <italic>P</italic><sub><italic>true </italic></sub>versus <italic>P</italic><sub><italic>false </italic></sub>(the latter is often called a ROC curve). Although the ROC curve is widely used in evaluating the performance of a classifier, it is not the best measure for this application. Because annotations are sparse, only very low false positive rates correspond to predictions with a level of precision that is likely to be useful. Therefore, we used the area under the precision-recall curve to optimize the three free parameters of the RF classifier and the single free parameter of the logistic regression procedure used to combine guilt-by-profiling and guilt-by-association scores. We also used the precision-recall curve to compute the 'projected precision' corresponding to a given prediction score. First, we computed its corresponding recall. Then, we identified the maximal precision at or greater than the recall in the precision-recall curve, and used that precision as the 'projected precision' corresponding to a given prediction score.</p> <title>Predictions of MIPS functions using a previously defined benchmark data set</title> <title>Data sources</title> <p>For comparison with the earlier MRF-NB method, we used the benchmark data set to which it was previously applied. This used the MIPS catalog of functional categories ('FunCat') [##REF##15486203##41##]. Although this catalog currently includes 28 top-level functional categories that describe general functions, we used the 13 functional classes derived previously from MIPS [##REF##15285902##26##] (see Table ##TAB##0##1## for detailed description). We also predicted only for the 3,588 <italic>S</italic>. <italic>cerevisiae </italic>genes annotated with at least one of the 13 function classes, as was done previously. We used the same information used in training the MRF-NB model, including Pfam domain and tandem affinity purification (TAP) complexes [##REF##11805826##5##], protein and genetic interactions derived from MIPS, and gene expression correlation. We downloaded this information from the website corresponding to the previous MRF-NB publication without any post-processing [##UREF##5##42##].</p> <p>We trained PDT and RF guilt-by-profiling classifiers using gene characteristics, that is, protein domain and complex information. The FL graph for the guilt-by-association classifier was trained using protein and genetic interactions from MIPS, gene expression correlation, and TAP complex interaction based on the 'spoke' model [##REF##12355115##32##].</p> <title>GO function prediction</title> <title>Sources of data</title> <p>We downloaded associations of GO terms with <italic>S</italic>. <italic>cerevisiae </italic>genes from SGD [##UREF##6##43##] in December 2006. We also downloaded the GO directed acyclic graph structure from the GO database (November 30, 2006 release) and used it to 'propagate' associations so association to a particular GO term was propagated to all ancestral GO terms. We identified 2,530 GO terms that are associated with at least three <italic>S</italic>. <italic>cerevisiae </italic>genes according to the propagated annotation. We defined a measure of functional specificity for each GO term by counting the number of genes currently associated with that GO term. Then, following the same strategy that was used in a recent critical assessment of <italic>Mus musculus </italic>gene functions (unpublished data), we divided these GO terms into 12 subcategories according to GO branches and GO specificities (3 to 10, 11 to 30, 31 to 100, and 101 to 300 genes). The total number of GO terms in these 12 categories was 2,455. The parameters of the RF classifier and <italic>Funckenstein </italic>were trained independently for each of the 12 GO subsets.</p> <p>For guilt-by-profiling predictions, we collected a large number of gene attributes derived both from sequence analysis and high-throughput experimental data (see Table ##TAB##2##3## for details). For guilt-by-association predictions, we downloaded experimentally determined interaction types from the BioGRID database [##REF##16381927##37##]. This database defines 23 protein and genetic interaction types, for example, yeast two-hybrid protein interaction and synthetic lethal genetic interaction (see Table ##TAB##3##4## for details), corresponding to a total of 55,039 unique gene pairs with some relationship. We also computed shared annotation relationships for all gene characteristics in Table ##TAB##2##3##. Within a given class of gene characteristics, a gene pair was considered to have shared annotation if the number of shared characteristics was more than 90% of the number of unique characteristics held by either protein.</p>
<title>Results</title> <title>A method combining guilt-by-profiling with guilt-by-association</title> <p>We have developed an algorithm (<italic>Funckenstein</italic>) that combines both guilt-by-profiling and guilt-by-association to make gene function predictions. Guilt-by-profiling was performed using the random forest (RF) method [##UREF##0##27##]. However, for comparison we also performed guilt-by-profiling using a probabilistic decision tree (PDT) method [##UREF##1##28##] with an early-stopping criterion to limit over-fitting. Guilt-by-association was performed in two steps: first, generate a functional linkage (FL) graph [##REF##15567862##29##], that is, a graph with edge weights reflecting the probability that two genes share a sufficiently specific GO term; and second, use the FL graph to assign a score to each (candidate gene, GO term) combination based on the weight of links between the candidate gene and genes currently assigned to that GO term. The RF and FL predictions were then combined via a logistic regression model that optimizes precision versus recall performance. A full description of the algorithm and optimization of its parameters may be found in Materials and methods.</p> <title>Performance evaluation using a previous benchmark</title> <p>A combined approach was applied previously to predict <italic>S</italic>. <italic>cerevisiae </italic>gene functions. Specifically, a Markov random field (MRF) guilt-by-association approach integrated information from protein interactions, genetic interactions, and gene expression correlation [##REF##15285902##26##]. This approach also employed guilt-by-profiling, in that a gene-specific prior was calculated from Pfam protein sequence patterns [##REF##16381856##8##] and protein complex membership using a naïve Bayes (NB) method [##UREF##2##30##]. We will refer to this combined approach as 'MRF-NB'.</p> <p>MRF-NB was applied previously to protein-coding <italic>S</italic>. <italic>cerevisiae </italic>genes to predict a small set of functional categories derived from literature annotation by the Munich Information Center for Protein Sequences (MIPS) [##REF##11752246##31##]. MIPS functional categories are hierarchical, with top-level functions describing very general protein functions (for example, 'metabolism') and lower levels describing more specific functions (for example, 'proton driven symporter'). The MRF-NB approach was applied to 13 top-level MIPS functional categories and trained on the 3,588 yeast genes that had been assigned at least one of these categories (see Table ##TAB##0##1## for details). For the purposes of comparison, we trained <italic>Funckenstein </italic>on the same data sets used for the MRF analysis and compared our cross-validation performance with the cross-validation performance reported previously [##REF##15285902##26##].</p> <p>To train <italic>Funckenstein</italic>'s guilt-by-profiling classifiers, we used protein sequence pattern and complex membership data. For guilt-by-association analysis, we used four types of pairwise biological relationships: pairwise physical and genetic interactions, correlated gene expression (with a correlation coefficient greater than 0.9), and interaction according to a large-scale affinity purification dataset [##REF##11805826##5##]. When using affinity purification-derived interactions for predictions, we considered both the 'spoke' model (interactions defined to exist between bait and prey proteins) and the 'matrix' model (interaction defined not only between bait and prey protein, but also between prey proteins purified with the same bait) [##REF##12355115##32##]. Because the 'matrix' model gave a slightly worse prediction performance (Table ##TAB##1##2##), we used the 'spoke' model for affinity purification-derived interactions.</p> <p>Receiver operating characteristic (ROC) curves reflect the tradeoff between recall and false positive rate that can be achieved by tuning a given method. Here, false positive rate is defined as the fraction of (gene, MIPS category) pairs that were predicted to be positive, among all pairs that are incorrect annotations according to the MIPS annotation. The ROC curves for <italic>Funckenstein </italic>and MRF-NB (Figure ##FIG##0##1a##) reflect a similar trend to that observed in the precision versus recall curves, with <italic>Funckenstein </italic>yielding an area under the ROC curve (AUC) of 0.88, compared with an AUC of 0.75 for MRF-NB. An AUC of 50% would indicate performance equal to that of random guessing and an AUC of 100% would indicate perfect performance. Although AUC is a measure of overall performance that is used for many applications, it is less appropriate here. Because the total number of unannotated gene/MIPS functional category pairs far exceeds the number of annotations, only performance at extremely low false-positive rates will be relevant to most users. Furthermore, most biologists are more interested in precision (fraction of predictions that are correct) than in false positive rate as defined above. Therefore, we used the precision-recall curve to evaluate prediction performance in all subsequent analyses.</p> <p>The precision that a given user requires depends on their application. Since each of our predictions is accompanied by a quantitative measure of confidence, users may consider only the highest-precision predictions. Alternatively, users wishing to select candidate genes for further study - for example, for medium-scale genomic experiments - may wish to include a greater number of 'trues' at the expense of precision. Predictions offer a principled form of triage to reduce the search space and reduce the experimental resources required for follow-up study.</p> <p>Figure ##FIG##0##1b##, which describes the tradeoff between precision and recall for various score thresholds, shows that <italic>Funckenstein </italic>outperforms MRF-NB in predicting MIPS functional categories. <italic>Funckenstein </italic>yields a higher precision than MRF-NB across the full range of recall values obtained in the MRF-NB study. For example, with a recall of 50% (that is, when 50% of all MIPS annotations are predicted), a precision of 75% is achieved, compared with 67% by MRF-NB. For approximately 44% of the (gene, MIPS category) pairs, MRF-NB did not make a prediction, giving these pairs a score of 0.0. As a result, the precision-recall curve of MRF-NB is truncated at a recall of 56%. With a recall of 55%, <italic>Funckenstein </italic>achieves a precision of 71%, compared with 51% by MRF-NB. Of particular interest to users choosing candidate genes for disease association or for medium-scale screens, <italic>Funckenstein </italic>achieves a higher recall than MRF-NB at every level of precision. As a single overall measure of performance, we computed the area under the precision-recall curve. (In truncated regions of the MRF-NB curve, we modeled recall values as having precision corresponding to that of the nearest observed recall value.) The area under the precision-recall curve of <italic>Funckenstein </italic>was 0.651, greater than the 0.522 observed for the MRF-NB approach.</p> <p>We also investigated the individual contributions of <italic>Funckenstein </italic>classifiers of each type (guilt-by-profiling or guilt-by-association) in predicting MIPS functional categories. The guilt-by-profiling classifier outperforms the guilt-by-association classifier (Figure ##FIG##0##1b##) with precision-recall curve areas of 0.621 and 0.364, respectively. In fact, the guilt-by-profiling classifier alone already outperforms MRF-NB (area 0.522). Figure ##FIG##0##1## also shows the performance of an alternative PDT guilt-by-profiling method in predicting MIPS functional categories. The RF method is undoubtedly an improvement over the PDT method (area 0.621 versus 0.504). This supports our choice to use the RF method for all other guilt-by-profiling predictions described here.</p> <p>Combining the two component classifiers led to better performance than was achieved with either alone. However, the improvement of <italic>Funckenstein </italic>over the guilt-by-profiling classifier was modest for the MIPS benchmark (area of 0.651 compared with 0.621 under that of guilt-by-profiling classifier). This could be because of the very limited number of available interactions in this dataset. More substantial improvement would be expected as more relationships are included.</p> <p>Note that differences in component classifier performance may be due either to algorithmic differences or to the value of the features used for prediction, and the comparison above does not separate these effects. Therefore, we also investigated the effect of transforming gene features into gene-gene relationships for use by the FL classifier. Specifically, we treated shared annotation with a Pfam domain as a gene-gene relationship (information found in expression cluster membership features was already available to the FL classifier as protein interactions). This substantially improved the performance of the FL classifier to an area under the precision-recall curve of 0.451 (versus the previous 0.364 area). However, use of the improved FL guilt-by-association classifier within <italic>Funckenstein </italic>actually reduced its overall performance (area 0.651 versus 0.637). One explanation is that the inclusion of the same evidence type in both component classifiers may lead to 'over-counting' of evidence and, thus, a slightly weaker <italic>Funckenstein</italic>. Thus, it may be important to include component classifiers using relatively independent input features for the success of <italic>Funckenstein</italic>.</p> <title>Application to Gene Ontology terms using an expanded integrated dataset</title> <p>Although it enabled us to compare <italic>Funckenstein </italic>and MRF-NB methods directly, the previously defined set of functional categories has the drawback of being somewhat non-specific. (For example, it is not immediately clear what specific follow-up experiment would test the hypothesis that a gene is involved in 'metabolism'.) Therefore, we sought to apply <italic>Funckenstein </italic>to predict more specific GO functional terms. We also expanded the scope of the data used to make predictions. We assembled data for 21 gene characteristic types and 23 experimentally determined gene-gene relationship types (shown in Tables ##TAB##2##3## and ##TAB##3##4##, respectively).</p> <p>Terms in the GO vocabulary are organized within a rooted directed acyclic graph with three branches that describe biological process (BP), molecular function (MF), and cellular component (CC), respectively. Within each GO branch, a child GO term may descend from multiple parental GO terms. The vocabulary is structured such that annotation with a given GO term implies 'propagation' of this annotation to all ancestral terms. We obtained GO annotation for all protein-coding <italic>S</italic>. <italic>cerevisiae </italic>genes from SGD and, for each gene, we assigned ancestral GO terms implied by annotated descendent terms.</p> <p>For GO term prediction, we selected yeast protein-coding genes annotated by at least one of the attribute types listed in Tables ##TAB##2##3## and ##TAB##3##4##. Out of these 6,368 genes, the numbers of 'verified', 'uncharacterized', and 'dubious' open reading frames were 4,476, 1,312, and 580, respectively, when we initiated the work. In total, 5,790 genes were assigned to at least one GO term, including all 'verified' and 'uncharacterized' open reading frames.</p> <p>Some GO terms describe extremely general functions; for example, 'catalytic activity' (GO:0003824) had 1,885 associated genes. To focus on specific GO terms with the greatest potential to guide future experimentation, we considered only GO terms assigned to 300 or fewer genes. We excluded GO terms assigned to fewer than three genes, because of the extreme difficulty in developing a classifier with such a limited number of positive training examples. After this filtering, 2,455 GO terms remained. For convenience, we separated GO terms into 12 categories corresponding to all combinations of three GO branches (BP, MF, and CC) and four specificity levels (Table ##TAB##4##5##). Specificity levels are defined according to the number of annotated genes: 3 to 10, 11 to 30, 31 to 100, and 101 to 300 genes. To avoid circularity due to logical dependency between GO terms, we have not allowed classifiers to predict GO terms using other GO terms. The functional linkage graphs used in guilt-by-association analysis were trained separately for each of the 12 GO categories, and the logistic regression parameter for combining guilt-by-association and guilt-by-profiling predictions was optimized separately for each GO category by maximizing the area under the corresponding precision versus recall curve.</p> <p>GO term predictions using both guilt-by-profiling and guilt-by-association classifiers were made for the 6,368 <italic>S</italic>. <italic>cerevisiae </italic>protein-coding genes that are either annotated with a GO term or have at least one gene characteristic or interaction. This resulted in a score for each of 6,368 <italic>S</italic>. <italic>cerevisiae </italic>genes for each of 2,455 GO terms for a total of 15,633,440 quantitative annotation scores.</p> <p>We also assessed variants of the FL classifier using relationships defined by shared annotation (as discussed above for MIPS function predictions). Results from the variant FL component classifier were combined with the RF predictions to yield variants of <italic>Funckenstein</italic>. As described above for MIPS function predictions, we evaluated prediction performance by calculating precision and recall at different quantitative score thresholds and by calculating total area under the precision-recall curve within each of the 12 GO categories. Performance was calculated for individual component classifiers, and for variants of <italic>Funckenstein</italic>, the combined classifier (Figures ##FIG##1##2## and ##FIG##2##3##, respectively, with underlying values shown in Table ##TAB##5##6##).</p> <p>The addition of relationships based on shared annotation improved predictions for MF attributes, but not BP and CC attributes (Figure ##FIG##1##2## and Table ##TAB##5##6##). For example, the area under the precision-recall curve for MF attributes with 101 to 300 genes was 0.55 for the FL guilt-by-association classifier using shared annotation relationships alone, in contrast to 0.24 using only direct gene-gene relationships. By contrast, the FL classifiers for BP and CC attributes with 101 to 300 genes yielded precision-recall areas of 0.169 and 0.271, respectively, using only shared annotation relationships - compared with 0.373 and 0.391, respectively, for the FL classifiers using only direct relationships. It is intuitively reasonable that shared annotation with protein motifs would be most useful for inferring similar molecular function rather than similar BP and CC attributes, and that direct relationships such as protein interaction would be more useful for inferring similar BP and CC annotation. The FL classifier variant that used both shared annotation and direct relationships outperformed variants using either type of relationship alone, especially for predicting MF attributes.</p> <p>The RF guilt-by-profiling classifier substantially outperformed the best FL guilt-by-association classifier in predicting MF attributes. For example, the precision-recall area of the RF classifier for MF attributes with specificity of 11 to 30 genes was 0.557, in contrast to 0.383 for the best FL classifier, suggesting that the presence of particular sequence motifs (or combinations of sequence motifs) is more helpful in inferring molecular function than are gene-gene relationships. In predicting BP and CC attributes, the opposite was true. The FL classifier outperformed the RF classifier in predicting BP and particularly in predicting CC attributes. For example, for CC attributes with 11 to 30 genes, the precision-recall area of the best FL classifier was 0.465, in contrast to 0.377 by the RF classifier. For BP attributes with 11 to 30 genes, the area for the best FL classifier was 0.359, compared with 0.306 by the RF classifier.</p> <p>By combining the guilt-by-profiling and guilt-by-association classifiers, <italic>Funckenstein </italic>generally outperforms either classifier alone in all three GO branches (Figure ##FIG##2##3## and Table ##TAB##5##6##), and the combination shows particular synergy for BP and CC attributes. For example, for BP attributes with 31 to 100 genes, the precision-recall area of the best <italic>Funckenstein </italic>classifier is 0.454, compared with 0.349 by the best individual classifier, a 30% improvement. For CC attributes with 31 to 100 genes, the precision-recall area increases by 18% from 0.496 for the best individual classifier to 0.586 by the best <italic>Funckenstein </italic>classifier. The improvement for MF attributes is not substantial, with the best performance coming from the RF classifier, which relies on the presence or absence of protein motif patterns.</p> <p>Interestingly, the best <italic>Funckenstein </italic>classifier is not based on the best guilt-by-association component classifier. The <italic>Funckenstein </italic>variant based on the FL classifier using only direct relationships excels in most GO categories, and is particularly superior for MF attributes. Consequently, we chose the <italic>Funckenstein </italic>with guilt-by-association classifier using only direct relationships as our final predictor. As discussed above for MIPS function predictions, it appears that complementarity of individual classifiers is more important than use of individually optimized component classifiers.</p> <p>The final version of <italic>Funckenstein </italic>achieves high prediction precision in predicting GO terms. For example, at a recall rate at 50%, <italic>Funckenstein </italic>achieves a prediction precision for GO terms with 101 to 300 genes of 48%, 89% and 64% for BP, MF and CC branches, respectively. In all three branches, it is clear that these precision levels could greatly facilitate the choice of candidate genes for follow-up experiments - precision levels of only approximately 3% would be expected from unguided 'brute force' experimentation. For the most specific GO terms annotated with only 3 to 10 genes, <italic>Funckenstein </italic>still achieves (at 50% recall) precision rates of 14%, 59%, and 73% for BP, MF, and CC branches, respectively, which may be compared with a corresponding unguided precision of approximately 0.09%.</p> <p>Because there were no experimentally determined gene-gene relationships for any dubious genes in our data set, performance of the above-mentioned classifiers was based on verified and uncharacterized protein-coding genes (5,790 genes in total). To generate scores for dubious genes, we used scores obtained by the guilt-by-profiling classifier alone. This resulted in a total of 15,569,760 quantitative prediction scores (2,455 GO terms × 6,368 genes).</p> <p>To investigate trends associated with verified, uncharacterized, or dubious genes, we counted the number of predictions for genes of each type that fell into each of ten prediction score intervals. Based on the correspondence of prediction score to observed precision, these intervals were chosen to have an expected precision of 0 to 0.1, 0.1 to 0.2, and so on. Within each interval, we compared the number of predictions for verified or uncharacterized genes with that of dubious genes (Figure ##FIG##3##4##). As expected, uncharacterized and verified genes tended to have higher precision scores than dubious genes, with verified genes tending to have the best scores.</p> <p>We show in Figure ##FIG##4##5## the impact of different evidence types on prediction performance of the guilt-by-profiling classifier. In Figure ##FIG##5##6##, we show an example decision tree of the guilt-by-association classifier. Detailed discussion of these two figures can be found in the Discussion section.</p> <title>Literature-based evaluation of novel GO function predictions</title> <p>In calculating precision and recall by cross-validation, only predictions corresponding to currently known GO annotations were counted as 'true'. This is conservative in that our current knowledge of gene function in <italic>S</italic>. <italic>cerevisiae </italic>is far from complete, and some predictions considered to be 'false' may actually be true. A high-scoring prediction that is 'false' is most appropriately viewed as a novel prediction. Indeed, novel predictions are the most interesting product of a quantitative gene annotation system.</p> <p>To assess the best-scoring novel predictions according to current literature, we selected 120 high-scoring novel predictions (the top 10 from each of the 12 GO categories). Within each GO category, we selected predictions in order of score. To avoid over-weighting particular genes or GO terms in our evaluation, we excluded predictions involving a gene or GO term already associated with a higher-scoring prediction within the same category of GO terms. Each novel prediction was assessed by an expert curator within the SGD group (JP, with guidance from JMC).</p> <p>Each prediction was assigned with one of the following labels: A, 'known correct', that is, having strong supporting evidence in the literature that was not yet captured by a GO annotation in SGD; B, 'likely true', that is, having supporting evidence that is inconclusive; C, 'unclear'; D, 'unlikely to be true', that is, having evidence which either mitigates against the prediction or which suggests an incompatible annotation; or E, 'highly unlikely', that is, having strong evidence that contradicts the association or supports a clearly incompatible annotation (see Table ##TAB##6##7## for more detail). We consider predictions labeled 'A' as known correct predictions, and predictions with either 'A' or 'B' as supported.</p> <p>Results of the assessment, summarized in Figure ##FIG##6##7a##, show the proportion of novel predictions that are known correct in different GO branches. The fractions of top-scoring predictions that are supported were comparable in each of the three branches - 63%, 60% and 48% for BP, MF and CC GO terms, respectively. The fractions of top-scoring predictions that are known correct were 63%, 35% and 45% for BP, MF and CC attributes, respectively. We note that the top-scoring novel BP predictions were confirmed more frequently than MF and CC predictions (the reverse of performance order observed in cross-validation assessment).</p> <p>The number of 'known correct' predictions is a conservative estimate of the actual number of correct predictions, since supporting evidence may not be available in the literature. Therefore, the number of predictions that are actually correct is estimated to be between the number of predictions labeled 'A' and the number labeled either 'A', 'B', or 'C'. Thus, our estimates for the true rates of success among top novel predictions were 63%, 35% to 65%, and 45% to 50% for BP, MF and CC GO terms, respectively.</p> <p>We also examined the success rate of novel predictions as a function of the specificity of the GO terms predicted (Figure ##FIG##6##7b##). The success rates were 33% to 43% and 20% to 27% for GO terms with specificity 11 to 30 and 3 to 10, respectively. As one might expect, <italic>Funckenstein</italic>'s precision for novel predictions rose substantially for more general GO terms: 73% to 86% and 63% to 71% for GO terms with specificity 101 to 300 and 31 to 100, respectively.</p> <p>Top novel predictions and their evaluations are listed in Additional data file ##SUPPL##0##1##. Only 2 out of these 120 predictions were made for 'uncharacterized' genes, and none were made for dubious genes. Among these 120 predictions, 103 are refinements of original annotations, that is, the target gene has already been annotated with an ancestor GO term of the predicted GO. For example, the correct novel prediction of 'DNA bending activity' (GO:0008301) for <italic>ARG80 </italic>was a refinement, in that <italic>ARG80 </italic>was previously annotated with 'DNA binding' (GO:0003677), the direct parent term of 'DNA bending activity'. The remaining 17 predictions in Additional data file ##SUPPL##0##1## have no annotated ancestor GO terms assigned to the target gene except the root GO term, and are, therefore, particularly interesting novel predictions. For example, <italic>BPT1 </italic>was correctly predicted to have 'ATPase activity, coupled to transmembrane movement of substances' (GO:0042626), and had not previously been annotated with any ancestor of this GO term. Interestingly, out of these 17 particularly interesting novel predictions, 13 were ranked by a SGD expert as 'known true' or 'likely to be true'.</p> <title>A resource for browsing predictions and underlying evidence</title> <p>So that researchers may browse predictions and gain intuition about the evidence underlying specific predictions, we developed an online resource allowing browsing by GO term or gene. This is publicly available at [##UREF##3##33##].</p>
<title>Discussion</title> <title>Validation of a method combining guilt-by-profiling and guilt-by-association</title> <p>The <italic>Funckenstein </italic>method yielded substantial improvement over MRF-NB, a previous method combining guilt-by-profiling with guilt-by-association. Indeed, <italic>Funckenstein </italic>achieved a higher prediction precision across all ranges of recall when applied to the same benchmark data (Figure ##FIG##0##1b##).</p> <p>Here we generated a more up-to-date collection of integrated data, and applied <italic>Funckenstein </italic>to predict more specific functional terms from the GO vocabulary. The precision versus recall performance of these predictions was assessed by cross-validation and (for top novel predictions) by a follow-up analysis of the literature.</p> <p>The results suggest that these predictions could be very useful in guiding experimentalists to promising candidate genes. Even the most challenging GO category, highly specific BP terms, yielded a precision of 14% at 50% recall in cross-validation assessment. Importantly, even predictions with 14% (or lower) precision can be extremely useful. To put 14% precision into perspective, if predictions were made at random for a GO term with approximately 6 genes left to be identified, we would expect a precision at 50% recall of approximately 0.1%. Thus, predictions with 14% precision at 50% recall represent a 140-fold increase in the 'hit rate' compared with random testing (which is the rate that would be achieved by an experimentalist using the 'brute force' approach of testing all genes).</p> <p>In <italic>Funckenstein</italic>, both guilt-by-profiling and guilt-by-association classifiers were based on a decision tree model. Decision-tree based classifiers offer some advantages over other machine learning algorithms. For example, unlike NB [##REF##16420673##34##], decision trees do not assume conditional independence between different data types. Decision trees can also provide intuition for the reasoning behind predictions more readily than support vector machine approaches [##REF##10618406##35##]. In addition, decision trees have good scaling properties in terms of running time and memory usage, which is an important issue when considering thousands of gene characteristics for thousands of genes, and multiple biological relationships among millions of gene pairs.</p> <p>Much of the success of <italic>Funckenstein </italic>can be attributed to the RF classifier in the guilt-by-profiling classification. The RF classifier is an ensemble of decision trees [##UREF##0##27##], which has proven to be superior to regular decision trees in many cases, for example, in predicting protein interactions [##REF##16450363##36##]. As we can see from Figure ##FIG##0##1##, if we had used the simpler PDT rather than the RF classifier, we would not have gained much improvement over MRF-NB. The fact that the guilt-by-association classifier was based on a PDT suggests that further improvements could be obtained using the RF method to obtain the functional linkage graph used in guilt-by-association.</p> <p>The guilt-by-association classifier was important to <italic>Funckenstein</italic>'s success, especially in predicting BP and CC attributes. While performance of the guilt-by-association component classifier can be improved by transforming gene characteristics into gene-gene relationships, this does not necessarily lead to better performance in the follow-up integration by <italic>Funckenstein</italic>. Indeed, as shown in Figure ##FIG##2##3##, <italic>Funckenstein </italic>with the FL classifier that used only experimentally determined gene-gene relationships achieved better performance than <italic>Funckenstein </italic>using the version of FL that performed best by itself. Thus, to achieve the best overall performance, it may be important to integrate component classifiers using complementary input features rather than using the input features that optimize performance of each component classifier alone.</p> <title>The use of a FL graph significantly improves the performance of guilt-by-association in predicting specific GO functions</title> <p>In our benchmark study predicting MIPS functions, the guilt-by-profiling classifier played a more dominant role than guilt-by-association. In predicting GO terms, however, the contribution of guilt-by-association was more substantial. This improvement can be attributed both to the increased number of interactions and inclusion of additional relationship types in the GO term prediction effort, and to the fact that the GO terms were generally more specific. When the benchmark data set for MRF-NB was established, the total number of relationships, including gene expression correlation and co-membership within a protein complex, was only 9,976. By contrast, our GO predictions used 55,039 interactions reported by BioGRID [##REF##16381927##37##]. The number of relationship types also increases from 4 when predicting MIPS functions to 23 when predicting GO terms.</p> <p>We also found that the relative contribution of guilt-by-association in GO term predictions increases as GO terms become more specific. This coincides with the decreased performance of the guilt-by-profiling RF classifier for more specific GO terms, for which fewer positive training examples (that is, genes previously annotated with the GO term) are available. By contrast, guilt-by-association has the potential to be successful given only a single positive training example gene with a given GO term, since the 'transfer rules' are learned from the many GO terms within each GO category.</p> <p>The guilt-by-association classifier performs well for both CC and BP GO terms, and even outperforms the RF classifiers in some of the CC and BP subcategories; however, its performance is much poorer in the MF categories than that of the RF classifier. This may be explained by the fact that CC and BP GO terms more often have corresponding relationships with other genes in the genome, while the MF GO terms focus on describing the catalytic activity or structural role of an individual protein.</p> <title>Assessing the value of different evidence types in predicting function</title> <p>The RF classifier is not only useful in prediction, but can also be used to assess the value of particular variables in inferring a given function [##UREF##0##27##] (see Materials and methods). By ranking gene characteristics according to their importance score, we gain intuition about the gene characteristics that were most useful for inferring a particular function.</p> <p>For each GO term, we identified the five variables that were most useful in the corresponding RF classifier (see Materials and methods for details). Within each of the 12 GO categories, we then calculated the frequency with which each gene characteristic type was observed among the set of most useful variables (Figure ##FIG##4##5##). For GO terms assigned to 31 or more genes, we find the protein subcellular localization study by Huh and coworkers [##REF##14562095##21##] and a phenotyping study by Lum and colleagues [##REF##14718172##19##] to be the most useful sources of gene characteristics. In addition, the Huh <italic>et al</italic>. study was the most useful type of gene characteristic in predicting CC GO terms, while the Lum <italic>et al</italic>. study was the most useful gene characteristic type in prediction of BP and MF GO terms. It is intuitively reasonable that the Huh <italic>et al</italic>. study of subcellular localization should be useful in predicting CC GO terms, since CC GO terms often correspond directly to subcellular localizations measured within Huh <italic>et al</italic>.</p> <p>It is easy to rationalize the value of the Lum <italic>et al</italic>. phenotyping study in predicting BP GO terms, since genes within the same biological pathway or process are known to often exhibit similar phenotypes. However, it was surprising to find that a phenotyping study was dominant in predicting general molecular functions. Phenotypes in Lum <italic>et al</italic>. often correspond to the many genes, so these phenotypes may be useful in combination with other terms, even if the Lum phenotypes alone are not sufficient to predict the target GO term accurately.</p> <p>Some gene characteristics may also be negative predictors of molecular function. For example, 124 <italic>S</italic>. <italic>cerevisiae </italic>genes are annotated with 'RNA polymerase II transcription factor activity' (GO:0003702). Among 1,453 genes with the gene characteristic 'Huh:nucleus', 106 are annotated with the target GO term; by contrast, among the remaining genes without this characteristic, only 18 are annotated with the target GO term, so that not having 'Huh:nucleus' is particularly valuable as a 'negative predictor' of GO:0003702.</p> <p>For predicting specific GO terms assigned to 30 or fewer genes, we find no gene characteristic type dominates in terms of variable importance; almost all gene characteristic types are represented among the most useful variables of at least one GO category. Yet there is a tendency for protein sequence patterns to become more useful as GO terms become more specific, within each of the three GO branches. For example, the MF term 'aldehyde reductase activity' (GO:0004032) is annotated to only four <italic>S</italic>. <italic>cerevisiae </italic>genes, each sharing a Prosite sequence motif 'PS00063' that is unique to these four genes, making it the best predictor of this function. In another example, the BF term 'negative regulation of microtubule polymerization or depolymerization' (GO:0031111) is assigned to eight genes, six with a conserved DH domain (Interpro 'IPR000219') involved in Rho GTPase interaction and activation that has been assigned to only seven <italic>S</italic>. <italic>cerevisiae </italic>genes. A third example is the CC term 'proteasome core complex, alpha-subunit complex (sensu Eukaryota)' (GO:0019773) that has been assigned to seven <italic>S</italic>. <italic>cerevisiae </italic>genes. Each shares a protease alpha unit domain, Interpro 'IPR000426', that has been assigned only to these same seven <italic>S</italic>. <italic>cerevisiae </italic>genes. Although protein sequence information is valuable in all GO branches and is increasingly useful for more specific GO terms, it is far from dominant in terms of variable importance. Thus, it is necessary to integrate multiple sources of experimental evidence.</p> <p>The prediction importance of gene characteristics within the same class (each indicated by color in Figure ##FIG##4##5##) can be very different. For example, data from Lum <italic>et al</italic>., Huh <italic>et al</italic>., Roberts <italic>et al</italic>., and Interpro are, respectively, the best characteristic types within each of the five characteristic classes. Within the same characteristic class, we can assess value of variables in predicting gene function as one surrogate measure of the corresponding quality of each experiment. It must be noted that this analysis does not reveal the reasons for improved value in predicting function, which may result from differences in sensitivity, specificity or coverage of the corresponding experiments. Furthermore, a data set that is least useful for predicting function may be ideal for other purposes. With these caveats, we note one example from the comparison of characteristic types: among protein subcellular localization studies, gene characteristics derived from the study by Huh and coworkers study were substantially more useful than those of Kumar and colleagues [##REF##11914276##38##] in all 12 GO categories (Figure ##FIG##4##5##).</p> <p>It is less clear how one should establish the importance of particular variables in generating the FL graph used in guilt-by-association. However, we can still obtain some intuition by examining the PDT classifier used to generate the FL graph. For example, in the PDT classifier developed for the most specific BP GO category, we can see (Figure ##FIG##5##6##) that a protein pair with 'Affinity capture-MS', 'Affinity capture-western', and 'two-hybrid' evidence is more likely to share a specific BP function than another pair with 'Affinity capture-MS' and only one of 'Affinity capture-western' or 'two-hybrid' evidence. The corresponding number of functionally linked ('+') and non-functionally linked ('-') gene pairs within the training set were (138+, 580-) for pairs with all three supporting evidence types. The decision tree structure is slightly different in different GO categories, with more general GO categories having more complex structures. However, the 'Affinity capture-MS' tends to be a top choice within decision trees used to generate the FL graph.</p> <title>Directions for further improvement</title> <p>Novel predictions made by <italic>Funckenstein </italic>were sufficiently accurate to be useful in guiding experimental research according to current literature. However, we would like to understand why some top <italic>Funckenstein </italic>predictions were ranked as 'highly unlikely' by the SGD expert. Because highly specific terms are expected to be most useful to experimentalists, we focused on predictions for the most specific GO categories (assigned to 3 to 10 genes). Among the 30 such novel predictions of the most specific GO categories, 10 were considered 'highly unlikely' in light of current literature. These ten fell within each of the GO branches (three, five, and two predictions corresponding to MF, CC, and BP branches, respectively; see Additional data file ##SUPPL##0##1##). According to the contribution of the RF and guilt-by-association classifier to the final prediction scores of these ten predictions, we can divide them into two classes: predictions with low RF but high guilt-by-association scores (corresponding to the genes <italic>VPH1</italic>, <italic>SUI2</italic>, <italic>SPT7</italic>, and <italic>TIF5</italic>); and predictions with high RF but low guilt-by-association scores (corresponding to the genes <italic>SFH1</italic>, <italic>MSH3</italic>, <italic>TPS2</italic>, <italic>LSM1</italic>, <italic>MSH6</italic>, and <italic>MLH2</italic>). Predictions in the former class all corresponded to CC GO terms. In each of these four cases, genes were known to encode members of a protein complex, and membership in a different subunit of the same complex was predicted (Additional data file ##SUPPL##0##1##). For example, <italic>VPH1 </italic>was predicted to have function 'hydrogen-transporting ATPase V1 domain' (GO:0000221), while according to SGD it is a 'subunit of vacuolar-ATPase V0 domain' (a different subunit of the same complex). Thus, it is no surprise that <italic>VPH1 </italic>was found in multiple high-throughput experiments to interact with all eight <italic>S</italic>. <italic>cerevisiae </italic>genes in the V1 subunit, leading to a high guilt-by-association score and a mistaken prediction. This mistake might have been avoided, given the knowledge that <italic>VPH1 </italic>is annotated to the ATPase V0 domain. However, we had avoided using GO terms to predict other GO terms, to avoid complications arising from strong dependencies between GO terms [##REF##12695322##23##]. This example suggests, however, that we might gain by using GO terms that are strongly anti-correlated with the target GO term as a predictor.</p> <p>We also examined six top-scoring predictions with high RF but low guilt-by-association scores. All six can be attributed to conserved protein domains. For example, <italic>SFH1 </italic>was predicted to have 'phosphatidylinositol transporter activity' (GO:0008526), while SGD annotation describes <italic>SFH1 </italic>as a 'putative homolog of Sec14p, which is a phosphatidylinositol/phosphatidylcholine transfer protein involved in lipid metabolism'. All five <italic>S</italic>. <italic>cerevisiae </italic>genes currently annotated with 'phosphatidylinositol transporter activity' share the Pfam patterns 'PF00650 (CRAL/TRIO domain)' and 'PF03765 (CRAL/TRIO N-term domain)', as well as the Prosite pattern 'PS50191 (CRAL-TRIO lipid binding domain profile)'. Because <italic>SFH1 </italic>is the only <italic>S</italic>. <italic>cerevisiae </italic>gene other than these five genes to have these domains and sequence patterns, <italic>Funckenstein </italic>assigned the target function with very high confidence. However, a previous study was unable to record any detectable phosphatidylinositol/phosphatidylcholine transfer activity for Sfh1p in cytosolic extracts, even when recombinant Sfh1p was added as a supplement at micromolar concentrations [##REF##10848624##39##], although they could not exclude the possibility that the activity might exist under some other condition. Assuming that this was a mis-prediction, it is not clear how such a mis-prediction might be avoided in future.</p>
<title>Conclusion</title> <p>We have developed a combined algorithm named '<italic>Funckenstein' </italic>that combines both gene characteristics and gene-gene relationships to predict functions. <italic>Funckenstein </italic>shows substantial improvement over a promising previous method in predicting MIPS functions of <italic>S</italic>. <italic>cerevisiae </italic>genes. We have therefore applied <italic>Funckenstein </italic>to systematically predict 2,455 more specific GO terms for <italic>S</italic>. <italic>cerevisiae </italic>genes. In cross-validation <italic>Funckenstein </italic>achieves high precision within all three GO branches, even for the most specific GO terms. <italic>Funckenstein </italic>has generated a large number of novel predictions that can be readily explored by experimentalists. The assessment of the top 120 novel predictions by an SGD expert suggests that the resulting novel predictions have the potential to be extremely useful to experimentalists.</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>Learning the function of genes is a major goal of computational genomics. Methods for inferring gene function have typically fallen into two categories: 'guilt-by-profiling', which exploits correlation between function and other gene characteristics; and 'guilt-by-association', which transfers function from one gene to another via biological relationships.</p> <title>Results:</title> <p>We have developed a strategy ('<italic>Funckenstein</italic>') that performs guilt-by-profiling and guilt-by-association and combines the results. Using a benchmark set of functional categories and input data for protein-coding genes in <italic>Saccharomyces cerevisiae</italic>, <italic>Funckenstein </italic>was compared with a previous combined strategy. Subsequently, we applied <italic>Funckenstein </italic>to 2,455 Gene Ontology terms. In the process, we developed 2,455 guilt-by-profiling classifiers based on 8,848 gene characteristics and 12 functional linkage graphs based on 23 biological relationships.</p> <title>Conclusion:</title> <p><italic>Funckenstein </italic>outperforms a previous combined strategy using a common benchmark dataset. The combination of 'guilt-by-profiling' and 'guilt-by-association' gave significant improvement over the component classifiers, showing the greatest synergy for the most specific functions. Performance was evaluated by cross-validation and by literature examination of the top-scoring novel predictions. These quantitative predictions should help prioritize experimental study of yeast gene functions.</p>
<title>Abbreviations</title> <p>AUC, area under the ROC curve; BP, biological process; CC, cellular component; FL, functional linkage; GO, Gene Ontology; MF, molecular function; MIPS, Munich Information Center for Protein Sequences; MRF, Markov random field; NB, naïve Bayes; PDT, probabilistic decision tree; ROC, Receiver operating characteristic; RF, random forest; SGD, <italic>Saccharomyces </italic>Genome Database.</p> <title>Competing interests</title> <p>The authors declare that they have no competing interests.</p> <title>Authors' contributions</title> <p>WT, LVZ, MT, and FPR conceived the study. WT, MT, LVZ, ODK, and FR developed the methodology for prediction and evaluation. WT, LVZ, and ZW assembled the data. WT performed the analysis. MT and LVZ carried out early variations of the analysis. WT and FDG constructed the website. JP performed analysis of novel predictions with guidance from JMC. WT and FR drafted the manuscript. All authors read and approved the final manuscript.</p> <title>Additional data files</title> <p>The following additional data are available with the online version of this paper. Additional data file ##SUPPL##0##1## is a table listing the results of expert evaluation of GO predictions by <italic>Funckenstein</italic>.</p> <title>Supplementary Material</title>
<title>Acknowledgements</title> <p>We thank the West Quad Computing Group at Harvard Medical School for computational resources and support. Computational resources were also provided by the National Science Foundation through the TeraGrid program. This work was supported by US National Institutes of Health (NIH) grants HG003224 (FR), HG0017115 (FR), DK071507 (WT), F32 HG004098 (MT), F32 HG02552 (ODK), HG001315 (JP and JMC), and the Keck Foundation (FR). ZW is a Howard Hughes Medical Institute Predoctoral Fellow.</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>Performance of MIPS function prediction using a previously established benchmark dataset. Results are shown for five different methods: <italic>Funckenstein </italic>(light red); MRF-NB [26] (black); guilt-by-profiling by the RF method alone (dark red); guilt-by-profiling by the PDT method alone (violet); guilt-by-association by the FL method alone (blue). <bold>(a) </bold>True positive rate versus false positive rate at different score thresholds. <bold>(b) </bold>Precision versus recall at prediction score thresholds. MIPS, Munich Information Center for Protein Sequences; MRF, Markov random field; NB, naïve Bayes; PDT, probabilistic decision tree; RF, random forest.</p></caption></fig> <fig position="float" id="F2"><label>Figure 2</label><caption><p>Performance of GO term prediction using either the RF guilt-by-profiling (RF; brown) or FL guilt-by-association classifiers (FL). Three types of FL classifiers were compared: FL1 (green), which used only gene characteristics used in the RF classifier that have been recoded as gene pair characteristics; FL2 (red), which used only 'intrinsic' gene-gene relationships; and FL3 (blue), which used both intrinsic and recoded gene-gene characteristics. <bold>(a-l) </bold>Plots are organized according to GO branch and GO term specificity. FL, functional linkage; GO, Gene Ontology; RF, random forest.</p></caption></fig> <fig position="float" id="F3"><label>Figure 3</label><caption><p>Cross-validation results for <italic>Funckenstein </italic>and the RF guilt-by-profiling component classifier (RF) alone (brown). Three versions of <italic>Funckenstein </italic>were compared, each integrating RF with one of three variants of the FL guilt-by-association classifier (FL): FL1, FL using only relationships derived from shared gene characteristics (green); FL2, FL using only direct gene-gene relationships (red); and FL3, FL using all types of relationship (blue). <bold>(a-l) </bold>Plots are organized according to GO branch and GO term specificity. FL, functional linkage; GO, Gene Ontology; RF, random forest.</p></caption></fig> <fig position="float" id="F4"><label>Figure 4</label><caption><p>Prediction scores for 'verified', 'uncharacterized', and 'dubious' genes. For 'verified' (red) or 'uncharacterized' (blue) genes, the log ratio of the number of predictions within each score interval (relative to the number for 'dubious' genes) is shown.</p></caption></fig> <fig position="float" id="F5"><label>Figure 5</label><caption><p>The average frequency of each type of gene characteristic among the five most important variables (see Materials and methods for the variable performance measure): phenotype (brown); protein complex and/or cellular localization (blue); transcription regulation (green); and protein sequence pattern (red). The gene characteristic types are organized according to their order in Table 3. <bold>(a-l) </bold>Plots are organized according to GO branch and GO term specificity. GO, Gene Ontology.</p></caption></fig> <fig position="float" id="F6"><label>Figure 6</label><caption><p>An example of a PDT used to generate a FL graph. This example was trained based on annotations of those BP GO terms that are currently annotated to 3 to 10 genes. BP, biological process; FL, functional linkage; PDT, probabilistic decision tree.</p></caption></fig> <fig position="float" id="F7"><label>Figure 7</label><caption><p>Assessment of 120 novel predictions by an expert curator. Assessments were either 'known correct', 'likely true', 'unclear', 'unlikely to be true' or 'highly unlikely'. <bold>(a) </bold>For each of the three GO branches, the proportion of novel predictions given each assessment. <bold>(b) </bold>For each specificity level, the proportion of novel predictions given each assessment. GO, Gene Ontology.</p></caption></fig>
<table-wrap position="float" id="T1"><label>Table 1</label><caption><p>MIPS functional classes used to compare with MRF-NB approach</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left">Functional categories</td><td align="center">No. of genes annotated</td></tr></thead><tbody><tr><td align="left">Cell cycle and DNA processing</td><td align="center">600</td></tr><tr><td align="left">Cell fate</td><td align="center">411</td></tr><tr><td align="left">Cell rescue, defense and virulence</td><td align="center">264</td></tr><tr><td align="left">Cellular transport and transport mechanisms</td><td align="center">479</td></tr><tr><td align="left">Control of cellular organization</td><td align="center">192</td></tr><tr><td align="left">Energy</td><td align="center">242</td></tr><tr><td align="left">Metabolism</td><td align="center">1,048</td></tr><tr><td align="left">Protein fate (folding, modification, destination)</td><td align="center">578</td></tr><tr><td align="left">Protein synthesis</td><td align="center">335</td></tr><tr><td align="left">Regulation of/interaction with cellular environment</td><td align="center">193</td></tr><tr><td align="left">Transcription</td><td align="center">753</td></tr><tr><td align="left">Transport facilitation</td><td align="center">306</td></tr><tr><td align="left">Others (cellular communication/signal transduction mechanism, or protein activity regulation, or protein with binding function or cofactor requirement (structural or catalytic), or transposable elements, viral and plasmid proteins)</td><td align="center">81</td></tr><tr><td/><td/></tr><tr><td align="left">Total</td><td align="center">3,588</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T2"><label>Table 2</label><caption><p>Area under the precision versus recall curve for MIPS function prediction</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="center" colspan="6">Individual classifier</td><td align="center" colspan="4"><italic>Funckenstein</italic></td><td align="center">MRF-NB</td></tr><tr><td colspan="6"><hr/></td><td colspan="5"><hr/></td></tr><tr><td/><td/><td align="center" colspan="4">FL</td><td align="center" colspan="4">RF + FL</td><td/></tr><tr><td/><td/><td colspan="4"><hr/></td><td colspan="4"><hr/></td><td/></tr><tr><td align="left">PDT</td><td align="center">RF</td><td align="center">Spoke model</td><td align="center">Spoke model + Pfam</td><td align="center">Matrix Model</td><td align="center">Matrix model + Pfam</td><td align="center">FL spoke model</td><td align="center">FL spoke model + Pfam</td><td align="center">FL matrix model</td><td align="center">FL matrix model + Pfam</td><td/></tr></thead><tbody><tr><td align="left">0.504</td><td align="center">0.621</td><td align="center">0.364</td><td align="center">0.451</td><td align="center">0.355</td><td align="center">0.451</td><td align="center">0.651</td><td align="center">0.637</td><td align="center">0.644</td><td align="center">0.635</td><td align="center">0.522</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T3"><label>Table 3</label><caption><p>Gene attributes used in guilt-by-profiling GO term predictions</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left">Gene characteristic type</td><td align="center">No. of characteristics</td><td align="left">Source</td></tr></thead><tbody><tr><td align="left">Phenotype</td><td align="center">27</td><td align="left">Giaever <italic>et al. </italic>[44]</td></tr><tr><td align="left">Phenotype</td><td align="center">12</td><td align="left">Parsons <italic>et al. </italic>[45]</td></tr><tr><td align="left">Phenotype</td><td align="center">78</td><td align="left">Lum <italic>et al. </italic>[19]</td></tr><tr><td align="left">Phenotype</td><td align="center">1</td><td align="left">Baetz <italic>et al. </italic>[46]</td></tr><tr><td align="left">Phenotype</td><td align="center">4</td><td align="left">Tucker <italic>et al. </italic>[47]</td></tr><tr><td align="left">Phenotype</td><td align="center">22</td><td align="left">Dudley <italic>et al. </italic>[48]</td></tr><tr><td align="left">Protein complex</td><td align="center">232</td><td align="left">Gavin <italic>et al. </italic>[5]</td></tr><tr><td align="left">Protein complex</td><td align="center">493</td><td align="left">Ho <italic>et al. </italic>[6]</td></tr><tr><td align="left">Protein complex and cellular localization</td><td align="center">8</td><td align="left">Ng <italic>et al. </italic>[49]</td></tr><tr><td align="left">Protein complex and cellular localization</td><td align="center">10</td><td align="left">Robert <italic>et al. </italic>[50]</td></tr><tr><td align="left">Protein cellular localization</td><td align="center">23</td><td align="left">Huh <italic>et al. </italic>[21]</td></tr><tr><td align="left">Protein cellular localization</td><td align="center">26</td><td align="left">Kumar <italic>et al. </italic>[38]</td></tr><tr><td align="left">Transcriptional regulator</td><td align="center">352</td><td align="left">Harbison <italic>et al. </italic>[51]</td></tr><tr><td align="left">Transcriptional regulator</td><td align="center">106</td><td align="left">Lee <italic>et al. </italic>[52]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">283</td><td align="left">ProDom [53]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">1,930</td><td align="left">Pfam [8]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">515</td><td align="left">TIGRFAM [54]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">928</td><td align="left">PROSITE [11]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">378</td><td align="left">PANTHER [55]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">328</td><td align="left">PRINTs [10]</td></tr><tr><td align="left">Protein sequence pattern</td><td align="center">3,092</td><td align="left">InterPro [9]</td></tr><tr><td/><td/><td/></tr><tr><td align="left">Total</td><td align="center">8,848</td><td/></tr></tbody></table></table-wrap> <table-wrap position="float" id="T4"><label>Table 4</label><caption><p>Biological relationships used in guilt-by-association GO term predictions</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left">Relationship evidence type</td><td align="center">No. of gene pairs with evidence</td><td align="left">Source<sup>a</sup></td></tr></thead><tbody><tr><td align="left">Affinity capture-MS</td><td align="center">19,115</td><td align="left">Gavin <italic>et al</italic>. [56]</td></tr><tr><td align="left">Two-hybrid</td><td align="center">9,598</td><td align="left">Ito <italic>et al</italic>. [4]</td></tr><tr><td align="left">Synthetic lethality</td><td align="center">9,067</td><td align="left">Tong <italic>et al</italic>. [57]</td></tr><tr><td align="left">Synthetic growth defect</td><td align="center">5,131</td><td align="left">Pan <italic>et al</italic>. [58]</td></tr><tr><td align="left">Biochemical activity</td><td align="center">4,822</td><td align="left">Ptacek <italic>et al</italic>. [59]</td></tr><tr><td align="left">Affinity capture-western</td><td align="center">3,584</td><td align="left">Kang <italic>et al</italic>. [60]</td></tr><tr><td align="left">Epistatic miniarray profile</td><td align="center">3,416</td><td align="left">Schuldiner <italic>et al</italic>. [61]</td></tr><tr><td align="left">Dosage rescue</td><td align="center">2,493</td><td align="left">Gandhi <italic>et al</italic>. [62]</td></tr><tr><td align="left">Synthetic rescue</td><td align="center">1,667</td><td align="left">Valachovic <italic>et al</italic>. [63]</td></tr><tr><td align="left">Phenotypic enhancement</td><td align="center">1,468</td><td align="left">Myung <italic>et al</italic>. [64]</td></tr><tr><td align="left">Reconstituted complex</td><td align="center">1,345</td><td align="left">Kus <italic>et al</italic>. [65]</td></tr><tr><td align="left">Co-purification</td><td align="center">898</td><td align="left">Stevens <italic>et al</italic>. [66]</td></tr><tr><td align="left">Phenotypic suppression</td><td align="center">589</td><td align="left">Mosch <italic>et al</italic>. [67]</td></tr><tr><td align="left">Dosage lethality</td><td align="center">373</td><td align="left">Branzei <italic>et al</italic>. [68]</td></tr><tr><td align="left">Co-fractionation</td><td align="center">319</td><td align="left">Xu <italic>et al</italic>. [69]</td></tr><tr><td align="left">Co-localization</td><td align="center">208</td><td align="left">Shen <italic>et al</italic>. [70]</td></tr><tr><td align="left">Co-crystal structure</td><td align="center">72</td><td align="left">Cramer <italic>et al</italic>. [71]</td></tr><tr><td align="left">Protein-peptide</td><td align="center">63</td><td align="left">Mariño-Ramirez <italic>et al</italic>. [72]</td></tr><tr><td align="left">Affinity capture-RNA</td><td align="center">52</td><td align="left">Tharun <italic>et al</italic>. [73]</td></tr><tr><td align="left">Far western</td><td align="center">36</td><td align="left">Tsai <italic>et al</italic>. [74]</td></tr><tr><td align="left">Dosage growth defect</td><td align="center">33</td><td align="left">Pan <italic>et al</italic>. [75]</td></tr><tr><td align="left">FRET</td><td align="center">32</td><td align="left">Damelin <italic>et al</italic>. [76]</td></tr><tr><td align="left">Protein-RNA</td><td align="center">6</td><td align="left">Gonsalvez <italic>et al</italic>. [77]</td></tr><tr><td/><td/><td/></tr><tr><td align="left">Total</td><td align="center">55,039</td><td/></tr></tbody></table></table-wrap> <table-wrap position="float" id="T5"><label>Table 5</label><caption><p>Distribution of the GO functional terms predicted</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left">GO term</td><td align="center" colspan="3">GO term branch</td><td/></tr><tr><td/><td colspan="3"><hr/></td><td/></tr><tr><td align="left">specificity</td><td align="center">BP</td><td align="center">MF</td><td align="center">CC</td><td align="center">Total</td></tr></thead><tbody><tr><td align="left">3 to 10</td><td align="center">612</td><td align="center">415</td><td align="center">223</td><td align="center">1,250</td></tr><tr><td align="left">11 to 30</td><td align="center">355</td><td align="center">156</td><td align="center">109</td><td align="center">620</td></tr><tr><td align="left">31 to 100</td><td align="center">218</td><td align="center">87</td><td align="center">87</td><td align="center">392</td></tr><tr><td align="left">101 to 300</td><td align="center">126</td><td align="center">23</td><td align="center">44</td><td align="center">193</td></tr><tr><td align="left">Total</td><td align="center">1,311</td><td align="center">681</td><td align="center">463</td><td align="center">2,455</td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T6"><label>Table 6</label><caption><p>The area under the precision versus recall curve for different classifiers</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left">GO branch</td><td align="center">GO specificity</td><td align="center">RF</td><td align="left">FL1*</td><td align="left">FL2*</td><td align="left">FL3*</td><td align="center">Funckenstein (RF + FL1)</td><td align="center">Funckenstein (RF + FL2)</td><td align="center">Funckenstein (RF + FL3)</td></tr></thead><tbody><tr><td align="left">BP</td><td align="center">3 to 10</td><td align="center">0.215</td><td align="left">0.111</td><td align="left">0.173</td><td align="left"><italic>0.245</italic></td><td align="center">0.225</td><td align="center"><bold>0.286</bold></td><td align="center"><bold>0.286</bold></td></tr><tr><td/><td align="center">11 to 30</td><td align="center">0.306</td><td align="left">0.197</td><td align="left">0.296</td><td align="left"><italic>0.359</italic></td><td align="center">0.331</td><td align="center">0.422</td><td align="center"><bold>0.441</bold></td></tr><tr><td/><td align="center">31 to 100</td><td align="center"><italic>0.349</italic></td><td align="left">0.117</td><td align="left">0.329</td><td align="left">0.33</td><td align="center">0.36</td><td align="center"><bold>0.454</bold></td><td align="center">0.441</td></tr><tr><td/><td align="center">101 to 300</td><td align="center"><italic>0.394</italic></td><td align="left">0.169</td><td align="left">0.373</td><td align="left"><italic>0.394</italic></td><td align="center">0.405</td><td align="center"><bold>0.492</bold></td><td align="center">0.491</td></tr><tr><td align="left">MF</td><td align="center">3 to 10</td><td align="center"><italic>0.44</italic></td><td align="left">0.188</td><td align="left">0.134</td><td align="left">0.309</td><td align="center">0.445</td><td align="center"><bold>0.489</bold></td><td align="center">0.463</td></tr><tr><td/><td align="center">11 to 30</td><td align="center"><italic>0.557</italic></td><td align="left">0.296</td><td align="left">0.216</td><td align="left">0.383</td><td align="center">0.558</td><td align="center"><bold>0.599</bold></td><td align="center">0.565</td></tr><tr><td/><td align="center">31 to 100</td><td align="center"><italic>0.596</italic></td><td align="left">0.29</td><td align="left">0.232</td><td align="left">0.393</td><td align="center">0.597</td><td align="center"><bold>0.632</bold></td><td align="center">0.61</td></tr><tr><td/><td align="center">101 to 300</td><td align="center"><italic>0.75</italic></td><td align="left">0.55</td><td align="left">0.24</td><td align="left">0.595</td><td align="center">0.753</td><td align="center"><bold>0.77</bold></td><td align="center">0.762</td></tr><tr><td align="left">CC</td><td align="center">3 to 10</td><td align="center">0.368</td><td align="left">0.242</td><td align="left">0.546</td><td align="left"><italic>0.571</italic></td><td align="center">0.413</td><td align="center"><bold>0.597</bold></td><td align="center">0.596</td></tr><tr><td/><td align="center">11 to 30</td><td align="center">0.377</td><td align="left">0.261</td><td align="left">0.441</td><td align="left"><italic>0.465</italic></td><td align="center">0.417</td><td align="center"><bold>0.523</bold></td><td align="center">0.524</td></tr><tr><td/><td align="center">31 to 100</td><td align="center">0.489</td><td align="left">0.249</td><td align="left">0.44</td><td align="left"><italic>0.496</italic></td><td align="center">0.508</td><td align="center">0.578</td><td align="center"><bold>0.586</bold></td></tr><tr><td/><td align="center">101 to 300</td><td align="center"><italic>0.524</italic></td><td align="left">0.271</td><td align="left">0.391</td><td align="left">0.468</td><td align="center">0.537</td><td align="center">0.591</td><td align="center"><bold>0.595</bold></td></tr></tbody></table></table-wrap> <table-wrap position="float" id="T7"><label>Table 7</label><caption><p>Categories for expert classification of novel predictions</p></caption><table frame="hsides" rules="groups"><thead><tr><td align="left" colspan="2">Category</td><td align="left">Brief description</td></tr></thead><tbody><tr><td align="left">A</td><td align="left">Known true</td><td align="left">There is experimental evidence for this annotation, but it is not yet captured by SGD (all supporting literature pre-dates the analysis)</td></tr><tr><td align="left">B</td><td align="left">Likely true</td><td align="left">No experimental evidence exists in the literature, but there is author speculation or sequence similarity support for this annotation</td></tr><tr><td align="left">C</td><td align="left">Unclear</td><td align="left">Experimental evidence is either unavailable or conflicting.</td></tr><tr><td align="left">D</td><td align="left">Unlikely</td><td align="left">The gene product is known to have a related but different function/process and no experimental support was found for the prediction</td></tr><tr><td align="left">E</td><td align="left">Highly unlikely</td><td align="left">Direct experimental evidence against this association, or all other experimental evidence supports an unrelated function/process, or the gene product is part of a well-characterized complex and the predicted component term was to a different well-characterized complex</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-S7-i1" overflow="scroll">
                        <mml:semantics>
                           <mml:mrow>
                              <mml:mi>P</mml:mi>
                              <mml:mo>=</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>T</mml:mi>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>F</mml:mi>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>L</mml:mi>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>R</mml:mi>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mi>N</mml:mi>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>T</mml:mi>
                                          <mml:mi>L</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>T</mml:mi>
                                          <mml:mi>R</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:mi>N</mml:mi>
                                    <mml:mmultiscripts>
                                       <mml:mo>!</mml:mo>
                                       <mml:mprescripts/>
                                       <mml:mrow>
                                          <mml:mi>F</mml:mi>
                                          <mml:mi>L</mml:mi>
                                       </mml:mrow>
                                       <mml:none/>
                                    </mml:mmultiscripts>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>F</mml:mi>
                                          <mml:mi>R</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo>!</mml:mo>
                                 </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="M2" name="gb-2008-9-S1-S7-i2" 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>j</mml:mi>
                              <mml:mo stretchy="false">)</mml:mo>
                              <mml:mo>=</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>T</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub>
                                       <mml:mi>P</mml:mi>
                                       <mml:mi>T</mml:mi>
                                    </mml:msub>
                                    <mml:mo>⋅</mml:mo>
                                    <mml:mi>Ψ</mml:mi>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>T</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:msub>
                                       <mml:mi>N</mml:mi>
                                       <mml:mi>F</mml:mi>
                                    </mml:msub>
                                    <mml:mo>+</mml:mo>
                                    <mml:mi>Ψ</mml:mi>
                                 </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="M3" name="gb-2008-9-S1-S7-i3" overflow="scroll">
                        <mml:semantics>
                           <mml:mrow>
                              <mml:mi>log</mml:mi>
                              <mml:mo>⁡</mml:mo>
                              <mml:mo stretchy="false">(</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:mi>P</mml:mi>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:mi>P</mml:mi>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                              </mml:mfrac>
                              <mml:mo stretchy="false">)</mml:mo>
                              <mml:mo>=</mml:mo>
                              <mml:mi>w</mml:mi>
                              <mml:mo>⋅</mml:mo>
                              <mml:mi>log</mml:mi>
                              <mml:mo>⁡</mml:mo>
                              <mml:mo stretchy="false">(</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:msub>
                                       <mml:mi>P</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>G</mml:mi>
                                          <mml:mi>B</mml:mi>
                                          <mml:mi>P</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:msub>
                                       <mml:mi>P</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>G</mml:mi>
                                          <mml:mi>B</mml:mi>
                                          <mml:mi>P</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                              </mml:mfrac>
                              <mml:mo stretchy="false">)</mml:mo>
                              <mml:mo>+</mml:mo>
                              <mml:mo stretchy="false">(</mml:mo>
                              <mml:mn>1</mml:mn>
                              <mml:mo>−</mml:mo>
                              <mml:mi>w</mml:mi>
                              <mml:mo stretchy="false">)</mml:mo>
                              <mml:mo>⋅</mml:mo>
                              <mml:mi>log</mml:mi>
                              <mml:mo>⁡</mml:mo>
                              <mml:mo stretchy="false">(</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:msub>
                                       <mml:mi>P</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>G</mml:mi>
                                          <mml:mi>B</mml:mi>
                                          <mml:mi>A</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mn>1</mml:mn>
                                    <mml:mo>−</mml:mo>
                                    <mml:msub>
                                       <mml:mi>P</mml:mi>
                                       <mml:mrow>
                                          <mml:mi>G</mml:mi>
                                          <mml:mi>B</mml:mi>
                                          <mml:mi>A</mml:mi>
                                       </mml:mrow>
                                    </mml:msub>
                                    <mml:mo stretchy="false">(</mml:mo>
                                    <mml:mi>i</mml:mi>
                                    <mml:mo>,</mml:mo>
                                    <mml:mi>j</mml:mi>
                                    <mml:mo stretchy="false">)</mml:mo>
                                 </mml:mrow>
                              </mml:mfrac>
                              <mml:mo stretchy="false">)</mml:mo>
                           </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-S7-i4" overflow="scroll">
                        <mml:semantics>
                           <mml:mrow>
                              <mml:msub>
                                 <mml:mi>P</mml:mi>
                                 <mml:mrow>
                                    <mml:mi>p</mml:mi>
                                    <mml:mi>r</mml:mi>
                                    <mml:mi>e</mml:mi>
                                    <mml:mi>c</mml:mi>
                                    <mml:mi>i</mml:mi>
                                    <mml:mi>s</mml:mi>
                                    <mml:mi>i</mml:mi>
                                    <mml:mi>o</mml:mi>
                                    <mml:mi>n</mml:mi>
                                 </mml:mrow>
                              </mml:msub>
                              <mml:mo>=</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:mi>T</mml:mi>
                                    <mml:mi>P</mml:mi>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mi>T</mml:mi>
                                    <mml:mi>P</mml:mi>
                                    <mml:mo>+</mml:mo>
                                    <mml:mi>F</mml:mi>
                                    <mml:mi>P</mml:mi>
                                 </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="M5" name="gb-2008-9-S1-S7-i5" overflow="scroll">
                        <mml:semantics>
                           <mml:mrow>
                              <mml:msub>
                                 <mml:mi>P</mml:mi>
                                 <mml:mrow>
                                    <mml:mi>r</mml:mi>
                                    <mml:mi>e</mml:mi>
                                    <mml:mi>c</mml:mi>
                                    <mml:mi>a</mml:mi>
                                    <mml:mi>l</mml:mi>
                                    <mml:mi>l</mml:mi>
                                 </mml:mrow>
                              </mml:msub>
                              <mml:mo>=</mml:mo>
                              <mml:msub>
                                 <mml:mi>P</mml:mi>
                                 <mml:mrow>
                                    <mml:mi>t</mml:mi>
                                    <mml:mi>r</mml:mi>
                                    <mml:mi>u</mml:mi>
                                    <mml:mi>e</mml:mi>
                                 </mml:mrow>
                              </mml:msub>
                              <mml:mo>=</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:mi>T</mml:mi>
                                    <mml:mi>P</mml:mi>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mi>T</mml:mi>
                                    <mml:mi>P</mml:mi>
                                    <mml:mo>+</mml:mo>
                                    <mml:mi>F</mml:mi>
                                    <mml:mi>N</mml:mi>
                                 </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="M6" name="gb-2008-9-S1-S7-i6" overflow="scroll">
                        <mml:semantics>
                           <mml:mrow>
                              <mml:msub>
                                 <mml:mi>P</mml:mi>
                                 <mml:mrow>
                                    <mml:mi>f</mml:mi>
                                    <mml:mi>a</mml:mi>
                                    <mml:mi>l</mml:mi>
                                    <mml:mi>s</mml:mi>
                                    <mml:mi>e</mml:mi>
                                 </mml:mrow>
                              </mml:msub>
                              <mml:mo>=</mml:mo>
                              <mml:mfrac>
                                 <mml:mrow>
                                    <mml:mi>F</mml:mi>
                                    <mml:mi>P</mml:mi>
                                 </mml:mrow>
                                 <mml:mrow>
                                    <mml:mi>F</mml:mi>
                                    <mml:mi>P</mml:mi>
                                    <mml:mo>+</mml:mo>
                                    <mml:mi>T</mml:mi>
                                    <mml:mi>N</mml:mi>
                                 </mml:mrow>
                              </mml:mfrac>
                           </mml:mrow>
                           
                        </mml:semantics>
                     </mml:math></disp-formula>
<supplementary-material content-type="local-data" id="S1"><caption><title>Additional data file 1</title><p>Expert evaluation of GO predictions by <italic>Funckenstein</italic>.</p></caption></supplementary-material>
<table-wrap-foot><p>MIPS, Munich Information Center for Protein Sequences; MRF, Markov random field; NB, naïve bayes.</p></table-wrap-foot> <table-wrap-foot><p>FL, functional linkage; MIPS, Munich Information Center for Protein Sequences; MRF, Markov random field; NB, naïve Bayes; PDT, probabilistic decision tree; RF, random forest.</p></table-wrap-foot> <table-wrap-foot><p>GO, Gene Ontology.</p></table-wrap-foot> <table-wrap-foot><p><sup>a</sup>For each evidence type, a representative reference (the one contributing the most interactions) is shown. GO, Gene Ontology.</p></table-wrap-foot> <table-wrap-foot><p>BP, biological process; CC, cellular component; GO, Gene Ontology; MF, molecular function.</p></table-wrap-foot> <table-wrap-foot><p>*FL1, FL classifier based on shared gene characteristics in Table 3; FL2, FL classifier based on direct gene-gene relationships in Table 4; FL3, FL classifier based on both relationship types. Entries in bold are the best <italic>Funckenstein </italic>classifier; entries in italics are the best individual classifier. BP, biological process; CC, cellular component; FL, functional linkage; GO, Gene Ontology; MF, molecular function; RF, random forest.</p></table-wrap-foot> <table-wrap-foot><p>SGD, <italic>Saccharomyces </italic>Genome Database.</p></table-wrap-foot>
<graphic xlink:href="gb-2008-9-s1-s7-1"/> <graphic xlink:href="gb-2008-9-s1-s7-2"/> <graphic xlink:href="gb-2008-9-s1-s7-3"/> <graphic xlink:href="gb-2008-9-s1-s7-4"/> <graphic xlink:href="gb-2008-9-s1-s7-5"/> <graphic xlink:href="gb-2008-9-s1-s7-6"/> <graphic xlink:href="gb-2008-9-s1-s7-7"/>
<media xlink:href="gb-2008-9-s1-s7-S1.pdf" mimetype="application" mime-subtype="pdf"><caption><p>Click here for file</p></caption></media>
[{"surname": ["Breiman"], "given-names": ["L"], "article-title": ["Random forest."], "source": ["Machine Learn"], "year": ["2001"], "volume": ["45"], "fpage": ["5"], "lpage": ["32"], "pub-id": ["10.1023/A:1010933404324"]}, {"surname": ["Breiman", "Friedman", "Olshen", "Stone"], "given-names": ["L", "JH", "RA", "CJ"], "source": ["Classification and Regression Trees"], "year": ["1984"], "publisher-name": ["Belmont, CA: Wadsworth International Group"]}, {"surname": ["Lewis", "Nedllec C, Rouveirol C"], "given-names": ["D"], "article-title": ["Naive (Bayes) at forty: The independence assumption in information retrieval."], "source": ["Proceedings of the 10th European Conference on Machine Learning: 21 to 23 April 1998; Chemnitz, Germany"], "year": ["1998"], "publisher-name": ["London, UK: Springer-Verlag"], "fpage": ["4"], "lpage": ["15"]}, {"article-title": ["Yfunc"]}, {"surname": ["Quinlan"], "given-names": ["JR"], "source": ["C45: Programs for Machine Learning"], "year": ["1993"], "publisher-name": ["San Mateo, CA: Morgan Kaufmann"]}, {"article-title": ["MRF-NB"]}, {"italic": ["Saccharomyces "]}, {"surname": ["Tucker", "Fields"], "given-names": ["CL", "S"], "article-title": ["Quantitative genome-wide analysis of yeast deletion strain sensitivities to oxidative and chemical stress."], "source": ["Comparative Functional Genomics"], "year": ["2004"], "volume": ["5"], "fpage": ["216"], "lpage": ["224"], "pub-id": ["10.1002/cfg.391"]}]
Genome Biol. 2008 Jun 27; 9(Suppl 1):S7