SnpAnnotationDataFrame | R Documentation |
The SnpAnnotationDataFrame class stores annotation data associated with
SNPs, as well as metadata describing each column. It extends the
AnnotatedDataFrame
class.
AnnotatedDataFrame
SnpAnnotationDataFrame(data, metadata)
:
data
must be a data.frame containing the SNP annotation.
It must contain at least the following columns:
"snpID": integer vector containing unique SNP ids.
"chromosome": integer vector containing chromosome codes.
"position": integer vector containing position (in base pairs) on the chromosome.
Default values for chromosome codes are 1-22=autosome, 23=X, 24=XY, 25=Y,
26=M. The defaults may be changed with the arguments autosomeCode
,
XchromCode
, XYchromCode
, YchromCode
, and
MchromCode
.
metadata
is an optional data.frame containing a description
for each column in data
. It should contain a column
"labelDescription", with row.names(metadata) == names(data)
.
The SnpAnnotationDataFrame
constructor creates and returns
a SnpAnnotationDataFrame instance.
In the code snippets below, object
is a SnpAnnotationDataFrame
object.
getSnpID(object, index)
: A unique integer vector of snp
IDs. The optional index
is a logical or
integer vector specifying elements to extract.
getChromosome(object, index, char=FALSE)
: A vector of
chromosomes. The optional index
is a logical or
integer vector specifying elements to extract.
If char=FALSE
(default), returns an integer vector.
If char=TRUE
, returns a character vector with elements in
(1:22,X,XY,Y,M,U). "U" stands for "Unknown" and is the value
given to any chromosome code not falling in the other categories.
getPosition(object, index)
: An integer vector of base pair
positions. The optional index
is a logical or
integer vector specifying elements to extract.
getAlleleA(object, index)
: A character vector of A alleles.
The optional index
is a logical or
integer vector specifying elements to extract.
getAlleleB(object, index)
: A character vector of B alleles.
The optional index
is a logical or
integer vector specifying elements to extract.
getVariable(object, varname, index)
: A vector of the
column varname
. The optional index
is a logical or
integer vector specifying elements to extract.
If varname
is itself a vector, returns a data.frame.
Returns NULL
if
varname
is not found in object
.
hasVariable(object, varname)
: Returns TRUE
if
varname
is a column in object
, FALSE
if not.
getVariableNames(object)
: Returns a character vector with
the names of all columns in object
.
getAnnotation(object)
: Returns all annotation variables
as a data frame.
getMetadata(object)
: Returns metadata describing the
annotation variables as a data frame.
Inherited methods from
AnnotatedDataFrame
:
varLabels(object)
: Returns a character vector with
the names of all columns in object
.
pData(object)
: Returns all annotation variables
as a data frame, or sets the annotation variables with
pData(object) <- df
.
varMetadata(object)
: Returns metadata describing the
annotation variables as a data frame, or sets the metadata with
varMetadata(object) <- df
.
The operators [
, $
, and [[
work just as they do in
standard data frames, for both retrieval and assignment.
autosomeCode(object)
: Returns the integer codes for the
autosomes.
XchromCode(object)
: Returns the integer code for the X
chromosome.
XYchromCode(object)
: Returns the integer code for the
pseudoautosomal region.
YchromCode(object)
: Returns the integer code for the Y
chromosome.
MchromCode(object)
: Returns the integer code for
mitochondrial SNPs.
Stephanie Gogarten
AnnotatedDataFrame
, ScanAnnotationDataFrame
,
GenotypeData
, IntensityData
library(GWASdata)
data(illumina_snp_annot)
snpAnnot <- SnpAnnotationDataFrame(illumina_snp_annot)
# list columns
varLabels(snpAnnot)
# add metadata
meta <- varMetadata(snpAnnot)
meta["snpID", "labelDescription"] <- "unique integer ID"
varMetadata(snpAnnot) <- meta
# get snpID and chromosome
snpID <- getSnpID(snpAnnot)
chrom <- getChromosome(snpAnnot)
# get positions only for chromosome 22
pos22 <- getPosition(snpAnnot, index=(chrom == 22))
# get rsID
if (hasVariable(snpAnnot, "rsID")) rsID <- getVariable(snpAnnot, "rsID")
# display data
head(pData(snpAnnot))
# standard operators
snpID <- snpAnnot$snpID
chrom <- snpAnnot[["chromosome"]]
subset <- snpAnnot[1:10, 1:5]
snpAnnot$newVar <- rep(1, nrow(snpAnnot))
# replace data
df <- pData(snpAnnot)
pData(snpAnnot) <- df
# PLINK chromosome coding
snpID <- 1:10
chrom <- c(rep(1L,5), 23:27)
pos <- 101:110
df <- data.frame(snpID=snpID, chromosome=chrom, position=pos)
snpAnnot <- SnpAnnotationDataFrame(df, YchromCode=24L, XYchromCode=25L)
getChromosome(snpAnnot, char=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.