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_steps array have a foreign key fk_method to the method they belong to.

  • Items in the measurement_settings array have a foreign key fk_method and fk_protocol_step to 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_step field 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 methods

  • If a property applies to a particular measurement, e.g. an interval between well measurements, it belongs within measurement_settings

  • If 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_settings array.

  • 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_steps array.

  • 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 methods array.

Methods Components#

Model PlateReaderMethod[source]#

Bases: IdsElement

A 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:

field id_: str | None (alias 'id')#

The ID of the method

field name: str | None#

The name of the method

field pk: str#

Primary key of a plate reader method

Constraints:
  • func = <function validate_uuid at 0x7f83f18f3550>

  • json_schema_input_type = PydanticUndefined

Model StepKinetics[source]#

Bases: IdsElement

The 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 number_of_cycles: int | None#

The number of cycles of the kinetic loop

field total_duration: RawValueUnit#

The total time of the kinetic loop

Model PlateReaderStep[source]#

Bases: IdsElement

A 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 index: int#

The index of the step in the protocol

field kinetics: StepKinetics#
field name: str | None#

The name of the step in the protocol

field parent_step: str | None#

Name of the parent step in the protocol, if this step belongs to a kinetic loop

field pk: str#

Primary key of a step in the protocol

Constraints:
  • func = <function validate_uuid at 0x7f83f18f3550>

  • json_schema_input_type = PydanticUndefined

Model SingleChromatic[source]#

Bases: IdsElement

Optical 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 name: str | None#

The name of the filter or monochromator

field position: str | None#

Position of a filter in a container like a filter wheel

field wavelength: RawValueUnit#

The target wavelength of the filter or monochromator

Model Spectrum[source]#

Bases: IdsElement

Spectrum 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 name: str | None#

The name of the spectrum

field start: RawValueUnit#

The start of the spectrum

field step: RawValueUnit#

The step of the spectrum

class OpticalSetup(value)[source]#

Bases: str, Enum

The type of optical setup for a measurement

Model Chromatics[source]#

Bases: Spectrum, SingleChromatic

Properties 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:

field name: str | None#

The name of the optical setup used

field type_: str | None (alias 'type')#

The type of optical setup, e.g. filter or spectrum

Model Gain[source]#

Bases: IdsElement

The 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:

field mode: str | None#

The gain mode used for the measurement

field raw_value: str | None#

The raw, untransformed value from the primary data.

field unit: str | None#

The unit of the gain value

field value: float | None#

The gain value transformed to a numerical value

Model LuminescenceMetadata[source]#

Bases: IdsElement

Properties 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: LuminescenceMetadata

Properties 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

field number_of_flashes: int | None#

The number of flashes used for the measurement

Model PathLengthCorrection[source]#

Bases: IdsElement

Properties 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: IdsElement

Properties 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

class Channel(value)[source]#

Bases: str, Enum

The channel of a measurement

class Modality(value)[source]#

Bases: str, Enum

The modality of a measurement

class EndpointKineticType(value)[source]#

Bases: str, Enum

The type of a measurement

Model MeasurementSetting[source]#

Bases: IdsElement

The 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 dynamic_range: str | None#

The dynamic range of the detector

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 gain: Gain#

The gain of the detector

field index: int#

The index of the measurement setting in the step

field measurement_duration: RawValueUnit#

The duration of the measurement

field modality: str | None#

The modality of the measurement

field number_of_readings: int | None#

The number of readings for a measurement

field optics: str | None#

The name or position of the optics used for the measurement

field pk: str#

Primary key of a measurement setting

Constraints:
  • func = <function validate_uuid at 0x7f83f18f3550>

  • json_schema_input_type = PydanticUndefined

field type_: str | None (alias 'type')#

The type of the measurement

Model Absorbance[source]#

Bases: IdsElement

Properties 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, IntegrationTimes

Properties 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:

field alpha_type: str | None#

The type of alpha technology used for the measurement

Model Fluorescence[source]#

Bases: FluorescenceMetadata

Properties 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:

field channel: str | None#

The channel of the measurement when there can be multiple, e.g. forfluorescence polarization measurements the channels are parallel or perpendicular

Model Luminescence[source]#

Bases: LuminescenceMetadata

Properties 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, IntegrationTimes

Properties 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

field number_of_flashes: int | None#

The number of flashes used for the measurement

Model PlateReaderMeasurementSetting[source]#

Bases: MeasurementSetting, Absorbance, Fluorescence, Luminescence, TRF, Alpha

The 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 dynamic_range: str | None#

The dynamic range of the detector

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 gain: Gain#

The gain of the detector

field index: int#

The index of the measurement setting in the step

field measurement_duration: RawValueUnit#

The duration of the measurement

field modality: str | None#

The modality of the measurement

field number_of_readings: int | None#

The number of readings for a measurement

field optics: str | None#

The name or position of the optics used for the measurement

field pk: str#

Primary key of a measurement setting

Constraints:
  • func = <function validate_uuid at 0x7f83f18f3550>

  • json_schema_input_type = PydanticUndefined

field type_: str | None (alias 'type')#

The type of the measurement