Merge Seurat Objects
# S3 method for Seurat
merge(
x = NULL,
y = NULL,
add.cell.ids = NULL,
collapse = FALSE,
merge.data = TRUE,
merge.dr = FALSE,
project = getOption(x = "Seurat.object.project", default = "SeuratProject"),
...
)
A Seurat
object
A single Seurat
object or a list of Seurat
objects
A character vector of length(x = c(x, y))
;
appends the corresponding values to the start of each objects' cell names
If TRUE
, merge layers of the same name together; if
FALSE
, appends labels
to the layer name
Merge the data slots instead of just merging the counts (which requires renormalization); this is recommended if the same normalization approach was applied to all objects
Choose how to handle merging dimensional reductions:
“TRUE
”: merge dimensional reductions with the same name
across objects; dimensional reductions with different names are added as-is
“NA
”: keep dimensional reductions from separate objects
separate; will append the project name for duplicate reduction names
“FALSE
”: do not add dimensional reductions
Project name for the Seurat
object
Arguments passed to other methods
merge
: Merged object
When merging Seurat objects, the merge procedure will merge the Assay level
counts and potentially the data slots (depending on the merge.data parameter).
It will also merge the cell-level meta data that was stored with each object
and preserve the cell identities that were active in the objects pre-merge.
The merge will optionally merge reductions depending on the values passed to
merge.dr
if they have the same name across objects. Here the
embeddings slots will be merged and if there are differing numbers of
dimensions across objects, only the first N shared dimensions will be merged.
The feature loadings slots will be filled by the values present in the first
object.The merge will not preserve graphs, logged commands, or feature-level
metadata that were present in the original objects. If add.cell.ids isn't
specified and any cell names are duplicated, cell names will be appended
with _X, where X is the numeric index of the object in c(x, y).
Seurat object, validity, and interaction methods
$.Seurat()
,
Seurat-class
,
Seurat-validity
,
[[.Seurat()
,
[[<-,Seurat
,
[[<-,Seurat,NULL
,
dim.Seurat()
,
dimnames.Seurat()
,
names.Seurat()
,
subset.Seurat()
# `merge' examples
# merge two objects
merge(pbmc_small, y = pbmc_small)
#> Warning: Some cell names are duplicated across objects provided. Renaming to enforce unique cell names.
#> An object of class Seurat
#> 230 features across 160 samples within 1 assay
#> Active assay: RNA (230 features, 0 variable features)
#> 2 layers present: counts, data
# to merge more than two objects, pass one to x and a list of objects to y
merge(pbmc_small, y = c(pbmc_small, pbmc_small))
#> Warning: Some cell names are duplicated across objects provided. Renaming to enforce unique cell names.
#> An object of class Seurat
#> 230 features across 240 samples within 1 assay
#> Active assay: RNA (230 features, 0 variable features)
#> 2 layers present: counts, data