PSICQUIC

Share:

Description

PSICQUIC is an effort from the HUPO Proteomics Standard Initiative (HUPO-PSI) to standardise programmatic access to molecular interaction databases. The Bioconductor PSICQUIC package provides a traditional R interface layered on top of the PSICQUIC REST interface. Gene symbols are most commonly used in queries; interactions are returned in a data.frame, characterized by interaction type, detection method, and publication references. Confidence scores are sometimes avaialable. Queries may be constrained by many of these same attributes, i.e., interaction type, detection method, species, publication identifier, and source database.

Details

There are two operational differences between the native PSIQUIC REST interface and that offered here via the interactions method:

species exclusivity:

The REST interface requires only that one participant in an interaction be from the named species. By default, we require that both participants are from the named species. This can be controlled by the speciesExclusive logical argument to the interactions method.

number of molecules (or identifiers):

the REST interface permits only zero, one or two gene or protein identifiers per query. We allow any number, zero or more and, when the number is greater than or equal to two, the interactions returned are only those in which any two of those identifiers participate. If you want all interactions which include any of a list of identifiers, and you don't care to control for their partners, you can accomplish this by issuing successive single-identifer interaction queries.

Constructor

PSICQUIC: contacts the central PSICQUIC web server, discovers currently functioning servers, returns an object used in the methods below.

Methods

providers(x): lists the short names of the data providers

interactions(x,id, species, speciesExclusive, type, provider,detectionMethod, publicationID, quiet): retrieves all interactions matching the specified pattern.

rawQuery(x, provider, rawArgs): query terms in native PSICQUIC REST style

show(x): displays current providers and related data

Functions

detectionMethods(): your web browser will display the PSI-MI ontology for detection methods

interactionTypes(): your web browser will display the PSI-MI ontology for molecular interaction types

Author(s)

Paul Shannon

See Also

providers, interactions, rawQuery, addGeneInfo, IDMapper, interactionTypes, detectionMethods, speciesIDs

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
   psicquic <- PSICQUIC()
     # obtain the list of two dozen (or so) currently live
     # PSICQUIC-compliant data providers
   providers(psicquic)
     # a minimal call: get all interactions with MAP3K3, of all types,
     # from all providers.  a data.frame is returned
   tbl.0 <- interactions(psicquic, "MAP3K3", species="9606")

     # build a contingency table, sort it, and see
     # what kinds of interactions were returned, obtained
     # by what detection methods.
     # "-" is used when the provider does not specify a value.
     # you will see a wide range of specificity, in detection method,
     # interaction type, and number of interactions found.

   xtab <- with(tbl.0, as.data.frame(
                table(type, detectionMethod,  provider)))
   xtab <- subset(xtab, Freq > 0) # [order(xtab$Freq, decreasing=TRUE),]
   xtab <- xtab[order(xtab$Freq, decreasing=TRUE),]

     # what interactors were returned?  the IDMapper class in this
     # package converts many PSICQUIC providers' protein identifiers to
     # entrez geneIDs and HUGO gene symbols, via remote calls to
     # biomaRt:

   idMapper <- IDMapper("9606")
   tbl.0g <- addGeneInfo(idMapper, tbl.0)
   with(tbl.0g, head(unique(c(A.name, B.name))))

      # we see that MAP2K5 is the most frequently mentioned interacator:

   xtab.sym <- with(tbl.0g, table(c(A.name, B.name)))
   head(sort(xtab.sym, decreasing=TRUE))

      # PSIQUIC uses well-devloped ontologies -- controlled vocabularies --
      # which are currently best viewed in a web browser.
      # we provide two convenience functions which will display these
      # hierarchically defined vocabularies:

   # interactionTypes()
   # detectionMethods()

      # NCBI curates taxonomy codes, such as "9606" for Homo sapiens.
      # you can find these codes by using this method, which will
      # drive your browser to the appropriate NCBI web page.

   # speciesIds()

      # use terms from these vocabularies to retrieve interaction
      # information for these two proteins.  note that both of
      # these terms are mid-level in their respective hierarchies
      # and will likely retrieve more specific nested terms

   tbl.2 <- interactions(psicquic, id=c("MAP3K3", "MAP2K5"),
                         species="9606",
                         type="physical association",
                         detectionMethod="affinity chromatography technology")

      # add gene IDs and symbols

   tbl.2g <- addGeneInfo(idMapper, tbl.2)

      # how many publications lie behind these interactions?
   tbl.2g[, c("A.name", "B.name", "detectionMethod", "firstAuthor")]

      # the package also provides a convenience method for submitting
      # queries in native MIQL (Molecular Interaction Query Language).
      # the language is defined here:
      # http://code.google.com/p/psicquic/wiki/MiqlReference27

   if("BioGrid" %in% providers(psicquic)){
      tbl.3 <- rawQuery(psicquic, "BioGrid", "identifier:ALK AND species:9606")
         # what publications?
      table(tbl.3$V8)
      }