Skip to content

sanderlab/scPerturb

Repository files navigation

Website GitHub issues GitHub last commit

scPerturb: A resource and a python tool for single-cell perturbation data

For the publication see: Peidli, S., Green, T.D., et al. Nature Methods (2024).

Where to find the data

The datasets are available to download on scperturb.org (where you can also find an interactive table of all included datasets) and alternatively on Zenodo, depending on the modality you are interested in:

scperturb for python (integrates with scanpy)

PyPI - Downloads

A python package to compute E-distances in single-cell perturbation data and perform E-tests.

Install

Just install via pip:

pip install scperturb

Usage example

Check out this notebook for a tutorial. Basic usage is:

# E-distances
estats = edist(adata, obs_key='perturbation')
# E-distances to a specific group (e.g. 'control')
estats_control = estats.loc['control']
# E-test for difference to control
df = etest(adata, obs_key='perturbation', obsm_key='X_pca', dist='sqeuclidean', control='control', alpha=0.05, runs=100)

scperturbR for R (integrates with Seurat)

R-CMD-check

We wrote an R version of scperturb that works with Seurat objects. You can find it as scperturbR on CRAN. A basic usage vignette is WIP. Install using:

install.packages('scperturbR')

Reproducibility

Instructions to run the code to reproduce the figures and tables in the paper and supplement:

  • install conda if necessary (also check out mamba, it's way faster)
  • run "conda env create -f sc_env.yaml" to create a new conda environment with all the necessary packages to run the code (you will need this)
  • activate the environment with "conda activate sc_env"
  • download all the datasets from scperturb.org
  • in "config.yaml", change paths, especially the one to the directory where the data was downloaded to
  • run the notebooks in "notebooks" to produce the figures and tables found in the paper / supplement and the website (each saved to a different folder)