From 447771f0b244d193decba45c90693bc78e3d1e0c Mon Sep 17 00:00:00 2001 From: Mark Keller <7525285+keller-mark@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:51:31 -0400 Subject: [PATCH 1/4] Add note about on-disk locations of point attributes --- docs/design_doc.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/design_doc.md b/docs/design_doc.md index a46d41f81..ad2883281 100644 --- a/docs/design_doc.md +++ b/docs/design_doc.md @@ -234,9 +234,9 @@ The requirements are the following: - The table MUST contains axis name to represent the axes. - If it's 2D, the axes should be `["x","y"]`. - If it's 3D, the axes should be `["x","y","z"]`. -- It MUST also contains coordinates transformations in `dask.dataframe.DataFrame().attrs["transform"]`. +- It MUST also contain coordinates transformations in `dask.dataframe.DataFrame().attrs["transform"]` (or on-disk in `.attrs["coordinateTransformations"]` for the Zarr Group containing the Element). -Additional information is stored in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]` +Additional information is stored in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]` (or on-disk in `.attrs["spatialdata_attrs"]` for the Zarr Group containing the Element). - It MAY also contains `"feature_key"`, that is, the column name of the table that refers to the features. This `Series` MAY be of type `pandas.Categorical`. - It MAY contains additional information in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]`, specifically: From 0c9c95cb897892c074e03e58a13eae98b76cc6bc Mon Sep 17 00:00:00 2001 From: Mark Keller <7525285+keller-mark@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:29:04 -0400 Subject: [PATCH 2/4] Update design_doc.md --- docs/design_doc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design_doc.md b/docs/design_doc.md index ad2883281..da2492cf1 100644 --- a/docs/design_doc.md +++ b/docs/design_doc.md @@ -234,7 +234,7 @@ The requirements are the following: - The table MUST contains axis name to represent the axes. - If it's 2D, the axes should be `["x","y"]`. - If it's 3D, the axes should be `["x","y","z"]`. -- It MUST also contain coordinates transformations in `dask.dataframe.DataFrame().attrs["transform"]` (or on-disk in `.attrs["coordinateTransformations"]` for the Zarr Group containing the Element). +- It MUST also contain coordinate transformations in `dask.dataframe.DataFrame().attrs["transform"]` (or on-disk in `.attrs["coordinateTransformations"]` for the Zarr Group containing the Element). Additional information is stored in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]` (or on-disk in `.attrs["spatialdata_attrs"]` for the Zarr Group containing the Element). From 02cc164472aaaf684467268374e873f51ff9a18f Mon Sep 17 00:00:00 2001 From: LucaMarconato <2664412+LucaMarconato@users.noreply.github.com> Date: Sun, 4 Jan 2026 15:35:55 +0100 Subject: [PATCH 3/4] changes design docs --- docs/design_doc.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/design_doc.md b/docs/design_doc.md index da2492cf1..bbe82eebb 100644 --- a/docs/design_doc.md +++ b/docs/design_doc.md @@ -231,16 +231,16 @@ Coordinates of points for single molecule data. Each observation is a point, and Current implementation represent points as a Parquet file and a [`dask.dataframe.DataFrame`](https://docs.dask.org/en/stable/dataframe.html) in memory. The requirements are the following: -- The table MUST contains axis name to represent the axes. +- The dataframe MUST contains axis name to represent the axes. - If it's 2D, the axes should be `["x","y"]`. - If it's 3D, the axes should be `["x","y","z"]`. -- It MUST also contain coordinate transformations in `dask.dataframe.DataFrame().attrs["transform"]` (or on-disk in `.attrs["coordinateTransformations"]` for the Zarr Group containing the Element). +- It MUST also contain coordinate transformations in `dask.dataframe.DataFrame().attrs["transform"]`. This information will be saved on-disk in JSON under a `"coordinateTransformations"` key in a `.zattrs` file (Zarr v2), or `zarr.json` file (Zarr v3), in a Zarr Group containing the Element. The specific way this information is stored in disk is described by the NGFF specification. Precisely, the NGFF specification dscribes coordinate transformations for images, but we will reuse it also for Points and Shapes. Additional information is stored in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]` (or on-disk in `.attrs["spatialdata_attrs"]` for the Zarr Group containing the Element). -- It MAY also contains `"feature_key"`, that is, the column name of the table that refers to the features. This `Series` MAY be of type `pandas.Categorical`. +- It MAY also contains `"feature_key"`, that is, the column name of the dataframe that refers to the features. This `Series` MAY be of type `pandas.Categorical`. - It MAY contains additional information in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]`, specifically: - - `"instance_key"`: the column name of the table where unique instance ids that this point refers to are stored, if available. + - `"instance_key"`: the column name of the dataframe where unique instance ids that this point refers to are stored, if available. #### Table (table of annotations for regions) From 73b0c76a47e2aad06fb5f468951b49c10c26f749 Mon Sep 17 00:00:00 2001 From: LucaMarconato <2664412+LucaMarconato@users.noreply.github.com> Date: Sun, 4 Jan 2026 15:40:30 +0100 Subject: [PATCH 4/4] edit design doc --- docs/design_doc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design_doc.md b/docs/design_doc.md index bbe82eebb..43eb176fc 100644 --- a/docs/design_doc.md +++ b/docs/design_doc.md @@ -234,7 +234,7 @@ The requirements are the following: - The dataframe MUST contains axis name to represent the axes. - If it's 2D, the axes should be `["x","y"]`. - If it's 3D, the axes should be `["x","y","z"]`. -- It MUST also contain coordinate transformations in `dask.dataframe.DataFrame().attrs["transform"]`. This information will be saved on-disk in JSON under a `"coordinateTransformations"` key in a `.zattrs` file (Zarr v2), or `zarr.json` file (Zarr v3), in a Zarr Group containing the Element. The specific way this information is stored in disk is described by the NGFF specification. Precisely, the NGFF specification dscribes coordinate transformations for images, but we will reuse it also for Points and Shapes. +- It MUST also contain coordinate transformations in `dask.dataframe.DataFrame().attrs["transform"]`. This information will be saved on-disk in JSON under a `"coordinateTransformations"` key in a `.zattrs` file (Zarr v2), or `zarr.json` file (Zarr v3), in a Zarr Group containing the Element. The specific way this information is stored in disk is described by the NGFF specification (the implementaiton of the latest version of the specs is ongoing). Precisely, the NGFF specification dscribes coordinate transformations for images, but we will reuse it also for Points and Shapes. Additional information is stored in `dask.dataframe.DataFrame().attrs["spatialdata_attrs"]` (or on-disk in `.attrs["spatialdata_attrs"]` for the Zarr Group containing the Element).