Seurat-RPCA Integration
RPCAIntegration(
object = NULL,
assay = NULL,
layers = NULL,
orig = NULL,
new.reduction = "integrated.dr",
reference = NULL,
features = NULL,
normalization.method = c("LogNormalize", "SCT"),
dims = 1:30,
k.filter = NA,
scale.layer = "scale.data",
dims.to.integrate = NULL,
k.weight = 100,
weight.reduction = NULL,
sd.weight = 1,
sample.tree = NULL,
preserve.order = FALSE,
verbose = TRUE,
...
)
A Seurat
object
Name of Assay
in the Seurat
object
Names of layers in assay
A dimensional reduction to correct
Name of new integrated dimensional reduction
A reference Seurat
object
A vector of features to use for integration
Name of normalization method used: LogNormalize or SCT
Dimensions of dimensional reduction to use for integration
Number of anchors to filter
Name of scaled layer in Assay
Number of dimensions to return integrated values for
Number of neighbors to consider when weighting anchors
Dimension reduction to use when calculating anchor weights. This can be one of:
A string, specifying the name of a dimension reduction present in all objects to be integrated
A vector of strings, specifying the name of a dimension reduction to use for each object to be integrated
A vector of DimReduc
objects, specifying the object to
use for each object in the integration
NULL, in which case the full corrected space is used for computing anchor weights.
Controls the bandwidth of the Gaussian kernel for weighting
Specify the order of integration. Order of integration
should be encoded in a matrix, where each row represents one of the pairwise
integration steps. Negative numbers specify a dataset, positive numbers
specify the integration results from a given row (the format of the merge
matrix included in the hclust
function output). For example:
matrix(c(-2, 1, -3, -1), ncol = 2)
gives:
Which would cause dataset 2 and 3 to be integrated first, then the resulting object integrated with dataset 1.
If NULL, the sample tree will be computed automatically.
Do not reorder objects based on size for each pairwise integration.
Print progress
Arguments passed on to FindIntegrationAnchors
if (FALSE) {
# Preprocessing
obj <- SeuratData::LoadData("pbmcsca")
obj[["RNA"]] <- split(obj[["RNA"]], f = obj$Method)
obj <- NormalizeData(obj)
obj <- FindVariableFeatures(obj)
obj <- ScaleData(obj)
obj <- RunPCA(obj)
# After preprocessing, we run integration
obj <- IntegrateLayers(object = obj, method = RPCAIntegration,
orig.reduction = "pca", new.reduction = 'integrated.rpca',
verbose = FALSE)
# Reference-based Integration
# Here, we use the first layer as a reference for integraion
# Thus, we only identify anchors between the reference and the rest of the datasets,
# saving computational resources
obj <- IntegrateLayers(object = obj, method = RPCAIntegration,
orig.reduction = "pca", new.reduction = 'integrated.rpca',
reference = 1, verbose = FALSE)
# Modifying parameters
# We can also specify parameters such as `k.anchor` to increase the strength of
# integration
obj <- IntegrateLayers(object = obj, method = RPCAIntegration,
orig.reduction = "pca", new.reduction = 'integrated.rpca',
k.anchor = 20, verbose = FALSE)
# Integrating SCTransformed data
obj <- SCTransform(object = obj)
obj <- IntegrateLayers(object = obj, method = RPCAIntegration,
orig.reduction = "pca", new.reduction = 'integrated.rpca',
assay = "SCT", verbose = FALSE)
}