cuspa: GPU spatial operations for spatial omics
cuspa assigns transcript coordinates to cell polygons and builds sparse cells-by-genes count matrices on the GPU. Geometry is stored in flat GeoArrow-style buffers. GeoPandas and SpatialData inputs are converted before GPU computation.
Installation
Install the prebuilt wheel for your CUDA major version:
[uv] pip install cuspa-cu12 # CUDA 12
[uv] pip install cuspa-cu13 # CUDA 13
Both distributions provide the cuspa Python package; install only one per
environment. The optional adapters are extras, for example
[uv] pip install "cuspa-cu12[geopandas]"; geoarrow and spatialdata work
the same way.
cuspa requires Python 3.12 or newer, a compatible NVIDIA GPU and driver, a CUDA 12 or CUDA 13 runtime, and CuPy or CUDA-enabled PyTorch. Install the CuPy or PyTorch package for your CUDA environment separately. Aggregation and I/O adapters currently require CuPy.
To build from source instead, install the cuspa source distribution. This
requires the matching CUDA toolkit and a C++17 compiler:
[uv] pip install cuspa
See the installation guide for wheel targets and source-build details.
Usage
import cuspa as cs
polys = cs.io.from_spatialdata(sdata, "cell_boundaries")
tx = cs.io.transcripts_from_spatialdata(sdata, "transcripts")
csr = cs.tl.aggregate_to_cells(
[(tx.xy, tx.gene_ids)],
polys,
num_genes=len(tx.gene_names),
)
Documentation
See the documentation for installation,
usage, geometry input, the API reference, and the
release notes.
The site has documentation for main and for each release; pick one in the
version switcher.
Contributing
External contributions are open through pull requests. Report bugs and propose changes through GitHub Issues. See CONTRIBUTING.md for the contribution process. All project participants must follow the Code of Conduct.
Security
Do not report vulnerabilities through public GitHub issues. See SECURITY.md for NVIDIA's private reporting channels.
License
cuspa is licensed under Apache-2.0. See LICENSE.
Metadata
Release files for cuspa 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cuspa-0.1.0.tar.gz | 78.4 kB | Without provenance | Details for cuspa-0.1.0.tar.gz |
Release files / cuspa-0.1.0.tar.gz
| Download URL | cuspa-0.1.0.tar.gz |
|---|---|
| Size | 78.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fc9a3501c30ec26e43dfd7c209847e44743c5f3686ab2eaba79c3e5eeed8e2a3
|
|
BLAKE2b-256 checksum How to use checksums |
9a2c80b0b480ce962405ebb53e7e6ede9eaf6076dfafa26e8cabf6ecea474f65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|
Security for cuspa 0.1.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.