Skip to main content

scState: A pathway-informed graph transformer framework for decoding stem cell state transitions from scRNA-seq data

Project description

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

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

2. Install PyTorch and PyTorch Geometric

PyTorch and PyTorch Geometric should be installed manually according to the user's CPU/GPU and CUDA configuration.

GPU version with CUDA 11.8

pip install torch==2.4.1+cu118 torchvision==0.19.1+cu118 torchaudio==2.4.1+cu118 \
  --index-url https://download.pytorch.org/whl/cu118

pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv \
  -f https://data.pyg.org/whl/torch-2.4.0+cu118.html

pip install torch-geometric==2.6.1

Alternatively, the required wheels can be installed explicitly:

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

CPU version

pip install torch==2.4.1+cpu torchvision==0.19.1+cpu torchaudio==2.4.1+cpu \
  --index-url https://download.pytorch.org/whl/cpu

pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv \
  -f https://data.pyg.org/whl/torch-2.4.0+cpu.html

pip install torch-geometric==2.6.1

Alternatively, the required CPU wheels can be installed explicitly:

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

3. Install scState

The package name on PyPI is scstate:

pip install scstate

To install or upgrade to the latest version:

pip install --upgrade scstate

To install a specific version:

pip install scstate==0.1.2

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

import scState

4. Optional: install model-related dependency

The basic installation of scState does not automatically install torchmetrics. If model evaluation utilities are needed, install the optional model dependency:

pip install "scstate[model]"

This installs:

torchmetrics==0.9.3

PyTorch, PyTorch Geometric, and PyG extension packages should still be installed manually according to the user's CPU/GPU and CUDA configuration.


5. Optional: install trajectory-related dependencies

The basic installation of scState does not automatically install Palantir-related dependencies. If trajectory-related analysis is needed, install:

pip install "scstate[trajectory]"

This installs:

PhenoGraph==1.5.7
fcsparser==0.2.8

6. Optional: install Palantir manually

palantir==1.0.0 may require MulticoreTSNE. Since MulticoreTSNE can fail during pip-based compilation on some Linux or HPC systems, Palantir is not included in the automatic dependencies of scState.

We recommend installing MulticoreTSNE with conda first:

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

Then install Palantir without triggering dependency re-resolution:

pip install palantir==1.0.0 --no-deps

A quick test can be performed with:

python - <<'PY'
import MulticoreTSNE
import palantir
import phenograph
import fcsparser

print("Trajectory-related dependencies imported successfully")
PY

7. Add the environment to Jupyter Notebook

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:

pip install scstate
  • anndata==0.8.0
  • dill==0.3.4
  • matplotlib==3.5.2
  • numpy==1.22.3
  • pandas>=1.5.3,<2.0
  • 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

For model training and graph neural network modules, the following packages are required and should be installed according to the user's CPU/GPU and CUDA configuration:

  • torch==2.4.1+cu118 or torch==2.4.1+cpu
  • torch-geometric==2.6.1
  • torch-scatter==2.1.2+pt24cu118
  • torch-sparse==0.6.18+pt24cu118
  • torch-cluster==1.6.3+pt24cu118
  • torch-spline-conv
  • pyg-lib
  • torchmetrics==0.9.3

The tested GPU environment is:

  • Python==3.8.x
  • PyTorch==2.4.1+cu118
  • CUDA used by PyTorch==11.8
  • PyTorch Geometric==2.6.1

Trajectory-related optional dependencies

The following optional dependencies can be installed with:

pip install "scstate[trajectory]"
  • PhenoGraph==1.5.7
  • fcsparser==0.2.8

For Palantir-based trajectory analysis, install the following packages manually:

  • palantir==1.0.0
  • MulticoreTSNE==0.1

Recommended installation:

conda install -c conda-forge multicore-tsne=0.1 -y
pip install palantir==1.0.0 --no-deps

Usage

After installation, scState modules can be imported as follows:

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

License

This project is released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scstate-0.1.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scstate-0.1.2-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file scstate-0.1.2.tar.gz.

File metadata

  • Download URL: scstate-0.1.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for scstate-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d4791cc4afcccbcca9a242aa5e2355a3b0d14ecbc4e38a04a9d30ae9b06e03d8
MD5 3157194f8291453f882ab1d1176ad095
BLAKE2b-256 67a46bc699d673a0c14734009136414b2e01784df6a5c78be6085359ad83e1bd

See more details on using hashes here.

File details

Details for the file scstate-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: scstate-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for scstate-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 44e639a8c13455259b455c0e172c2ac10d017013afdc5ad1850ddb0ae14adb2a
MD5 72f88c5f41c0c4c87abc2017b0b5426f
BLAKE2b-256 5668768ff33d5c6adbbaf64042bd114af1c727cde0842cedf6b5f1236c56d059

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page