Use batch balanced KNN (BBKNN) in R
BBKNN is a fast and intuitive batch effect removal tool for single-cell data. It is originally used in the scanpy workflow, and now can be used with Seurat seamlessly.
bbknnR has been tested on R versions >= 4.1. Please consult the DESCRIPTION file for more details on required R packages. bbknnR has been tested on Linux platforms
To use the full features of bbknnR, you also need to install the bbknn python package:
pip install bbknn
bbknnR has been released to CRAN:
install.packages("bbknnR")
or can be installed from github:
devtools::install_github("ycli1995/bbknnR")
library(bbknnR)
library(Seurat)
data("panc8_small")
panc8_small <- RunBBKNN(panc8_small, batch_key = "tech")
- Fix
trim <- trim %||% 10 * ncol(nn.idx). The correct code should betrim <- trim %||% (10 * ncol(nn.idx)). (#10)
- Add
k_build_nndescent = 30parameter to match the implementation of pythonbbknn.
- Remove
reticulatedependency. Now use kNN algorithms provided byRcppAnnoyandrnndescent - Add
return.umap.modelforRunBBKNN.Seurat - Improvements for
testthat
- Compatibility with Seurat v5
- Improvements for documentation and verbose.
- Explicit import of
get_dummies.()from tidytable - Fix a bug when pass only one
batch_keytoRidgeRegression()
- Import public function
similarity_graph()fromuwot==0.1.14incompute_connectivities_umap()to follow the CRAN policy
- Initially released to CRAN
Please cite this implementation R in if you use it:
Yuchen Li (2022). bbknnR: Use batch balanced KNN (BBKNN) in R.
package version 0.1.0 https://github.com/ycli1995/bbknnR
Please also cite the original publication of this algorithm.
Polanski, Krzysztof, et al. "BBKNN: fast batch alignment of single cell transcriptomes." Bioinformatics 36.3 (2020): 964-965.