Metadata-Version: 2.4
Name: pyadata-cli
Version: 0.17.0
Summary: Streaming CLI for exploring and editing large AnnData .h5ad and .zarr stores
Keywords: anndata,h5ad,zarr,bioinformatics,single-cell,cli
Author: Aljes Binkevich
Author-email: Aljes Binkevich <ab76@sanger.ac.uk>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Typing :: Typed
Requires-Dist: h5py>=3.15.1
Requires-Dist: numpy>=2.3.5
Requires-Dist: pillow>=12.1.0
Requires-Dist: rich>=14.2.0
Requires-Dist: typer>=0.20.0
Requires-Dist: zarr>=3.1.5
Requires-Dist: pandas>=2.2 ; extra == 'dev'
Requires-Dist: scipy>=1.13 ; extra == 'dev'
Requires-Dist: pytest>=8.3.4 ; extra == 'dev'
Requires-Dist: pytest-cov>=6.0.0 ; extra == 'dev'
Requires-Dist: pytest-timeout>=2.3.0 ; extra == 'dev'
Requires-Dist: anndata>=0.13 ; extra == 'dev'
Requires-Dist: pandas>=2.2 ; extra == 'pickle'
Requires-Dist: scipy>=1.13 ; extra == 'pickle'
Maintainer: Aljes Binkevich
Maintainer-email: Aljes Binkevich <ab76@sanger.ac.uk>
Requires-Python: >=3.12
Project-URL: Changelog, https://cellgeni.github.io/adata-cli/changelog/
Project-URL: Documentation, https://cellgeni.github.io/adata-cli/
Project-URL: Homepage, https://github.com/cellgeni/adata-cli
Project-URL: Issues, https://github.com/cellgeni/adata-cli/issues
Project-URL: Repository, https://github.com/cellgeni/adata-cli
Provides-Extra: dev
Provides-Extra: pickle
Description-Content-Type: text/markdown

# adata-cli

Explore and edit huge AnnData stores (`.h5ad` and `.zarr`) from the command line,
without loading them into memory and without a Python session. `adata` inspects,
subsets, splits, concatenates, recasts and converts stores, and moves elements in
and out as CSV, JSON, `.npy`, `.mtx` or images. It implements the AnnData on-disk
spec directly against h5py and zarr, so it streams stores larger than RAM, and
converts to and from 10x, STARsolo, Visium, Xenium, CellBender, Parse, loom, MuData
and more.

**Documentation: <https://cellgeni.github.io/adata-cli/>**

## Quick start

```bash
pip install pyadata-cli

adata view data.h5ad
adata subset data.h5ad -o cortex.h5ad --obs-query "cluster == Cortex_2"
adata convert filtered_feature_bc_matrix.h5 -o counts.h5ad
```

The command is `adata`; the distribution is `pyadata-cli`, because `adata-cli` was
taken on PyPI. `pip install 'pyadata-cli[pickle]'` adds pycisTopic pickles. The
container image is `quay.io/cellgeni/adata-cli`:

```bash
docker run --rm -v "$PWD":/data quay.io/cellgeni/adata-cli:latest adata view /data/data.h5ad
```

## Documentation

| Page | |
|---|---|
| [Getting started](https://cellgeni.github.io/adata-cli/getting-started/) | Install, then a first session: inspect, export, subset, import, convert |
| [Guides](https://cellgeni.github.io/adata-cli/guides/) | Inspect and export, subset and split, concatenate, recast, convert formats, pipelines and containers |
| [Reference](https://cellgeni.github.io/adata-cli/reference/) | Every command and flag, each format, query expressions, the on-disk spec, benchmarks |
| [Troubleshooting](https://cellgeni.github.io/adata-cli/troubleshooting/) | Error messages and their fixes |
| [Developers](https://cellgeni.github.io/adata-cli/developers/) | Layout, layers, the rules the code relies on, tests, releases |

The pages are also readable on GitHub in [`docs/`](https://github.com/cellgeni/adata-cli/tree/main/docs).

## Repository

| Path | Contents |
|---|---|
| `src/adata/cli.py`, `commands/` | The command-line app, and one module per command |
| `src/adata/core/` | The streaming algorithms: subset, concat, recast, the out-of-core transpose, queries |
| `src/adata/elements/`, `storage/` | The AnnData on-disk spec, over h5py and zarr alike |
| `src/adata/conversion/`, `formats/` | `convert`'s formats, and the file types of `export` and `import` |
| `tests/` | The test suite, including anndata compatibility and complexity guards |
| `benchmarks/` | The comparison against anndata and scanpy, rerun on every release |
| `docs/` | Documentation site |
| `Dockerfile` | The `quay.io/cellgeni/adata-cli` image |
| `.github/workflows/` | Tests, PyPI and image publishing, benchmarks |

## Changes

See the [changelog](https://cellgeni.github.io/adata-cli/changelog/).

## Licence

[MIT](https://github.com/cellgeni/adata-cli/blob/main/LICENSE)
