Metadata-Version: 2.1
Name: scDiffusion
Version: 0.3
Summary: scDiffusion(Single-Cell graph neural Diffusion) is a physics-informed graph generative model to do scRNA-seq analysis. scDiffusion investigates cellular dynamics utilizing an attention-based neural network.
Home-page: https://github.com/CZCBLab/scDiffusion/tree/main
Author: Yuchen Liu
Author-email: ycliu137@bu.edu
License: MIT
Keywords: single-cell,diffusion
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9, <3.11
Description-Content-Type: text/markdown
Requires-Dist: leidenalg (>=0.8.10)
Requires-Dist: matplotlib (>=3.9.2)
Requires-Dist: networkx (>=3.4.2)
Requires-Dist: numpy (==1.26.4)
Requires-Dist: pandas (>=2.2.3)
Requires-Dist: python-igraph (>=0.9.9)
Requires-Dist: python-louvain (>=0.16)
Requires-Dist: scanpy
Requires-Dist: scikit-learn (>=1.0.2)
Requires-Dist: scipy (>=1.14.1)
Requires-Dist: torch (==1.13.1)
Requires-Dist: torchaudio (==0.13.1)
Requires-Dist: torchvision (==0.14.1)
Requires-Dist: umap-learn (>=0.5.2)

![scDiffusion](https://raw.githubusercontent.com/CZCBLab/scDiffusion/refs/heads/main/scDiffusion_arc_1.png)
# About:

scDiffusion(Single-Cell graph neural Diffusion) is a deep diffusion model to leverage multi-scale patterns in single-cell graphs and enhance scRNA-seq analysis. Single-cell transcriptomics are typically analyzed based on gene expression within individual cells and hypothetic cell adjacencies. However, existing computational methods often suffer from a lack of leveraging and integrating multi-scale dependencies in feature space, undermining their effectiveness and robustness in downstream applications like handling of batch effects, cell type identification, and cell fate inference. To tackle this challenge, we introduce scDiffusion to incorporate long-range information propagation among cells to uncover cellular biology from their transcriptomics. scDiffusion integrates both local and global diffusion processes to comprehensively capture cell relationships, ranging from fine-grained structures to large-scale patterns. This approach exhibits great perception of inherent cell types and potential lineages and preserves cell identities in batch-imbalanced datasets. scDiffusion enhances various downstream tasks, including data integration, reference-based cell type annotation, unsupervised clustering, and trajectory inference. 

This repository contains the source code for the paper .

![scDiffusion](https://raw.githubusercontent.com/CZCBLab/scDiffusion/refs/heads/main/scDiffusion_arc_2.png)

# Installation:

scDiffusion is available on PyPI. To install scDiffusion, run the following command:
```
pip install scDiffusion
```
Or grab this source codes:
```
git clone https://github.com/CZCBLab/scDiffusion.git
cd scDiffusion
```
Python=3.9.9 is required. See other requirements in the file requirements.txt.

# Tutorials:

For data integration, please check the notebook file "scDiffusion_tutorial_Data_Integration.ipynb".

For reference-based cell type annotation, please check the notebook file "scDiffusion_tutorial_Annotation_(Label_Transfer).ipynb".

For clustering tasks, please check the notebook file "scDiffusion_tutorial_Clustering.ipynb". 

For trajectory tasks, please check the notebook file "scDiffusion_tutorial_Trajectory_Inference.ipynb".


