Skip to content

zarr-tree v0.1.0

Choose a tag to compare

@ronfinn ronfinn released this 24 Aug 14:52
· 31 commits to master since this release

zarr-tree v0.1.0

First public release of zarr-tree, a small Rust CLI for exploring the
structure and metadata of local Zarr stores.

Highlights

  • Inspect local Zarr V2 and V3 stores as a readable tree

  • Recognise Zarr groups, arrays and unknown nodes

  • Display array shape, chunk shape and dtype

  • Recognise OME-Zarr image groups

  • Display OME-NGFF axes and declared multiscale pyramid metadata

  • Recognise SpatialData:

    • store roots
    • images
    • labels
    • points
    • shapes
    • tables
  • Limit traversal with --depth

  • Emit machine-readable output with --json

  • Behave cleanly in Unix pipelines such as:

    zarr-tree store.zarr | head
    

Example

zarr-tree experiment.zarr

may produce:

experiment.zarr [group, SpatialData 0.2]
├── images [group]
│   └── morphology [group, OME-Zarr 0.5-dev-spatialdata, SpatialData image]
├── labels [group]
│   └── nuclei [group, OME-Zarr 0.5-dev-spatialdata, SpatialData labels]
├── points [group]
│   └── transcripts [group, SpatialData points]
├── shapes [group]
│   └── cell_boundaries [group, SpatialData shapes]
└── tables [group]
    └── table [group, SpatialData table]

Usage

Build from source:

git clone https://github.com/ronfinn/zarr-tree.git
cd zarr-tree
cargo build --release

Then run:

target/release/zarr-tree path/to/store.zarr

Useful options:

zarr-tree --depth 2 store.zarr
zarr-tree --json store.zarr
zarr-tree --json --depth 1 store.zarr

Scope

This release is intentionally metadata-only and local-filesystem-only.

It does not:

  • read array chunks or pixel values
  • decode Parquet or GeoParquet payloads
  • interpret AnnData expression matrices
  • access S3, HTTP or other remote object stores
  • perform full OME-NGFF or SpatialData validation

OME-Zarr and SpatialData support is recognition and inspection rather than
full specification validation.

Quality

The v0.1.0 release was tagged from a clean build with:

  • 37 unit tests
  • 11 CLI integration tests
  • cargo fmt --check
  • cargo check
  • cargo clippy --all-targets -- -D warnings
  • cargo build --release

All checks passed.