Metadata-Version: 2.1
Name: scPDA
Version: 0.2.0
Summary: Single Cell Protein Counts Denoising
Home-page: https://github.com/PancakeZoy/scPDA
Author: Ouyang Zhu, Jun Li
Author-email: ozhu@nd.edu
Requires-Python: >=3.10.0
Description-Content-Type: text/markdown
Requires-Dist: torch >=2.0.0
Requires-Dist: tqdm >=4.0.0
Requires-Dist: anndata >=0.10.0
Requires-Dist: pandas >=2.2.0
Requires-Dist: numpy >=1.26.0
Requires-Dist: scanpy >=1.10.0
Requires-Dist: seaborn >=0.13.0
Requires-Dist: matplotlib >=3.9.0
Requires-Dist: scikit-learn >=1.5.0
Requires-Dist: scipy >=1.14.0

# scPDA: Denoising Protein Expression in Droplet-Based Single-Cell Data

scPDA is a VAE-based neural network for the task of denoising single-cell surface protein abundance measured by droplet-based technologies such as CITE-seq.

Unlike most currently established methods, scPDA does not require empty droplets. scPDA establishes a probabilistic model for raw count data, and shows a great computational efficiency.

<p align="center">
  <img src="https://raw.githubusercontent.com/PancakeZoy/scPDA/refs/heads/main/img/scPDA_stru.png?token=GHSAT0AAAAAACX3BPPB2BMQPALUYU4M2NJSZXR7HLA" width="750" title="model_pic">
</p>

## Installation
`pip install scpda`

## Main API
Below is an example that includes main APIs to train `scPDA`.

```python
from scPDA import model

# please prepare the protein counts dsb_counts_tensor (torch.tensor) and the estimated background mean dsb_mu1_tensor (torch.tensor)
scPDA = model(raw_counts=dsb_counts_tensor, bg_mean=dsb_mu1_tensor)
scPDA.train()
scPDA.inference()

# The estimated mu1, mu2, theta1, theta2, pi (background probability) are returned
mu1 = scPDA.mu1
mu2 = scPDA.mu1 * scPDA.alpha
theta1 = scPDA.theta1
theta2 = scPDA.theta2
pi = scPDA.pi
```
