Skip to main content

goatpy — Spatial Glycomics Analysis Toolkit

PyPI version Documentation Status License: MIT Python 3.10+

goatpy is a Python toolkit for spatial glycomics analysis, combining MALDI mass spectrometry imaging with H&E histology. It provides automatic image registration, pseudo-image generation, spatial PCA, and annotation tools built on top of the SpatialData framework.

Features

  • Automatic H&E registration — align MALDI ion images to whole-slide H&E images using normalised cross-correlation with full 360° rotation search
  • QuPath annotation support — transform GeoJSON annotations from QuPath into the registered coordinate system
  • Spatial GraphPCA — dimensionality reduction with optional spatial smoothing via k-nearest-neighbour graphs
  • Pseudo-image generation — create spatial images from categorical or continuous obs columns
  • Landmark alignment GUI — interactive napari-based landmark alignment tool
  • SpatialData native — all outputs are standard SpatialData objects, compatible with the scverse ecosystem

Installation

Recommended: conda environment

Download environment.yml and create the environment:

conda env create -f environment.yml
conda activate maldi
pip install goatpy

PyPI

pip install goatpy

For napari visualisation support:

pip install "goatpy[napari]"

From source

pip install git+https://github.com/agc888/goatpy.git

Quick start

import goatpy as gp

# Load and register MALDI + H&E
sdata = gp.load_and_align(
    imzml_path="my_sample.imzML",
    he_path="my_sample.svs",
    geojson_path="annotations.geojson",  # optional QuPath annotations
)

# Normalise intensities
sdata = gp.normalize_spatialdata(sdata, table_name="maldi_adata", method="TIC")

# Dimensionality reduction
sdata = gp.graphpca_spatialdata(sdata, n_components=30, alpha=0.5)

# Cluster
sdata = gp.get_kmean_clusters(sdata, n_clusters=8)

# Visualise in napari
from napari_spatialdata import Interactive
Interactive([sdata]).run()

Documentation

Full documentation is available at goatpy.readthedocs.io.

Citation

If you use goatpy in your research, please cite:

Causer, A. (2025). goatpy: Spatial Glycomics Analysis Toolkit. https://github.com/agc888/goatpy

License

MIT — see LICENSE for details.

Metadata

Release files for goatpy 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goatpy 1.0.0
File Size Uploaded Provenance Actions
goatpy-1.0.0.tar.gz 126.4 kB Without provenance Details for goatpy-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for goatpy 1.0.0
File Interpreter ABI Platform Actions
goatpy-1.0.0-py3-none-any.whl Python 3 none any Details for goatpy-1.0.0-py3-none-any.whl

Total release size: 228.3 kB

Release files / goatpy-1.0.0.tar.gz

Download URL goatpy-1.0.0.tar.gz
Size 126.4 kB
Tags Source
SHA-256 checksum
How to use checksums
81fe2022a28e75b84b2ce4a51cce46a5af038f31add008c6d1dfa4ffdb98fac2
BLAKE2b-256 checksum
How to use checksums
07276226b2534ba6b35e616f3faed50843f4edfad1cbae9541869fdae10302ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Release files / goatpy-1.0.0-py3-none-any.whl

Download URL goatpy-1.0.0-py3-none-any.whl
Size 101.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fa1e5f268b94237ae539af6647315442fbcf2c3c6a2e807dbee2707d81d5b6e
BLAKE2b-256 checksum
How to use checksums
9378df286f3abc4b2963ba13a56b40317f93d6fc9caeaba8e355a22d98b71853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.5

Security for goatpy 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page