somacore
Python-language API specification and base utilities for implementation of the SOMA system.
What it is and what it does
somacore is the Python reference implementation of the abstract SOMA specification, a standardized format for storing and retrieving single-cell data. It provides base interfaces, shared types, and cross-implementation utilities rather than a complete storage backend. The package is designed primarily for SOMA implementors and libraries that handle SOMA data, not for end users working directly with single-cell datasets.
The package depends on established scientific Python libraries (numpy, pandas, scipy, anndata, pyarrow) and provides the foundational API contracts that concrete SOMA implementations like tiledbsoma build upon. If you are working with SOMA data, the documentation recommends installing a SOMA implementation instead of this core package directly.
Use it for:
- Building a SOMA backend implementation that needs to conform to the standardized SOMA interface specification.
- Developing libraries that read or write SOMA-formatted single-cell data and need shared type definitions.
- Contributing to or extending the SOMA ecosystem with new storage or retrieval mechanisms.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides the Python reference implementation of the SOMA specification—a set of base interfaces, types, and utilities for working with standardized single-cell data storage and retrieval across different backend implementations.
Yes, if you are implementing a SOMA backend or building libraries that work with SOMA data. No, if you are an end user working with single-cell data—install a SOMA implementation like tiledbsoma instead. The package is actively maintained, has no known vulnerabilities, and carries a permissive license, but is explicitly not intended for direct end-user use.
Install
somacore on PyPI
pip
pip install somacoreuv
uv add somacorepoetry
poetry add somacoreInstalling somacore
Before you install
Low install friction with a pure-Python wheel and nine well-established dependencies (numpy, pandas, scipy, anndata, pyarrow, and others). Repository is active with recent commits and no security vulnerabilities reported.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
pip install somacore
import somacore
# Access SOMA base interfaces and types for implementing or working with SOMA data
Requires Python 3.9 or later.
Verify before relying
- Whether this package is intended for direct end-user installation or primarily as a transitive dependency of SOMA implementations like tiledbsoma.
- Specific use cases beyond implementing SOMA backends or building SOMA-aware libraries.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — anndata, attrs, numpy, pandas, pyarrow, pyarrow-hotfix, scipy, shapely, typing-extensions |
| Maintenance | actively maintained — 119 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 89,712/month — #13,639 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: somacore-2.0.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
tiledbsomaTileDB-SOMA is a Python implementation of the…
permissive · top 15,000 on PyPI
cellxgene-censusProvides a Python API to query and retrieve…
permissive · top 15,000 on PyPI
scvi-toolsscvi-tools provides probabilistic models for…
permissive · top 15,000 on PyPI
scanpyScanpy is a toolkit for preprocessing,…
permissive · top 5,000 on PyPI
pystac-ext-rasterExtends PySTAC with the Raster Extension…
permissive · top 5,000 on PyPI
biontyBionty provides access to and management of…
unclear · top 15,000 on PyPI
mudataMuData is a container for multimodal omics data…
permissive · top 15,000 on PyPI
pystacPySTAC is a Python library for reading,…
permissive · top 5,000 on PyPI
refgenieRefgenie manages standardized folder structures…
permissive · top 15,000 on PyPI
sarif-omProvides Python classes implementing the SARIF…
permissive · top 5,000 on PyPI