2. Scope and Goals¶
2.1 In Scope¶
The Zarr Vector Format specification covers:
Point clouds (2D, 3D, N-dimensional)
Meshes (triangular, quad, tetrahedral, etc.)
Skeletons and graphs
Streamlines and polylines
Tracks through time
Spatial transcriptomics (cells and detection points)
Arbitrary N-dimensional vector data
Spatial indexing and multi-resolution
Distributed read/write operations
Rich metadata support
2.2 Out of Scope¶
The following are explicitly out of scope for this specification:
Specific visualization APIs
Compression algorithm specifications (references existing standards)
2.3 Example Use Cases¶
Large-Scale Multiplexed FISH with Transcriptome Wide Gene Imputations¶
This use case demonstrates organizing point clouds via cell-types with genome-wide transcriptome measurements per cell:
Organizing point clouds via cell-types: Cells are organized into groups based on cell type classification
Genome-wide transcriptome measurements per cell: Each cell point has attributes for thousands of genes
Write sequence:
Linking point clouds within a spatial bin to a cell type
Writing all groups across spatial bins
Group hierarchies: Using groups to link cell-types into super-groups
Read patterns:
Reading all cells that belong to a type
Reading all cells that belong to a super-type
Reading all cells in a spatial cutout
Distributed Multi-Resolution Triangular Meshes¶
This use case demonstrates organizing meshes into spatially divided sections with multi-resolution support:
Organizing meshes into spatially divided sections: Meshes are divided into spatial chunks
Writing meshes as Draco compressed byte streams: Mesh geometry is encoded using Draco compression
Fragment index: a per-chunk fragment index identifies all mesh fragments in each chunk; an object manifest chains fragments across chunks to form whole-mesh objects
Read patterns:
Reading all the components of a high resolution mesh
Reading sufficient metadata to build an oct-tree representation of a mesh across all levels of detail
Facilitating multi-resolution visualization with reads of the mesh data on demand
Skeleton/Graph Storage for Connectomics¶
This use case demonstrates storing neuronal skeletons with spatial organization:
Breaking skeletons into spatial buckets: Skeletons are divided into spatial regions
Repeating vertices at border (optional): under
cross_chunk_strategy = "boundary_deduplication", vertices on chunk boundaries are duplicated. The default strategy (explicit_links) instead recordscross_chunk_links/0/datarecords and keeps vertices unique.Appending vertices and fragment-index entries: new skeleton fragments can be incrementally added to a chunk without rewriting other chunks
Adding parent indices: parent-child relationships are stored under
links/0/<chunk>(link_width = 1); underlinks_convention = "implicit_sequential_with_branches"only branch links are materialisedAdding vertex properties: Properties like radius and compartment are stored per vertex
Reconstructing entire skeleton: Complete skeletons can be reconstructed from distributed chunks