Skip to contents

Integrate layers of a Seurat object using one or more integration methods.

Available integration methods are listed at the bottom of this page. DoIntegrate() works best with SeuratIntegrate's methods.

Usage

DoIntegrate(
  object,
  ...,
  use.hvg = TRUE,
  use.future = TRUE,
  future.globals.size = getOption("future.globals.maxSize")
)

Arguments

object

A Seurat object

...

one or more integration method call(s) to correct batch effects with. Must be of the form package::MethodIntegration(). It is recommended to use :: because it is safer in case of namespace collision or if the package is not attached nor loaded. Don't forget the parentheses.

use.hvg

whether to use highly variable genes. FALSE causes all the features present in the assay to be used.

use.future

whether to use future to run integrations in a background session. Useful when python-based algorithms are invoked.

future.globals.size

maximum allowed size (in bytes) of global variables to export. By default, uses the value of the option "future.globals.maxSize". If it is NULL, thrice the size of the Seurat object is used. Inoperative when use.future = FALSE

Value

the updated Seurat object enriched with the integration methods' outputs.

Details

Each call to an integration method require parentheses. Parameter values specific to each method can be enclosed between these brackets, although the defaults arguments should be good enough for most cases. Note that for each integration method, the argument values specified in its call supersede DoIntegrate's internal computations. For instance,


DoIntegrate(seu,
            SeuratIntegrate::CombatIntegration(features = Features(seu)),
            Seurat::CCAIntegration(),
            use.hvg = TRUE)

forces ComBat but not CCA to use all features instead of the variable ones.

Note

The desired value of parameters use.hvg, use.future and future.globals.size can be different for each method called. Hence, they accept vectors with more than one element. They must be in the same order as the integration method calls.

This unconventional way of calling methods presents a few advantages: With a single call to DoIntegrate, you can perform multiple integrations at once, while preserving the flexibility of an individual method call by fine-tuning integration-specific parameters.