Fast Gene Ontology based clustering for microarray experiments

Background Analysis of a microarray experiment often results in a list of hundreds of disease-associated genes. In order to suggest common biological processes and functions for these genes, Gene Ontology annotations with statistical testing are widely used. However, these analyses can produce a very large number of significantly altered biological processes. Thus, it is often challenging to interpret GO results and identify novel testable biological hypotheses. Results We present fast software for advanced gene annotation using semantic similarity for Gene Ontology terms combined with clustering and heat map visualisation. The methodology allows rapid identification of genes sharing the same Gene Ontology cluster. Conclusion Our R based semantic similarity open-source package has a speed advantage of over 2000-fold compared to existing implementations. From the resulting hierarchical clustering dendrogram genes sharing a GO term can be identified, and their differences in the gene expression patterns can be seen from the heat map. These methods facilitate advanced annotation of genes resulting from data analysis.


Background
A microarray experiment may result in hundreds of differentially expressed genes that are subject to interpretation and further analysis. As analysing these lists gene-by-gene is tedious and error prone, the genes in the lists are routinely annotated using Gene Ontology (GO) with an aim to identify statistically significant biological processes or pathways [1]. However, statistical analysis of GO annotations can produce a very large number of significantly enriched or down-regulated biological processes. Thus, it is often challenging to interpret GO results and identify novel testable biological hypotheses.
The GO project provides a species-independent controlled vocabulary for describing gene products (an RNA or protein product encoded by a gene) in terms of their biological processes, cellular components and molecular functions [1]. The GO annotations are carried out by curators of several bioinformatics databases, so the GO database is constantly updated. The ontology defines terms that are linked together to form a directed acyclic graph. Gene products are annotated with a number of ontology terms. Annotation with a given term also implies annotation with all ancestors of the term.
In this study we present methodology and software to cluster genes based on their biological functionality using GO annotations. Integral part of the methodology is the ability to rapidly compute pair-wise distances between the gene annotation similarities.
Two approaches to gene similarity computation are graph structure -based (GS) and information content -based (IC) measures. GS-based methods use the hierarchical structure of GO in computing gene similarity. IC-based methods additionally consider the a priori probabilities, or information contents, of GO terms in a reference gene set. IC-based measures have been found to perform better than pure graph-based measures [2,3].
Czekanowski-Dice similarity [4] is a GS-based method. Distance of genes G 1 and G 2 is defined as where Δ is the symmetric set difference, # is the number of elements in a set and GO(G i ) is the set of GO annotations for gene G i . Similarity can be defined as 1 -d(G 1 , G 2 ).
In Kappa statistics [5], each gene is represented as a binary vector (g 1 ,...,g N ), where g i is 1 if the gene is annotated with the GO term g i and 0 otherwise. N is the total number of GO terms under consideration.
Similarity of genes G 1 and G 2 is defined as where represents observed co-occurrence of GO terms and represents random co-occurrence.
is the relative frequency of agreeing locations in the two binary vectors, i.e., locations that are either both 0 or both 1. is the expected relative frequency of such locations if the binary vectors were random, taking into account the observed probabilities of 0's and 1's.
The following discussion considers IC-based similarity measures. The information content of a GO term is computed by the frequency of the term occurring in annotations; a rarely used term contains a greater amount of information. Probability for observing a term t is defined as , where MaxFreq is the maximum frequency of all terms [6]. The information content for a term t is given as IC(t) = -log 2 p(t). Probabilities can be estimated from a corpus of annotations, such as the Gene Ontology database.
Several related similarity metrics are based on the most informative common ancestor (MICA) of two GO terms and were introduced in the context of GO by Lord et al. [7]. To compute the semantic similarity between terms t 1 and t 2 , we first find the most informative common ancestor A of t 1 and t 2 , i.e., A is a term that is an ancestor of both t 1 and t 2 and has the maximum IC among common ancestors CommonAnc(t 1, t 2 ) of the terms. Now, the Resnik similarity [8] is defined as Several other measures are defined that also take the information contents of t 1 and t 2 into account. The Lin measure [9] is defined as Jiang and Conrath [10] define a semantic distance metric as The corresponding similarity measure for d JC (t 1 , t 2 ) [6] is given by Finally, the Relevance measure [11] that combines Lin's and Resnik's measures is defined as The MICA-based measures can be modified to take into account so called disjunctive ancestor terms [6]. Two ancestors a 1 and a 2 of a term t are disjunctive if there are independent paths from a 1 to t and from a 2 to t. Such ancestors represent distinct interpretations of the term t.
In the GraSM enhancement, all common disjunctive ancestors of terms t 1 and t 2 are considered when computing Sim(t 1, t 2 ) [6]. GraSM modifies the computation of IC(A) and can be applied to the Resnik, Lin and Jiang-Conrath measures.
After computing the pair-wise term similarities, the next step in MICA-based measures is to calculate the similarity between genes G 1 and G 2 . This can be done in several ways and our package supports three most commonly used methods. In the two simplest methods, the maximum or the mean of pair-wise GO term similarities between annotation sets of G 1 and G 2 is used as the similarity value [12].
That is, when G 1 is annotated with terms t 1 ,...,t n and G 2 with terms , pair-wise term similarities form an n is the maximum or the mean of the matrix. In the third method, similarity is defined as Sim gene (G 1 , G 2 ) = max{rowScore, columnScore} [11], where In addition to MICA-and GraSM-based measures, we have implemented the cosine similarity and SimGIC measures. In cosine similarity [13], each gene G is represented as a vector (w 1 , G is annotated with the term t i , or 0 otherwise. N is the total number of GO terms under consideration. Similarity of genes G 1 and G 2 is defined as , where · is the dot product and |v| is the vector norm. This is the cosine of the angle between vectors G 1 and G 2 . In the SimGIC (Graph Information Content) measure [3], similarity of genes G 1 and G 2 is defined as where GO(G i ) gives the GO annotations of gene G i . Sim-GIC is a hybrid of GS-and IC-based methods.
Given similarities between the genes we use hierarchical clustering with heat map presentation to visualise both semantic similarities and expression levels of the genes. First, similarity measures are converted to distances using d(x, y) = 1 -Sim(x, y) when the similarity range is [0, 1] (Czekanowski-Dice, Kappa, Lin, Jiang-Conrath, Relevance, Cosine, SimGIC) or using d(x, y) = 1/(Sim(x, y) + 1) when the range is [0, ∞) (Resnik). Second, a hierarchical clustering algorithm is run using the converted distances. The results are visualised as a dendrogram and heat map. The dendrogram is generated using the GO semantic distances and allows identification of clusters containing genes contributing to the same biological process. For each cluster we compute statistical significance with a permutation test. The heat map illustrates gene expression data obtained from microarray analysis. Thus, the visualisation framework integrates both functional gene expression levels to biological processes, which facilitates interpretation of the gene expression analysis results.

Implementation
The semantic similarity package, csbl.go, is available for R [14]. The package computes similarities for arbitrary number of genes and supports the following measures: Czekanowski-Dice, Kappa, Resnik (with GraSM as an option), Jiang-Conrath (GraSM), Lin (GraSM), Relevance, Cosine and SimGIC. The MICA-based measures (Resnik, Lin, Jiang-Conrath, Relevance and GraSM enhancements) are implemented as a combination of R and C++ code; the four other measures are implemented in R. In addition to the regular R package, csbl.go is available as a component for Anduril [15], a framework for high-throughput data analysis we recently developed. The package is extensively tested and includes a user guide.
Similarity computation needs GO term probabilities for the reference gene set. We provide precomputed probability tables for Homo sapiens, Saccharomyces cerevisiae, Caenorhabditis elegans, Drosophila melanogaster, Mus musculus and Rattus norvegicus. The tables are computed based on all gene and protein annotations for the given organism found in the geneontology.org database. As GO is constantly updated and revised, we update the tables every six months. The package also has an option to use custom tables. The taxonomy ID of the organism is stored along with probability tables as metadata, which enables selection of a table by organism ID. The package also includes an option to compute GO term enrichment using Fisher's Exact Test [16].

Results and discussion
We evaluated the package by using a performance benchmark and by applying the methods to microarray data from a testicular germ cell tumor study [17].

Performance benchmark
We compared the performance of our package to two earlier introduced semantic similarity packages, SemSim BioData Mining 2008, 1:11 http://www.biodatamining.org/content/1/1/11 gene similarities because the former is the most time-consuming part of similarity computation.
Benchmark results are in shown in Table 1. With the csbl.go package we obtained 2400-to 5000-fold (GOSim) and 2100-to 3000-fold (SemSim) speed gains. The speed gain achieved by csbl.go becomes more obvious with larger number of GO terms. For example, with 1000 terms SemSim and GOSim take more than 30 minutes while csbl.go takes less than one second.

Case study
As a case study, we applied similarity measures to identify common GO classes for differentially expressed genes involved in testicular germ cell tumors (TGCTs). The TGCT microarray study here consists of five undifferentiated embryonal carcinoma samples and 12 differentiated testicular cell samples, which include both tumors and healthy samples [17].
We re-analysed the data set with the goal of finding differentially expressed genes (DEGs) between four undifferentiated samples (EC_0502, EC_0564, EC_1017 and EC_1740) and 10 differentiated samples (Cc_0915, N_9013, N_9014, N_0140, Ter_0691, Ter_0696, YST_0216, YST_0307, YST_0738, YST_2110). Three samples (EC_1838, Ter_1282 and Ter_2201) were excluded due to data quality problems. Data from the two-channel Agilent Human 1A were background corrected and processed with LOWESS [19]. DEGs were selected using t-test followed by false discovery rate correction [20]. We obtained 65 genes that have q-value below 0.1 and have also fold change of at least 1.5. We found GO annotations for 58 of the 65 genes using Ensembl version 50 [21]. Among the 58 genes, the median number of GO annotations per gene is eight.
We computed the similarities between the 58 DEGs using the Lin measure and converted the similarity matrix into distance using d(x, y) = 1 -Sim(x, y). Then we used agglomerative hierarchical clustering in R to generate gene clusters based on the GO distance matrix. The heat map that combines GO clusters and expression data is shown in Figure 1. GO-based clustering for the genes is visualised with a dendrogram on the left. To visualise the relationships between samples, a second dendrogram based on expression profiles is shown on the top. Using a dendrogram cutoff value of 0.35 we obtained nine clusters that are numbered G1,...,G9. The gene names for these nine clusters are given in Table 2 in the same order as Figure 1.
To gain further insight into the clusters, we extracted the most informative GO terms for each cluster. These are terms that occur in every gene of the cluster (taking parent-child relationships into account) and have the largest information contents. The most informative terms for each cluster and their IC values are listed in Table 3. To assess the significance of the IC values, we computed pvalues using a permutation test [16]. To obtain the p-value for a cluster with the size k, we generated 10000 random clusters with size k and computed IC of the most informative term in each cluster. The p-value is then the fraction of clusters having IC at least as great as the cluster under study.
The cluster G5 consists of two genes: cystathionase (CTH) and glyoxalase I (GLO1). These two genes correlate strongly in their GO terms as their extremely high ICvalue of 12.0 indicates. Also their gene expression patterns are almost identical across the samples as shown in the heat map in Figure 1. GLO1 is a glutathione-binding protein that contributes to several pathways that are associated with various diseases, such as cancers [22]. As glutathione plays a key role in the process where tumor cells acquire resistance to anti-cancer drugs, GLO1 inhibitors are considered as potential anti-cancer agents [22,23]. CTH is a critical factor in glutathione synthesis and has recently been associated with increased risk of bladder cancer [24]. While detailed discussion of the exact roles of CTH and GLO1 in embryonal carcinomas is out of scope of this study, our results suggest that GLO1 and CTH may function in concert, and contribute to tumor progression and drug resistance in embryonic cancers. Ter_0696

GO heat map and clustering
Interestingly, CTH and GLO1 contribute to the same biological process but do not have common pathways in the KEGG pathway database [25] as shown in Table 4 that contains all KEGG pathways associated to genes in Table  2. Thus, CTH and GLO1 would not have been grouped together with standard pathway analyses despite the fact that, based on literature, their biological function is markedly similar.

Conclusion
We have developed tools to cluster genes from microarray experiments using semantic similarity measures. Using benchmark tests we demonstrated clear speed gain as compared to existing implementations. Our efficient implementation of similarity measures enables analysis of gene sets with hundreds of genes that are typically seen in microarray experiments. We then combined expression data and GO annotations using hierarchical clustering and a heat map visualisation that together enable rapid identification of genes sharing similar biological functions. In our case study we further analysed genes that are differentially expressed in testicular germ cell tumors between undifferentiated embryonal carcinomas and differentiated testicular cells. Our results suggest that GObased annotation analysis approaches may be able to take advantage of the accumulated knowledge available in literature over approaches using pathway databases, which are typically updated in a much slower pace than the GO database. In summary, the csbl.go package allows rapid PDGFA IGSF21 GDF3 CCDC80 GAL TF MAGED1 has two distinct differentially expressed probe sets. Genes are ordered from bottom to top in Figure 1. For example, the genes in cluster G1 in Figure 1 are, from bottom to top, PDCL3, two probe sets for MAGED1, PRKCE, etc.