Skip to main content

A Python package for the identification, characterization and comparison of spatial clusters from spatial -omics data.

Project description

A Python package for the identification, characterization and comparison of spatial clusters from spatial omics data.


DocumentationExamplesPaperPreprint

Tests Documentation PyPI Downloads

Background

Spatial clustering (or spatial domain identification) determines cellular niches characterized by specific admixing of these populations. It assigns cells to clusters based on both their intrinsic features (e.g., protein or mRNA expression), and the features of neighboring cells in the tissue.

CellCharter is able to automatically identify spatial domains and offers a suite of approaches for cluster characterization and comparison.

Features

  • Identify niches for multiple samples: By combining the power of scVI and scArches, CellCharter can identify domains for multiple samples simultaneously, even with in presence of batch effects.
  • Scalability: CellCharter can handle large datasets with millions of cells and thousands of features. The possibility to run it on GPUs makes it even faster
  • Flexibility: CellCharter can be used with different types of spatial omics data, such as spatial transcriptomics, proteomics, epigenomics and multiomics data. The only difference is the method used for dimensionality reduction and batch effect removal.
    • Spatial transcriptomics: CellCharter has been tested on scVI with Zero-inflated negative binomial distribution.
    • Spatial proteomics: CellCharter has been tested on a version of scArches, modified to use Mean Squared Error loss instead of the default Negative Binomial loss.
    • Spatial epigenomics: CellCharter has been tested on scVI with Poisson distribution.
    • Spatial multiomics: it's possible to use multi-omics models such as MultiVI, or use the concatenation of the results from the different models.
  • Best candidates for the number of domains: CellCharter offers a method to find multiple best candidates for the number of domains, based on the stability of a certain number of domains across multiple runs.
  • Domain characterization: CellCharter provides a set of tools to characterize and compare the spatial domains, such as domain proportion, cell type enrichment, (differential) neighborhood enrichment, and domain shape characterization.

Since CellCharter 0.3.0, we moved the implementation of the Gaussian Mixture Model (GMM) from PyCave, not maintained anymore, to TorchGMM, a fork of PyCave maintained by the CSOgroup. This change allows us to have a more stable and maintained implementation of GMM that is compatible with the most recent versions of PyTorch.

Getting started

Please refer to the documentation. In particular, the

Installation

  1. Create a conda or pyenv environment
  2. Install Python >= 3.10,<3.13 and PyTorch >= 1.12.0. If you are planning to use a GPU, make sure to download and install the correct version of PyTorch first from here.
  3. Install the library used for dimensionality reduction and batch effect removal according to the data type you are planning to analyze:
    • scVI for spatial transcriptomics and/or epigenomics data such as 10x Visium and Xenium, Nanostring CosMx, Vizgen MERSCOPE, Stereo-seq, DBiT-seq, MERFISH and seqFISH data.
    • A modified version of scArches's TRVAE model for spatial proteomics data such as Akoya CODEX, Lunaphore COMET, CyCIF, IMC and MIBI-TOF data.
  4. Install CellCharter using pip:
pip install cellcharter

We report here an example of an installation aimed at analyzing spatial transcriptomics data (and thus installing scvi-tools). This example is based on a Linux CentOS 7 system with an NVIDIA A100 GPU. It will install Pytorch for GPU by default.

conda create -n cellcharter-env -c conda-forge python=3.12
conda activate cellcharter-env
pip install scvi-tools
pip install cellcharter

Note: a different system may require different commands to install PyTorch and JAX. Refer to their respective documentation for more details.

Contribution

If you found a bug or you want to propose a new feature, please use the issue tracker.

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

cellcharter-0.3.7.tar.gz (45.8 kB view details)

Uploaded Source

Built Distribution

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

cellcharter-0.3.7-py3-none-any.whl (51.3 kB view details)

Uploaded Python 3

File details

Details for the file cellcharter-0.3.7.tar.gz.

File metadata

  • Download URL: cellcharter-0.3.7.tar.gz
  • Upload date:
  • Size: 45.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cellcharter-0.3.7.tar.gz
Algorithm Hash digest
SHA256 52ec47c068df65ae9f541d374dc010ba9ae45de26121895f98ad485f8f04e1e8
MD5 3fca76a6c564543b62ddfb6a03a6522e
BLAKE2b-256 eeb1e3f0cee615f7884466b1d5b1a9548bdf22966f3e41227112782ac052c8de

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellcharter-0.3.7.tar.gz:

Publisher: release.yaml on CSOgroup/cellcharter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cellcharter-0.3.7-py3-none-any.whl.

File metadata

  • Download URL: cellcharter-0.3.7-py3-none-any.whl
  • Upload date:
  • Size: 51.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cellcharter-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 250069364005a73787043d7e6792378a94775822d6c57c4e62f438ea96d194dc
MD5 2c7487845b339a2d70d8a11ff63b8d08
BLAKE2b-256 6f991d293b5714dfc25f655655a290d7b3622275caec1cf27350498396592d49

See more details on using hashes here.

Provenance

The following attestation bundles were made for cellcharter-0.3.7-py3-none-any.whl:

Publisher: release.yaml on CSOgroup/cellcharter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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