Package introducing the InSituPy framework to analyze single-cell spatial transcriptomics data.
Project description
InSituPy: A framework for histology-guided, multi-sample analysis of single-cell spatial transcriptomics data
InSituPy is a Python package designed to facilitate the analysis of single-cell spatial transcriptomics data. With InSituPy, you can easily load, visualize, and analyze the data, enabling and simplifying the comprehensive exploration of spatial gene expression patterns within tissue sections and across multiple samples. Currently the analysis is focused on data from the Xenium In Situ methodology but a broader range of reading functions will be implemented in the future.
Latest changes
!!!Warning: This repository is under very active development and it cannot be ruled out that changes might impair backwards compatibility. If you observe any such thing, please feel free to contact us to solve the problem. Thanks!
0.11.0b1
- Implementation of bidirectional conversion functions between InSituPy and SpatialData
- Due to current dependency conflicts between the packages this is only released as beta version. Please let me know if you run into any problems
- Introduction of
.unitsattribute. "Spatial units" can be any shape within which a omics measurement is available. This can be e.g. results from sequencing-based technologies like Visium but also histological structures such as functional tissue units. - implement
quantify_signalfunction - New tutorials
- Align Xenium and Visium data
- Read data from Vannan et al. into InSituPy
- Convert data between SpatialData and InSituPy
- Quantify fluorescence signals
- Benchmarkings:
quantify_signal- Xenium reader of
spatialdata-iovs. InSituPy's
0.10.0
- Restructure DGE analysis on single-cell level and implement pseudobulk DGE analysis
- Aligned logic between single-cell level and pseudobulk level
- Introduces
DiffExprResultsclass to structure DGE analysis results (plus read/write) - DGE analysis divided into two parts:
tl.dgeandpl.volcano - Implement
pl.dual_fold_changefor contamination-aware DGE analysis - renamed
calculate_pseudobulktopp.pseudobulk
- Restructuring of documentation
For the latest developments check out the releases.
Comming soon: Interface to SpatialData
A interface to convert data from and to SpatialData is currently implemented and will be released soon. If you are interested in this, feel free to contact us to get early access.
Getting started
Overall data structure
A key feature of InSituPy is its hierarchical data structure, centered around the InSituExperiment and InSituData objects:
InSituData: Represents and manages at the individual sample level. It integrates all modalities of spatial omics datasets, including cellular readouts, cellular boundaries, images, transcripts, regions, and annotations.InSituExperiment: Aggregates multipleInSituDatainstances and links them with associated metadata, enabling cross-sample analysis and organization.
Documentation
For detailed instructions on using InSituPy, refer to the official documentation.
InSituPy works best within Jupyter Lab or Jupyter Notebook sessions. If you are not familiar with these platforms, see the documentation of Project Jupyter.
Installation
Make sure you have Conda installed on your system before proceeding with these steps. If not, you can install Miniconda or Anaconda from https://docs.conda.io/en/latest/miniconda.html.
Create and activate a conda environment:
When using InSituPy with SpatialData, python version 3.13 is mandatory. Otherwise all python version >=3.10 should work.
conda create --name insitupy python=3.13
conda activate insitupy
Install from PyPi:
pip install insitupy-spatial
Optional: Install with GUI support (napari viewer):
If you want to use the graphical interface features powered by napari, install with the gui extra:
pip install insitupy-spatial[gui]
To ensure that the InSituPy package is available as a kernel in Jupyter notebooks within your conda environment, you can follow the instructions here.
For alternative installation strategies see the documentation.
Features
- Data storage: Store data on both the single sample level and the multi-sample level using the
InSituDataandInSituExperimentobjects. - Data Preprocessing: InSituPy provides functions for normalizing, filtering, and transforming raw in situ transcriptomics data.
- Interactive Visualization: Create interactive plots using napari to easily explore spatial gene expression patterns.
- Annotation: Annotate Xenium In Situ data in the napari viewer or import annotations from external tools like QuPath.
- Multi-sample analysis: Perform analysis on an experiment-level, i.e. with multiple samples at once.
QuPath
We try to develop InSituPy alongside the Bioimage Analysis tool QuPath. QuPath has great functionalities to visualize whole slide image data, add annotations, generate segmentations or analyze signal intensities. Scripts to simplify the connection between QuPath and InSituPy, we collect here. This includes:
- Export of annotations as GEOJSON from QuPath
- Export of images as OME-TIFF from QuPath
- Collected export of data from a multiplexed IF image to be imported into InSituPy. Import can be performed using either
read_qupathorread_qupath_project. For cell and nucleus segmentation of multiplexed IF images we recommend using Instanseg.
Contributing
Contributions are welcome! If you find any issues or have suggestions for new features, please open an issue, submit a pull request or contact us via our zulip chat.
Citation
If you use InSituPy in your work, please cite the preprint as follows:
InSituPy – A Framework for Histology-Guided, Multi-Sample Analysis of Single-Cell Spatial Transcriptomics Data.
Wirth, Johannes, Anna Chernysheva, Birthe Lemke, Isabel Giray, Aitana Egea Lavandera, and Katja Steiger.
bioRxiv, March 12, 2025. https://doi.org/10.1101/2025.03.07.641860.
License
InSituPy is licensed under the BSD-3-Clause.
InSituPy is developed and maintained by Johannes Wirth and Anna Chernysheva. Feedback is highly appreciated and hopefully InSituPy helps you with your analysis of spatial transcriptomics data. The package is thought to be a starting point to simplify the analysis of in situ sequencing data in Python and it would be exciting to integrate functionalities for larger and more comprehensive data structures. Currently, the framework focuses on the analysis of Xenium In Situ data but it is planned to integrate more methodologies and any support on this is highly welcomed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file insitupy_spatial-0.11.0b2.tar.gz.
File metadata
- Download URL: insitupy_spatial-0.11.0b2.tar.gz
- Upload date:
- Size: 257.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.10.12 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5b39ade445765cc97101a88b9613e645a90753fdd634c0d38a3ff1938a0f28d
|
|
| MD5 |
bb9372ca7e9f25b67b0eca8a4a32c142
|
|
| BLAKE2b-256 |
b4df57cd13165a77bec8689e409a909a8f01ac0f98182a129948103f73acdc21
|
File details
Details for the file insitupy_spatial-0.11.0b2-py3-none-any.whl.
File metadata
- Download URL: insitupy_spatial-0.11.0b2-py3-none-any.whl
- Upload date:
- Size: 304.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.10.12 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
349990aee919bbf44e0906e8b925e6447128b6cda22945fbb6801a52e879e6b1
|
|
| MD5 |
d9e81490d0ea397030279e1df7188934
|
|
| BLAKE2b-256 |
51aefd19ec6f5c8d2dd87079c9e030d00d0c112ba89b168e7f835169f3cc52fe
|