ts_ids_components.plate_reader package#
Submodules#
Module contents#
This module contains components for plate reader IDSs.
Plate reader samples and datacubes#
A common data usage pattern for plate reader data is to read measurement data, such as absorbance or fluorescence values, and analyse them along with metadata about the sample which was being measured.
To do this, use the samples common component
to store information about the sample in each well of the plate, including a
UUID primary key
field named "pk".
In datacubes, include a foreign key
to samples with the name fk_samples.
This structure is defined in PlateReaderSchema below, and that class can be
used as a starting point for defining plate reader schemas.
When populating data into a plate reader IDS, store data from each well in a separate
element of the datacubes array.
This level of granularity makes it possible for data from many different plate readers to be stored in the same format, which makes downstream data access easier.
Here is an example of defining a schema which inherits from
PlateReaderSchema and populating it in Python.
This shows data being manually populated in the script itself, but in typical usage,
this data would be parsed from a raw data file.
from typing import ClassVar
from ts_ids_core.annotations import Required
from ts_ids_core.schema import IdsField, Location, SchemaExtraMetadataType
from typing_extensions import Literal
from ts_ids_components.plate_reader import (
Measure2D,
PlateReaderDatacube2D,
PlateReaderDimension,
PlateReaderSample,
PlateReaderSchema,
)
from ts_ids_components.plate_reader.methods import (
PlateReaderMeasurementSetting,
PlateReaderMethod,
PlateReaderStep,
)
# Define a plate reader model which only uses the defaults provided by PlateReaderSchema
class DemoModel(PlateReaderSchema):
schema_extra_metadata: ClassVar[SchemaExtraMetadataType] = {
"$id": "https://ids.tetrascience.com/common/demo/v1.0.0/schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
}
ids_type: Required[Literal["demo"]] = IdsField(default="demo", alias="@idsType")
ids_version: Required[Literal["v1.0.0"]] = IdsField(
default="v1.0.0", alias="@idsVersion"
)
ids_namespace: Required[Literal["common"]] = IdsField(
default="common", alias="@idsNamespace"
)
# Example UUIDs - these would come from a UUID generator in a task script
uuid1 = "abc00000-0000-0000-0000-000000000001"
uuid2 = "abc00000-0000-0000-0000-000000000002"
uuid3 = "abc00000-0000-0000-0000-000000000003"
uuid4 = "abc00000-0000-0000-0000-000000000004"
uuid5 = "abc00000-0000-0000-0000-000000000005"
# Populate the model with example data
instance = DemoModel(
methods=[
PlateReaderMethod(
pk=uuid3,
name="My Method",
)
],
protocol_steps=[
PlateReaderStep(
pk=uuid4,
fk_method=uuid3,
index=0,
name="Absorbance",
)
],
measurement_settings=[
PlateReaderMeasurementSetting(
pk=uuid5,
fk_method=uuid3,
fk_protocol_step=uuid4,
index=0,
modality="Absorbance",
number_of_readings=1,
absorbance=Chromatics(
type_=OpticalSetup.SPECTRAL_SCAN.value,
start=RawValueUnit(raw_value="430", value=430.0, unit="Nanometer"),
end=RawValueUnit(raw_value="440", value=440.0, unit="Nanometer"),
step=RawValueUnit(raw_value="5", value=5.0, unit="Nanometer"),
),
)
],
samples=[
PlateReaderSample(
pk=uuid1,
id_="sample_under_test_1",
location=Location(position="A01"),
),
PlateReaderSample(
pk=uuid2,
id_="sample_under_test_2",
location=Location(position="A02"),
),
],
datacubes=[
# The first element contains data from well A01
PlateReaderDatacube2D(
fk_sample=uuid2,
fk_method=uuid3,
fk_protocol_step=uuid4,
name="Absorbance: A01",
measures=[
Measure2D(
name="absorbance", unit="ArbitraryUnit", value=[[1, 2, 3]]
)
],
dimensions=[
PlateReaderDimension(name="time", unit="SecondTime", scale=[0]),
PlateReaderDimension(
name="wavelength", unit="Nanometer", scale=[430, 435, 440]
),
],
),
# The first element contains data from well A02
PlateReaderDatacube2D(
fk_sample=uuid1,
fk_method=uuid3,
fk_protocol_step=uuid4,
name="Absorbance: A02",
measures=[
Measure2D(
name="absorbance", unit="ArbitraryUnit", value=[[4, 5, 6]]
)
],
dimensions=[
PlateReaderDimension(name="time", unit="SecondTime", scale=[0]),
PlateReaderDimension(
name="wavelength", unit="Nanometer", scale=[430, 435, 440]
),
],
),
],
)
Then, the data could be dumped to JSON by calling instance.model_dump_json(indent=2)
The resulting IDS JSON looks like this:
{
"@idsType": "demo",
"@idsVersion": "v1.0.0",
"@idsNamespace": "common",
"methods": [
{
"pk": "abc00000-0000-0000-0000-000000000003",
"name": "My Method"
}
],
"protocol_steps": [
{
"pk": "abc00000-0000-0000-0000-000000000004",
"fk_method": "abc00000-0000-0000-0000-000000000003",
"index": 0,
"name": "Absorbance"
}
],
"measurement_settings": [
{
"absorbance": {
"start": {
"value": 430.0,
"unit": "Nanometer",
"raw_value": "430"
},
"end": {
"value": 440.0,
"unit": "Nanometer",
"raw_value": "440"
},
"step": {
"value": 5.0,
"unit": "Nanometer",
"raw_value": "5"
},
"type": "spectral scan"
},
"pk": "abc00000-0000-0000-0000-000000000005",
"fk_protocol_step": "abc00000-0000-0000-0000-000000000004",
"fk_method": "abc00000-0000-0000-0000-000000000003",
"index": 0,
"modality": "Absorbance",
"number_of_readings": 1
}
],
"samples": [
{
"id": "sample_under_test_1",
"location": {
"position": "A01"
},
"pk": "abc00000-0000-0000-0000-000000000001"
},
{
"id": "sample_under_test_2",
"location": {
"position": "A02"
},
"pk": "abc00000-0000-0000-0000-000000000002"
}
],
"datacubes": [
{
"name": "Absorbance: A01",
"measures": [
{
"name": "absorbance",
"unit": "ArbitraryUnit",
"value": [
[
1.0,
2.0,
3.0
]
]
}
],
"dimensions": [
{
"name": "time",
"unit": "SecondTime",
"scale": [
0.0
]
},
{
"name": "wavelength",
"unit": "Nanometer",
"scale": [
430.0,
435.0,
440.0
]
}
],
"fk_sample": "abc00000-0000-0000-0000-000000000002",
"fk_protocol_step": "abc00000-0000-0000-0000-000000000004",
"fk_method": "abc00000-0000-0000-0000-000000000003"
},
{
"name": "Absorbance: A02",
"measures": [
{
"name": "absorbance",
"unit": "ArbitraryUnit",
"value": [
[
4.0,
5.0,
6.0
]
]
}
],
"dimensions": [
{
"name": "time",
"unit": "SecondTime",
"scale": [
0.0
]
},
{
"name": "wavelength",
"unit": "Nanometer",
"scale": [
430.0,
435.0,
440.0
]
}
],
"fk_sample": "abc00000-0000-0000-0000-000000000001",
"fk_protocol_step": "abc00000-0000-0000-0000-000000000004",
"fk_method": "abc00000-0000-0000-0000-000000000003"
}
]
}
Other plate reader components#
There are components in this module which don’t have a predefined top-level path in an IDS because they may be used in multiple places throughout a plate reader schema, and their location in the schema may vary across data sources.
Typically, a specific instrument IDS can have more fields than the ones present in these models. For example, if the instrument filter has an additional value-unit field, such as a reference wavelength, this field can be added by inheriting from the Filter component:
class ReferenceFilter(Filter):
reference: ValueUnit
- Model LightSource[source]#
Bases:
IdsElementDefinition of a general light source system
Show JSON schema
{ "description": "Definition of a general light source system", "type": "object", "properties": { "type": { "description": "Light source type", "type": [ "string", "null" ] }, "system": { "$ref": "#/definitions/System", "description": "Light source system information" } }, "additionalProperties": false, "definitions": { "System": { "additionalProperties": false, "description": "Metadata regarding the equipment, software, and firmware used in a run of an\ninstrument or experiment.", "properties": { "vendor": { "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.", "type": [ "string", "null" ] }, "model": { "description": "A specific model instrument type from a vendor.", "type": [ "string", "null" ] }, "type": { "description": "Indicates the type of instrument that's generating data.", "type": [ "string", "null" ] } }, "required": [ "vendor", "model", "type" ], "type": "object" } } }
- Validators:
- Model Lamp[source]#
Bases:
LightSourceLamp light source
Show JSON schema
{ "description": "Lamp light source", "type": "object", "properties": { "type": { "description": "Light source type", "type": [ "string", "null" ] }, "system": { "$ref": "#/definitions/System", "description": "Light source system information" }, "power": { "$ref": "#/definitions/ValueUnit", "description": "Nominal lamp power" } }, "additionalProperties": false, "definitions": { "System": { "additionalProperties": false, "description": "Metadata regarding the equipment, software, and firmware used in a run of an\ninstrument or experiment.", "properties": { "vendor": { "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.", "type": [ "string", "null" ] }, "model": { "description": "A specific model instrument type from a vendor.", "type": [ "string", "null" ] }, "type": { "description": "Indicates the type of instrument that's generating data.", "type": [ "string", "null" ] } }, "required": [ "vendor", "model", "type" ], "type": "object" }, "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model LED[source]#
Bases:
LightSourceLight Emitting Diode light source
Related Open Microscopy Environment model: https://www.openmicroscopy.org/Schemas/Documentation/Generated/OME-2016-06/ome_xsd.html#LightEmittingDiode
Show JSON schema
{ "description": "Light Emitting Diode light source\n\nRelated Open Microscopy Environment model:\nhttps://www.openmicroscopy.org/Schemas/Documentation/Generated/OME-2016-06/ome_xsd.html#LightEmittingDiode", "type": "object", "properties": { "type": { "description": "Light source type", "type": [ "string", "null" ] }, "system": { "$ref": "#/definitions/System", "description": "Light source system information" }, "power": { "$ref": "#/definitions/ValueUnit", "description": "Nominal LED power" } }, "additionalProperties": false, "definitions": { "System": { "additionalProperties": false, "description": "Metadata regarding the equipment, software, and firmware used in a run of an\ninstrument or experiment.", "properties": { "vendor": { "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.", "type": [ "string", "null" ] }, "model": { "description": "A specific model instrument type from a vendor.", "type": [ "string", "null" ] }, "type": { "description": "Indicates the type of instrument that's generating data.", "type": [ "string", "null" ] } }, "required": [ "vendor", "model", "type" ], "type": "object" }, "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model Filter[source]#
Bases:
IdsElementOptical filter properties
Show JSON schema
{ "description": "Optical filter properties", "type": "object", "properties": { "position": { "description": "Position of this filter in a container like a filter wheel", "type": [ "string", "null" ] }, "bandwidth": { "$ref": "#/definitions/ValueUnit", "description": "The range of frequencies associated with this filter" }, "wavelength": { "$ref": "#/definitions/ValueUnit", "description": "Characteristic wavelength of this filter" } }, "additionalProperties": false, "definitions": { "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model BeamSplitter[source]#
Bases:
SystemBeamsplitter properties
Show JSON schema
{ "description": "Beamsplitter properties", "type": "object", "properties": { "vendor": { "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.", "type": [ "string", "null" ] }, "model": { "description": "A specific model instrument type from a vendor.", "type": [ "string", "null" ] }, "type": { "description": "Indicates the type of instrument that's generating data.", "type": [ "string", "null" ] } }, "additionalProperties": false, "required": [ "vendor", "model", "type" ] }
- Validators:
- Model DetectorSystem[source]#
-
Definition of a detector system
Show JSON schema
{ "description": "Definition of a detector system", "type": "object", "properties": { "id": { "description": "Identifier for the system. This is usually defined by the system owner or user, for example this may be created with a laboratory information management system or asset management software. Typically, an ID will not change over time, so that it can be used to track a particular system, unlike the system name which may change.", "type": [ "string", "null" ] }, "vendor": { "description": "The instrument vendor or manufacturer, like 'PerkinElmer' or 'Agilent'.", "type": [ "string", "null" ] }, "model": { "description": "A specific model instrument type from a vendor.", "type": [ "string", "null" ] }, "type": { "description": "Indicates the type of instrument that's generating data.", "type": [ "string", "null" ] } }, "additionalProperties": false, "required": [ "vendor", "model", "type" ] }
- Validators:
- Model EnvironmentRun[source]#
Bases:
IdsElementMeasured environment during a run
Show JSON schema
{ "description": "Measured environment during a run", "type": "object", "properties": { "measured_temperature": { "$ref": "#/definitions/ValueUnit", "description": "Measured temperature during a run" } }, "additionalProperties": false, "definitions": { "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model ShakingStep[source]#
Bases:
IdsElementShaker methods and metadata
Show JSON schema
{ "description": "Shaker methods and metadata", "type": "object", "properties": { "mode": { "description": "Shaking mode, such as 'orbital' or 'linear'", "type": [ "string", "null" ] }, "speed": { "$ref": "#/definitions/ValueUnit", "description": "Shaking speed, the angular speed or frequency of shaking" }, "time": { "$ref": "#/definitions/Time", "description": "Shaking timing" } }, "additionalProperties": false, "definitions": { "RawTime": { "additionalProperties": false, "description": "The base model for capturing common time fields found in primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Data lookup time.", "type": [ "string", "null" ] } }, "type": "object" }, "Time": { "additionalProperties": false, "description": "A model for datetime values converted to a standard ISO format and their\nrespective raw datetime values in the primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Data lookup time.", "type": [ "string", "null" ] }, "raw": { "$ref": "#/definitions/RawTime", "description": "Raw time values from primary data." } }, "type": "object" }, "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model InjectionStep[source]#
Bases:
IdsElementInjection method for a single injection, including pump and volume settings
Show JSON schema
{ "description": "Injection method for a single injection, including pump and volume settings", "type": "object", "properties": { "pump_id": { "description": "Identifier for pump being used", "type": [ "string", "null" ] }, "flow_rate": { "$ref": "#/definitions/ValueUnit", "description": "Flow speed of the injector pump" }, "volume": { "$ref": "#/definitions/ValueUnit", "description": "Volume of injection" }, "time": { "$ref": "#/definitions/Time", "description": "Injection timing" } }, "additionalProperties": false, "definitions": { "RawTime": { "additionalProperties": false, "description": "The base model for capturing common time fields found in primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Data lookup time.", "type": [ "string", "null" ] } }, "type": "object" }, "Time": { "additionalProperties": false, "description": "A model for datetime values converted to a standard ISO format and their\nrespective raw datetime values in the primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Data lookup time.", "type": [ "string", "null" ] }, "raw": { "$ref": "#/definitions/RawTime", "description": "Raw time values from primary data." } }, "type": "object" }, "ValueUnit": { "additionalProperties": false, "description": "A quantity, represented by a value with a unit.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] } }, "required": [ "value", "unit" ], "type": "object" } } }
- Validators:
- Model MeasurementPattern[source]#
Bases:
IdsElementThe measurement pattern, including which plate is being measured, which wells are measured, and in what order
Show JSON schema
{ "description": "The measurement pattern, including which plate is being measured, which wells are\nmeasured, and in what order", "type": "object", "properties": { "plate": { "type": [ "string", "null" ] }, "wells": { "description": "References to the wells being measured, in order", "items": { "type": "string" }, "type": "array" } }, "additionalProperties": false }
- Validators:
- Model MeasurementPatternByArea[source]#
Bases:
MeasurementPatternMeasurement pattern for plate readers which specify a plate area to measure
Show JSON schema
{ "description": "Measurement pattern for plate readers which specify a plate area to measure", "type": "object", "properties": { "plate": { "type": [ "string", "null" ] }, "wells": { "description": "References to the wells being measured, in order", "items": { "type": "string" }, "type": "array" }, "area": { "description": "An area of the plate as a string, e.g. 'A1-F4'", "type": [ "string", "null" ] }, "reading_direction": { "description": "A description of the direction that wells are read from a plate", "type": "string" } }, "additionalProperties": false }
- Validators:
- Model PlateReaderSample[source]#
Bases:
SampleA sample stored in a well on a plate
Show JSON schema
{ "description": "A sample stored in a well on a plate", "type": "object", "properties": { "id": { "description": "Unique identifier assigned to a sample.", "type": [ "string", "null" ] }, "name": { "description": "Sample name.", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a sample.", "type": [ "string", "null" ] }, "batch": { "$ref": "#/definitions/Batch" }, "set": { "$ref": "#/definitions/Set", "description": "Sample set." }, "location": { "$ref": "#/definitions/Location", "description": "Sample location information." }, "compound": { "$ref": "#/definitions/Compound", "description": "Sample compound information." }, "properties": { "type": "array", "items": { "$ref": "#/definitions/Property" }, "description": "Sample properties." }, "labels": { "description": "Sample labels.", "items": { "$ref": "#/definitions/Label" }, "type": "array" }, "pk": { "@primary_key": true, "type": "string" } }, "additionalProperties": false, "required": [ "pk" ], "definitions": { "Batch": { "additionalProperties": false, "description": "A Batch is the result of a single manufacturing run for a drug product that is made as specified groups or amounts, within a specific time frame from the same raw materials that is intended to have uniform character and quality, within specified limits.", "properties": { "id": { "description": "Unique identifier assigned to a batch.", "type": [ "string", "null" ] }, "name": { "description": "Batch name", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a batch", "type": [ "string", "null" ] } }, "type": "object" }, "Compound": { "additionalProperties": false, "description": "A Compound is a specific chemical or biochemical structure or substance that is being investigated. A Compound may be any drug substance, drug product intermediate, or drug product across small molecules, and cell and gene therapy (CGT).", "properties": { "id": { "description": "Unique identifier assigned to a compound.", "type": [ "string", "null" ] }, "name": { "description": "Compound name.", "type": [ "string", "null" ] } }, "type": "object" }, "Holder": { "additionalProperties": false, "description": "A sample container such as a microplate or a vial.", "properties": { "name": { "description": "Holder name.", "type": [ "string", "null" ] }, "type": { "description": "Holder type.", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a holder.", "type": [ "string", "null" ] } }, "type": "object" }, "Label": { "additionalProperties": false, "description": "A Label associated with a sample, along with metadata about the label including\nthe source of the label and times associated with the label such as when it was\ncreated or looked up.", "properties": { "source": { "$ref": "#/definitions/Source", "description": "Sample label data source information." }, "name": { "description": "Sample label name.", "type": "string" }, "value": { "description": "Sample label value.", "type": "string" }, "time": { "$ref": "#/definitions/SampleTime", "description": "Time associated with the sample label." } }, "required": [ "source", "name", "value", "time" ], "type": "object" }, "Location": { "additionalProperties": false, "description": "The Location of the sample within the holder, such as the location of a well in a microplate.", "properties": { "position": { "description": "Raw position string.", "type": [ "string", "null" ] }, "row": { "description": "Row index of sample location in a plate or holder.", "type": [ "number", "null" ] }, "column": { "description": "Column index of sample location in a plate or holder.", "type": [ "number", "null" ] }, "index": { "description": "Index of sample location flattened to a single dimension.", "type": [ "number", "null" ] }, "holder": { "$ref": "#/definitions/Holder", "description": "Sample holder information" } }, "type": "object" }, "Property": { "additionalProperties": false, "description": "A property has a name and a value of any type, with metadata about the\nproperty including the source of the property and times associated with it\nsuch as when the property was created or looked up.", "properties": { "source": { "$ref": "#/definitions/Source", "description": "Sample property data source information." }, "name": { "description": "Sample Property name.", "type": "string" }, "value": { "description": "The original string value of the property.", "type": "string" }, "value_data_type": { "$ref": "#/definitions/ValueDataType", "description": "This is the type of the original value." }, "string_value": { "description": "If string_value has a value, then numerical_value, numerical_value_unit, and boolean_value all have to be null.", "type": [ "string", "null" ] }, "numerical_value": { "description": "If numerical_value has a value, then string_value and boolean_value both have to be null.", "type": [ "number", "null" ] }, "numerical_value_unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] }, "boolean_value": { "description": "If boolean_value has a value, then numerical_value, numerical_value_unit, and string_value all have to be null.", "type": [ "boolean", "null" ] }, "time": { "$ref": "#/definitions/SampleTime", "description": "Time associated with the sample property." } }, "required": [ "source", "name", "value", "value_data_type", "string_value", "numerical_value", "numerical_value_unit", "boolean_value", "time" ], "type": "object" }, "RawSampleTime": { "additionalProperties": false, "description": "The base model for time associated with a specific sample.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Raw sample data lookup time.", "type": [ "string", "null" ] } }, "required": [ "lookup" ], "type": "object" }, "SampleTime": { "additionalProperties": false, "description": "A model for experiment sample datetime values converted to a standard ISO format\nand their respective raw datetime values in the primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Raw sample data lookup time.", "type": [ "string", "null" ] }, "raw": { "$ref": "#/definitions/RawSampleTime", "description": "Raw sample time values from primary data." } }, "required": [ "lookup" ], "type": "object" }, "Set": { "additionalProperties": false, "description": "A group of Samples.", "properties": { "id": { "description": "Unique identifier assigned to a set.", "type": [ "string", "null" ] }, "name": { "description": "Set name.", "type": [ "string", "null" ] } }, "type": "object" }, "Source": { "additionalProperties": false, "description": "The Source of information, such as a data file or a sample database.", "properties": { "name": { "description": "Source name.", "type": [ "string", "null" ] }, "type": { "description": "Source type.", "type": [ "string", "null" ] } }, "required": [ "name", "type" ], "type": "object" }, "ValueDataType": { "description": "Allowed data type values.", "enum": [ "string", "number", "boolean" ], "type": "string" } } }
- Validators:
- class PlateReaderDimensionNames(value)[source]#
-
A limited set of possible names for plate reader dimensions
- Model PlateReaderDimension[source]#
Bases:
DimensionA plate reader dimension with a limited set of possible names
Show JSON schema
{ "description": "A plate reader dimension with a limited set of possible names", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "scale": { "items": { "type": [ "number", "null" ] }, "type": "array" } }, "additionalProperties": false, "required": [ "unit", "scale" ] }
- Validators:
- Model Measure2D[source]#
Bases:
MeasureA two-dimensional datacube measure
Show JSON schema
{ "description": "A two-dimensional datacube measure", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "value": { "items": { "items": { "type": [ "number", "null" ] }, "type": "array" }, "type": "array" } }, "additionalProperties": false, "required": [ "name", "unit", "value" ] }
- Validators:
validate_value_shape»value
- Model Measure3D[source]#
Bases:
MeasureA three-dimensional datacube measure
Show JSON schema
{ "description": "A three-dimensional datacube measure", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "value": { "items": { "items": { "items": { "type": [ "number", "null" ] }, "type": "array" }, "type": "array" }, "type": "array" } }, "additionalProperties": false, "required": [ "name", "unit", "value" ] }
- Validators:
validate_value_shape»value
- Model PlateReaderDatacube2D[source]#
Bases:
DataCubeA plate reader datacube containing two dimensions and one measure.
The dimensions must be time and wavelength
Show JSON schema
{ "description": "A plate reader datacube containing two dimensions and one measure.\n\nThe dimensions must be `time` and `wavelength`", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "measures": { "items": { "$ref": "#/definitions/Measure2D" }, "maxItems": 1, "minItems": 1, "type": "array" }, "dimensions": { "items": { "$ref": "#/definitions/PlateReaderDimension" }, "maxItems": 2, "minItems": 2, "type": "array" }, "fk_sample": { "@foreign_key": "/properties/samples/items/properties/pk", "description": "A foreign key linking datacubes to samples[*].", "type": "string" }, "fk_protocol_step": { "@foreign_key": "/properties/protocol_steps/items/properties/pk", "description": "A foreign key linking datacubes to protocol_steps[*].", "type": "string" }, "fk_method": { "@foreign_key": "/properties/methods/items/properties/pk", "description": "A foreign key linking datacubes to methods[*].", "type": "string" } }, "additionalProperties": false, "required": [ "name", "measures", "dimensions", "fk_sample", "fk_protocol_step", "fk_method" ], "definitions": { "Measure2D": { "additionalProperties": false, "description": "A two-dimensional datacube measure", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "value": { "items": { "items": { "type": [ "number", "null" ] }, "type": "array" }, "type": "array" } }, "required": [ "name", "unit", "value" ], "type": "object" }, "PlateReaderDimension": { "additionalProperties": false, "description": "A plate reader dimension with a limited set of possible names", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "scale": { "items": { "type": [ "number", "null" ] }, "type": "array" } }, "required": [ "unit", "scale" ], "type": "object" } } }
- Validators:
- field dimensions: List[PlateReaderDimension]#
- Constraints:
min_length = 2
max_length = 2
- field fk_method: str#
A foreign key linking datacubes to methods[*].
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- field fk_protocol_step: str#
A foreign key linking datacubes to protocol_steps[*].
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- Model PlateReaderDatacube3D[source]#
Bases:
DataCubeA plate reader datacube containing three dimensions and one measure.
Show JSON schema
{ "description": "A plate reader datacube containing three dimensions and one measure.", "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "measures": { "items": { "$ref": "#/definitions/Measure3D" }, "maxItems": 1, "minItems": 1, "type": "array" }, "dimensions": { "items": { "$ref": "#/definitions/PlateReaderDimension" }, "maxItems": 3, "minItems": 3, "type": "array" }, "fk_sample": { "@foreign_key": "/properties/samples/items/properties/pk", "description": "A foreign key linking datacubes to samples[*].", "type": "string" }, "fk_protocol_step": { "@foreign_key": "/properties/protocol_steps/items/properties/pk", "description": "A foreign key linking datacubes to protocol_steps[*].", "type": "string" }, "fk_method": { "@foreign_key": "/properties/methods/items/properties/pk", "description": "A foreign key linking datacubes to methods[*].", "type": "string" } }, "additionalProperties": false, "required": [ "name", "measures", "dimensions", "fk_sample", "fk_protocol_step", "fk_method" ], "definitions": { "Measure3D": { "additionalProperties": false, "description": "A three-dimensional datacube measure", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "value": { "items": { "items": { "items": { "type": [ "number", "null" ] }, "type": "array" }, "type": "array" }, "type": "array" } }, "required": [ "name", "unit", "value" ], "type": "object" }, "PlateReaderDimension": { "additionalProperties": false, "description": "A plate reader dimension with a limited set of possible names", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "scale": { "items": { "type": [ "number", "null" ] }, "type": "array" } }, "required": [ "unit", "scale" ], "type": "object" } } }
- Validators:
- field dimensions: List[PlateReaderDimension]#
- Constraints:
min_length = 3
max_length = 3
- field fk_method: str#
A foreign key linking datacubes to methods[*].
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- field fk_protocol_step: str#
A foreign key linking datacubes to protocol_steps[*].
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- Model PlateReaderSchema[source]#
Bases:
TetraDataSchemaA schema for a plate reader.
Show JSON schema
{ "description": "A schema for a plate reader.", "type": "object", "properties": { "@idsType": { "description": "Also known as IDS slug. Defined by TetraScience.", "type": "string" }, "@idsVersion": { "description": "IDS version. Defined by TetraScience.", "type": "string" }, "@idsNamespace": { "description": "IDS namespace. Defined by TetraScience.", "type": "string" }, "methods": { "items": { "$ref": "#/definitions/PlateReaderMethod" }, "type": "array" }, "protocol_steps": { "items": { "$ref": "#/definitions/PlateReaderStep" }, "type": "array" }, "measurement_settings": { "items": { "$ref": "#/definitions/PlateReaderMeasurementSetting" }, "type": "array" }, "samples": { "items": { "$ref": "#/definitions/PlateReaderSample" }, "type": "array" }, "datacubes": { "items": { "$ref": "#/definitions/PlateReaderDatacube2D" }, "type": "array" } }, "$id": "NotImplemented", "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "is_tetra_data_schema": true, "required": [ "@idsType", "@idsVersion", "@idsNamespace" ], "definitions": { "Batch": { "additionalProperties": false, "description": "A Batch is the result of a single manufacturing run for a drug product that is made as specified groups or amounts, within a specific time frame from the same raw materials that is intended to have uniform character and quality, within specified limits.", "properties": { "id": { "description": "Unique identifier assigned to a batch.", "type": [ "string", "null" ] }, "name": { "description": "Batch name", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a batch", "type": [ "string", "null" ] } }, "type": "object" }, "Chromatics": { "additionalProperties": false, "description": "Properties of a chromatic setup, e.g. a filter or spectrum", "properties": { "name": { "description": "The name of the optical setup used", "type": [ "string", "null" ] }, "position": { "description": "Position of a filter in a container like a filter wheel", "type": [ "string", "null" ] }, "bandwidth": { "$ref": "#/definitions/RawValueUnit", "description": "The range of frequencies around the target wavelength which are measured" }, "wavelength": { "$ref": "#/definitions/RawValueUnit", "description": "The target wavelength of the filter or monochromator" }, "start": { "$ref": "#/definitions/RawValueUnit", "description": "The start of the spectrum" }, "end": { "$ref": "#/definitions/RawValueUnit", "description": "The end of the spectrum" }, "step": { "$ref": "#/definitions/RawValueUnit", "description": "The step of the spectrum" }, "type": { "description": "The type of optical setup, e.g. filter or spectrum", "type": [ "string", "null" ] } }, "type": "object" }, "Compound": { "additionalProperties": false, "description": "A Compound is a specific chemical or biochemical structure or substance that is being investigated. A Compound may be any drug substance, drug product intermediate, or drug product across small molecules, and cell and gene therapy (CGT).", "properties": { "id": { "description": "Unique identifier assigned to a compound.", "type": [ "string", "null" ] }, "name": { "description": "Compound name.", "type": [ "string", "null" ] } }, "type": "object" }, "Gain": { "additionalProperties": false, "description": "The gain of a detector", "properties": { "mode": { "description": "The gain mode used for the measurement", "type": [ "string", "null" ] }, "raw_value": { "description": "The raw, untransformed value from the primary data.", "type": [ "string", "null" ] }, "value": { "description": "The gain value transformed to a numerical value", "type": [ "number", "null" ] }, "unit": { "description": "The unit of the gain value", "type": [ "string", "null" ] } }, "type": "object" }, "Holder": { "additionalProperties": false, "description": "A sample container such as a microplate or a vial.", "properties": { "name": { "description": "Holder name.", "type": [ "string", "null" ] }, "type": { "description": "Holder type.", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a holder.", "type": [ "string", "null" ] } }, "type": "object" }, "Label": { "additionalProperties": false, "description": "A Label associated with a sample, along with metadata about the label including\nthe source of the label and times associated with the label such as when it was\ncreated or looked up.", "properties": { "source": { "$ref": "#/definitions/Source", "description": "Sample label data source information." }, "name": { "description": "Sample label name.", "type": "string" }, "value": { "description": "Sample label value.", "type": "string" }, "time": { "$ref": "#/definitions/SampleTime", "description": "Time associated with the sample label." } }, "required": [ "source", "name", "value", "time" ], "type": "object" }, "Location": { "additionalProperties": false, "description": "The Location of the sample within the holder, such as the location of a well in a microplate.", "properties": { "position": { "description": "Raw position string.", "type": [ "string", "null" ] }, "row": { "description": "Row index of sample location in a plate or holder.", "type": [ "number", "null" ] }, "column": { "description": "Column index of sample location in a plate or holder.", "type": [ "number", "null" ] }, "index": { "description": "Index of sample location flattened to a single dimension.", "type": [ "number", "null" ] }, "holder": { "$ref": "#/definitions/Holder", "description": "Sample holder information" } }, "type": "object" }, "Measure2D": { "additionalProperties": false, "description": "A two-dimensional datacube measure", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "value": { "items": { "items": { "type": [ "number", "null" ] }, "type": "array" }, "type": "array" } }, "required": [ "name", "unit", "value" ], "type": "object" }, "PathLengthCorrection": { "additionalProperties": false, "description": "Properties for path length correction", "properties": { "test": { "$ref": "#/definitions/SingleChromatic", "description": "The test wavelength for the path length correction" }, "reference": { "$ref": "#/definitions/SingleChromatic", "description": "The reference wavelength for the path length correction" } }, "type": "object" }, "PlateReaderDatacube2D": { "additionalProperties": false, "description": "A plate reader datacube containing two dimensions and one measure.\n\nThe dimensions must be `time` and `wavelength`", "properties": { "name": { "type": [ "string", "null" ] }, "measures": { "items": { "$ref": "#/definitions/Measure2D" }, "maxItems": 1, "minItems": 1, "type": "array" }, "dimensions": { "items": { "$ref": "#/definitions/PlateReaderDimension" }, "maxItems": 2, "minItems": 2, "type": "array" }, "fk_sample": { "@foreign_key": "/properties/samples/items/properties/pk", "description": "A foreign key linking datacubes to samples[*].", "type": "string" }, "fk_protocol_step": { "@foreign_key": "/properties/protocol_steps/items/properties/pk", "description": "A foreign key linking datacubes to protocol_steps[*].", "type": "string" }, "fk_method": { "@foreign_key": "/properties/methods/items/properties/pk", "description": "A foreign key linking datacubes to methods[*].", "type": "string" } }, "required": [ "name", "measures", "dimensions", "fk_sample", "fk_protocol_step", "fk_method" ], "type": "object" }, "PlateReaderDimension": { "additionalProperties": false, "description": "A plate reader dimension with a limited set of possible names", "properties": { "name": { "type": [ "string", "null" ] }, "unit": { "type": [ "string", "null" ] }, "scale": { "items": { "type": [ "number", "null" ] }, "type": "array" } }, "required": [ "unit", "scale" ], "type": "object" }, "PlateReaderMeasurementSetting": { "additionalProperties": false, "description": "The settings related to a particular measurement by a step in the protocol/method", "properties": { "integration_delay": { "$ref": "#/definitions/RawValueUnit", "description": "The delay before the integration of the detected signal begins" }, "integration_time": { "$ref": "#/definitions/RawValueUnit", "description": "The duration of the signal integration" }, "emission": { "$ref": "#/definitions/Chromatics", "description": "The emission optical setup" }, "excitation": { "$ref": "#/definitions/Chromatics", "description": "The excitation optical setup" }, "number_of_flashes": { "description": "The number of flashes used for the measurement", "type": [ "integer", "null" ] }, "excitation_time": { "$ref": "#/definitions/RawValueUnit", "description": "The time for which the sample is illuminated by the excitation source" }, "alpha_type": { "description": "The type of alpha technology used for the measurement", "type": [ "string", "null" ] }, "channel": { "description": "The channel of the measurement when there can be multiple, e.g. forfluorescence polarization measurements the channels are parallel or perpendicular", "type": [ "string", "null" ] }, "absorbance": { "$ref": "#/definitions/Chromatics", "description": "The absorbance filter or spectrum" }, "pathlength_correction": { "$ref": "#/definitions/PathLengthCorrection", "description": "The path length correction metadata for the measurement" }, "pk": { "@primary_key": true, "description": "Primary key of a measurement setting", "type": "string" }, "fk_protocol_step": { "@foreign_key": "/properties/protocol_steps/items/properties/pk", "description": "Foreign key to the step that this measurement setting belongs to", "type": "string" }, "fk_method": { "@foreign_key": "/properties/methods/items/properties/pk", "description": "Foreign key to the method that this measurement setting belongs to", "type": "string" }, "index": { "description": "The index of the measurement setting in the step", "type": "integer" }, "modality": { "description": "The modality of the measurement", "type": [ "string", "null" ] }, "type": { "description": "The type of the measurement", "type": [ "string", "null" ] }, "measurement_duration": { "$ref": "#/definitions/RawValueUnit", "description": "The duration of the measurement" }, "number_of_readings": { "description": "The number of readings for a measurement", "type": [ "integer", "null" ] }, "gain": { "$ref": "#/definitions/Gain", "description": "The gain of the detector" }, "dynamic_range": { "description": "The dynamic range of the detector", "type": [ "string", "null" ] }, "optics": { "description": "The name or position of the optics used for the measurement", "type": [ "string", "null" ] } }, "required": [ "pk", "fk_protocol_step", "fk_method" ], "type": "object" }, "PlateReaderMethod": { "additionalProperties": false, "description": "A protocol followed during a plate reader experiment", "properties": { "pk": { "@primary_key": true, "description": "Primary key of a plate reader method", "type": "string" }, "name": { "description": "The name of the method", "type": [ "string", "null" ] }, "id": { "description": "The ID of the method", "type": [ "string", "null" ] } }, "required": [ "pk" ], "type": "object" }, "PlateReaderSample": { "additionalProperties": false, "description": "A sample stored in a well on a plate", "properties": { "id": { "description": "Unique identifier assigned to a sample.", "type": [ "string", "null" ] }, "name": { "description": "Sample name.", "type": [ "string", "null" ] }, "barcode": { "description": "Barcode assigned to a sample.", "type": [ "string", "null" ] }, "batch": { "$ref": "#/definitions/Batch" }, "set": { "$ref": "#/definitions/Set", "description": "Sample set." }, "location": { "$ref": "#/definitions/Location", "description": "Sample location information." }, "compound": { "$ref": "#/definitions/Compound", "description": "Sample compound information." }, "properties": { "type": "array", "items": { "$ref": "#/definitions/Property" }, "description": "Sample properties." }, "labels": { "description": "Sample labels.", "items": { "$ref": "#/definitions/Label" }, "type": "array" }, "pk": { "@primary_key": true, "type": "string" } }, "required": [ "pk" ], "type": "object" }, "PlateReaderStep": { "additionalProperties": false, "description": "A step in a protocol", "properties": { "pk": { "@primary_key": true, "description": "Primary key of a step in the protocol", "type": "string" }, "fk_method": { "@foreign_key": "/properties/methods/items/properties/pk", "description": "Foreign key to the method that the step belongs to", "type": "string" }, "parent_step": { "description": "Name of the parent step in the protocol, if this step belongs to a kinetic loop", "type": [ "string", "null" ] }, "index": { "description": "The index of the step in the protocol", "type": "integer" }, "name": { "description": "The name of the step in the protocol", "type": [ "string", "null" ] }, "kinetics": { "$ref": "#/definitions/StepKinetics" } }, "required": [ "pk", "fk_method" ], "type": "object" }, "Property": { "additionalProperties": false, "description": "A property has a name and a value of any type, with metadata about the\nproperty including the source of the property and times associated with it\nsuch as when the property was created or looked up.", "properties": { "source": { "$ref": "#/definitions/Source", "description": "Sample property data source information." }, "name": { "description": "Sample Property name.", "type": "string" }, "value": { "description": "The original string value of the property.", "type": "string" }, "value_data_type": { "$ref": "#/definitions/ValueDataType", "description": "This is the type of the original value." }, "string_value": { "description": "If string_value has a value, then numerical_value, numerical_value_unit, and boolean_value all have to be null.", "type": [ "string", "null" ] }, "numerical_value": { "description": "If numerical_value has a value, then string_value and boolean_value both have to be null.", "type": [ "number", "null" ] }, "numerical_value_unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] }, "boolean_value": { "description": "If boolean_value has a value, then numerical_value, numerical_value_unit, and string_value all have to be null.", "type": [ "boolean", "null" ] }, "time": { "$ref": "#/definitions/SampleTime", "description": "Time associated with the sample property." } }, "required": [ "source", "name", "value", "value_data_type", "string_value", "numerical_value", "numerical_value_unit", "boolean_value", "time" ], "type": "object" }, "RawSampleTime": { "additionalProperties": false, "description": "The base model for time associated with a specific sample.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Raw sample data lookup time.", "type": [ "string", "null" ] } }, "required": [ "lookup" ], "type": "object" }, "RawValueUnit": { "additionalProperties": false, "description": "A value with a unit, including the raw representation of the value from the primary data.", "properties": { "value": { "description": "A numerical value.", "type": [ "number", "null" ] }, "unit": { "description": "Unit for the numerical value.", "type": [ "string", "null" ] }, "raw_value": { "description": "The raw, untransformed value from the primary data.", "type": [ "string", "null" ] } }, "required": [ "value", "unit", "raw_value" ], "type": "object" }, "SampleTime": { "additionalProperties": false, "description": "A model for experiment sample datetime values converted to a standard ISO format\nand their respective raw datetime values in the primary data.", "properties": { "start": { "description": "Process/experiment/task start time.", "type": [ "string", "null" ] }, "created": { "description": "Data created time.", "type": [ "string", "null" ] }, "stop": { "description": "Process/experiment/task stop/finish time.", "type": [ "string", "null" ] }, "duration": { "description": "Process/experiment/task duration.", "type": [ "string", "null" ] }, "last_updated": { "description": "Data last updated time of a file/method.", "type": [ "string", "null" ] }, "acquired": { "description": "Data acquired/exported/captured time.", "type": [ "string", "null" ] }, "modified": { "description": "Data last modified/edited time.", "type": [ "string", "null" ] }, "lookup": { "description": "Raw sample data lookup time.", "type": [ "string", "null" ] }, "raw": { "$ref": "#/definitions/RawSampleTime", "description": "Raw sample time values from primary data." } }, "required": [ "lookup" ], "type": "object" }, "Set": { "additionalProperties": false, "description": "A group of Samples.", "properties": { "id": { "description": "Unique identifier assigned to a set.", "type": [ "string", "null" ] }, "name": { "description": "Set name.", "type": [ "string", "null" ] } }, "type": "object" }, "SingleChromatic": { "additionalProperties": false, "description": "Optical properties for a single chromatic e.g. filter or monochromator", "properties": { "name": { "description": "The name of the filter or monochromator", "type": [ "string", "null" ] }, "position": { "description": "Position of a filter in a container like a filter wheel", "type": [ "string", "null" ] }, "bandwidth": { "$ref": "#/definitions/RawValueUnit", "description": "The range of frequencies around the target wavelength which are measured" }, "wavelength": { "$ref": "#/definitions/RawValueUnit", "description": "The target wavelength of the filter or monochromator" } }, "type": "object" }, "Source": { "additionalProperties": false, "description": "The Source of information, such as a data file or a sample database.", "properties": { "name": { "description": "Source name.", "type": [ "string", "null" ] }, "type": { "description": "Source type.", "type": [ "string", "null" ] } }, "required": [ "name", "type" ], "type": "object" }, "StepKinetics": { "additionalProperties": false, "description": "The kinetic metadata for the step", "properties": { "number_of_cycles": { "description": "The number of cycles of the kinetic loop", "type": [ "integer", "null" ] }, "total_duration": { "$ref": "#/definitions/RawValueUnit", "description": "The total time of the kinetic loop" }, "interval": { "$ref": "#/definitions/RawValueUnit", "description": "The interval between cycles in the kinetic loop" } }, "type": "object" }, "ValueDataType": { "description": "Allowed data type values.", "enum": [ "string", "number", "boolean" ], "type": "string" } } }
- Validators:
- field datacubes: List[PlateReaderDatacube2D]#
- field measurement_settings: List[PlateReaderMeasurementSetting]#
- field methods: List[PlateReaderMethod]#
- field protocol_steps: List[PlateReaderStep]#
- field samples: List[PlateReaderSample]#