Echo PlateSurvey (Medman/”Echo Liquid Handler”) format#
PlateSurveyXML: base file#
- pydantic model kithairon.surveys.platesurvey.EchoPlateSurveyXML#
A platesurvey XML model for files generated by the Medman / ‘Echo Liquid Handler’ software.
Show JSON schema
{ "title": "EchoPlateSurveyXML", "description": "A platesurvey XML model for files generated by the Medman / 'Echo Liquid Handler' software.", "type": "object", "properties": { "plate_type": { "title": "Plate Type", "type": "string" }, "plate_barcode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Plate Barcode" }, "timestamp": { "format": "date-time", "title": "Timestamp", "type": "string" }, "instrument_serial_number": { "title": "Instrument Serial Number", "type": "string" }, "vtl": { "title": "Vtl", "type": "integer" }, "original": { "title": "Original", "type": "integer" }, "data_format_version": { "title": "Data Format Version", "type": "integer" }, "survey_rows": { "description": "Number of rows in the survey", "title": "Survey Rows", "type": "integer" }, "survey_columns": { "description": "Number of columns in the survey", "title": "Survey Columns", "type": "integer" }, "survey_total_wells": { "title": "Survey Total Wells", "type": "integer" }, "wells": { "items": { "$ref": "#/$defs/WellSurvey" }, "title": "Wells", "type": "array" }, "plate_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Plate Name" }, "comment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Comment" } }, "$defs": { "EchoSignal": { "description": "Echo signal information for a well. `e` element.", "properties": { "signal_type": { "title": "Signal Type", "type": "string" }, "transducer_x": { "title": "Transducer X", "type": "number" }, "transducer_y": { "title": "Transducer Y", "type": "number" }, "transducer_z": { "title": "Transducer Z", "type": "number" }, "features": { "items": { "$ref": "#/$defs/SignalFeature" }, "title": "Features", "type": "array" } }, "required": [ "signal_type", "transducer_x", "transducer_y", "transducer_z", "features" ], "title": "EchoSignal", "type": "object" }, "SignalFeature": { "description": "Single feature of an echo signal. `f` element.", "properties": { "feature_type": { "title": "Feature Type", "type": "string" }, "tof": { "title": "Tof", "type": "number" }, "vpp": { "title": "Vpp", "type": "number" } }, "required": [ "feature_type", "tof", "vpp" ], "title": "SignalFeature", "type": "object" }, "WellSurvey": { "description": "Survey information for a single well. `w` element.", "properties": { "row": { "minimum": 0, "title": "Row", "type": "integer" }, "column": { "minimum": 0, "title": "Column", "type": "integer" }, "well": { "title": "Well", "type": "string" }, "volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Volume" }, "current_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Current Volume" }, "status": { "title": "Status", "type": "string" }, "fluid": { "title": "Fluid", "type": "string" }, "fluid_units": { "title": "Fluid Units", "type": "string" }, "meniscus_x": { "title": "Meniscus X", "type": "number" }, "meniscus_y": { "title": "Meniscus Y", "type": "number" }, "fluid_composition": { "title": "Fluid Composition", "type": "number" }, "dmso_homogeneous": { "title": "Dmso Homogeneous", "type": "number" }, "dmso_inhomogeneous": { "title": "Dmso Inhomogeneous", "type": "number" }, "fluid_thickness": { "title": "Fluid Thickness", "type": "number" }, "current_fluid_thickness": { "title": "Current Fluid Thickness", "type": "number" }, "bottom_thickness": { "title": "Bottom Thickness", "type": "number" }, "fluid_thickness_homogeneous": { "title": "Fluid Thickness Homogeneous", "type": "number" }, "fluid_thickness_imhomogeneous": { "title": "Fluid Thickness Imhomogeneous", "type": "number" }, "outlier": { "title": "Outlier", "type": "number" }, "corrective_action": { "title": "Corrective Action", "type": "string" }, "echo_signal": { "$ref": "#/$defs/EchoSignal" } }, "required": [ "row", "column", "well", "volume", "current_volume", "status", "fluid", "fluid_units", "meniscus_x", "meniscus_y", "fluid_composition", "dmso_homogeneous", "dmso_inhomogeneous", "fluid_thickness", "current_fluid_thickness", "bottom_thickness", "fluid_thickness_homogeneous", "fluid_thickness_imhomogeneous", "outlier", "corrective_action", "echo_signal" ], "title": "WellSurvey", "type": "object" } }, "required": [ "plate_type", "plate_barcode", "timestamp", "instrument_serial_number", "vtl", "original", "data_format_version", "survey_rows", "survey_columns", "survey_total_wells", "wells" ] }
- Fields:
- Validators:
check_data_format_version»all fieldscheck_number_of_wells»all fields
- field data_format_version: int [Required]#
Version of data format. Only
1is known to be used.- Validated by:
- field instrument_serial_number: str [Required]#
Instrument serial number.
serial_numberattribute.- Validated by:
- field plate_barcode: <lambda>, json_schema_input_type=PydanticUndefined)] [Required]#
Plate barcode, if present, or
None, represented in XML as"UnknownBarCode".barcodeattribute.- Constraints:
func = <function <lambda> at 0x7d12f8e2fba0>
return_type = PydanticUndefined
when_used = unless-none
json_schema_input_type = PydanticUndefined
- Validated by:
- field plate_name: str | None = None#
Plate name. Additional attribute, added by kithairon.
- Validated by:
- field plate_type: str [Required]#
The
nameattribute. Practically appears to always be the plate type.- Validated by:
- field survey_columns: int [Required]#
Number of columns in the survey.
colsattribute.Number of columns in the survey
- Validated by:
- field survey_rows: int [Required]#
Number of rows in the survey.
rowsattribute.Number of rows in the survey
- Validated by:
- field survey_total_wells: int [Required]#
Total number of wells in the survey.
totalWellsattribute.- Validated by:
- field wells: list[WellSurvey] [Required]#
List of wells.
welements.- Validated by:
- validator check_data_format_version » all fields#
Ensure that the data format version is 1.
- validator check_number_of_wells » all fields#
Check that the number of wells matches the number of rows and columns.
- classmethod read_xml(path: PathLike | str) Self#
Read a platesurvey XML file.
- Returns:
- EchoPlateSurveyXML
- to_surveydata() SurveyData#
Convert the EchoPlateSurveyXML to a SurveyData containing a single survey.
- Returns:
- SurveyData
- write_xml(
- path: PathLike[str] | str | Callable[[Self], str],
- path_str_format: bool = True,
- **kwargs: dict[str, Any],
Write a platesurvey XML file.
- Parameters:
- pathos.PathLike[str] | str | Callable[[Self], str]
The path to write to. If a callable is provided, it will be called with the model as the argument.
- path_str_formatbool
Whether to format the path string with the model dump (a nested dict of the plate survey’s contents, excluding the ‘wells’ key). Only used if
pathis a string. Default True.
- Returns:
- str | os.PathLike[str]
The (formatted) path to the file.
WellSurvey: individual well data#
- pydantic model kithairon.surveys.platesurvey.WellSurvey#
Survey information for a single well.
welement.Show JSON schema
{ "title": "WellSurvey", "description": "Survey information for a single well. `w` element.", "type": "object", "properties": { "row": { "minimum": 0, "title": "Row", "type": "integer" }, "column": { "minimum": 0, "title": "Column", "type": "integer" }, "well": { "title": "Well", "type": "string" }, "volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Volume" }, "current_volume": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Current Volume" }, "status": { "title": "Status", "type": "string" }, "fluid": { "title": "Fluid", "type": "string" }, "fluid_units": { "title": "Fluid Units", "type": "string" }, "meniscus_x": { "title": "Meniscus X", "type": "number" }, "meniscus_y": { "title": "Meniscus Y", "type": "number" }, "fluid_composition": { "title": "Fluid Composition", "type": "number" }, "dmso_homogeneous": { "title": "Dmso Homogeneous", "type": "number" }, "dmso_inhomogeneous": { "title": "Dmso Inhomogeneous", "type": "number" }, "fluid_thickness": { "title": "Fluid Thickness", "type": "number" }, "current_fluid_thickness": { "title": "Current Fluid Thickness", "type": "number" }, "bottom_thickness": { "title": "Bottom Thickness", "type": "number" }, "fluid_thickness_homogeneous": { "title": "Fluid Thickness Homogeneous", "type": "number" }, "fluid_thickness_imhomogeneous": { "title": "Fluid Thickness Imhomogeneous", "type": "number" }, "outlier": { "title": "Outlier", "type": "number" }, "corrective_action": { "title": "Corrective Action", "type": "string" }, "echo_signal": { "$ref": "#/$defs/EchoSignal" } }, "$defs": { "EchoSignal": { "description": "Echo signal information for a well. `e` element.", "properties": { "signal_type": { "title": "Signal Type", "type": "string" }, "transducer_x": { "title": "Transducer X", "type": "number" }, "transducer_y": { "title": "Transducer Y", "type": "number" }, "transducer_z": { "title": "Transducer Z", "type": "number" }, "features": { "items": { "$ref": "#/$defs/SignalFeature" }, "title": "Features", "type": "array" } }, "required": [ "signal_type", "transducer_x", "transducer_y", "transducer_z", "features" ], "title": "EchoSignal", "type": "object" }, "SignalFeature": { "description": "Single feature of an echo signal. `f` element.", "properties": { "feature_type": { "title": "Feature Type", "type": "string" }, "tof": { "title": "Tof", "type": "number" }, "vpp": { "title": "Vpp", "type": "number" } }, "required": [ "feature_type", "tof", "vpp" ], "title": "SignalFeature", "type": "object" } }, "required": [ "row", "column", "well", "volume", "current_volume", "status", "fluid", "fluid_units", "meniscus_x", "meniscus_y", "fluid_composition", "dmso_homogeneous", "dmso_inhomogeneous", "fluid_thickness", "current_fluid_thickness", "bottom_thickness", "fluid_thickness_homogeneous", "fluid_thickness_imhomogeneous", "outlier", "corrective_action", "echo_signal" ] }
- Fields:
- field bottom_thickness: float [Required]#
Thickness measurement of plate bottom, in µs (FIXME).
battribute.
- field column: Annotated[int, Ge(ge=0)] [Required]#
Column number. 0-indexed to top-left well of plate, not of survey.
cattribute.- Constraints:
ge = 0
- field current_volume: <lambda>, return_type=PydanticUndefined, when_used=unless-none)] [Required]#
- Constraints:
func = <function <lambda> at 0x7d12f8e2fce0>
json_schema_input_type = PydanticUndefined
return_type = PydanticUndefined
when_used = unless-none
- field echo_signal: EchoSignal [Required]#
- field row: Annotated[int, Ge(ge=0)] [Required]#
Row number. 0-indexed to top-left well of plate, not of survey.
rattribute.- Constraints:
ge = 0
- field status: str [Required]#
Status message. Blank if well survey was successful (FIXME: in every case we have seen). Error description if unsuccessful.
- field volume: <lambda>, return_type=PydanticUndefined, when_used=unless-none)] [Required]#
Calculated well volume, in µL.
Noneif the volume could not be calculated (0 in XML).vlattribute.- Constraints:
func = <function <lambda> at 0x7d12f8e2fce0>
json_schema_input_type = PydanticUndefined
return_type = PydanticUndefined
when_used = unless-none
EchoSignal and SignalFeature#
- pydantic model kithairon.surveys.platesurvey.EchoSignal#
Echo signal information for a well.
eelement.Show JSON schema
{ "title": "EchoSignal", "description": "Echo signal information for a well. `e` element.", "type": "object", "properties": { "signal_type": { "title": "Signal Type", "type": "string" }, "transducer_x": { "title": "Transducer X", "type": "number" }, "transducer_y": { "title": "Transducer Y", "type": "number" }, "transducer_z": { "title": "Transducer Z", "type": "number" }, "features": { "items": { "$ref": "#/$defs/SignalFeature" }, "title": "Features", "type": "array" } }, "$defs": { "SignalFeature": { "description": "Single feature of an echo signal. `f` element.", "properties": { "feature_type": { "title": "Feature Type", "type": "string" }, "tof": { "title": "Tof", "type": "number" }, "vpp": { "title": "Vpp", "type": "number" } }, "required": [ "feature_type", "tof", "vpp" ], "title": "SignalFeature", "type": "object" } }, "required": [ "signal_type", "transducer_x", "transducer_y", "transducer_z", "features" ] }
- Fields:
- field features: list[SignalFeature] [Required]#
- pydantic model kithairon.surveys.platesurvey.SignalFeature#
Single feature of an echo signal.
felement.Show JSON schema
{ "title": "SignalFeature", "description": "Single feature of an echo signal. `f` element.", "type": "object", "properties": { "feature_type": { "title": "Feature Type", "type": "string" }, "tof": { "title": "Tof", "type": "number" }, "vpp": { "title": "Vpp", "type": "number" } }, "required": [ "feature_type", "tof", "vpp" ] }
- Fields: