cellsweep
Sweep out noisy counts from single-cell RNA-seq data with CellSweep!
Documentation: https://cellsweep.readthedocs.io
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 theempty_droplet_methodargument.
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 matrixadata.obs:adata.obs["alpha_hat"]: final optimized alpha valuesadata.obs["contamination_fraction"]: total contamination fraction per cell,(1 - beta_hat) * alpha_hat + beta_hatadata.obs["z_hat"]: final cell-type assignments
adata.var:adata.var["ambient_hat"]: final optimized ambient distributionadata.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 betaadata.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)
| File | Size | Uploaded | |
|---|---|---|---|
| cellsweep-1.0.0.tar.gz | 75.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|