Skip to content

Add metalsinglecell#385

Open
gingerii wants to merge 2 commits into
scverse:mainfrom
gingerii:add-metalsinglecell
Open

Add metalsinglecell#385
gingerii wants to merge 2 commits into
scverse:mainfrom
gingerii:add-metalsinglecell

Conversation

@gingerii

Copy link
Copy Markdown

Add metalsinglecell

Mandatory

Name of the tool: metalsinglecell

Short description: A Metal/MLX GPU implementation of the scanpy/squidpy single-cell analysis stack for Apple Silicon — drop-in replacements for the core scanpy (pp/tl) and squidpy (gr) functions that run on the M-series GPU, plus an out-of-core streaming front-end for datasets larger than memory.

How does the package use scverse data structures (please describe in a few sentences): Every function takes an AnnData object, computes on the GPU, and writes results back to the same slots scanpy/squidpy use (.X, .obsm, .obsp, .var, .uns) with scanpy's copy= semantics, so plotting and downstream tooling are unchanged. The API mirrors the scanpy/squidpy namespaces (pp, tl, gr), making it a drop-in for existing AnnData-based pipelines. The out-of-core path streams an on-disk AnnData-compatible zarr store.

  • The code is publicly available under an OSI-approved license
  • The package provides versioned releases
  • The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda)
  • Automated tests cover essential functions of the package and a reasonable range of inputs and conditions
  • Continuous integration (CI) automatically executes these tests on each push or pull request
  • The package provides API documentation via a website or README
  • The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)
  • I am an author or maintainer of the tool and agree on listing the package on the scverse website

Notes for reviewers

  • License: BSD-3-Clause · PyPI: https://pypi.org/project/metalsinglecell/ · Docs: https://metal-singlecell.readthedocs.io
  • Tests: tests/ (CPU lane + self-hosted Metal-GPU lane); CI: .github/workflows/ci.yml (CPU lane on ubuntu + macos, incl. an "installs without mlx on Linux" contract check).
  • The GPU backend (mlx) is a Darwin/arm64-only dependency and is lazy-imported, so the package installs and imports on any platform (CI proves this on Linux).

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