Skip to content

Latest commit

 

History

History
155 lines (98 loc) · 5.42 KB

README.md

File metadata and controls

155 lines (98 loc) · 5.42 KB

🍳 Welcome to segger!

pre-commit.ci status

segger is a cutting-edge tool for cell segmentation in single-molecule spatial omics datasets. By leveraging graph neural networks (GNNs) and heterogeneous graphs, segger offers unmatched accuracy and scalability.

How segger Works

Segger Model


Quick Links


Why segger?

  • Highly parallelizable – Optimized for multi-GPU environments
  • Fast and efficient – Trains in a fraction of the time compared to alternatives
  • Transfer learning – Easily adaptable to new datasets and technologies

Challenges in Segmentation

Spatial omics segmentation faces issues like:

  • Over/Under-segmentation
  • Transcript contamination
  • Scalability limitations

segger tackles these with a graph-based approach, achieving superior segmentation accuracy.


Installation Options

Important: PyTorch Geometric Dependencies

Segger relies heavily on PyTorch Geometric for its graph-based operations. One must install its dependencies (such as torch-sparse and torch-scatter) based on their system’s specifications, especially the CUDA and PyTorch versions.

Please follow the official PyTorch Geometric Installation Guide to install the correct versions of torch-sparse, torch-scatter, and other relevant libraries.

Below is a quick guide for installing PyTorch Geometric dependencies for torch 2.4.0:

For CUDA 11.x:

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

For CUDA 12.x:

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

Afterwards choose the installation method that best suits your needs.

Micromamba Installation

To set up Segger with micromamba and install the required dependencies, use the following commands:

micromamba create -n segger-rapids --channel-priority 1 \
    -c rapidsai -c conda-forge -c nvidia -c pytorch -c pyg \
    rapids=24.08 python=3.* 'cuda-version>=11.4,<=11.8' jupyterlab \
    'pytorch=*=*cuda*' 'pyg=*=*cu118' pyg-lib pytorch-sparse
micromamba install -n segger-rapids --channel-priority 1 --file mamba_environment.yml
micromamba run -n segger-rapids pip install --no-deps ./

GitHub Installation

For a straightforward local installation from GitHub, clone the repository and install the package using pip:

git clone https://github.com/EliHei2/segger_dev.git
cd segger_dev
pip install -e "."

Pip Installation (RAPIDS and CUDA 11)

For installations requiring RAPIDS and CUDA 11 support, run:

pip install -e ".[rapids11]"

Pip Installation (RAPIDS and CUDA 12)

For installations requiring RAPIDS and CUDA 12 support, run:

pip install -e ".[rapids12]"

Docker Installation

Segger provides an easy-to-use Docker container for those who prefer a containerized environment. To pull the latest Docker image:

docker pull danielunyi42/segger_dev:latest

The Docker image comes with all dependencies packaged, including RAPIDS. It currently supports only CUDA 12.2, and we will soon release a version that supports CUDA 11.8.

Singularity Installation

For users who prefer Singularity, you can pull the Docker image as follows:

singularity pull docker://danielunyi42/segger_dev:latest

Powered by

  • PyTorch Lightning & PyTorch Geometric: Enables fast, efficient graph neural network (GNN) implementation for heterogeneous graphs.
  • Dask: Scalable parallel processing and distributed task scheduling, ideal for handling large transcriptomic datasets.
  • Shapely & Geopandas: Utilized for spatial operations such as polygon creation, scaling, and spatial relationship computations.
  • RAPIDS: Provides GPU-accelerated computation for tasks like k-nearest neighbors (KNN) graph construction.
  • AnnData & Scanpy: Efficient processing for single-cell datasets.
  • SciPy: Facilitates spatial graph construction, including distance metrics and convex hull calculations for transcript clustering.

Contributions

segger is open-source and welcomes contributions. Join us in advancing spatial omics segmentation!