AnnDbObj-objects {AnnotationDbi} | R Documentation

## AnnDbObj objects

### Description

The AnnDbObj class is the most general container for storing any kind of SQLite-based annotation data.

### Details

Many classes in AnnotationDbi inherit directly or indirectly from the AnnDbObj class. One important particular case is the AnnDbBimap class which is the lowest class in the AnnDbObj hierarchy to also inherit the Bimap interface.

### Accessor-like methods

In the code snippets below, `x` is an AnnDbObj object.

  `dbconn(x)`: Return a connection object to the SQLite DB containing `x`'s data.

  `dbfile(x)`: Return the path (character string) to the SQLite DB (file) containing `x`'s data.

  `dbmeta(x, name)`: Print the value of metadata whose name is 'name'. Also works if `x` is a DBIConnection object.

  `dbschema(x, file="", show.indices=FALSE)`: Print the schema definition of the SQLite DB. Also works if `x` is a DBIConnection object.

  The `file` argument must be a connection, or a character string naming the file to print to (see the `file` argument of the `cat` function for the details).

  The CREATE INDEX statements are not shown by default. Use `show.indices=TRUE` to get them.

  `dbInfo(x)`: Prints other information about the SQLite DB. Also works if `x` is a DBIConnection object.

### See Also

`dbConnect`, `dbListTables`, `dbListFields`, `dbGetQuery`, Bimap

### Examples

      library("hgu95av2.db")

      dbconn(hgu95av2ENTREZID)              # same as hgu95av2_dbconn()
      dbfile(hgu95av2ENTREZID)              # same as hgu95av2_dbfile()

      dbmeta(hgu95av2_dbconn(), "ORGANISM")
      dbmeta(hgu95av2_dbconn(), "DBSCHEMA")
      dbmeta(hgu95av2_dbconn(), "DBSCHEMAVERSION")

      library("DBI")
      dbListTables(hgu95av2_dbconn())       #lists all tables on connection

      ## If you use dbSendQuery instead of dbGetQuery
      ## (NOTE: for ease of use, this is defintitely NOT reccomended)
      ## Then you may need to know how to list results objects
      dbListResults(hgu95av2_dbconn())      #for listing results objects

      ## Sometimes you may want to see all the SQLite databases that are
      ## presently connected in your session. To do that you have to specify
      ## the driver:
      library("RSQLite")
      drvr <- dbDriver("SQLite")        #gets the driver for SQLite
      dbListConnections(drvr)         #List all DB Connections using drvr

      dbListFields(hgu95av2_dbconn(), "probes")
      dbListFields(hgu95av2_dbconn(), "genes")
      dbschema(hgu95av2ENTREZID)        # same as hgu95av2_dbschema()
      ## According to the schema, the probes._id column references the genes._id
      ## column. Note that in all tables, the "_id" column is an internal id with
      ## no biological meaning (provided for allowing efficient joins between
      ## tables).
      ## To retrieve the mapping between manufacturer IDs and Entrez Gene IDs:
      dbGetQuery(hgu95av2_dbconn(), "SELECT * FROM probes INNER JOIN genes USING(_id) LIMIT 10")
      ## This mapping is in fact the ENTREZID map:
      toTable(hgu95av2ENTREZID)[1:10, ] # only relevant columns are retrieved

      dbInfo(hgu95av2GO)                # same as hgu95av2_dbInfo()

      ##Advanced example:
      ##Sometimes you may wish to join data from across multiple databases at
      ##once:
      ## In the following example we will attach the GO database to the
      ## hgu95av2 database, and then grab information from separate tables
      ## in each database that meet a common criteria.
      library(hgu95av2.db)
      library("GO.db")
      attachSql <- paste('ATTACH "', GO_dbfile(), '" as go;', sep = "")
      dbGetQuery(hgu95av2_dbconn(), attachSql)
      sql <- 'SELECT  DISTINCT a.go_id AS "hgu95av2.go_id",
               a._id AS "hgu95av2._id",
               g.go_id AS "GO.go_id", g._id AS "GO._id",
               g.term, g.ontology, g.definition
               FROM go_bp_all AS a, go.go_term AS g
               WHERE a.go_id = g.go_id LIMIT 10;'
      data <- dbGetQuery(hgu95av2_dbconn(), sql)
      data
      ## For illustration purposes, the internal id "_id" and the "go_id"
      ## from both tables is included in the output.  This makes it clear
      ## that the "go_ids" can be used to join these tables but the internal
      ## ids can NOT.  The internal IDs (which are always shown as _id) are
      ## suitable for joins within a single database, but cannot be used
      ## across databases.

[Package AnnotationDbi version 1.6.1 Index]