harpy

single-cell spatial proteomics analysis that makes you happy

  • dambi

Harpy: single-cell spatial proteomics analysis that makes you happy

PyPI Build Status documentation badge

Note: This package is still under very active development.

Installation

Recommended for end-users. Install the latest harpy-analysis PyPI package with the extra dependencies in a local Python environment:

uv venv --python=3.12 # set python version
source .venv/bin/activate # activate the virtual environment
uv pip install 'harpy-analysis[extra]' # use uv to pip install dependencies
python -c 'import harpy; print(harpy.__version__)' # check if the package is installed

If you're a developer, read the contribution guide. Checkout the docs for more installation instructions.

Tutorials

Tutorials are available here.

Usage

Learn how Harpy can be integrated into your workflow in different ways.

Contributing

See here for info on how to contribute to Harpy.

References

License

Check the license. Harpy is free for academic usage. For commercial usage, please contact Saeyslab.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Version:

  • 0.2.0

Last updated:

  • 2025-05-29

First released:

  • 2024-12-09

License:

  • Academic Non-commercial Softwa...

Supported data:

  • Information not submitted

Plugin type:

Open extension:

Save extension:

Python versions supported:

    Operating system:

    • Information not submitted

    Requirements:

    • crick
    • dask<=2024.11.2,>=2024.4.1
    • datasets>=2.16.0
    • distributed
    • flowsom
    • geopandas>=1.0.1
    • lazy-loader>=0.4
    • leidenalg>=0.9.1
    • magicgui
    • nptyping
    • ome-zarr>=0.9.0
    • omegaconf==2.3.0
    • pyrootutils
    • rasterio>=1.3.2
    • scanpy>=1.9.1
    • seaborn>=0.12.2
    • session-info2
    • spatialdata-io>=0.1.6
    • spatialdata>=0.2.6
    • universal-pathlib
    • voronoi-diagram-for-polygons>=0.1.6
    • xarray-dataclasses>=1.9.1
    • xarray>=2024.10.0
    • basicpy>=1.0.0; extra == 'basic'
    • jax>=0.4.6; extra == 'basic'
    • jaxlib>=0.4.6; extra == 'basic'
    • asv; extra == 'benchmark'
    • cellpose>=2.2.3; extra == 'cellpose'
    • hydra-colorlog>=1.2.0; extra == 'cli'
    • hydra-core>=1.2.0; extra == 'cli'
    • hydra-submitit-launcher>=1.2.0; extra == 'cli'
    • submitit>=1.4.5; extra == 'cli'
    • flowsom; extra == 'clustering'
    • scikit-learn>=1.3.1; extra == 'clustering'
    • asv; extra == 'dev'
    • bokeh; extra == 'dev'
    • cellpose>=2.2.3; extra == 'dev'
    • datasets; extra == 'dev'
    • flowsom; extra == 'dev'
    • hydra-colorlog>=1.2.0; extra == 'dev'
    • hydra-core>=1.2.0; extra == 'dev'
    • hydra-submitit-launcher>=1.2.0; extra == 'dev'
    • instanseg-torch>=0.0.8; extra == 'dev'
    • ipython; extra == 'dev'
    • ipywidgets; extra == 'dev'
    • joypy; extra == 'dev'
    • myst-nb; extra == 'dev'
    • napari-spatialdata>=0.2.6; extra == 'dev'
    • napari[all]>=0.4.18; extra == 'dev'
    • nbconvert; extra == 'dev'
    • opencv-python; extra == 'dev'
    • pre-commit; extra == 'dev'
    • pytest; extra == 'dev'
    • pytest-cov; extra == 'dev'
    • pytest-qt; extra == 'dev'
    • scikit-learn>=1.3.1; extra == 'dev'
    • spatialdata-plot<0.2.9; extra == 'dev'
    • sphinx-autodoc-typehints; extra == 'dev'
    • sphinx-book-theme>=1.0.0; extra == 'dev'
    • sphinx-copybutton; extra == 'dev'
    • sphinx-design; extra == 'dev'
    • sphinx-rtd-theme; extra == 'dev'
    • sphinx>=4.5; extra == 'dev'
    • sphinxcontrib-bibtex>=1.0.0; extra == 'dev'
    • squidpy; extra == 'dev'
    • submitit>=1.4.5; extra == 'dev'
    • supervenn>=0.5.0; extra == 'dev'
    • textalloc; extra == 'dev'
    • tox; extra == 'dev'
    • tqdm; extra == 'dev'
    • twine>=4.0.2; extra == 'dev'
    • myst-nb; extra == 'docs'
    • sphinx-autodoc-typehints; extra == 'docs'
    • sphinx-book-theme>=1.0.0; extra == 'docs'
    • sphinx-copybutton; extra == 'docs'
    • sphinx-design; extra == 'docs'
    • sphinx-rtd-theme; extra == 'docs'
    • sphinx>=4.5; extra == 'docs'
    • sphinxcontrib-bibtex>=1.0.0; extra == 'docs'
    • bokeh; extra == 'extra'
    • cellpose>=2.2.3; extra == 'extra'
    • flowsom; extra == 'extra'
    • hydra-colorlog>=1.2.0; extra == 'extra'
    • hydra-core>=1.2.0; extra == 'extra'
    • hydra-submitit-launcher>=1.2.0; extra == 'extra'
    • instanseg-torch>=0.0.8; extra == 'extra'
    • ipython; extra == 'extra'
    • ipywidgets; extra == 'extra'
    • joypy; extra == 'extra'
    • napari-spatialdata>=0.2.6; extra == 'extra'
    • napari[all]>=0.4.18; extra == 'extra'
    • nbconvert; extra == 'extra'
    • opencv-python; extra == 'extra'
    • scikit-learn>=1.3.1; extra == 'extra'
    • spatialdata-plot<0.2.9; extra == 'extra'
    • squidpy; extra == 'extra'
    • submitit>=1.4.5; extra == 'extra'
    • supervenn>=0.5.0; extra == 'extra'
    • textalloc; extra == 'extra'
    • tqdm; extra == 'extra'
    • instanseg-torch>=0.0.8; extra == 'instanseg'
    • napari-spatialdata>=0.2.6; extra == 'napari'
    • napari[all]>=0.4.18; extra == 'napari'
    • bokeh; extra == 'notebook'
    • ipython; extra == 'notebook'
    • ipywidgets; extra == 'notebook'
    • joypy; extra == 'notebook'
    • nbconvert; extra == 'notebook'
    • spatialdata-plot<0.2.9; extra == 'notebook'
    • supervenn>=0.5.0; extra == 'notebook'
    • textalloc; extra == 'notebook'
    • tqdm; extra == 'notebook'
    • opencv-python; extra == 'opencv'
    • cellpose>=2.2.3; extra == 'segmentation'
    • instanseg-torch>=0.0.8; extra == 'segmentation'
    • datasets; extra == 'test'
    • opencv-python; extra == 'test'
    • pytest; extra == 'test'
    • pytest-cov; extra == 'test'
    • pytest-qt; extra == 'test'
    • tox; extra == 'test'
    Website by the napari team, original design by CZI. Go to napari main website.