You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: index.md
+51-52Lines changed: 51 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -87,7 +87,7 @@ Note that the number of dimensions is variable between 2 and 5 and that axis nam
87
87
│
88
88
└── labels
89
89
│
90
-
├── zarr.json # The labels group is a container which holds a list of labels to make the objects easily discoverable
90
+
├── zarr.json # The labels group is a container which holds an array of labels to make the objects easily discoverable
91
91
│ # All labels will be listed in `zarr.json` e.g. `{ "labels": [ "original/0" ] }`
92
92
│ # Each dimension of the label should be either the same as the
93
93
│ # corresponding dimension of the image, or `1` if that dimension of the label
@@ -207,8 +207,8 @@ See the [example below](#spec:example:coordinate_transformation).
207
207
`axes` describes the dimensions of a coordinate systems
208
208
and adds an interpretation to the samples along that dimension.
209
209
210
-
It is a list of dictionaries,
211
-
where each dictionary describes a dimension (axis) and:
210
+
It is an array of objects,
211
+
where each object describes a dimension (axis) and:
212
212
- MUST contain the field `name` that gives the name for this dimension.
213
213
The values MUST be unique across all `name` fields in the same coordinate system.
214
214
- SHOULD contain the field `type`.
@@ -381,7 +381,7 @@ Additionally, the logic for finding the Zarr group for each image follows the fo
381
381
- Matching `series` metadata (as described next) SHOULD be provided for tools that are unaware of the `plate` specification.
382
382
- If the `OME` Zarr group exists, it:
383
383
- MAY contain a `series` attribute. If so:
384
-
-`series` MUST be a list of string objects, each of which is a path to an image group.
384
+
-`series` MUST be an array of string objects, each of which is a path to an image group.
385
385
- The order of the paths MUST match the order of the `Image` elements in `OME/METADATA.ome.xml` if provided.
386
386
- If the `series` attribute does not exist and no `plate` is present:
387
387
- separate `multiscales` images MUST be stored in consecutively numbered groups starting from 0 (i.e. `0/`, `1/`, `2/`, `3/`, ...).
@@ -420,11 +420,11 @@ The following transformations are supported:
420
420
|------|--------|-------------|
421
421
|[`identity`](#identity-md)|| The identity transformation is the do-nothing transformation and is typically not explicitly defined. |
422
422
|[`mapAxis`](#mapaxis-md)|`"mapAxis":List[number]`| an axis permutation as a transpose array of integer indices that refer to the ordering of the axes in the respective coordinate system. |
423
-
|[`translation`](#translation-md)| one of:<br>`"translation":List[number]`,<br>`"path":str`| Translation vector, stored either as a list of numbers (`translation`) or as a zarr array at a location in this container (`path`). |
424
-
|[`scale`](#scale-md)| one of:<br>`"scale":List[number]`,<br>`"path":str`| Scale vector, stored either as a list of numbers (`scale`) or as a zarr array at a location in this container (`path`). |
423
+
|[`translation`](#translation-md)| one of:<br>`"translation":List[number]`,<br>`"path":str`| Translation vector, stored either as an array of numbers (`translation`) or as a zarr array at a location in this container (`path`). |
424
+
|[`scale`](#scale-md)| one of:<br>`"scale":List[number]`,<br>`"path":str`| Scale vector, stored either as an array of numbers (`scale`) or as a zarr array at a location in this container (`path`). |
425
425
|[`affine`](#affine-md)| one of:<br>`"affine":List[List[number]]`,<br>`"path":str`| 2D affine transformation matrix stored either with JSON (`affine`) or as a zarr array at a location in this container (`path`). |
426
426
|[`rotation`](#rotation-md)| one of:<br>`"rotation":List[List[number]]`,<br>`"path":str`| 2D rotation transformation matrix stored as an array stored either with json (`rotation`) or as a zarr array at a location in this container (`path`).|
427
-
|[`sequence`](#sequence-md)|`"transformations":List[Transformation]`| sequence of transformations. Applying the sequence applies the composition of all transforms in the list, in order. |
427
+
|[`sequence`](#sequence-md)|`"transformations":List[Transformation]`| sequence of transformations. Applying the sequence applies the composition of all transforms in the array, in order. |
428
428
|[`displacements`](#coordinates-displacements-md)|`"path":str`<br>`"interpolation":str`| Displacement field transformation located at `path`. |
429
429
|[`coordinates`](#coordinates-displacements-md)|`"path":str`<br>`"interpolation":str`| Coordinate field transformation located at `path`. |
430
430
|[`inverseOf`](#inverseof-md)|`"transformation":Transformation`| The inverse of a transformation. Useful if a transform is not closed-form invertible. See forward and inverse of [bijections](#bijection-md) for details and examples. |
@@ -477,8 +477,8 @@ Coordinate transformations can be stored in multiple places to reflect different
477
477
- Transformations in individual multiscale datasets represent a special case of transformations
478
478
and are explained [below](#multiscales-md).
479
479
- Additional transformations for single multiscale images MUST be stored under a field `coordinateTransformations`
480
-
in the multiscales dictionaries.
481
-
This `coordinateTransformations` field MUST contain a list of valid [transformations](#trafo-types-md).
480
+
in the multiscales objects.
481
+
This `coordinateTransformations` field MUST contain an array of valid [transformations](#trafo-types-md).
482
482
- Transformations between two or more images MUST be stored in the attributes of a parent zarr group.
483
483
For transformations that store data or parameters in a zarr array,
484
484
those zarr arrays SHOULD be stored in a zarr group called `coordinateTransformations`.
@@ -579,7 +579,7 @@ Most coordinate transformations MUST specify their input and output coordinate s
579
579
using `input` and `output` with a string value
580
580
that MUST correspond to the name of a coordinate system or the path to a multiscales group.
581
581
Exceptions are if the coordinate transformation is wrapped in another transformation,
582
-
e.g. as part of a `transformations`list of a `sequence` or
582
+
e.g. as part of a `transformations`array of a `sequence` or
583
583
as `transformation` of an `inverseOf` transformation.
584
584
In these two cases input and output could, in some cases, be omitted (see below for details).
585
585
If unused, the `input` and `output` fields MAY be null.
@@ -788,8 +788,8 @@ The `input` and `output` fields MAY be omitted if wrapped in another transformat
788
788
The array at this path MUST be 1D, and its length MUST be `N`.
789
789
790
790
<strong>translation</strong>
791
-
: The translation parameters stored as a JSON list of numbers.
792
-
The list MUST have length `N`.
791
+
: The translation parameters stored as a JSON array of numbers.
792
+
The array MUST have length `N`.
793
793
794
794
:::{dropdown} Example
795
795
:animate: fade-in
@@ -824,8 +824,8 @@ The `input` and `output` fields MAY be omitted if wrapped in another transformat
824
824
The array at this path MUST be 1D, and its length MUST be `N`.
825
825
826
826
<strong>scale</strong>
827
-
: The scale parameters are stored as a JSON list of numbers.
828
-
The list MUST have length `N`.
827
+
: The scale parameters are stored as a JSON array of numbers.
828
+
The array MUST have length `N`.
829
829
830
830
:::{dropdown} Example 1
831
831
:animate: fade-in
@@ -1025,7 +1025,7 @@ A `sequence` transformation consists of an ordered array of coordinate transform
1025
1025
and is invertible if every coordinate transform in the array is invertible
1026
1026
(though could be invertible in other cases as well).
1027
1027
To apply a sequence transformation to a point in the input coordinate system,
1028
-
apply the first transformation in the list of transformations.
1028
+
apply the first transformation in the array of transformations.
1029
1029
Next, apply the second transformation to the result.
1030
1030
Repeat until every transformation has been applied.
1031
1031
The output of the last transformation is the result of the sequence.
@@ -1039,7 +1039,7 @@ The `input` and `output` fields MUST be included for sequence transformations.
1039
1039
:::{note}
1040
1040
1041
1041
Considering transformations as functions of points,
1042
-
if the list contains transformations `[f0, f1, f2]` in that order,
1042
+
if the array contains transformations `[f0, f1, f2]` in that order,
1043
1043
applying this sequence to point `x` is equivalent to:
1044
1044
1045
1045
```
@@ -1348,7 +1348,7 @@ Another **invalid** `byDimension` transform:
1348
1348
:language: json
1349
1349
```
1350
1350
1351
-
This transformation is invalid because the output axis `x` appears in more than one transformation in the `transformations`list.
1351
+
This transformation is invalid because the output axis `x` appears in more than one transformation in the `transformations`array.
1352
1352
:::
1353
1353
1354
1354
##### bijection
@@ -1395,9 +1395,9 @@ Here, "image" refers to 2 to 5 dimensional data representing image
1395
1395
or volumetric data with optional time or channel axes.
1396
1396
It is stored in a multiple resolution representation.
1397
1397
1398
-
`multiscales` contains a list of dictionaries where each entry describes a multiscale image.
1398
+
`multiscales` contains an array of objects where each entry describes a multiscale image.
1399
1399
1400
-
Each `multiscales`dictionary MUST contain the field `coordinateSystems`,
1400
+
Each `multiscales`object MUST contain the field `coordinateSystems`,
1401
1401
whose value is an array containing coordinate system metadata
1402
1402
(see [coordinate systems](#coordinate-systems-md)).
1403
1403
The last entry of this array is the "intrinsic" coordinate system
@@ -1416,17 +1416,17 @@ followed by the `channel` or custom axis (if present) and the axes of type `spa
1416
1416
If there are three spatial axes where two correspond to the image plane (`yx`)
1417
1417
and images are stacked along the other (anisotropic) axis (`z`),
1418
1418
the spatial axes SHOULD be ordered as `zyx`.
1419
-
Each `multiscales`dictionary MUST contain the field `datasets`,
1420
-
which is a list of dictionaries describing the arrays storing the individual resolution levels.
1421
-
Each dictionary in `datasets` MUST contain the field `path`,
1419
+
Each `multiscales`object MUST contain the field `datasets`,
1420
+
which is an array of objects describing the arrays storing the individual resolution levels.
1421
+
Each object in `datasets` MUST contain the field `path`,
1422
1422
whose value is a string containing the path to the Zarr array for this resolution relative to the current Zarr group.
1423
1423
The `path`s MUST be ordered from largest (i.e. highest resolution) to smallest.
1424
1424
Every Zarr array referred to by a `path` MUST have the same number of dimensions
1425
1425
and MUST NOT have more than 5 dimensions.
1426
1426
The number of dimensions and order MUST correspond to number and order of `axes`.
1427
1427
1428
-
Each dictionary in `datasets` MUST contain the field `coordinateTransformations`,
1429
-
whose value is a list of dictionaries that define a transformation
1428
+
Each object in `datasets` MUST contain the field `coordinateTransformations`,
1429
+
whose value is an array of objects that define a transformation
1430
1430
that maps Zarr array coordinates for this resolution level to the "intrinsic" coordinate system
1431
1431
(the last entry of the `coordinateSystems` array).
1432
1432
The transformation is defined according to [transformations metadata](#trafo-types-md).
@@ -1450,18 +1450,18 @@ This is strongly recommended
1450
1450
so that the the "intrinsic" coordinate system of the image avoids more complex transformations.
1451
1451
1452
1452
If applications require additional transformations,
1453
-
each `multiscales`dictionary MAY contain the field `coordinateTransformations`,
1453
+
each `multiscales`object MAY contain the field `coordinateTransformations`,
1454
1454
describing transformations that are applied to all resolution levels in the same manner.
1455
1455
The value of `input` MUST equal the name of the "intrinsic" coordinate system.
1456
1456
The value of `output` MUST be the name of the output coordinate System
1457
1457
which is different from the "intrinsic" coordinate system.
1458
1458
1459
-
Each `multiscales`dictionary SHOULD contain the field `name`.
1459
+
Each `multiscales`object SHOULD contain the field `name`.
1460
1460
1461
-
Each `multiscales`dictionary SHOULD contain the field `type`,
1461
+
Each `multiscales`object SHOULD contain the field `type`,
1462
1462
which gives the type of downscaling method used to generate the multiscale image pyramid.
1463
1463
It SHOULD contain the field `metadata`,
1464
-
which contains a dictionary with additional information about the downscaling method.
1464
+
which contains a object with additional information about the downscaling method.
1465
1465
1466
1466
1467
1467
:::{dropdown} Example
@@ -1539,7 +1539,6 @@ Each object in `channels` MAY contain the following fields:
1539
1539
-`end` (float) End of the rendering window.
1540
1540
-`inverted` (boolean) If true, the rendering of darkest to brightest pixels should be inverted.
1541
1541
1542
-
1543
1542
### "labels" metadata
1544
1543
(labels-md)=
1545
1544
@@ -1628,8 +1627,8 @@ Pixels with a 1 in the Zarr array, which correspond to cellular space, will be d
1628
1627
For high-content screening datasets,
1629
1628
the plate layout can be found under the custom attributes of the plate group under the `plate` key in the group-level metadata.
1630
1629
1631
-
The `plate`dictionary MAY contain an `acquisitions` key
1632
-
whose value MUST be a list of JSON objects defining the acquisitions for a given plate to which wells can refer to.
1630
+
The `plate`object MAY contain an `acquisitions` key
1631
+
whose value MUST be an array of JSON objects defining the acquisitions for a given plate to which wells can refer to.
1633
1632
Each acquisition object MUST contain an `id` key
1634
1633
whose value MUST be an unique integer identifier greater than or equal to 0 within the context of the plate
1635
1634
to which fields of view can refer to (see [well metadata](#well-md)).
@@ -1642,52 +1641,52 @@ whose value MUST be a string specifying a description for the acquisition.
1642
1641
Each acquisition object MAY contain a `starttime` and/or `endtime` key
1643
1642
whose values MUST be integer epoch timestamps specifying the start and/or end timestamp of the acquisition.
1644
1643
1645
-
The `plate`dictionary MUST contain a `columns` key
1646
-
whose value MUST be a list of JSON objects defining the columns of the plate.
1647
-
Each column object defines the properties of the column at the index of the object in the list.
1644
+
The `plate`object MUST contain a `columns` key
1645
+
whose value MUST be an array of JSON objects defining the columns of the plate.
1646
+
Each column object defines the properties of the column at the index of the object in the array.
1648
1647
Each column in the physical plate MUST be defined,
1649
1648
even if no wells in the column are defined.
1650
1649
Each column object MUST contain a `name` key whose value is a string specifying the column name.
1651
1650
The `name` MUST contain only alphanumeric characters,
1652
1651
MUST be case-sensitive,
1653
-
and MUST NOT be a duplicate of any other `name` in the `columns`list.
1652
+
and MUST NOT be a duplicate of any other `name` in the `columns`array.
1654
1653
Care SHOULD be taken to avoid collisions on case-insensitive filesystems
1655
1654
(e.g. avoid using both `Aa` and `aA`).
1656
1655
1657
-
The `plate`dictionary SHOULD contain a `field_count` key
1656
+
The `plate`object SHOULD contain a `field_count` key
1658
1657
whose value MUST be a positive integer defining the maximum number of fields per view across all wells.
1659
1658
1660
-
The `plate`dictionary SHOULD contain a `name` key
1659
+
The `plate`object SHOULD contain a `name` key
1661
1660
whose value MUST be a string defining the name of the plate.
1662
1661
1663
-
The `plate`dictionary MUST contain a `rows` key
1664
-
whose value MUST be a list of JSON objects defining the rows of the plate.
1665
-
Each row object defines the properties of the row at the index of the object in the list.
1662
+
The `plate`object MUST contain a `rows` key
1663
+
whose value MUST be an array of JSON objects defining the rows of the plate.
1664
+
Each row object defines the properties of the row at the index of the object in the array.
1666
1665
Each row in the physical plate MUST be defined,
1667
1666
even if no wells in the row are defined.
1668
1667
Each defined row MUST contain a `name` key whose value MUST be a string defining the row name.
1669
1668
The `name` MUST contain only alphanumeric characters,
1670
1669
MUST be case-sensitive,
1671
-
and MUST NOT be a duplicate of any other `name` in the `rows`list.
1670
+
and MUST NOT be a duplicate of any other `name` in the `rows`array.
1672
1671
Care SHOULD be taken to avoid collisions on case-insensitive filesystems
1673
1672
(e.g. avoid using both `Aa` and `aA`).
1674
1673
1675
-
The `plate`dictionary MUST contain a `version` key
1674
+
The `plate`object MUST contain a `version` key
1676
1675
whose value MUST be a string specifying the version of the plate specification.
1677
1676
1678
-
The `plate`dictionary MUST contain a `wells` key
1679
-
whose value MUST be a list of JSON objects defining the wells of the plate.
1677
+
The `plate`object MUST contain a `wells` key
1678
+
whose value MUST be an array of JSON objects defining the wells of the plate.
1680
1679
Each well object MUST contain a `path` key
1681
1680
whose value MUST be a string specifying the path to the well subgroup.
1682
-
The `path` MUST consist of a `name` in the `rows`list,
1681
+
The `path` MUST consist of a `name` in the `rows`array,
1683
1682
a file separator (`/`),
1684
-
and a `name` from the `columns`list,
1683
+
and a `name` from the `columns`array,
1685
1684
in that order.
1686
1685
The `path` MUST NOT contain additional leading or trailing directories.
1687
1686
Each well object MUST contain both a `rowIndex` key
1688
-
whose value MUST be an integer identifying the index into the `rows`list,
1687
+
whose value MUST be an integer identifying the index into the `rows`array,
1689
1688
and a `columnIndex` key
1690
-
whose value MUST be an integer identifying the index into the `columns`list.
1689
+
whose value MUST be an integer identifying the index into the `columns`array.
1691
1690
`rowIndex` and `columnIndex` MUST be 0-based.
1692
1691
The `rowIndex`, `columnIndex`, and `path` MUST all refer to the same row/column pair.
1693
1692
@@ -1713,16 +1712,16 @@ containing one field of view per acquisition.
1713
1712
For high-content screening datasets,
1714
1713
the metadata about all fields of views under a given well can be found under the `well` key in the attributes of the well group.
1715
1714
1716
-
The `well`dictionary MUST contain an `images` key
1717
-
whose value MUST be a list of JSON objects specifying all fields of views for a given well.
1715
+
The `well`object MUST contain an `images` key
1716
+
whose value MUST be an array of JSON objects specifying all fields of views for a given well.
1718
1717
Each image object MUST contain a `path` key
1719
1718
whose value MUST be a string specifying the path to the field of view.
1720
-
The `path` MUST contain only alphanumeric characters, MUST be case-sensitive, and MUST NOT be a duplicate of any other `path` in the `images`list.
1719
+
The `path` MUST contain only alphanumeric characters, MUST be case-sensitive, and MUST NOT be a duplicate of any other `path` in the `images`array.
1721
1720
If multiple acquisitions were performed in the plate,
1722
1721
it MUST contain an `acquisition` key whose value MUST be an integer identifying the acquisition
1723
1722
which MUST match one of the acquisition JSON objects defined in the [plate metadata](#plate-md).
1724
1723
1725
-
The `well`dictionary SHOULD contain a `version` key
1724
+
The `well`object SHOULD contain a `version` key
1726
1725
whose value MUST be a string specifying the version of the well specification.
0 commit comments