Skip to content

Add mantpy - #403

Open
moeghaf wants to merge 3 commits into
scverse:mainfrom
moeghaf:add-mantpy
Open

Add mantpy#403
moeghaf wants to merge 3 commits into
scverse:mainfrom
moeghaf:add-mantpy

Conversation

@moeghaf

@moeghaf moeghaf commented Aug 19, 2026

Copy link
Copy Markdown

Adds packages/mantpy/meta.yaml and a logo for mantpy.

Mandatory

Name of the tool: mantpy

Short description: Graph-based analysis of the extracellular matrix (ECM) in spatial proteomics.
Cells and ECM patches are modelled as distinct, linked node types, so matrix structure can be
analysed on its own or together with cellular context.

How does the package use scverse data structures (please describe in a few sentences):

Mantpy is built on AnnData throughout. Readers (mt.io.read_imc, read_imc_folder,
read_codex, read_ecm_image) return an AnnData with cells in obs and coordinates in
obsm["spatial"], following the squidpy convention. ECM patches are represented as a second,
patch-level AnnData — with its own obsm["spatial"] — so ECM segments are first-class
observations rather than an ad-hoc side table. The cell graph and the patch graph built by mt.gr
are written to obsp as sparse matrices with their parameters in uns, mirroring the
squidpy.gr.spatial_neighbors layout, so scanpy and squidpy functions operate on mantpy objects
unchanged. The ECM graph and the joint cell–ECM graph are kept as NetworkX objects in uns for
graph algorithms; mt.gr.compose_cell_ecm_graph produces the h5ad-serialisable form — one joint
AnnData with the cell, ECM and cell–ECM layers as sparse matrices in obsp. Analysis results
from mt.tl land in obs/obsm/uns rather than bespoke containers. For interchange,
mt.io.to_spatialdata bundles images, labels and tables into a SpatialData object, and
mt.gr.to_pyg / to_hetero_pyg export the graphs to PyTorch Geometric.

  • The code is publicly available under an OSI-approved license — MIT
  • The package provides versioned releases — https://github.com/moeghaf/Mantpy/releases
  • The package can be installed from a standard registry — pip install mantpy (https://pypi.org/project/mantpy/)
  • Automated tests cover essential functions of the package and a reasonable range of inputs and conditions — 70 test modules under tests/, including a public-API contract test
  • Continuous integration (CI) automatically executes these tests on each push or pull request — GitHub Actions, hatch matrix over Python 3.11 and 3.14 plus a pre-release-dependency leg
  • The package provides API documentation via a website or README — https://mantpy.readthedocs.io/en/latest/api.html (covers all public functions across io, im, pp, gr, tl, pl, ds, fetch, palette, style)
  • The package uses scverse datastructures where appropriate — AnnData throughout, with SpatialData export
  • I am an author or maintainer of the tool and agree on listing the package on the scverse website
  • I agree to abide by the scverse code of conduct on all scverse communication channels

Recommended

moeghaf and others added 3 commits August 19, 2026 11:50
Graph-based analysis of the extracellular matrix in spatial proteomics.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
validate-registry rejects pinned `/en/latest/` paths and asks for the
default-version `/page/` form.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The bioRxiv preprint describing mantpy is now posted
(10.1101/2025.06.04.657781), so list it under `publications`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant