About Cellsnp-lite

Cellsnp-lite is a C/C++ tool for efficient genotyping bi-allelic SNPs on single cells. You can use cellsnp-lite after read alignment to obtain the snp x cell pileup UMI or read count matrices for each alleles of given or detected SNPs.

The output from cellsnp-lite can be directly used for downstream analysis such as:

  1. Donor deconvolution in multiplexed single-cell RNA-seq data (e.g., with vireo).

  2. Allele-specific CNV analysis in single-cell or spatial transcriptomics data (e.g., with Numbat or XClone).

  3. Clonal substructure discovery using single cell mitochondrial variants (e.g., with MQuad).

Cellsnp-lite has following features:

  • Wide applicability: cellsnp-lite can take data from various omics as input, including RNA-seq, DNA-seq, ATAC-seq, either in bulk or single cells.

  • Simplified user interface that supports parallel computing, cell barcode and UMI tags.

  • High efficiency in terms of running speed and memory usage, with highly concordant results compared to existing methods.

For details of the tool, please checkout our paper:

Xianjie Huang, Yuanhua Huang, Cellsnp-lite: an efficient tool for genotyping single cells, Bioinformatics, Volume 37, Issue 23, December 2021, Pages 4569–4571, https://doi.org/10.1093/bioinformatics/btab358


To install cellsnp-lite, please see Installation. The full manual is at Manual.

Useful Resources

News and all release notes can be found in History.

A pre-compiled list of candidate common SNPs (human) for Mode 1 is at Candidate SNPs.

FAQ and Feedback

For troubleshooting, please have a look of FAQ, and we welcome reporting any issue for bugs, questions and new feature requests.


Cellsnp-lite heavily depends on htslib for accessing high-throughput sequencing data. In addition, it uses the kvec.h file (from klib) for dynamic array usage and the thpool.{h,c} files (from C-Thread-Pool) for thread pool management.