combine: Combining or subsetting SingleCellExperiment objects

SCE-combineR Documentation

Combining or subsetting SingleCellExperiment objects

Description

An overview of methods to combine multiple SingleCellExperiment objects by row or column, or to subset a SingleCellExperiment by row or column. These methods are useful for ensuring that all data fields remain synchronized when cells or genes are added or removed.

Combining

In the following code snippets, ... contains one or more SingleCellExperiment objects.

rbind(..., deparse.level=1):

Returns a SingleCellExperiment where all objects in ... are combined row-wise, i.e., rows in successive objects are appended to the first object.

Refer to ?"rbind,SummarizedExperiment-method" for details on how metadata is combined in the output object. Refer to ?rbind for the interpretation of deparse.level.

Note that all objects in ... must have the exact same values for reducedDims and altExps. Any sizeFactors should either be NULL or contain the same values across objects.

cbind(..., deparse.level=1):

Returns a SingleCellExperiment where all objects in ... are combined column-wise, i.e., columns in successive objects are appended to the first object.

Each object x in ... must have the same values of reducedDimNames(x) (though they can be unordered). Dimensionality reduction results with the same name across objects will be combined row-wise to create the corresponding entry in the output object.

Each object x in ... must have the same values of altExpNames(x) (though they can be unordered). Alternative Experiments with the same name across objects will be combined column-wise to create the corresponding entry in the output object.

sizeFactors should be either set to NULL in all objects, or set to a numeric vector in all objects.

Refer to ?"cbind,SummarizedExperiment-method" for details on how metadata is combined in the output object. Refer to ?cbind for the interpretation of deparse.level.

In the following code snippets, x is a SingleCellExperiment and ... contains multiple SingleCellExperiment objects.

combineCols(x, ..., delayed=TRUE, fill=NA, use.names=TRUE):

Returns a SingleCellExperiment where all objects are flexibly combined by column. The assays and colData are combined as described in ?"combineCols,SummarizedExperiment-method", where assays or DataFrame columns missing in any given object are filled in with missing values before combining.

Entries of the reducedDims with the same name across objects are combined by row. If a dimensionality reduction result is not present for a particular SingleCellExperiment, it is represented by a matrix of NA values instead. If corresponding reducedDim entries cannot be combined, e.g., due to inconsistent dimensions, they are omitted from the reducedDims of the output object with a warning.

Entries of the altExps with the same name across objects are combined by column using the relevant combineCols method. If a named entry is not present for a particular SingleCellExperiment, it is represented by a SummarizedExperiment with a single assay full of fill values. If entries cannot be combined, e.g., due to inconsistent dimensions, they are omitted from the altExps of the output object with a warning.

Entries of the colPairs with the same name across objects are concatenated together after adjusting the indices for each column's new position in the combined object. If a named entry is not present for a particular SingleCellExperiments, it is assumed to contribute no column pairings and is ignored.

Entries of the rowPairs with the same name should be identical across objects if use.names=FALSE. If use.names=TRUE, we attempt to merge together entries with the same name by taking the union of all column pairings. However, if the same cell has a different set of pairings across objects, a warning is raised and we fall back to the rowPair entry from the first object.

Subsetting

In the following code snippets, x is a SingleCellExperiment object.

x[i, j, ..., drop=TRUE]:

Returns a SingleCellExperiment containing the specified rows i and columns j.

i and j can be a logical, integer or character vector of subscripts, indicating the rows and columns respectively to retain. Either can be missing, in which case subsetting is only performed in the specified dimension. If both are missing, no subsetting is performed.

Arguments in ... and drop are passed to to [,SummarizedExperiment-method.

x[i, j, ...] <- value:

Replaces all data for rows i and columns j with the corresponding fields in a SingleCellExperiment value.

i and j can be a logical, integer or character vector of subscripts, indicating the rows and columns respectively to replace. Either can be missing, in which case replacement is only performed in the specified dimension. If both are missing, x is replaced entirely with value.

If j is specified, value is expected to have the same name and order of reducedDimNames and altExpNames as x. If sizeFactors is set for x, it should also be set for value.

Arguments in ... are passed to the corresponding SummarizedExperiment method.

Author(s)

Aaron Lun

Examples

example(SingleCellExperiment, echo=FALSE) # using the class example

# Combining:
rbind(sce, sce)
cbind(sce, sce)

# Subsetting:
sce[1:10,]
sce[,1:5]

sce2 <- sce
sce2[1:10,] <- sce[11:20,]

# Can also use subset()
sce$WHEE <- sample(LETTERS, ncol(sce), replace=TRUE)
subset(sce, , WHEE=="A")

# Can also use split()
split(sce, sample(LETTERS, nrow(sce), replace=TRUE))


drisso/SingleCellExperiment documentation built on March 28, 2024, 7:49 a.m.