Package: scib
Benchmarking atlas-level data integration in single-cell genomicsThis repository contains the code for thescibpackage used in our benchmarking study for data integration tools.
Inour study, we benchmark 16 methods (see Tools) with 4 combinations of
preprocessing steps leading to 68 methods combinations on 85 batches of gene expression and chromatin accessibility
data.ResourcesThe git repository of thescibpackageand
itsdocumentation.The reusable pipeline we used in the study can be found in the
separatescib pipelinerepository. It is reproducible and automates
the computation of preprocesssing combinations, integration methods and benchmarking metrics.On ourwebsitewe visualise the results of the study.For reproducibility and visualisation we have a dedicated
repository:scib-reproducibility.Please cite:Luecken, M.D., Büttner, M., Chaichoompu, K. et al. Benchmarking atlas-level data integration in single-cell genomics.
Nat Methods 19, 41–50 (2022).https://doi.org/10.1038/s41592-021-01336-8Package: scibWe created the python package calledscibthat usesscanpyto streamline the integration of single-cell datasets and
evaluate the results. The package contains several modules for preprocessing ananndataobject, running integration
methods and evaluating the resulting using a number of metrics. For preprocessing,scib.preprocessing(orscib.pp)
contains functions for normalising, scaling or batch-aware selection of highly variable genes. Functions for the
integration methods are inscib.integrationor for shortscib.igand metrics are underscib.metrics(orscib.me).Thescibpython package is available onPyPIand can be installed throughpip install scibImportscibin python:importscibOptional DependenciesThe package contains optional dependencies that need to be installed manually if needed.
These include R dependencies (rpy2,anndata2ri) which require an installation of R integration method packages.
All optional dependencies are listed undersetup.cfgunder[options.extras_require]and can be installed through pip.e.g. for installingrpy2andbbknndependencies:pip install 'scib[rpy2,bbknn]'Optional dependencies outside of python need to be installed separately.
For instance, in order to run kBET, install it via the following command in R:install.packages('remotes')remotes::install_github('theislab/kBET')MetricsWe implemented different metrics for evaluating batch correction and biological conservation in thescib.metricsmodule.Biological ConservationBatch CorrectionCell type ASWCell cycle conservationGraph cLISIAdjusted rand index (ARI) for cell labelNormalised mutual information (NMI) for cell labelHighly variable gene conservationIsolated label ASWIsolated label F1Trajectory conservationBatch ASWPrincipal component regressionGraph iLISIGraph connectivitykBET (K-nearest neighbour batch effect)For a detailed description of the metrics implemented in this package, please see ourpublicationand the packagedocumentation.Integration ToolsTools that are compared include:BBKNN1.3.9CombatpaperConos1.3.0DESC2.0.3FastMNN(batchelor 1.4.0)Harmony1.0LIGER0.5.0MNN0.1.9.5SAUCIEScanorama1.7.0scANVI(scVI 0.6.7)scGen1.1.5scVI0.6.7Seurat v33.2.0 CCA (default) and RPCATrVae0.0.1TrVaep0.1.0DevelopmentFor developing this package, please make sure to install additional dependencies so that you can usepytestandpre-commit.pipinstall-e'.[test,dev]'Please refer to thesetup.cfgfor more optional dependencies.Installpre-committo the repository for running it automatically every time you commit in git.pre-commitinstall