ts_ids_components.plate_reader.methods module#
This module contains components for plate reader methods or protocols.
For plate readers, users typically define what is known as a “method” or a “protocol” which outlines the steps that are performed during an experiment. These steps can be measurements, like absorbance of fluorescence readings, or other actions on the plate, like shaking the plate.
The order in which steps are performed matters. For instance, a scientist may want to first perform a specific measurement on a sample, and then perform another measurement on the same sample. When reviewing the experimental data, the order of the measurements is important context that must be preserved to interpret the results.
When considering a method, there are a few levels of the hierarchy to consider:
A method is the top level, and outlines a list of steps to follow.
A step outlines a specific action or measurement(s) to be performed.
A measurement setting outlines the instrument setup for a particular measurement performed by a step, of which there can be multiple.
Modeling Plate Reader Methods in IDS#
To capture this hierarchy within our IDSs, we define the following top-level arrays:
methods: Contains 1 item per method.protocol_steps: Contains 1 item per step performed by a method.measurement_settings: Contains 1 item per measurement setting used by the steps in the method.
To preserve which steps belong to which method, and which measurement settings belong to which step, primary-foreign keys are used to link these arrays.
Each item contains a primary key pk, as well as the following foreign keys:
Items in the
protocol_stepsarray have a foreign keyfk_methodto the method they belong to.Items in the
measurement_settingsarray have a foreign keyfk_methodandfk_protocol_stepto the method and step they belong to.
The measurement_settings array can be customized depending on the types of measurements an IDS supports.
This is achieved through a structure similar to the System component.
In the example below, the MyMeasurementSettings class is defined to contain the fields which are common to all measurement settings by inheriting from MeasurementSetting.
As well as these, the absorbance and fluorescence fields are added by inheriting from MeasurementSetting.Absorbance and MeasurementSetting.Fluorescence respectively.
from typing import ClassVar, List
from ts_ids_core.annotations import Required
from ts_ids_core.schema import IdsField, IdsSchema, SchemaExtraMetadataType
from typing_extensions import Literal
from ts_ids_components.plate_reader.methods import (
MeasurementSetting,
PlateReaderMethod,
PlateReaderStep,
)
class MyMeasurementSettings(
MeasurementSetting,
MeasurementSetting.Absorbance,
MeasurementSetting.Fluorescence,
):
pass
# Define a plate reader model which uses the customized measurement setting
class CustomizedPlateReaderMethods(IdsSchema):
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"
)
methods: List[PlateReaderMethod]
protocol_steps: List[PlateReaderStep]
If you wish to simply add all the measurement settings fields from the component for all modalities, you can use the PlateReaderMeasurementSetting type instead of MyMeasurementSettings above.
This contains all the fields for the supported modalities, including absorbance, fluorescence, luminescence, TRF and alpha technology.
Single vs Multi-step protocols#
For multi-step protocols, the protocol_steps array will contain 1 item per step in a protocol.
For single-step protocols, it is recommended to still populate 1 item in the methods array for the protocol, and 1 item in the protocol_steps array for the step.
This ensures consistency in the structure of the IDS between singe and multi-step protocols, as well as ensuring the same SQL queries can be used for IDS of each type.
Endpoint vs Kinetic Steps#
protocol_steps contains a flat list of the steps that were performed by a method or protocol.
This includes both endpoint steps as well as kinetic cycles and their sub-protocols.
This step hierarchy is preserved by including a parent_step field, which contains the name of the parent step in the protocol, if this step belongs to a kinetic loop.
If a step is not a part of a kinetic sub-protocol, the parent_step field should not be defined, like in the first item in the protocol_steps array in the example below.
If the protocol contains a kinetic cycle, protocol_steps should contain:
1 item to act as the parent step for the kinetic cycle (the 2nd item in the example below).
1 item for each step in the kinetic sub-protocol, where the
parent_stepfield is set to the name of the parent step (the 3rd and 4th items in the example below).
The kinetics object should also be defined for each of the parent and sub-protocol steps, containing the properties of the kinetic loop.
{
"protocol_steps": [
{
"pk": "abc00000-0000-0000-0000-000000000002",
"fk_method": "abc00000-0000-0000-0000-000000000001",
"index": 0,
"name": "Endpoint Step"
},
{
"pk": "abc00000-0000-0000-0000-000000000003",
"fk_method": "abc00000-0000-0000-0000-000000000001",
"index": 1,
"name": "Kinetic Cycle",
"kinetics": {
"number_of_cycles": 10
}
},
{
"pk": "abc00000-0000-0000-0000-000000000004",
"fk_method": "abc00000-0000-0000-0000-000000000001",
"parent_step": "Kinetic Cycle",
"index": 2,
"name": "Sub step 1",
"kinetics": {
"number_of_cycles": 10
}
},
{
"pk": "abc00000-0000-0000-0000-000000000005",
"fk_method": "abc00000-0000-0000-0000-000000000001",
"parent_step": "Kinetic Cycle",
"index": 3,
"name": "Sub step 2",
"kinetics": {
"number_of_cycles": 10
}
}
]
}
Guidelines for extending these components#
Many plate readers will export metadata fields that are unique to the specific instrument. Depending on the type of metadata, fields can be added to the component to capture this data in the following places:
If a property applies to a whole protocol, e.g. a file path to the methods file, it belongs within
methodsIf a property applies to a particular measurement, e.g. an interval between well measurements, it belongs within
measurement_settingsIf a property belongs to a particular step in the protocol, but not related to a measurement, e.g. settings for a shake step, it belongs within
protocol_steps
Guidelines for linking results to items in these components#
As previously mentioned, each of the methods, protocol_steps, and measurement_settings arrays contain a primary key pk.
Depending on the type of result being harmonized, foreign keys to the items in these arrays can be used to link the results to the corresponding metadata:
If a result refers to a particular measurement performed, the foreign key should be to the item in the
measurement_settingsarray.If a result refers to a particular step in the protocol, such as an aggregation of measurements over multiple wavelengths, the foreign key should be to the item in the
protocol_stepsarray.If a result refers to a whole protocol, such as a pass-fail quality control condition, the foreign key should be to the item in the
methodsarray.
Methods Components#
- Model PlateReaderMethod[source]#
Bases:
IdsElementA protocol followed during a plate reader experiment
Show JSON schema
{ "description": "A protocol followed during a plate reader experiment", "type": "object", "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" ] } }, "additionalProperties": false, "required": [ "pk" ] }
- Validators:
- Model StepKinetics[source]#
Bases:
IdsElementThe kinetic metadata for the step
Show JSON schema
{ "description": "The kinetic metadata for the step", "type": "object", "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" } }, "additionalProperties": false, "definitions": { "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" } } }
- Validators:
- field interval: RawValueUnit#
The interval between cycles in the kinetic loop
- field total_duration: RawValueUnit#
The total time of the kinetic loop
- Model PlateReaderStep[source]#
Bases:
IdsElementA step in a protocol
Show JSON schema
{ "description": "A step in a protocol", "type": "object", "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" } }, "additionalProperties": false, "required": [ "pk", "fk_method" ], "definitions": { "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" }, "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" } } }
- Validators:
- field fk_method: str#
Foreign key to the method that the step belongs to
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- field kinetics: StepKinetics#
- Model SingleChromatic[source]#
Bases:
IdsElementOptical properties for a single chromatic e.g. filter or monochromator
Show JSON schema
{ "description": "Optical properties for a single chromatic e.g. filter or monochromator", "type": "object", "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" } }, "additionalProperties": false, "definitions": { "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" } } }
- Validators:
- field bandwidth: RawValueUnit#
The range of frequencies around the target wavelength which are measured
- field wavelength: RawValueUnit#
The target wavelength of the filter or monochromator
- Model Spectrum[source]#
Bases:
IdsElementSpectrum or spectral scan properties
Wavelength ranges are inclusive.
Show JSON schema
{ "description": "Spectrum or spectral scan properties\n\nWavelength ranges are inclusive.", "type": "object", "properties": { "name": { "description": "The name of the spectrum", "type": [ "string", "null" ] }, "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" } }, "additionalProperties": false, "definitions": { "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" } } }
- Validators:
- field end: RawValueUnit#
The end of the spectrum
- field start: RawValueUnit#
The start of the spectrum
- field step: RawValueUnit#
The step of the spectrum
- Model Chromatics[source]#
Bases:
Spectrum,SingleChromaticProperties of a chromatic setup, e.g. a filter or spectrum
Show JSON schema
{ "description": "Properties of a chromatic setup, e.g. a filter or spectrum", "type": "object", "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" ] } }, "additionalProperties": false, "definitions": { "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" } } }
- Validators:
- Model Gain[source]#
Bases:
IdsElementThe gain of a detector
Show JSON schema
{ "description": "The gain of a detector", "type": "object", "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" ] } }, "additionalProperties": false }
- Validators:
- Model LuminescenceMetadata[source]#
Bases:
IdsElementProperties of a luminescence based measurement
Show JSON schema
{ "description": "Properties of a luminescence based measurement", "type": "object", "properties": { "emission": { "$ref": "#/definitions/Chromatics", "description": "The emission optical setup" } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- field emission: Chromatics#
The emission optical setup
- Model FluorescenceMetadata[source]#
Bases:
LuminescenceMetadataProperties of a fluorescence based measurement
Show JSON schema
{ "description": "Properties of a fluorescence based measurement", "type": "object", "properties": { "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" } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- field excitation: Chromatics#
The excitation optical setup
- field excitation_time: RawValueUnit#
The time for which the sample is illuminated by the excitation source
- Model PathLengthCorrection[source]#
Bases:
IdsElementProperties for path length correction
Show JSON schema
{ "description": "Properties for path length correction", "type": "object", "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" } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- field reference: SingleChromatic#
The reference wavelength for the path length correction
- field test: SingleChromatic#
The test wavelength for the path length correction
- Model IntegrationTimes[source]#
Bases:
IdsElementProperties for the integration times of a measurement
Show JSON schema
{ "description": "Properties for the integration times of a measurement", "type": "object", "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" } }, "additionalProperties": false, "definitions": { "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" } } }
- Validators:
- field integration_delay: RawValueUnit#
The delay before the integration of the detected signal begins
- field integration_time: RawValueUnit#
The duration of the signal integration
- Model MeasurementSetting[source]#
Bases:
IdsElementThe settings related to a particular measurement by a step in the protocol
Show JSON schema
{ "description": "The settings related to a particular measurement by a step in the protocol", "type": "object", "properties": { "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" ] } }, "additionalProperties": false, "required": [ "pk", "fk_protocol_step", "fk_method" ], "definitions": { "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" }, "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" } } }
- Validators:
- field fk_method: str#
Foreign key to the method that this measurement setting belongs to
- 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#
Foreign key to the step that this measurement setting belongs to
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- field measurement_duration: RawValueUnit#
The duration of the measurement
- field pk: str#
Primary key of a measurement setting
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
- Model Absorbance[source]#
Bases:
IdsElementProperties of an absorbance based measurement
Show JSON schema
{ "description": "Properties of an absorbance based measurement", "type": "object", "properties": { "absorbance": { "$ref": "#/definitions/Chromatics", "description": "The absorbance filter or spectrum" }, "pathlength_correction": { "$ref": "#/definitions/PathLengthCorrection", "description": "The path length correction metadata for the measurement" } }, "additionalProperties": false, "definitions": { "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" }, "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" }, "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" }, "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" } } }
- Validators:
- field absorbance: Chromatics#
The absorbance filter or spectrum
- field pathlength_correction: PathLengthCorrection#
The path length correction metadata for the measurement
- Model Alpha[source]#
Bases:
FluorescenceMetadata,IntegrationTimesProperties of an alpha technology based measurement
Show JSON schema
{ "description": "Properties of an alpha technology based measurement", "type": "object", "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" ] } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- Model Fluorescence[source]#
Bases:
FluorescenceMetadataProperties of a fluorescence based measurement
Show JSON schema
{ "description": "Properties of a fluorescence based measurement", "type": "object", "properties": { "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" }, "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" ] } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- Model Luminescence[source]#
Bases:
LuminescenceMetadataProperties of a luminescence based measurement
Show JSON schema
{ "description": "Properties of a luminescence based measurement", "type": "object", "properties": { "emission": { "$ref": "#/definitions/Chromatics", "description": "The emission optical setup" } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- field emission: Chromatics#
The emission optical setup
- Model TRF[source]#
Bases:
FluorescenceMetadata,IntegrationTimesProperties of a time-resolved fluorescence based measurement
Show JSON schema
{ "description": "Properties of a time-resolved fluorescence based measurement", "type": "object", "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" } }, "additionalProperties": false, "definitions": { "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" }, "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" } } }
- Validators:
- field emission: Chromatics#
The emission optical setup
- field excitation: Chromatics#
The excitation optical setup
- field excitation_time: RawValueUnit#
The time for which the sample is illuminated by the excitation source
- Model PlateReaderMeasurementSetting[source]#
Bases:
MeasurementSetting,Absorbance,Fluorescence,Luminescence,TRF,AlphaThe settings related to a particular measurement by a step in the protocol/method
Show JSON schema
{ "description": "The settings related to a particular measurement by a step in the protocol/method", "type": "object", "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" ] } }, "additionalProperties": false, "required": [ "pk", "fk_protocol_step", "fk_method" ], "definitions": { "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" }, "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" }, "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" }, "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" }, "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" } } }
- Validators:
- field fk_method: str#
Foreign key to the method that this measurement setting belongs to
- 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#
Foreign key to the step that this measurement setting belongs to
- Constraints:
func = <function validate_uuid at 0x7f83f18f3550>
json_schema_input_type = PydanticUndefined
ids_field_arg = primary_key
pk_reference_field = @foreign_key
- field measurement_duration: RawValueUnit#
The duration of the measurement