Skip to main content

cellsweep

Sweep out noisy counts from single-cell RNA-seq data with CellSweep!

Documentation: https://cellsweep.readthedocs.io

alt text

Install

Basic use

pip install cellsweep

To run notebooks:

pip install cellsweep[analysis]

To remake figures from the paper:

git clone https://github.com/pachterlab/cellsweep.git
cd cellsweep
conda env create -f environment.yml
pip install cellsweep[analysis]==0.1.1

Quickstart

CellSweep has a single function denoise that takes a raw count matrix in an AnnData object and produces a denoised count matrix in another AnnData object. See a simple, fully worked example in the notebooks/intro.ipynb Jupyter Notebook.

Python API

import cellsweep
adata_cellsweep = cellsweep.denoise(adata_raw_path, adata_out=adata_cellsweep_path)  # see below for expected structure

# for help
help(cellsweep.denoise)

Command line interface

cellsweep denoise -o adata_cellsweep.h5ad adata_raw.h5ad  # see below for expected structure

# for help
cellsweep denoise --help

There are many utility functions in the cellsweep.utils module for data processing, plotting, and analysis. See examples in our Jupyter Notebooks.

Anndata object

The input Anndata object/h5ad file should have the following structure:

  • adata.X : cell count matrix (cells x genes)
  • adata.obs:
    • adata.obs[celltype_key]: a column indicating the cell type of each cell.
    • adata.obs[is_empty_key] (optional): a boolean column indicating whether each cell is an empty droplet. If not provided, CellSweep will infer empty droplets using the empty_droplet_method argument.

Additional column inputs can be provided in advanced use cases. See the documentation for details.

CellSweep returns a denoised Anndata object (and writes it to adata_out, if provided) with an updated adata.X and the following added fields. By default the empty droplets are removed from the output so it only contains the real cells; pass keep_empties=True (CLI: --keep-empties) to keep every input barcode.

  • adata.layers["raw"] : raw count matrix
  • adata.obs:
    • adata.obs["alpha_hat"] : final optimized alpha values
    • adata.obs["contamination_fraction"] : total contamination fraction per cell, (1 - beta_hat) * alpha_hat + beta_hat
    • adata.obs["z_hat"] : final cell-type assignments
  • adata.var:
    • adata.var["ambient_hat"] : final optimized ambient distribution
    • adata.var["bulk_hat"] : global noise distribution
  • adata.uns:
    • adata.uns["p_hat"] : final optimized matrix of cell-type profiles (K x G)
    • adata.uns["beta_hat"] : final optimized beta
    • adata.uns["loglike"] : final log-likelihood (this is the relative log-likelihood, not the complete log-likelihood)

Multiple samples

CellSweep fits a single ambient profile, global contamination profile and global contamination fraction per run. Ambient contamination is specific to each sample, so run CellSweep separately on each sequencing sample (e.g. each 10x channel or plate), with that sample's own non-cellular barcodes, rather than on a matrix that combines several samples, batches or plates.

Tutorials

We have several Jupyter Notebooks demonstrating the use of CellSweep for denoising count matrices and analyzing the results. See the notebooks folder in the repository.

Metadata

Release files for cellsweep 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cellsweep 1.0.0
File Size Uploaded
cellsweep-1.0.0.tar.gz 75.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cellsweep 1.0.0
File Interpreter ABI Platform
cellsweep-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 149.9 kB

Release files / cellsweep-1.0.0.tar.gz

Download URL cellsweep-1.0.0.tar.gz
Size 75.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0eed970037e9a12aa5bba3a624560bee5f870523f7660fcd9508e7755875be6d
BLAKE2b-256 checksum
How to use checksums
03ad01d1a933c31b3015847e6306238252e21a8fed6802f605215270e19a0abc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / cellsweep-1.0.0-py3-none-any.whl

Download URL cellsweep-1.0.0-py3-none-any.whl
Size 74.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8dafd180814316574db3f29619c65b5b87ad8729a55f524e8ba3fa36f421753
BLAKE2b-256 checksum
How to use checksums
0ad0960fe58415443462f8eb6a6b26316b8251d8eef055e716603ed9cbb83158
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page