Skip to content

Commit 983a12e

Browse files
authored
Merge pull request ome#85 from jo-mueller/use-json-terminology
JSON terminology instead of Python
2 parents 328708d + f0e3453 commit 983a12e

1 file changed

Lines changed: 55 additions & 55 deletions

File tree

index.md

Lines changed: 55 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Note that the number of dimensions is variable between 2 and 5 and that axis nam
8787
8888
└── labels
8989
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
9191
│ # All labels will be listed in `zarr.json` e.g. `{ "labels": [ "original/0" ] }`
9292
│ # Each dimension of the label should be either the same as the
9393
│ # 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).
207207
`axes` describes the dimensions of a coordinate systems
208208
and adds an interpretation to the samples along that dimension.
209209

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:
212212
- MUST contain the field `name` that gives the name for this dimension.
213213
The values MUST be unique across all `name` fields in the same coordinate system.
214214
- SHOULD contain the field `type`.
@@ -381,7 +381,7 @@ Additionally, the logic for finding the Zarr group for each image follows the fo
381381
- Matching `series` metadata (as described next) SHOULD be provided for tools that are unaware of the `plate` specification.
382382
- If the `OME` Zarr group exists, it:
383383
- 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.
385385
- The order of the paths MUST match the order of the `Image` elements in `OME/METADATA.ome.xml` if provided.
386386
- If the `series` attribute does not exist and no `plate` is present:
387387
- 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:
420420
|------|--------|-------------|
421421
| [`identity`](#identity-md) | | The identity transformation is the do-nothing transformation and is typically not explicitly defined. |
422422
| [`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`). |
425425
| [`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`). |
426426
| [`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. |
428428
| [`displacements`](#coordinates-displacements-md) | `"path":str`<br>`"interpolation":str` | Displacement field transformation located at `path`. |
429429
| [`coordinates`](#coordinates-displacements-md) | `"path":str`<br>`"interpolation":str` | Coordinate field transformation located at `path`. |
430430
| [`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
477477
- Transformations in individual multiscale datasets represent a special case of transformations
478478
and are explained [below](#multiscales-md).
479479
- 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).
482482
- Transformations between two or more images MUST be stored in the attributes of a parent zarr group.
483483
For transformations that store data or parameters in a zarr array,
484484
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
579579
using `input` and `output` with a string value
580580
that MUST correspond to the name of a coordinate system or the path to a multiscales group.
581581
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
583583
as `transformation` of an `inverseOf` transformation.
584584
In these two cases input and output could, in some cases, be omitted (see below for details).
585585
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
788788
The array at this path MUST be 1D, and its length MUST be `N`.
789789

790790
<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`.
793793

794794
:::{dropdown} Example
795795
:animate: fade-in
@@ -824,8 +824,8 @@ The `input` and `output` fields MAY be omitted if wrapped in another transformat
824824
The array at this path MUST be 1D, and its length MUST be `N`.
825825

826826
<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`.
829829

830830
:::{dropdown} Example 1
831831
:animate: fade-in
@@ -1025,7 +1025,7 @@ A `sequence` transformation consists of an ordered array of coordinate transform
10251025
and is invertible if every coordinate transform in the array is invertible
10261026
(though could be invertible in other cases as well).
10271027
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.
10291029
Next, apply the second transformation to the result.
10301030
Repeat until every transformation has been applied.
10311031
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.
10391039
:::{note}
10401040

10411041
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,
10431043
applying this sequence to point `x` is equivalent to:
10441044

10451045
```
@@ -1348,7 +1348,7 @@ Another **invalid** `byDimension` transform:
13481348
:language: json
13491349
```
13501350

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.
13521352
:::
13531353

13541354
##### bijection
@@ -1395,9 +1395,9 @@ Here, "image" refers to 2 to 5 dimensional data representing image
13951395
or volumetric data with optional time or channel axes.
13961396
It is stored in a multiple resolution representation.
13971397

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.
13991399

1400-
Each `multiscales` dictionary MUST contain the field `coordinateSystems`,
1400+
Each `multiscales` object MUST contain the field `coordinateSystems`,
14011401
whose value is an array containing coordinate system metadata
14021402
(see [coordinate systems](#coordinate-systems-md)).
14031403
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
14161416
If there are three spatial axes where two correspond to the image plane (`yx`)
14171417
and images are stacked along the other (anisotropic) axis (`z`),
14181418
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`,
14221422
whose value is a string containing the path to the Zarr array for this resolution relative to the current Zarr group.
14231423
The `path`s MUST be ordered from largest (i.e. highest resolution) to smallest.
14241424
Every Zarr array referred to by a `path` MUST have the same number of dimensions
14251425
and MUST NOT have more than 5 dimensions.
14261426
The number of dimensions and order MUST correspond to number and order of `axes`.
14271427

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
14301430
that maps Zarr array coordinates for this resolution level to the "intrinsic" coordinate system
14311431
(the last entry of the `coordinateSystems` array).
14321432
The transformation is defined according to [transformations metadata](#trafo-types-md).
@@ -1450,18 +1450,18 @@ This is strongly recommended
14501450
so that the the "intrinsic" coordinate system of the image avoids more complex transformations.
14511451

14521452
If applications require additional transformations,
1453-
each `multiscales` dictionary MAY contain the field `coordinateTransformations`,
1453+
each `multiscales` object MAY contain the field `coordinateTransformations`,
14541454
describing transformations that are applied to all resolution levels in the same manner.
14551455
The value of `input` MUST equal the name of the "intrinsic" coordinate system.
14561456
The value of `output` MUST be the name of the output coordinate System
14571457
which is different from the "intrinsic" coordinate system.
14581458

1459-
Each `multiscales` dictionary SHOULD contain the field `name`.
1459+
Each `multiscales` object SHOULD contain the field `name`.
14601460

1461-
Each `multiscales` dictionary SHOULD contain the field `type`,
1461+
Each `multiscales` object SHOULD contain the field `type`,
14621462
which gives the type of downscaling method used to generate the multiscale image pyramid.
14631463
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.
14651465

14661466

14671467
:::{dropdown} Example
@@ -1523,11 +1523,11 @@ See the [OMERO WebGateway documentation](https://omero.readthedocs.io/en/stable/
15231523
for more information.
15241524

15251525
The `omero` metadata is optional, but if present it MUST contain the field `channels`,
1526-
which is an array of dictionaries describing the channels of the image.
1527-
Each dictionary in `channels` MUST contain the field `color`,
1526+
which is an array of objects describing the channels of the image.
1527+
Each object in `channels` MUST contain the field `color`,
15281528
which is a string of 6 hexadecimal digits specifying the color of the channel in RGB format.
1529-
Each dictionary in `channels` MUST contain the field `window`,
1530-
which is a dictionary describing the windowing of the channel.
1529+
Each object in `channels` MUST contain the field `window`,
1530+
which is a object describing the windowing of the channel.
15311531
The field `window` MUST contain the fields `min` and `max`,
15321532
which are the minimum and maximum values of the window, respectively.
15331533
It MUST also contain the fields `start` and `end`,
@@ -1621,8 +1621,8 @@ Pixels with a 1 in the Zarr array, which correspond to cellular space, will be d
16211621
For high-content screening datasets,
16221622
the plate layout can be found under the custom attributes of the plate group under the `plate` key in the group-level metadata.
16231623

1624-
The `plate` dictionary MAY contain an `acquisitions` key
1625-
whose value MUST be a list of JSON objects defining the acquisitions for a given plate to which wells can refer to.
1624+
The `plate` object MAY contain an `acquisitions` key
1625+
whose value MUST be an array of JSON objects defining the acquisitions for a given plate to which wells can refer to.
16261626
Each acquisition object MUST contain an `id` key
16271627
whose value MUST be an unique integer identifier greater than or equal to 0 within the context of the plate
16281628
to which fields of view can refer to (see [well metadata](#well-md)).
@@ -1635,52 +1635,52 @@ whose value MUST be a string specifying a description for the acquisition.
16351635
Each acquisition object MAY contain a `starttime` and/or `endtime` key
16361636
whose values MUST be integer epoch timestamps specifying the start and/or end timestamp of the acquisition.
16371637

1638-
The `plate` dictionary MUST contain a `columns` key
1639-
whose value MUST be a list of JSON objects defining the columns of the plate.
1640-
Each column object defines the properties of the column at the index of the object in the list.
1638+
The `plate` object MUST contain a `columns` key
1639+
whose value MUST be an array of JSON objects defining the columns of the plate.
1640+
Each column object defines the properties of the column at the index of the object in the array.
16411641
Each column in the physical plate MUST be defined,
16421642
even if no wells in the column are defined.
16431643
Each column object MUST contain a `name` key whose value is a string specifying the column name.
16441644
The `name` MUST contain only alphanumeric characters,
16451645
MUST be case-sensitive,
1646-
and MUST NOT be a duplicate of any other `name` in the `columns` list.
1646+
and MUST NOT be a duplicate of any other `name` in the `columns` array.
16471647
Care SHOULD be taken to avoid collisions on case-insensitive filesystems
16481648
(e.g. avoid using both `Aa` and `aA`).
16491649

1650-
The `plate` dictionary SHOULD contain a `field_count` key
1650+
The `plate` object SHOULD contain a `field_count` key
16511651
whose value MUST be a positive integer defining the maximum number of fields per view across all wells.
16521652

1653-
The `plate` dictionary SHOULD contain a `name` key
1653+
The `plate` object SHOULD contain a `name` key
16541654
whose value MUST be a string defining the name of the plate.
16551655

1656-
The `plate` dictionary MUST contain a `rows` key
1657-
whose value MUST be a list of JSON objects defining the rows of the plate.
1658-
Each row object defines the properties of the row at the index of the object in the list.
1656+
The `plate` object MUST contain a `rows` key
1657+
whose value MUST be an array of JSON objects defining the rows of the plate.
1658+
Each row object defines the properties of the row at the index of the object in the array.
16591659
Each row in the physical plate MUST be defined,
16601660
even if no wells in the row are defined.
16611661
Each defined row MUST contain a `name` key whose value MUST be a string defining the row name.
16621662
The `name` MUST contain only alphanumeric characters,
16631663
MUST be case-sensitive,
1664-
and MUST NOT be a duplicate of any other `name` in the `rows` list.
1664+
and MUST NOT be a duplicate of any other `name` in the `rows` array.
16651665
Care SHOULD be taken to avoid collisions on case-insensitive filesystems
16661666
(e.g. avoid using both `Aa` and `aA`).
16671667

1668-
The `plate` dictionary MUST contain a `version` key
1668+
The `plate` object MUST contain a `version` key
16691669
whose value MUST be a string specifying the version of the plate specification.
16701670

1671-
The `plate` dictionary MUST contain a `wells` key
1672-
whose value MUST be a list of JSON objects defining the wells of the plate.
1671+
The `plate` object MUST contain a `wells` key
1672+
whose value MUST be an array of JSON objects defining the wells of the plate.
16731673
Each well object MUST contain a `path` key
16741674
whose value MUST be a string specifying the path to the well subgroup.
1675-
The `path` MUST consist of a `name` in the `rows` list,
1675+
The `path` MUST consist of a `name` in the `rows` array,
16761676
a file separator (`/`),
1677-
and a `name` from the `columns` list,
1677+
and a `name` from the `columns` array,
16781678
in that order.
16791679
The `path` MUST NOT contain additional leading or trailing directories.
16801680
Each well object MUST contain both a `rowIndex` key
1681-
whose value MUST be an integer identifying the index into the `rows` list,
1681+
whose value MUST be an integer identifying the index into the `rows` array,
16821682
and a `columnIndex` key
1683-
whose value MUST be an integer identifying the index into the `columns` list.
1683+
whose value MUST be an integer identifying the index into the `columns` array.
16841684
`rowIndex` and `columnIndex` MUST be 0-based.
16851685
The `rowIndex`, `columnIndex`, and `path` MUST all refer to the same row/column pair.
16861686

@@ -1706,16 +1706,16 @@ containing one field of view per acquisition.
17061706
For high-content screening datasets,
17071707
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.
17081708

1709-
The `well` dictionary MUST contain an `images` key
1710-
whose value MUST be a list of JSON objects specifying all fields of views for a given well.
1709+
The `well` object MUST contain an `images` key
1710+
whose value MUST be an array of JSON objects specifying all fields of views for a given well.
17111711
Each image object MUST contain a `path` key
17121712
whose value MUST be a string specifying the path to the field of view.
1713-
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.
1713+
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.
17141714
If multiple acquisitions were performed in the plate,
17151715
it MUST contain an `acquisition` key whose value MUST be an integer identifying the acquisition
17161716
which MUST match one of the acquisition JSON objects defined in the [plate metadata](#plate-md).
17171717

1718-
The `well` dictionary SHOULD contain a `version` key
1718+
The `well` object SHOULD contain a `version` key
17191719
whose value MUST be a string specifying the version of the well specification.
17201720

17211721
:::{dropdown} Example

0 commit comments

Comments
 (0)