Metadata-Version: 2.1
Name: scstate
Version: 4.0.0
Summary: scState: A pathway-informed graph transformer framework for decoding stem cell state transitions from scRNA-seq data
Author: DuanMaoteng, LiuXue
License: MIT
Keywords: scRNA-seq,graph transformer,heterogeneous graph,stem cell,cell state,trajectory inference,bioinformatics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.8.0, <3.9
Description-Content-Type: text/markdown
Requires-Dist: anndata==0.8.0
Requires-Dist: dill==0.3.4
Requires-Dist: matplotlib==3.5.2
Requires-Dist: numpy==1.22.3
Requires-Dist: pandas==1.4.2
Requires-Dist: scipy==1.10.1
Requires-Dist: seaborn==0.11.2
Requires-Dist: scikit-learn==1.1.2
Requires-Dist: xlwt==1.3.0
Requires-Dist: tqdm==4.64.0
Requires-Dist: scanpy==1.9.1
Requires-Dist: leidenalg==0.8.10
Requires-Dist: ipywidgets==8.0.6
Provides-Extra: trajectory
Requires-Dist: PhenoGraph==1.5.7; extra == "trajectory"
Requires-Dist: fcsparser==0.2.4; extra == "trajectory"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"

# scState: Decoding stem cell state transitions through pathway-informed heterogeneous graph representations

**Note: This project is for internal testing purposes only. Do not use it in a production environment.**

We developed **scState**, a pathway-informed graph transformer framework for identifying stem cells and resolving quiescent and activated stem cell states from scRNA-seq data. By integrating pathway activity with adversarial representation learning in a heterogeneous graph architecture, scState enables stem cell identification, cell state discrimination, pathway-level interpretation, and trajectory inference.

**Keywords:** scRNA-seq, graph transformer, adversarial learning, stem cell, cell state transition

---

## Installation

### System requirements

* Python 3.8.x
* Linux system is recommended
* GPU is recommended for faster model training, but CPU installation is also supported

---

## Installation steps

### 1. Create a new conda environment

```bash
conda create --name scState python=3.8 -y
conda activate scState
```

---

### 2. Install PyTorch and PyTorch Geometric

Install PyTorch, PyTorch Geometric, and torchmetrics before installing scState.

#### GPU version with CUDA 11.8

```bash
pip install https://download.pytorch.org/whl/cu118/torch-2.4.1%2Bcu118-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcu118/torch_scatter-2.1.2%2Bpt24cu118-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcu118/torch_sparse-0.6.18%2Bpt24cu118-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcu118/torch_cluster-1.6.3%2Bpt24cu118-cp38-cp38-linux_x86_64.whl
pip install torch-geometric==2.6.1
pip install torchmetrics==0.9.3
```

#### CPU version

```bash
pip install https://download.pytorch.org/whl/cpu/torch-2.4.1%2Bcpu-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcpu/torch_scatter-2.1.2%2Bpt24cpu-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcpu/torch_sparse-0.6.18%2Bpt24cpu-cp38-cp38-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.4.0%2Bcpu/torch_cluster-1.6.3%2Bpt24cpu-cp38-cp38-linux_x86_64.whl
pip install torch-geometric==2.6.1
pip install torchmetrics==0.9.3
```

---

### 3. Install scState

The package name on PyPI is **scstate**:

```bash
pip install --upgrade scstate
```

To install a specific version:

```bash
pip install scstate==2.0.0
```

Although the package is installed from PyPI as `scstate`, it should be imported in Python as `scState`:

```python
import scState
```

---

### 4. Install trajectory-related dependencies

If trajectory-related analysis is needed, install the optional trajectory dependencies:

```bash
python -m pip install "scstate[trajectory]==0.1.2"
```

Then install `MulticoreTSNE` for Palantir:

```bash
conda install -c conda-forge multicore-tsne=0.1 -y
```

Finally, install Palantir:

```bash
pip install palantir==1.0.0
```

---

### 5. Add the environment to Jupyter Notebook

```bash
pip install ipykernel
python -m ipykernel install --user --name scState --display-name "Python (scState)"
```

---

## Dependencies

scState was tested under Python 3.8.x.

### Main dependencies

The following dependencies are installed by default with:

```bash
pip install scstate
```

* anndata==0.8.0
* dill==0.3.4
* matplotlib==3.5.2
* numpy==1.22.3
* pandas==1.4.2
* scipy==1.10.1
* seaborn==0.11.2
* scikit-learn==1.1.2
* xlwt==1.3.0
* tqdm==4.64.0
* scanpy==1.9.1
* leidenalg==0.8.10
* ipywidgets==8.0.6

### Model-related dependencies

* torch==2.4.1+cu118 or torch==2.4.1+cpu
* torch-geometric==2.6.1
* torchmetrics==0.9.3
* torch-scatter==2.1.2+pt24cu118 or torch-scatter==2.1.2+pt24cpu
* torch-sparse==0.6.18+pt24cu118 or torch-sparse==0.6.18+pt24cpu
* torch-cluster==1.6.3+pt24cu118 or torch-cluster==1.6.3+pt24cpu

### Trajectory-related dependencies

* PhenoGraph==1.5.7
* fcsparser==0.2.4
* MulticoreTSNE==0.1
* palantir==1.0.0

---

## Usage

After installation, scState modules can be imported as follows:

```python
from scState.conv import *
from scState.scState_model import *
from scState.utils import *
```

## License

This project is released under the MIT License.
