AnnZarro v0.4.3
This release reads zarr format 3 stores correctly, sharded ones included. It also adds a dataset picker with folder browsing and search, and never cuts a dataset name where you need to read it whole. Large pairwise matrices are read safely, stores on network filesystems open faster, and plots on very large datasets behave more consistently.
Zarr format 3
- Sharded stores are read correctly. The read guard sizes a sharded array by its inner chunk, not by the whole shard. With anndata 0.13's default 1 GB shards, one row of a pairwise matrix used to count as 950 MB when the real read is about 10 MB.
- A server running zarr 2 answers a format 3 store with a clear 400
unsupported_typeon every route, instead of server errors or empty answers. - The remote chunk cache works for sharded stores. A remote server that ignores
Rangerequests now gets an error that names the cause. - zarr 3.0.0 to 3.0.8 are excluded. They read sharded arrays wrongly or lose members of consolidated format 2 stores. Use zarr 3.0.9 or newer, or zarr 2.
- The docs say which server reads which format. Format 2 stays fully supported. Format 3 is not faster on local disk; sharding cuts the file count (about 4x on the demo store) and the bytes sent over a network (17x for a pairwise row). The docs list the measured costs and give sharding guidance.
Opening datasets
- A new dataset picker opens from Browse... in the dataset list, and carries over what you typed there. You can:
- search by name and path, with a regex toggle;
- browse folders, including stores in subfolders;
- see cells x genes, the format and the last-modified date for each store;
- find recently opened datasets at the top, and see why an unreadable store can't be opened.
- The dataset list shows full names. The dataset box stays on one line and cuts long names in the middle, keeping the end. Its tooltip holds the path relative to the data directory.
- The header stays on one row. As space runs out, it collapses button labels to icons first, then narrows the focus boxes and the dataset box, and only then stacks.
- The focused gene and cell boxes grow to show their whole value.
- The typed-path field says what you can open: a path in the data directory, or for admins any path; and a remote store URL where the server allows remote stores.
Large data
- Pairwise matrices (obsp, varp) are read by rows only, at most 1,000 rows per request, under a per-request memory limit (
server.max_read_mb) and a server-wide read budget. A request that would decompress an n x n block is refused with a reason. - The first open on a network filesystem reads the consolidated metadata instead of walking every file: about 12 filesystem calls instead of about 15,000.
- Stepping through the parts of a subset reloads only the panels that read cells. Gene plots and gene tables stay as they are.
- On a plot over the cell limit, the notice says what is unavailable and how to get it back: "Make a subset of up to 1M cells to use them."
Plots
- A colour column the dataset lacks draws grey with a "not in this dataset" notice, whatever caused the reload. That now includes plots over the cell limit, which used to show an error. The browser no longer requests a column it knows is missing.
- A gene plot with text coordinates (for example Ensembl IDs) counts every drawn gene as shown.
- A default colour from one dataset is not carried over to a dataset that lacks it.
- After a part step on a large plot, the strip no longer says "Plot went blank".
- The Refresh button sits next to the dataset box again.
Docs and data
- One demo store for every doc, tutorial and panel set:
bm_aging_annzarro.zarr, with a 3-D UMAP, gene statistics and descriptive field names. Download it from Zenodo: 10.5281/zenodo.23277103. - The docs link check no longer reports a Gene Set Analysis panel with Auto-update off as empty.