Background

Recent advances in high-throughput interaction detection methods such as yeast two-hybrid and mass spectrometry techniques have led to a rapid expansion of protein-protein interaction data in several organisms. For example, there are about 8, 000 interactions between 4, 000 S. cerevisiae proteins, approximately 24, 000 interactions between 7, 600 D. melanogaster proteins, and over 5, 100 interactions between 2, 900 C. elegans proteins [1]. More than 137, 000 protein interactions and 60, 000 genetic interactions are also known for six major model organisms [2]. Several databases have been built for the large amount of protein-protein interaction data, which include BOND [3], DIP [4], MIPS [5], HPRD [6], HPID [7] and BioGRID [2]. Most of the databases allow the user to retrieve protein-protein interactions that satisfy a condition specified in a query. Keyword matching or ID matching is one of the most commonly used searching methods. This type of search retrieves all of the records in the database which contain a keyword or ID specified in a query. The user can alter retrieval results using Boolean operators such as AND, OR and NOT.

However, a search method based on keyword matching or ID-matching is purely syntactic and does not consider biological relations between the keywords or IDs. If the user gets too many protein-protein interactions, selecting the protein-protein interactions to focus on entirely relies on the discretion of the user. If the user gets too few protein-protein interactions or no results at all, the user will probably have to look for other resources. For example, BOND returns 5, 100 protein-protein interactions for a keyword query of 'ATP binding' whereas it returns only 96 interactions for a keyword query of 'nucleotide binding'. The term 'nucleotide binding' is at a higher level than 'ATP binding' in the Gene Ontology (GO) hierarchy [8], but it returns much fewer search results than 'ATP binding'. This search anomaly occurs because the search method of BOND does not consider the biological relation between keywords. Besides, the user must enter an exact keyword or ID in the query since BOND and many other protein-protein interaction databases do not support the 'autocomplete' feature when searching the databases.

Recently a few ontology-based information retrieval methods have developed for biological literature or databases [911], but little work has been reported on the ontology-based search for protein-protein interactions in databases. We developed a new representation of the Gene Ontology (GO) and a search engine that finds all the semantically relevant interactions of a query protein using the representation. For a GO term, all the GO terms at the lower level than the GO term in the GO hierarchy are automatically considered when searching for protein-protein interactions. For example, when dealing with a query like "for protein p annotated with a GO term f, find the interaction partners of p", the search engine considers not only the GO annotation f but also all the GO annotations below f in the GO hierarchy. Several computational methods have been developed to elucidate protein function from the analysis of protein-protein interaction data [12], and our search engine will be useful to identify proteins with common function or subcellular localization. This paper presents the development of a new representation method of protein-protein interactions and a search engine for protein-protein interactions using the representation method.

Methods

Gödel numbers are typically used to uniquely encode any list of positive integers {a1, a2, ..., a n } by

(1)

where p k is the k th prime number [13].

However, the original Gödel numbers defined by equation (1) cannot represent the Directed Acyclic Graph (DAG) structure of the Gene Ontology. Consider an example shown in Table 1, in which a unique natural number represents a term and a Gödel number represents the relation between the terms. Term4 is a kind of Term2 by Relation R3, and Term4 is a kind of Term1 by Relation R1. But these relations cannot be inferred unambiguously from the representation of Table 1.

Table 1 Gödel number representation. Original Gödel numbers cannot represent the Directed Acyclic Graph (DAG) structure of the Gene Ontology.

Therefore, we modify the Gödel numbers as follows:

  1. 1.

    Assign each term a prime number instead of a natural number using Algorithms 1 and 2.

  2. 2.

    Represent each relation between the terms by a modified Gödel number using Algorithm 3. The modified Gödel number is the product of the prime numbers representing the terms in the relation and their ancestors, including the root term in the Gene Ontology hierarchy.

For example, relation R3 of Table 2 is represented by 42, which has prime factors of 2 (Term1, root node in the hierarchy), 3 (Term2), and 7 (Term3). This representation enables us to infer the meaning of R3 by unique factorization of R3 into prime numbers representing Term1, Term2, and Term3.

Table 2 Modified Gödel number representation.

Table 3 shows an example of predicting protein-protein interactions from domain-domain interactions using the representation. Suppose that domainA interacts with domainB (R4 in Table 3), proteinA has domainA (R5), and that proteinB has domainB (R6). These relations can be represented by modified Gödel numbers, as shown in Table 3. Using this representation, the hypothesis that proteinA interacts with proteinB can be tested by simple arithmetic operations such as integer division and modulo operation.

Table 3 Reasoning protein-protein interactions.
(2)
(3)
(4)

In this example, the relation that domainA interacts with domainB is represented by a modified Gödel number 143, which is the product of 11 (representing domainA) and 13 (domainB) (equation 2). The hypothesis that proteinA interacts with proteinB is represented by a modified Gödel number 46, 189 from the multiplication of 187 (proteinA) by 247 (proteinB) (equation 3). Since the remainder after dividing 46, 189 (representing the hypothesis that proteinA interacts with proteinB) by 143 (representing the relation that domainA interacts with domainB) is 0 (equation 4), the hypothesis that proteinA interacts with proteinB turns out to be true.

Algorithm 1 Generate modified Gödel numbers

This algorithm assigns prime numbers to GO terms, stores the relation of the GO terms in a local DB by calling Algorithm 2, and generates the modified Gödel numbers by multiplying the prime numbers.

1: T = {t1, t2, ..., t G } {G is the number of GO terms.}

2: P = {p1, p2, ..., p G } {P is an ordered set of prime numbers.}

3: for all i ∈ {1, 2, ..., G} do

4:   t i p i {Assign a prime number to a GO term.}

5: end for

6: for all t ∈ {t1, t2, ..., t G } do

7:   Algorithm2(t. key, t) {Store the prime number assignment in a local DB.}

8: end for

9: for all t ∈ {t1, t2, ..., t G } do

10:   Modified Gödel number ← Algorithm3(t. key)

11: end for

Algorithm 2 StoreRepresentation(Term.key, Term)

This algorithm stores the prime number assignment of the GO term and its parents by a recursive call until the parameter Term is a root term of the hierarchy.

1: if Term.isRoot == false then

2:   for all tTerm.parent do

3:      SetRelation(Term.key, t.key, t.prime) {Store the prime numbers assigned to Term and its parents.}

4:      Algorithm2(Term.key, t) {Recursive call for the parent of Term}

5:   end for

6: end if

Algorithm 3 ModifiedGödelNumber(Term.key)

This algorithm calculates a modified Gödel number by multiplying the prime numbers representing the parameter Term.key and its ancestor terms in the ontology hierarchy.

1: ArrayList list = GetRelation(Term.key) {Retrieve the prime numbers for Term and its ancestors.}

2: var = 1

3: for all tlist do

4:   var = var × t.prime

5: end for

6: return var

Results and discussion

User interface of the search engine

A prototype of the ontology-based search engine has been implemented in the C# programming language [21]. We generated more than 26, 000 prime numbers using the Sieve of Eratosthenes [14], and used the Java BigInteger class to store the numbers and to perform multiplication and modulo operations on them. When the user specifies a GO term or protein superfamily [15] for the query protein, the search engine returns all interactions that involve the protein annotated with the GO term or superfamily as well as the proteins annotated with more specific terms than the specified GO term. To make the search engine easy to use, it provides autocomplete functionality for GO terms or protein superfamilies. So, a partial term entered by the user is expanded into one or more complete GO terms or superfamilies that are consistent with the partial term. An example of using the autocomplete functionality for GO terms in the search engine is shown in Figure 1.

Figure 1
figure 1

User interface of the ontology-based search engine. An example of using the autocomplete functionality for GO terms.

The user can also get protein-protein interactions from the web service of the search engine using the Web Services Description Language (WSDL). WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information [16]. The interaction data returned by the search engine can be displayed and saved in the PSI-MI format [17] or in the PSI-MI format with XML style sheets.

Comparison of the search methods

We tested the ontology-based search engine on the interaction data of HPRD [6] and compared it with the ID-matching search method. Table 4 shows the number of protein-protein interactions found in HPRD by the two search methods. HPRD release 7 contains 38, 190 interactions between 8, 800 human proteins, which are annotated with 470 GO terms. The total number of GO terms is more than 26, 000, but only 1.8% of the 26, 000 GO terms are used for annotating human proteins in HPRD. Our search engine can infer up to 698 GO terms for human proteins from the 470 GO terms that were used for annotating human proteins (see the supplementary material at [21]).

Table 4 Comparison of search results by two search methods.

The GO term ID of GO:0008150 is the root node of the GO hierarchy for biological process. With a query of GO:0008150, the ontology-based search engine found 36, 523 interactions (95.6% of the total 38, 190 interactions of HPRD), but the ID-matching search retrieved only 5 interactions (0.01% of the total 38, 190 interactions of HPRD). With a query of GO:0008152 for metabolic process, which is the descendent node of GO:0008150 in the GO hierarchy (Figure 2), the ontology-based search engine found 19, 828 interactions (51.9% of the total 38, 190 interactions of HPRD), but the ID-matching search found 2, 862 interactions (7.5% of the total 38, 190 interactions). The ID-matching search returned more search results with a more specific term than with a less specific one. The ID-matching search found no interactions with a query of GO:0044238 or GO:0043170, but found 5, 324 interactions with a query of GO:0019538, which is at a lower level than GO:0044238 or GO:0043170. These search anomalies occur because the ID-matching search method does a purely syntactic search and does not consider the relation of GO terms at all. In contrast, the ontology-based search finds interactions not only by the GO term specified in the query but by specialized terms of the term.

Figure 2
figure 2

Example of the gene ontology hierarchy. A partial view of the three ontologies of the Gene Ontology (GO). The GO terms 'biological process', 'molecular function', and 'cellular component' are the root nodes of three GO hierarchies. Several intermediate terms between the nodes are not shown for clarity.

Figure 3 shows the interaction networks of human proteins, which were found by the two search methods and visualized by Cytoscape [18]. Networks 1-11 of Figure 3 represent the 70 protein-protein interactions found by the ontology-based search with the query of 'Nucleotide binding' (the GO term ID GO:0000166) from the HPRD data. As shown in Table 5, only 5 out of the 70 interactions involve a protein with an explicit annotation of 'Nucleotide binding'. The remaining 65 interactions were inferred from the Gene Ontology by finding a protein annotated with a more specialized term such as 'ATP binding', 'FAD binding' or 'GTP binding' than 'Nucleotide binding' (see Figure 2 for the partial view of the Gene Ontology of molecular function).

Table 5 Ontology-based search with 'Nucleotide binding' GO term.
Figure 3
figure 3

Interaction network of human proteins found with Nucleotide binding and ATP binding. Networks 1-11 represent the 70 protein-protein interactions found by the ontology-based search with the query of 'Nucleotide binding' from the HPRD data. Networks 7-11 represent the 31 interactions found by the ontology-based search with the query of 'ATP binding', which is a more specific term than 'Nucleotide binding'. The ID-matching search found only 5 interactions (networks 5-6) with 'Nucleotide binding' and missed all the other interactions whereas its search results with 'ATP binding' are same as those of the ontology-based search (networks 7-11). Yellow nodes represent the human proteins explicitly annotated with 'ATP binding', pink nodes represent the human protein explicitly annotated with 'Nucleotide binding', and white nodes represent the human proteins with no explicit annotation of 'ATP binding' nor 'Nucleotide binding'. The GO term IDs of the proteins found by the search methods are listed in Table 5.

Networks 7-11 of Figure 3 represent the 31 interactions found by the ontology-based search with the query of 'ATP binding' (GO:0005524). 'ATP binding' is at the lower level than 'Nucleotide binding' in the ontology hierarchy, and therefore it is quite reasonable that the search results with 'ATP binding' are exclusively included in the search results with 'Nucleotide binding'. On the contrary, the ID-matching search found only 5 interactions (networks 5-6) with the query of 'Nucleotide binding' and missed the remaining 65 interactions. But with the query of 'ATP binding' the ID-matching search found the same 31 interactions (networks 7-11) as those found by the ontology-based search.

The search engine also allows the user to specify multiple conditions on the query protein. Table 6 shows the search results by the two search methods when the user specifies two GO terms, 'protein metabolic process' (GO:0019538) and 'cytoplasm' (GO:0005737), as conditions on the query protein. The ontology-based search found more interactions than the ID-matching search for all queries in the table.

Table 6 Example of searching protein-protein interactions by specifying multiple GO terms on the query protein.

The implementation of the ontology-based search engine is not complete yet and being expanded to support various query types. For example, it will allow the user to search interactions by specifying GO terms both on the query and interaction partner proteins or by specifying multiple GO terms on the interaction partner protein. Figure 4 shows an interaction network between hepatitis C virus (HCV) and human proteins, which was constructed with the interaction data from a literature [19]. Since the current search engine has the modified Gödel number representation for human proteins only, it cannot find interaction partners in other species yet. However, the search engine will be expanded to retrieve interactions between human proteins and other types of proteins. The Gene Ontology annotations for the HCV proteins and human proteins in the network of Figure 4 are available at [21].

Figure 4
figure 4

Interaction network of HCV-human proteins. The network contains HCV proteins (core, E1, E2, NS2, NS3, NS4A, NS4B, NS4A, NS5B, F and p7) and the human proteins interacting with them. The interaction data was obtained from a literature [19] and the network was visualized by Cytoscape [18]. The GO annotations for the HCV proteins and human proteins in the network are available at [21].

Conclusion

We have developed a new method for representing protein-protein interactions and the Gene Ontology (GO) using modified Gödel numbers. This representation is hidden from users but enables a search engine to efficiently find protein-protein interactions in a biologically meaningful way. A prototype of the search engine is available at [21]. The search engine can find all interactions involving the query protein in almost real-time since the interaction partners of the query protein can be found unambiguously by prime factorization of the modified Gödel numbers representing the query protein and the search conditions.

The OWL Web Ontology Language [20] was established, but there have been no databases of protein-protein interactions that can process queries like "find every protein p with function f" or "for every protein p with function f, find the interaction partners of p". To the best of our knowledge, the ontology-based search engine presented in this paper is the first one that can deal with such queries. This paper presented preliminary results of the ontology-based search engine, and it is being expanded into a full-featured search engine.