Variance Stabilizing Transformations for Single Cell UMI Data

A normalization method for single-cell UMI count data using a variance stabilizing transformation. The transformation is based on a negative binomial regression model with regularized parameters. As part of the same regression framework, this package also provides functions for batch correction, and data correction. See Hafemeister and Satija 2019 for more details.

R package for normalization and variance stabilization of single-cell RNA-seq data using regularized negative binomial regression

This packaged was developed by Christoph Hafemeister in Rahul Satija's lab at the New York Genome Center. Core functionality of this package has been integrated into Seurat, an R package designed for QC, analysis, and exploration of single cell RNA-seq data.

Quick start

devtools::install_github(repo = 'ChristophH/sctransform')
normalized_data <- sctransform::vst(umi_count_matrix)$y


For usage examples see vignettes in inst/doc or use the built-in help after installation

Available vignettes:
Variance stabilizing transformation
Using sctransform in Seurat


Hafemeister, C. & Satija, R. Normalization and variance stabilization of single-cell RNA-seq data using regularized negative binomial regression. bioRxiv 576827 (2019). doi:10.1101/576827

An early version of this work was used in the paper Developmental diversification of cortical inhibitory interneurons, Nature 555, 2018.


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.2.0 by Christoph Hafemeister, 2 months ago

Report a bug at

Browse source code at

Authors: Christoph Hafemeister [aut, cre]

Documentation:   PDF Manual  

GPL-3 | file LICENSE license

Imports MASS, Matrix, methods, future, future.apply, ggplot2, reshape2, gridExtra, Rcpp

Suggests irlba, testthat

Linking to Rcpp, RcppEigen

Imported by Seurat.

See at CRAN