AnnDbObj-objects | R Documentation |
The AnnDbObj class is the most general container for storing any kind of SQLite-based annotation data.
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.
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.
dbConnect
,
dbListTables
,
dbListFields
,
dbGetQuery
,
Bimap
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
## You can also list the fields by using this connection
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).
## The information about the probe to gene mapping is in probes:
dbGetQuery(hgu95av2_dbconn(), "SELECT * FROM probes 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.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.