Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ class MeasurementGroup:
analytical_method_identifier: str | None = None
experimental_data_identifier: str | None = None
experiment_type: str | None = None
maximum_wavelength_signal: float | None = None
custom_info: dict[str, Any] | None = None


Expand Down Expand Up @@ -251,13 +250,9 @@ def _get_technique_document(
],
),
)
custom_info_doc = {
"maximum wavelength signal": quantity_or_none(
TQuantityValueNanometer, measurement_group.maximum_wavelength_signal
)
}
custom_info_doc.update(measurement_group.custom_info or {})
return add_custom_information_document(plate_reader_doc, custom_info_doc)
return add_custom_information_document(
plate_reader_doc, measurement_group.custom_info
)

def _get_measurement_document(
self, measurement: Measurement
Expand Down Expand Up @@ -326,21 +321,23 @@ def _get_ultraviolet_absorbance_measurement_document(
error_aggregate_document=self._get_error_aggregate_document(
measurement.error_document
),
processed_data_aggregate_document=ProcessedDataAggregateDocument(
processed_data_document=[
ProcessedDataDocumentItem(
processed_data_identifier=measurement.processed_data_document.identifier,
data_processing_document={
"concentration factor": quantity_or_none(
TQuantityValueNanogramPerMicroliter,
measurement.processed_data_document.concentration_factor,
)
},
)
]
)
if measurement.processed_data_document
else None,
processed_data_aggregate_document=(
ProcessedDataAggregateDocument(
processed_data_document=[
ProcessedDataDocumentItem(
processed_data_identifier=measurement.processed_data_document.identifier,
data_processing_document={
"concentration factor": quantity_or_none(
TQuantityValueNanogramPerMicroliter,
measurement.processed_data_document.concentration_factor,
)
},
)
]
)
if measurement.processed_data_document
else None
),
)
return add_custom_information_document(
measurement_doc, measurement.measurement_custom_info
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,6 @@ class MeasurementGroup:
measurement_time: str
analyst: str | None = None
experiment_type: str | None = None
maximum_wavelength_signal: float | None = None
custom_info: dict[str, Any] | None = None


Expand Down Expand Up @@ -269,13 +268,9 @@ def _get_technique_document(
],
),
)
custom_info_doc = {
"maximum wavelength signal": quantity_or_none(
TQuantityValueNanometer, measurement_group.maximum_wavelength_signal
)
}
custom_info_doc.update(measurement_group.custom_info or {})
return add_custom_information_document(plate_reader_doc, custom_info_doc)
return add_custom_information_document(
plate_reader_doc, measurement_group.custom_info
)

def _get_measurement_document(
self, measurement: Measurement
Expand Down Expand Up @@ -372,21 +367,23 @@ def _get_ultraviolet_absorbance_measurement_document(
error_aggregate_document=self._get_error_aggregate_document(
measurement.error_document
),
processed_data_aggregate_document=ProcessedDataAggregateDocument(
processed_data_document=[
ProcessedDataDocumentItem(
processed_data_identifier=measurement.processed_data_document.identifier,
data_processing_document={
"concentration factor": quantity_or_none(
TQuantityValueNanogramPerMicroliter,
measurement.processed_data_document.concentration_factor,
)
},
)
]
)
if measurement.processed_data_document
else None,
processed_data_aggregate_document=(
ProcessedDataAggregateDocument(
processed_data_document=[
ProcessedDataDocumentItem(
processed_data_identifier=measurement.processed_data_document.identifier,
data_processing_document={
"concentration factor": quantity_or_none(
TQuantityValueNanogramPerMicroliter,
measurement.processed_data_document.concentration_factor,
)
},
)
]
)
if measurement.processed_data_document
else None
),
)
return add_custom_information_document(
measurement_doc, measurement.measurement_custom_info
Expand Down Expand Up @@ -755,7 +752,9 @@ def _get_spectrum_data_cube_measurement_document(
spectrum_data_cube
)

return measurement_doc
return add_custom_information_document(
measurement_doc, measurement.measurement_custom_info
)

def _get_sample_document(self, measurement: Measurement) -> SampleDocument:
sample_doc = SampleDocument(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

from dateutil import parser

from allotropy.allotrope.models.shared.definitions.custom import TQuantityValueNanometer
from allotropy.allotrope.models.shared.definitions.definitions import (
FieldComponentDatatype,
)
Expand Down Expand Up @@ -39,6 +40,7 @@
Referenceable,
)
from allotropy.parsers.utils.uuids import random_uuid_str
from allotropy.parsers.utils.values import quantity_or_none


def create_metadata(file_path: str) -> Metadata:
Expand Down Expand Up @@ -117,13 +119,22 @@ def _get_spectrum_data_cube(


def _create_spectrum_measurement(
plate_block: PlateBlock, data_elements: list[DataElement]
plate_block: PlateBlock, data_elements: list[DataElement], position: str
) -> Measurement | None:
measurement_type = plate_block.measurement_type
first_data_element = data_elements[0]
spectrum_data_cube = _get_spectrum_data_cube(plate_block, data_elements)
if not spectrum_data_cube:
return None
if isinstance(plate_block.block_data.raw_data, SpectrumRawPlateData):
first_data_element.custom_info.update(
{
"maximum wavelength signal": quantity_or_none(
TQuantityValueNanometer,
plate_block.block_data.raw_data.maximum_wavelength_signal[position],
)
}
)

# Collect error documents and update error_feature to include wavelength with unit
error_documents = []
Expand Down Expand Up @@ -183,7 +194,7 @@ def _create_measurements(plate_block: PlateBlock, position: str) -> list[Measure
MeasurementType.EMISSION_LUMINESCENCE_CUBE_SPECTRUM,
MeasurementType.EXCITATION_LUMINESCENCE_CUBE_SPECTRUM,
):
measurement = _create_spectrum_measurement(plate_block, data_elements)
measurement = _create_spectrum_measurement(plate_block, data_elements, position)
if not measurement:
return []
return [measurement]
Expand Down Expand Up @@ -263,12 +274,6 @@ def _create_measurement_group(
if not (measurements := _create_measurements(plate_block, position)):
return None

maximum_wavelength_signal = None
if isinstance(plate_block.block_data.raw_data, SpectrumRawPlateData):
maximum_wavelength_signal = (
plate_block.block_data.raw_data.maximum_wavelength_signal[position]
)

measurement_time = DEFAULT_EPOCH_TIMESTAMP
if date_last_saved:
delta = datetime.timedelta(seconds=plate_block.header.read_time or 0)
Expand All @@ -278,7 +283,6 @@ def _create_measurement_group(
measurements=measurements,
plate_well_count=plate_block.header.num_wells,
measurement_time=measurement_time,
maximum_wavelength_signal=maximum_wavelength_signal,
)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ class DataElement:
position: str
value: float | None
error_document: list[ErrorDocument]
custom_info: dict[str, str] = field(default_factory=dict)
custom_info: dict[str, Any] = field(default_factory=dict)
elapsed_time: list[float] = field(default_factory=list)
kinetic_measures: list[float | None] = field(default_factory=list)
sample_id: str | None = None
Expand Down
Loading
Loading