reduced.dim.matrix: The reduced.dim.matrix class

Description Constructor Subsetting Combining Author(s) See Also Examples

View source: R/reduced.dim.matrix.R

Description

A matrix class that retains its attributes upon being subsetted or combined. This is useful for storing metadata about a dimensionality reduction result alongside the matrix, and for ensuring that the metadata persists when the matrix is stored inside reducedDims.

Constructor

reduced.dim.matrix(x, ...) will return a reduced.dim.matrix object, given a matrix input x. Arguments in ... should be named and are stored as custom attributes in the output. Any arguments named dim or dimnames are ignored.

Subsetting

x[i, j, ..., drop=FALSE] will subset a reduced.dim.matrix x in the same manner as a base matrix. The only difference is that a reduced.dim.matrix will be returned, retaining any custom attributes in x. Note that no custom attributes are retained if the return value is a vector with drop=TRUE.

Combining

rbind(...) will combine multiple reduced.dim.matrix inputs in ... by row, while cbind(...) will combine those inputs by column.

If the custom attributes are the same across all objects ..., a reduced.dim.matrix is returned containing all combined rows/columns as well as the custom attributes.

If the custom attributes are different, a warning is issued. A matrix is returned containing all combined rows/columns; no custom attributes are retained.

Author(s)

Aaron Lun

See Also

reducedDims, to store these objects in a SingleCellExperiment.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Typical PC result, with metadata stored in the attributes:
pc <- matrix(runif(500), ncol=5)
attr(pc, "sdev") <- 1:100
attr(pc, "rotation") <- matrix(rnorm(20), ncol=5)

# Disappears upon subsetting and combining!
attributes(pc[1:10,])
attributes(rbind(pc, pc))

# Transformed into a reduced.dim.matrix:
rd.pc <- reduced.dim.matrix(pc)

attributes(rd.pc[1:10,])
attributes(rbind(rd.pc, rd.pc))

LTLA/SingleCellExperiment documentation built on May 25, 2021, 3:42 a.m.