Skip to main content

Comprehensive spatial transcriptomics analysis library with advanced segmentation, clustering, and spatial analysis tools

Project description

SPEX - Spatial Omics Analysis Library

Python 3.11 License Documentation

SPEX is a comprehensive spatial transcriptomics analysis library that implements state-of-the-art methods for tissue segmentation, clustering, and spatial analysis. The library enables researchers to apply advanced image processing and spatial analysis techniques to their own microscopy data.

🚀 Key Features

🖼️ Image Segmentation

  • Cellpose - Deep learning-based cell segmentation
  • StarDist - Star-convex object-based segmentation
  • Watershed - Classical watershed segmentation
  • Preprocessing - Background subtraction, noise removal, filtering
  • Post-processing - Cell rescue, object filtering, feature extraction

🧬 Spatial Transcriptomics Analysis

  • Clustering - PhenoGraph, Leiden, Louvain algorithms
  • Niche Analysis - Cell niche identification and interactions
  • Differential Expression - Spatial-aware differential analysis
  • Pathway Analysis - Cluster annotation and signaling pathways
  • CLQ Analysis - Co-localization quotient for spatial relationships

🔧 Utilities

  • Data Loading - OME-TIFF, OME-ZARR, AnnData formats
  • Preprocessing - Normalization, batch correction, dimensionality reduction
  • Visualization - Comprehensive plotting and analysis tools

📦 Installation

Quick Start

# Install from PyPI
pip install spex-tools

Advanced Installation

For optimal performance, we recommend installing system dependencies:

Option 1: Using Conda (Recommended)

# Load Miniforge3/Anaconda (if available on your system)
module load Miniforge3  # or module load Anaconda3

# Create and activate conda environment
conda create -n py311 python=3.11 -c conda-forge -y
conda activate py311

# Install system dependencies (optional, but recommended)
conda install -c conda-forge libjpeg-turbo zlib libpng fftw compilers make cmake imagecodecs -y

# Install SPEX
pip install spex-tools

Option 2: Using System Package Manager

# Ubuntu/Debian
sudo apt install -y libgl1-mesa-glx libjpeg-dev zlib1g-dev libpng-dev libgl1 libfftw3-dev build-essential python3-dev

# macOS (using Homebrew)
brew install libjpeg zlib libpng fftw

# Install SPEX
pip install spex-tools

From Source

# Clone repository
git clone https://github.com/genentech/spex-tools.git
cd spex-tools

# Set up environment
conda create -n py311 python=3.11 -c conda-forge -y
conda activate py311

# Install
pip install .

🔧 Quick Start

import spex as sp

# Load an image
array, channels = sp.load_image("path/to/image.ome.tiff")

# Perform cell segmentation
labels = sp.cellpose_cellseg(array, seg_channels=[0], diameter=30, scaling=1)

# Extract features
features = sp.feature_extraction(array, labels)

print(f"Detected {labels.max()} cells")

📚 Documentation

📂 Example Workflows

Complete Segmentation Pipeline

import spex as sp

# 1. Load and preprocess image
array, channels = sp.load_image("image.ome.tiff")
array = sp.background_subtract(array)
array = sp.median_denoise(array)

# 2. Segment cells
labels = sp.cellpose_cellseg(array, seg_channels=[0], diameter=30)

# 3. Post-process
labels = sp.remove_small_objects(labels, min_size=50)
labels = sp.remove_large_objects(labels, max_size=1000)

# 4. Extract features
features = sp.feature_extraction(array, labels)

Spatial Analysis Workflow

import spex as sp
import scanpy as sc

# 1. Load AnnData
adata = sc.read_h5ad("spatial_data.h5ad")

# 2. Preprocess
adata = sp.preprocess(adata)

# 3. Cluster
adata = sp.cluster(adata, method='leiden', resolution=0.5)

# 4. Spatial analysis
clq_results = sp.CLQ_vec_numba(adata, cluster_key='leiden')
niche_results = sp.niche(adata, cluster_key='leiden')

# 5. Differential expression
de_results = sp.differential_expression(adata, groupby='leiden')

Interactive Examples

Use the methods directly in your own analysis pipelines. Example notebooks are available:

Notebooks include:

  • Model downloading (in case Cellpose server access fails)
  • Visualization examples
  • End-to-end segmentation pipelines

🎯 Getting Started

  1. Install SPEX - Follow the installation instructions above
  2. Load your data - Use load_image() for microscopy images or scanpy.read_h5ad() for AnnData
  3. Segment cells - Choose from Cellpose, StarDist, or Watershed methods
  4. Extract features - Get per-cell measurements and characteristics
  5. Analyze spatially - Perform clustering and spatial analysis

⚙️ System Requirements

  • Python: 3.11 (recommended), other versions may work
  • Memory: 8GB+ RAM recommended for large images
  • GPU: Optional, for faster Cellpose processing
  • Dependencies: OpenCV, NumPy, SciPy, Scanpy, AnnData

🔍 Troubleshooting

Common Issues

  1. OpenCV Import Error

    • Ensure system dependencies are installed
    • Try: conda install -c conda-forge opencv
  2. Cellpose Model Download Issues

    • Models download automatically on first use
    • Check internet connection
    • See documentation for manual download
  3. Memory Issues

    • Large images may require significant RAM
    • Consider using smaller image tiles

For more help, see our Troubleshooting Guide.

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Links


SPEX - Empowering spatial transcriptomics research with advanced analysis tools.

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

spex_tools-0.3.1058.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

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

spex_tools-0.3.1058-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file spex_tools-0.3.1058.tar.gz.

File metadata

  • Download URL: spex_tools-0.3.1058.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for spex_tools-0.3.1058.tar.gz
Algorithm Hash digest
SHA256 5b10331d9a15cce6bcb02fb290098c9522b798429677f6cb758429798ef8e11a
MD5 82fa0e92af39d29f2974fb0ce4b2ca4a
BLAKE2b-256 ff996bf02d48aff5d187c00b74e09e554221011ba15c94ee92bc007fc89476fe

See more details on using hashes here.

Provenance

The following attestation bundles were made for spex_tools-0.3.1058.tar.gz:

Publisher: publish.yml on Genentech/spex-tools

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

File details

Details for the file spex_tools-0.3.1058-py3-none-any.whl.

File metadata

  • Download URL: spex_tools-0.3.1058-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for spex_tools-0.3.1058-py3-none-any.whl
Algorithm Hash digest
SHA256 27e79d1ea6b16d72b21f836519265bedc966ab82c86efbc6294e86b06b7885f7
MD5 4c75f5f2b43cf514104293775cd447ab
BLAKE2b-256 144a5c0e508eea9ab9222c10eed55781a3344ed0a4397cc225a09ac669d91e16

See more details on using hashes here.

Provenance

The following attestation bundles were made for spex_tools-0.3.1058-py3-none-any.whl:

Publisher: publish.yml on Genentech/spex-tools

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