Integration_SCP: Integration_SCP

View source: R/SCP-workflow.R

Integration_SCPR Documentation

Integration_SCP

Description

Integrate single-cell RNA-seq data using various integration methods.

Usage

Integration_SCP(
  srtMerge = NULL,
  batch,
  append = TRUE,
  srtList = NULL,
  assay = NULL,
  integration_method = "Uncorrected",
  do_normalization = NULL,
  normalization_method = "LogNormalize",
  do_HVF_finding = TRUE,
  HVF_source = "separate",
  HVF_method = "vst",
  nHVF = 2000,
  HVF_min_intersection = 1,
  HVF = NULL,
  do_scaling = TRUE,
  vars_to_regress = NULL,
  regression_model = "linear",
  scale_within_batch = FALSE,
  linear_reduction = "pca",
  linear_reduction_dims = 50,
  linear_reduction_dims_use = NULL,
  linear_reduction_params = list(),
  force_linear_reduction = FALSE,
  nonlinear_reduction = "umap",
  nonlinear_reduction_dims = c(2, 3),
  nonlinear_reduction_params = list(),
  force_nonlinear_reduction = TRUE,
  neighbor_metric = "euclidean",
  neighbor_k = 20L,
  cluster_algorithm = "louvain",
  cluster_resolution = 0.6,
  seed = 11,
  ...
)

Arguments

srtMerge

A merged Seurat object that includes the batch information.

batch

A character string specifying the batch variable name.

append

Logical, if TRUE, the integrated data will be appended to the original Seurat object (srtMerge).

srtList

A list of Seurat objects to be checked and preprocessed.

assay

The name of the assay to be used for downstream analysis.

integration_method

A character string specifying the integration method to use. Supported methods are: "Uncorrected", "Seurat", "scVI", "MNN", "fastMNN", "Harmony", "Scanorama", "BBKNN", "CSS", "LIGER", "Conos", "ComBat". Default is "Uncorrected".

do_normalization

A logical value indicating whether data normalization should be performed.

normalization_method

The normalization method to be used. Possible values are "LogNormalize", "SCT", and "TFIDF". Default is "LogNormalize".

do_HVF_finding

A logical value indicating whether highly variable feature (HVF) finding should be performed. Default is TRUE.

HVF_source

The source of highly variable features. Possible values are "global" and "separate". Default is "separate".

HVF_method

The method for selecting highly variable features. Default is "vst".

nHVF

The number of highly variable features to select. Default is 2000.

HVF_min_intersection

The feature needs to be present in batches for a minimum number of times in order to be considered as highly variable. The default value is 1.

HVF

A vector of highly variable features. Default is NULL.

do_scaling

A logical value indicating whether to perform scaling. If TRUE, the function will force to scale the data using the ScaleData function.

vars_to_regress

A vector of variable names to include as additional regression variables. Default is NULL.

regression_model

The regression model to use for scaling. Options are "linear", "poisson", or "negativebinomial" (default is "linear").

scale_within_batch

Whether to scale data within each batch. Only valid when the integration_method is one of "Uncorrected", "Seurat", "MNN", "Harmony", "BBKNN", "CSS", "ComBat".

linear_reduction

The linear dimensionality reduction method to use. Options are "pca", "svd", "ica", "nmf", "mds", or "glmpca" (default is "pca").

linear_reduction_dims

The number of dimensions to keep after linear dimensionality reduction (default is 50).

linear_reduction_dims_use

The dimensions to use for downstream analysis. If NULL, all dimensions will be used.

linear_reduction_params

A list of parameters to pass to the linear dimensionality reduction method.

force_linear_reduction

A logical value indicating whether to force linear dimensionality reduction even if the specified reduction is already present in the Seurat object.

nonlinear_reduction

The nonlinear dimensionality reduction method to use. Options are "umap","umap-naive", "tsne", "dm", "phate", "pacmap", "trimap", "largevis", or "fr" (default is "umap").

nonlinear_reduction_dims

The number of dimensions to keep after nonlinear dimensionality reduction. If a vector is provided, different numbers of dimensions can be specified for each method (default is c(2, 3)).

nonlinear_reduction_params

A list of parameters to pass to the nonlinear dimensionality reduction method.

force_nonlinear_reduction

A logical value indicating whether to force nonlinear dimensionality reduction even if the specified reduction is already present in the Seurat object.

neighbor_metric

The distance metric to use for finding neighbors. Options are "euclidean", "cosine", "manhattan", or "hamming" (default is "euclidean").

neighbor_k

The number of nearest neighbors to use for finding neighbors (default is 20).

cluster_algorithm

The clustering algorithm to use. Options are "louvain", "slm", or "leiden" (default is "louvain").

cluster_resolution

The resolution parameter to use for clustering. Larger values result in fewer clusters (default is 0.6).

seed

An integer specifying the random seed for reproducibility. Default is 11.

...

Additional arguments to be passed to the integration method function.

Value

A Seurat object.

See Also

Seurat_integrate scVI_integrate MNN_integrate fastMNN_integrate Harmony_integrate Scanorama_integrate BBKNN_integrate CSS_integrate LIGER_integrate Conos_integrate ComBat_integrate Standard_SCP

Examples

data("panc8_sub")
panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Uncorrected"
)
CellDimPlot(panc8_sub, group.by = c("tech", "celltype"))

panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Uncorrected",
  HVF_min_intersection = 5
)
CellDimPlot(panc8_sub, group.by = c("tech", "celltype"))

panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Uncorrected",
  HVF_min_intersection = 5, scale_within_batch = TRUE
)
CellDimPlot(panc8_sub, group.by = c("tech", "celltype"))

panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Seurat"
)
CellDimPlot(panc8_sub, group.by = c("tech", "celltype"))

panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Seurat",
  FindIntegrationAnchors_params = list(reduction = "rpca")
)
CellDimPlot(panc8_sub, group.by = c("tech", "celltype"))

## Not run: 
integration_methods <- c(
  "Uncorrected", "Seurat", "scVI", "MNN", "fastMNN", "Harmony",
  "Scanorama", "BBKNN", "CSS", "LIGER", "Conos", "ComBat"
)
for (method in integration_methods) {
  panc8_sub <- Integration_SCP(
    srtMerge = panc8_sub, batch = "tech",
    integration_method = method,
    linear_reduction_dims_use = 1:50,
    nonlinear_reduction = "umap"
  )
  print(CellDimPlot(panc8_sub,
    group.by = c("tech", "celltype"),
    reduction = paste0(method, "UMAP2D"),
    xlab = "", ylab = "", title = method,
    legend.position = "none", theme_use = "theme_blank"
  ))
}

nonlinear_reductions <- c("umap", "tsne", "dm", "phate", "pacmap", "trimap", "largevis", "fr")
panc8_sub <- Integration_SCP(
  srtMerge = panc8_sub, batch = "tech",
  integration_method = "Seurat",
  linear_reduction_dims_use = 1:50,
  nonlinear_reduction = nonlinear_reductions
)
for (nr in nonlinear_reductions) {
  print(CellDimPlot(panc8_sub,
    group.by = c("tech", "celltype"),
    reduction = paste0("Seurat", nr, "2D"),
    xlab = "", ylab = "", title = nr,
    legend.position = "none", theme_use = "theme_blank"
  ))
}

## End(Not run)


zh542370159/SCP documentation built on Nov. 22, 2023, 2:34 a.m.