⚠️ We updated singleCellHaystack in late 2022. The master branch on GitHub is now the updated version 1.0, described here. The version on CRAN is also this updated version. For the older version described here, please use branch “binary”. ⚠️

singleCellHaystack is a package for predicting differentially active features (e.g. genes, proteins, chromatin accessibility) in single-cell and spatial genomics data. While singleCellHaystack originally focused on the prediction of differentially expressed genes (DEGs; see here), we have updated the method and made it more generally applicable (see Sci Rep). It can now also be used for finding differentially accessible genomic regions in scATAC-seq, DEGs along a trajectory, spatial DEGs, or any other features with non-random levels of activity inside any input space (1D, 2D, or >2D). It does so without relying on clustering of samples into arbitrary clusters. singleCellHaystack uses Kullback-Leibler Divergence to find features that have patterns of activity in subsets of samples that are non-randomly positioned inside any input space.

For the Python implementation, please see here.


  • Our manuscript describing the updated, more generally applicable version of singleCellHaystack has been published in Scientific Reports.

  • Our manuscript describing the original implementation of singleCellHaystack (version 0.3.4) has been published in Nature Communications.

If you use singleCellHaystack in your research please cite our work using:

Vandenbon A, Diez D (2020). “A clustering-independent method for finding differentially expressed genes in single-cell transcriptome data.” Nature Communications, 11(1), 4318. doi:10.1038/s41467-020-17900-3.

Vandenbon A, Diez D (2023). “A universal tool for predicting differentially active features in single-cell and spatial genomics data.” Scientific Reports, 13(1), 11830. doi:10.1038/s41598-023-38965-2.

Documentation and Demo

⚠️ We updated this documentation to reflect the new version 1.0 ⚠️

Our documentation includes a few example applications showing how to use our package:


You can install singleCellHaystack from CRAN with:


Or, you can install singleCellHaystack from the GitHub repository as shown below. Typical installation times should be less than 1 minute.


For the old binary version of singleCellHaystack as described here, you can use the binary branch on GitHub:


System Requirements

Hardware Requirements

singleCellHaystack requires only a standard computer with sufficient RAM to support running R or RStudio. Memory requirements depend on the size of the input dataset.

Software Requirements

This package has been tested on Windows (Windows 10 & 11), macOS (Mojave 10.14.1 and Catalina 10.15.1), and Linux (CentOS 7.9 and Ubuntu 19.10).

singleCellHaystack depends on the following packages: Matrix (1.5-1), splines (4.1.3), ggplot2 (3.3.6) and reshape2 (1.4.4).