From 5a1ddc7d57d3c7f96e1d84efdb7a86e701666de6 Mon Sep 17 00:00:00 2001 From: Melissa Linkert Date: Thu, 2 Dec 2021 13:29:35 -0600 Subject: [PATCH] Stricter requirements for row/column names, well groups, and well paths --- latest/index.bs | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/latest/index.bs b/latest/index.bs index afc4f102..8a912595 100644 --- a/latest/index.bs +++ b/latest/index.bs @@ -156,7 +156,7 @@ High-content screening {#hcs-layout} ------------------------------------ The following specification defines the hierarchy for a high-content screening -dataset. Three groups must be defined above the images: +dataset. Three groups MUST be defined above the images: - the group above the images defines the well and MUST implement the [well specification](#well-md). All images contained in a well are fields @@ -166,6 +166,9 @@ dataset. Three groups must be defined above the images: collection of wells organized in rows and columns. It MUST implement the [plate specification](#plate-md) +A well row group MUST NOT be present if there are no images in the well row. +A well group MUST NOT be present if there are no images in the well. + ``` . # Root folder, potentially in S3, @@ -365,9 +368,9 @@ custom attributes of the plate group under the `plate` key.
columns
A list of JSON objects defining the columns of the plate. Each column object defines the properties of the column at the index of the object - in the list. If not empty, it MUST contain a `name` key specifying the - column name. Each column in the physical plate MUST be defined, even - if no wells in the column are defined.
+ in the list. Each column in the physical plate MUST be defined, even + if no wells in the column are defined. Each defined column MUST contain + a `name` key specifying the column name.
field_count
An integer defining the maximum number of fields per view across all wells.
@@ -376,14 +379,17 @@ custom attributes of the plate group under the `plate` key.
rows
A list of JSON objects defining the rows of the plate. Each row object defines the properties of the row at the index of the object in the - list. If not empty, it MUST contain a `name` key specifying the row - name. Each row in the physical plate MUST be defined, even if no wells - in the row are defined.
+ list. Each row in the physical plate MUST be defined, even if no wells + in the row are defined. Each defined row MUST contain a `name` key + specifying the row name.
version
A string defining the version of the specification.
wells
A list of JSON objects defining the wells of the plate. Each well object MUST contain a `path` key identifying the path to the well subgroup. + The `path` MUST consist of a `name` in the `rows` list, a file separator (`/`), + and a `name` from the `columns` list, in that order. The `path` MUST NOT contain + additional leading or trailing directories. Each well object MUST contain both a `row_index` key identifying the index into the `rows` list and a `column_index` key indentifying the index into the `columns` list. `row_index` and `column_index` MUST be 0-based.
@@ -432,32 +438,32 @@ For example the following JSON object defines a plate with two acquisitions and "version": "0.1", "wells": [ { - "path": "2020-10-10/A/1", + "path": "A/1", "row_index": 0, "column_index": 0 }, { - "path": "2020-10-10/A/2" + "path": "A/2" "row_index": 0, "column_index": 1 }, { - "path": "2020-10-10/A/3" + "path": "A/3" "row_index": 0, "column_index": 2 }, { - "path": "2020-10-10/B/1" + "path": "B/1" "row_index": 1, "column_index": 0 }, { - "path": "2020-10-10/B/2" + "path": "B/2" "row_index": 1, "column_index": 1 }, { - "path": "2020-10-10/B/3" + "path": "B/3" "row_index": 1, "column_index": 2 }