| annmatrix {annmatrix} | R Documentation |
annmatrix Objects and Basic Functionality
Description
Annotated matrix is a regular matrix with additional functionality for attaching persistent information about row and column entries. Annotations associated with rows and columns are preserved after subsetting, transposition, and various other matrix-specific operations.
Intended 'annmatrix' use case is for storing and manipulating genomic
datasets that typically consist of a matrix of measurements (like gene
expression values) as well as annotations about rows (i.e. genomic
locations) and annotations about columns (i.e. meta-data about collected
samples). But annmatrix objects are also expected be useful in
various other contexts.
Usage
annmatrix(x, rann, cann)
rowanns(x, names)
rowanns(x, names) <- value
colanns(x, names)
colanns(x, names) <- value
## S3 method for class 'annmatrix'
@(object, name)
## S3 replacement method for class 'annmatrix'
@(object, name) <- value
## S3 method for class 'annmatrix'
x$name
## S3 replacement method for class 'annmatrix'
x$name <- value
Arguments
x, object |
an R object. |
rann |
annotation |
cann |
annotation |
names |
a character vector of existing row/column annotation names. |
value |
a value that will be assigned to row/column annotation field. |
name |
a name of an existing row/column annotation. |
Details
annmatrix() constructs an annmatrix. The function expects x to
be a matrix and rowanns and colanns to be of class
data.frame. If the passed objects are of a different classes they
will be converted via the use of as.matrix and as.data.frame.
rowanns and colanns returns the selected field from column and
row annotations respectively. When the selected field is not specified the
whole annotation data.frame is returned.
@ and $ are convenience shortcuts for selecting annotations.
X@value selects an existing column from row annotations while
X$value selects a column from column annotations. An empty selection
of X@'' and X$'' will return the whole annotation data.frame
for rows and columns respectively.
rowanns<- and colanns<- functions can be used to replace the
column and row annotations respectively. When the selected field is not
specified the whole annotation data.frame is replaced.
@<- and $<- are convenience shortcuts for the above (see
Examples). A replacement of an empty value - X@'' <- df and
X$'' <- df will replace the whole annotation data.frame.
Value
annmatrix returns an R object of class 'annmatrix'.
Author(s)
Karolis Koncevičius
See Also
as.annmatrix
Examples
# construct annmatrix object
x <- matrix(rnorm(20*10), 20, 10)
coldata <- data.frame(group = rep(c("case", "control"), each = 5),
gender = sample(c("M", "F"), 10, replace = TRUE))
rowdata <- data.frame(chr = sample(c("chr1", "chr2"), 20, replace = TRUE),
pos = runif(20, 0, 1000000))
X <- annmatrix(x, rowdata, coldata)
is.matrix(x)
is.matrix(X)
is.annmatrix(x)
is.annmatrix(X)
# manipulating annotations without using shortcuts
rowanns(X)
colanns(X)
rowanns(X, "chr")
rowanns(X, "gene") <- letters[1:20]
rowanns(X, c("chr", "gene"))
rowanns(X, "gene") <- NULL
rowanns(X)
colanns(X, "group")
colanns(X, "age") <- 1:10*10
colanns(X, "age")
colanns(X, "age") <- NULL
colanns(X, "age")
# more convenient
X@''
X@chr
X@gene <- letters[1:20]
X@gene
X@gene <- NULL
X@gene
X$''
X$group
X$age <- 1:10*10
X$age
X$age <- NULL
X$age
X$'' <- data.frame(id = 1:10, name = LETTERS[1:10])
X$name
# annotations are preserved after subsetting
Y <- X[X@chr == "chr1", X$name %in% c("A", "B", "C")]
Y@chr
Y$''
Y[, 1]
Y[, 1, drop = FALSE]