Tools for Single Cell Genomics

A toolkit for quality control, analysis, and exploration of single cell RNA sequencing data. 'Seurat' aims to enable users to identify and interpret sources of heterogeneity from single cell transcriptomic measurements, and to integrate diverse types of single cell data. See Satija R, Farrell J, Gennert D, et al (2015) , Macosko E, Basu A, Satija R, et al (2015) , Stuart T, Butler A, et al (2019) , and Hao, Hao, et al (2020) for more details.

Build Status AppVeyor build status CRAN Version CRAN Downloads

Seurat is an R toolkit for single cell genomics, developed and maintained by the Satija Lab at NYGC.

Instructions, documentation, and tutorials can be found at:

Seurat is also hosted on GitHub, you can view and clone the repository at

Seurat has been successfully installed on Mac OS X, Linux, and Windows, using the devtools package to install directly from GitHub

Improvements and new features will be added on a regular basis, please contact [email protected] with any questions or if you would like to contribute

Version History

April 12, 2019

  • Version 3.0
  • Changes:
    • Preprint published describing new methods for identifying anchors across single-cell datasets
    • Restructured Seurat object with native support for multimodal data
    • Parallelization support via future

July 20, 2018

  • Version 2.4
  • Changes:
    • Java dependency removed and functionality rewritten in Rcpp

March 22, 2018

  • Version 2.3
  • Changes:
    • New utility functions
    • Speed and efficiency improvments

January 10, 2018

  • Version 2.2
  • Changes:
    • Support for multiple-dataset alignment with RunMultiCCA and AlignSubspace
    • New methods for evaluating alignment performance

October 12, 2017

  • Version 2.1
  • Changes:
    • Support for using MAST and DESeq2 packages for differential expression testing in FindMarkers
    • Support for multi-modal single-cell data via @assay slot

July 26, 2017

  • Version 2.0
  • Changes:
    • Preprint released for integrated analysis of scRNA-seq across conditions, technologies and species
    • Significant restructuring of code to support clarity and dataset exploration
    • Methods for scoring gene expression and cell-cycle phase

October 4, 2016

  • Version 1.4 released
  • Changes:
    • Improved tools for cluster evaluation/visualizations
    • Methods for combining and adding to datasets

August 22, 2016:

  • Version 1.3 released
  • Changes :
    • Improved clustering approach - see FAQ for details
    • All functions support sparse matrices
    • Methods for removing unwanted sources of variation
    • Consistent function names
    • Updated visualizations

May 21, 2015:

  • Drop-Seq manuscript published. Version 1.2 released
  • Changes :
    • Added support for spectral t-SNE and density clustering
    • New visualizations - including pcHeatmap, dot.plot, and feature.plot
    • Expanded package documentation, reduced import package burden
    • Seurat code is now hosted on GitHub, enables easy install through devtools
    • Small bug fixes

April 13, 2015:

  • Spatial mapping manuscript published. Version 1.1 released (initial release)



All notable changes to Seurat will be documented in this file. The format is based on Keep a Changelog

[3.0.0] - 2019-04-16


  • New method for identifying anchors across single-cell datasets
  • Parallelization support via future
  • Additional method for demultiplexing with MULTIseqDemux
  • Support normalization via sctransform
  • New option for clustering with the Leiden algorithm
  • Support for reading 10X v3 files
  • New function to export Seurat objects for the UCSC cell browser
  • Support for data import from Alevin outputs
  • Imputation of dropped out values via ALRA


  • Significant code restructuring
  • Most occurances of "gene(s)" in function names/arguments renamed to "feature(s)"
  • Changes to the Seurat object class to facilitate multimodal data
  • New BlendPlot implementation

[2.3.4] - 2018-07-13


  • GetIdent function added to pull identity info


  • DiffusionMap dependency replaced with destiny to avoid archival
  • Java dependency removed and functionality rewritten in Rcpp
  • Speed and efficiency improvements for Rcpp code
  • More robust duplicate handling in CellCycleScoring

[2.3.3] - 2018-07-02


  • New HTOHeatmap function
  • Support for custom PNG arguments for vector-friendly plotting
  • Fix for 'NA'-labeled cells disappearing with custom color scale


  • Replaced FNN with RANN
  • Removed unused compiler flags
  • Moved several lightly-used packages from 'imports' to 'suggests'

[2.3.2] - 2018-06-11


  • RenameCells added for easy renaming of all cells
  • Read10X_h5 added to read in 10X formatted h5 files
  • SetAssayData ensures cell order is the same between assay objects and the Seurat object
  • Compatability updates for ggplot2 v2.3.0

[2.3.1] - 2018-05-03


  • Support for UMAP dimensional reduction technique
  • New conversion functions for SingleCellExperiment and anndata


  • FetchData preserves cell order
  • Require Matrix 1.2-14 or higher
  • AddModuleScore no longer densifies sparse-matrices
  • Various visualization fixes and improvements
  • Default value for latent.vars in FindMarkers/FindAllMarkers changed to NULL.

[2.3.0] - 2018-03-22


  • Support for HTO demultiplexing
  • Utility functions: TransferIdent, CombineIdent, SplitObject, vector.friendly
  • C++ implementation for parts of BuildSNN
  • Preliminary parallelization support (regression and JackStraw)
  • Support for FItSNE


  • MetaDE replaced with metap for combining p-values (MetaDE was removed from CRAN)
  • NMF heatmaps replaced (NMF to be archived by CRAN)

[2.2.1] - 2018-02-14


  • MetaDE replaced with metap for combining p-values (MetaDE was removed from CRAN)
  • NMF heatmaps replaced (NMF to be archived by CRAN)

[2.2.0] - 2018-01-10


  • Multiple alignment functionality with RunMultiCCA and AlignSubspace extended to multiple datasets
  • CalcAlignmentScore added to evaluate alignment quality
  • MetageneBicorPlot added to guide CC selection
  • Change cluster order in DoHeatmap with group.order parameter
  • Ability to change plotting order and add a title to DimPlot
  • do.clean and subset.raw options for SubsetData


  • JoyPlot has been replaced with RidgePlot
  • FindClusters is now more robust in making temp files
  • MetaDE support for combining p-values in DE testing

[2.1.0] - 2017-10-12


  • Support for using MAST and DESeq2 packages for differential expression testing in FindMarkers
  • Support for multi-modal single-cell data via @assay slot


  • Default DE test changed to Wilcoxon rank sum test

[2.0.1] - 2017-08-18


  • Now available on CRAN
  • Updated documentation complete with examples
  • Example datasets: pbmc_small and cc.genes
  • C++ implementation for parts of FindVariableGenes
  • Minor bug fixes

[2.0.0] - 2017-07-26


  • New method for aligning scRNA-seq datasets
  • Significant code restructuring
  • New methods for scoring gene expression and cell-cycle phases
  • New visualization features (do.hover, do.identify)

Reference manual

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


4.0.5 by Paul Hoffman, 10 days ago,

Report a bug at

Browse source code at

Authors: Andrew Butler [ctb] , Saket Choudhary [ctb] , Charlotte Darby [ctb] , Jeff Farrell [ctb] , Christoph Hafemeister [ctb] , Yuhan Hao [ctb] , Paul Hoffman [aut, cre] , Jaison Jain [ctb] , Efthymia Papalexi [ctb] , Patrick Roelli [ctb] , Rahul Satija [ctb] , Karthik Shekhar [ctb] , Avi Srivastava [ctb] , Tim Stuart [ctb] , Kristof Torkenczy [ctb] , Shiwei Zheng [ctb] , Satija Lab and Collaborators [fnd]

Documentation:   PDF Manual  

GPL-3 | file LICENSE license

Imports cluster, cowplot, fitdistrplus, future, future.apply, ggplot2, ggrepel, ggridges, graphics, grDevices, grid, httr, ica, igraph, irlba, jsonlite, KernSmooth, leiden, lmtest, MASS, Matrix, matrixStats, miniUI, patchwork, pbapply, plotly, png, RANN, RColorBrewer, Rcpp, RcppAnnoy, reticulate, rlang, ROCR, Rtsne, scales, scattermore, sctransform, SeuratObject, shiny, spatstat.core, spatstat.geom, stats, tibble, tools, utils, uwot

Depends on methods

Suggests ape, rsvd, testthat, hdf5r, S4Vectors, SummarizedExperiment, SingleCellExperiment, MAST, DESeq2, BiocGenerics, GenomicRanges, GenomeInfoDb, IRanges, rtracklayer, Rfast2, monocle, Biobase, VGAM, limma, metap, enrichR, mixtools

Linking to Rcpp, RcppEigen, RcppProgress

Imported by CDSeq, DUBStepR, PhitestR, Platypus, Signac, SignacX, SoupX, rPanglaoDB, scDiffCom, scMappR, scRNAstat, tidyseurat.

Suggested by BisqueRNA, ClustAssess, DIscBIO, Rmagic, VAM, clustree, conos, dyngen, harmony, rliger.

See at CRAN