Metadata-Version: 2.4
Name: cellsweep
Version: 0.1.2
Summary: Denoising scRNA-seq in a smart and efficient way.
Author-email: Maya Caskey <mcaskey@caltech.edu>, Joseph Rich <jmrich@caltech.edu>
Maintainer-email: Maya Caskey <mcaskey@caltech.edu>, Joseph Rich <jmrich@caltech.edu>
Project-URL: Homepage, https://github.com/pachterlab/cellsweep
Keywords: bioinformatics,machine learning,single-cell,scRNA-seq,denoising,data-analysis
Classifier: Environment :: Console
Classifier: Framework :: Jupyter
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: numba>=0.56.2
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: anndata
Requires-Dist: pydantic<3.0,>=2.5
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: black[jupyter]>=22.0.0; extra == "dev"
Requires-Dist: isort>=6.0.0; extra == "dev"
Requires-Dist: pympler>=1.1; extra == "dev"
Provides-Extra: analysis
Requires-Dist: nbval>=0.10.0; extra == "analysis"
Requires-Dist: nbdime>=4.0.2; extra == "analysis"
Requires-Dist: ipython>=8.0.0; extra == "analysis"
Requires-Dist: upsetplot; extra == "analysis"
Requires-Dist: PyYAML; extra == "analysis"
Requires-Dist: scanpy; extra == "analysis"
Requires-Dist: seaborn; extra == "analysis"
Requires-Dist: matplotlib; extra == "analysis"
Requires-Dist: celltypist; extra == "analysis"
Requires-Dist: mpl-scatter-density; extra == "analysis"
Requires-Dist: astropy; extra == "analysis"
Requires-Dist: scikit-learn; extra == "analysis"
Requires-Dist: ipywidgets; extra == "analysis"
Requires-Dist: torch; extra == "analysis"
Requires-Dist: scikit-misc; extra == "analysis"
Requires-Dist: adjustText; extra == "analysis"
Requires-Dist: squidpy; extra == "analysis"
Requires-Dist: tqdm; extra == "analysis"
Requires-Dist: requests; extra == "analysis"

# cellsweep

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

![alt text](https://github.com/pachterlab/cellsweep/blob/main/figures/logo.png?raw=true)

## 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_count_matrix 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
```python
import cellsweep
adata_cellsweep = cellsweep.denoise_count_matrix(adata_raw_path, adata_out=adata_cellsweep_path)  # assumes that adata_raw_path is an h5ad file or AnnData object with a column adata.obs['celltype'] indicating celltype

# for help
help(cellsweep.denoise_count_matrix)
```

### Command line interface
```
cellsweep denoise_count_matrix -o adata_cellsweep.h5ad adata_raw.h5ad  # assumes that adata_raw.h5ad is an h5ad file with a column adata.obs['celltype'] indicating celltype

# for help
cellsweep denoise_count_matrix --help
```

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

## 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.
