Skip to content
Back to skills

Anndata

ASecurity

"Use AnnData to build, inspect, combine, store, lazily read, and

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
developmentpythongobashdebuggingapibackend

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill anndata --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Anndata?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Anndata
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-anndata/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-anndata)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: anndata
description: "Use AnnData to build, inspect, combine, store, lazily read, and
  extend annotated data matrices in memory and on disk."
disable-model-invocation: true
metadata:
  disco-role: operating
license: BSD 3-Clause
---

# AnnData Repo Skill

Use this repo skill when a task involves `anndata`, `AnnData`, annotated data matrices, `.h5ad`, `.zarr`, backed mode, lazy reads, `anndata.concat`, `AnnCollection`, `anndata.acc`, or AnnData extension namespaces. AnnData is a Python package for annotated data matrices with aligned observations, variables, multidimensional annotations, pairwise arrays, layers, unstructured metadata, and native HDF5/Zarr storage.

## First Checks

- Install AnnData with `pip install anndata` or `conda install -c conda-forge anndata` when the project does not already provide it.
- For lazy reads or remote Zarr workflows, install the package extra that provides `xarray`, `dask`, `requests`, and `aiohttp`: `pip install "anndata[lazy]"`.
- Prefer public imports such as `import anndata as ad` and `from anndata import AnnData`; avoid leading-underscore internals unless the task is explicitly repository maintenance.
- Confirm importability before deeper work:

```bash
python - <<'PY'
import anndata as ad
from anndata import AnnData
print(ad.__name__, AnnData)
PY
```

- Run [`scripts/smoke_anndata_core.py`](scripts/smoke_anndata_core.py) for a safe bundled smoke test covering construction, concat, H5AD, and optional Zarr round-trips.

## Route Map

- Use [`sub-skills/data-model/SKILL.md`](sub-skills/data-model/SKILL.md) for constructing, inspecting, mutating, validating, slicing, copying, or repairing in-memory `AnnData` objects and aligned containers such as `X`, `obs`, `var`, `layers`, `obsm`, `varm`, `obsp`, `varp`, `uns`, and `raw`.
- Use [`sub-skills/storage-io/SKILL.md`](sub-skills/storage-io/SKILL.md) for `.h5ad`, Zarr, backed mode, lazy reads, sparse on-disk datasets, element-level `read_elem`/`write_elem`, encoding metadata, compression, chunking, and I/O troubleshooting.
- Use [`sub-skills/combining-data/SKILL.md`](sub-skills/combining-data/SKILL.md) for `anndata.concat`, mapping-vs-sequence keys, merge and join decisions, batch labels, duplicate names, pairwise graph retention, `AnnCollection`, and `experimental.concat_on_disk`.
- Use [`sub-skills/accessors-extensions/SKILL.md`](sub-skills/accessors-extensions/SKILL.md) for `anndata.acc.A` references, reusable validation or plotting helpers, JSON/string reference forms, `register_anndata_namespace`, and extension namespace debugging.

## Common Workflows

1. For a new object, start with `data-model`: confirm `X.shape == (len(obs), len(var))`, choose stable `obs_names` and `var_names`, add aligned arrays only when their leading axes match, then run the bundled structure inspector when shape problems are likely.
2. For persistence, move to `storage-io`: choose `.h5ad` for single-file exchange or Zarr for directory/object-store workflows, validate round-trips with a tiny fixture, and use backed/lazy reads only when their access constraints fit the task.
3. For multi-dataset integration, use `combining-data`: decide `axis`, `join`, `merge`, `uns_merge`, `label`, `keys`, `index_unique`, `fill_value`, and whether memory pressure requires `AnnCollection` or `concat_on_disk`.
4. For reusable library code, use `accessors-extensions`: represent fields with `A.obs[...]`, `A.obsm[...][:, i]`, or `A.layers[...]`, validate references before indexing, and keep extension namespaces small and explicitly typed.

## Shared References And Scripts

- Read [`references/troubleshooting.md`](references/troubleshooting.md) for cross-cutting install/import, optional dependency, data validation, API misuse, storage backend, and workflow-routing issues before diving into sub-skill-specific troubleshooting.
- Read [`references/repo-provenance.md`](references/repo-provenance.md) when deciding whether this generated skill is stale against a newer AnnData checkout or release.
- [`references/repo-routing-metadata.json`](references/repo-routing-metadata.json) is structured metadata used by DisCo's managed `repo-skills-router` import.
- Run [`scripts/smoke_anndata_core.py`](scripts/smoke_anndata_core.py) to validate import, core object construction, concat behavior, and optional H5AD/Zarr round-trips with tiny temporary fixtures.

## Decision Points

- Use sparse `X` and sparse layers when data is mostly zero; dense arrays are simpler for tiny examples but can hide memory pressure.
- Treat `.raw` as an intentional snapshot of original `X`, `var`, and `varm`; later `.var` mutations do not automatically update `.raw.var`.
- Use `.copy()` before mutating subsets when parent preservation or warning-free behavior matters.
- Use `join="inner"` for conservative concat across features and `join="outer"` only when downstream code can handle missing values or sparse zero fill.
- For `anndata.concat`, use mapping keys or sequence `keys`, not both, when creating batch labels.
- Use backed mode for limited H5AD inspection and reads; do not assume every in-memory mutation works without materializing.
- Treat `experimental` APIs as useful but less stable; mention optional dependencies and deprecations such as `AnnLoader` moving toward `annbatch.Loader` when relevant.

## Troubleshooting Priority

1. Verify the import, installed version, and optional extras relevant to the task.
2. Reproduce with a tiny `AnnData` object before scaling to large files or many batches.
3. Check shapes and names on every aligned slot.
4. Isolate storage problems with a fresh tiny H5AD or Zarr round-trip.
5. For concat surprises, print `shape`, `obs_names`, `var_names`, label categories, `.uns.keys()`, and relevant `.obsm`/`.varm`/`.obsp` keys.
6. For accessor or extension errors, validate references and namespace signatures before optional plotting, storage, or downstream package imports.

Files in this skill

  • SKILL.md5.8 KB
  • references/repo-provenance.md1.7 KB
  • references/repo-routing-metadata.json416 B
  • references/troubleshooting.md3.4 KB
  • scripts/smoke_anndata_core.py1.8 KB
  • sub-skills/accessors-extensions/SKILL.md2.5 KB
  • sub-skills/accessors-extensions/references/accessor-recipes.md3.8 KB
  • sub-skills/accessors-extensions/references/api-reference.md5.9 KB
  • sub-skills/accessors-extensions/references/extension-namespaces.md3.2 KB
  • sub-skills/accessors-extensions/references/troubleshooting.md3.9 KB
  • sub-skills/accessors-extensions/scripts/demo_anndata_accessor.py3.3 KB
  • sub-skills/combining-data/SKILL.md3.5 KB
  • sub-skills/combining-data/references/api-reference.md7.2 KB
  • sub-skills/combining-data/references/concat-workflows.md8.1 KB
  • sub-skills/combining-data/references/troubleshooting.md5.5 KB
  • sub-skills/combining-data/scripts/plan_anndata_concat.py12.8 KB
  • sub-skills/data-model/SKILL.md3.4 KB
  • sub-skills/data-model/references/api-reference.md6.8 KB
  • sub-skills/data-model/references/object-model.md7.7 KB
  • sub-skills/data-model/references/troubleshooting.md9.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…