From 29a94f9cc8e614374420c18a6c4d031f83574060 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 11 Jan 2024 11:32:47 -0500 Subject: [PATCH 1/9] initial commit --- src/allotropy/parser_factory.py | 5 + .../nanodrop_eight_parser.py | 257 +++ .../nanodrop_eight_reader.py | 25 + .../thermo_fisher_nanodrop_eight/__init__.py | 0 .../Thermo_NanoDrop_Eight_example01.json | 377 ++++ .../Thermo_NanoDrop_Eight_example01.txt | 9 + .../Thermo_NanoDrop_Eight_example02.json | 1964 +++++++++++++++++ .../Thermo_NanoDrop_Eight_example02.txt | 81 + .../Thermo_NanoDrop_Eight_example03.json | 578 +++++ .../Thermo_NanoDrop_Eight_example03.txt | 15 + .../Thermo_NanoDrop_Eight_example04.json | 857 +++++++ .../Thermo_NanoDrop_Eight_example04.txt | 21 + ...hermo_fisher_nanodrop_eight_parser_test.py | 38 + 13 files changed, 4227 insertions(+) create mode 100644 src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py create mode 100644 src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_reader.py create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/__init__.py create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.txt create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.txt create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.txt create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.txt create mode 100644 tests/parsers/thermo_fisher_nanodrop_eight/thermo_fisher_nanodrop_eight_parser_test.py diff --git a/src/allotropy/parser_factory.py b/src/allotropy/parser_factory.py index abc60ab67..2f21532d9 100644 --- a/src/allotropy/parser_factory.py +++ b/src/allotropy/parser_factory.py @@ -26,6 +26,9 @@ from allotropy.parsers.roche_cedex_bioht.roche_cedex_bioht_parser import ( RocheCedexBiohtParser, ) +from allotropy.parsers.thermo_fisher_nanodrop_eight.nanodrop_eight_parser import ( + NanodropEightParser, +) from allotropy.parsers.unchained_labs_lunatic.unchained_labs_lunatic_parser import ( UnchainedLabsLunaticParser, ) @@ -45,6 +48,7 @@ class Vendor(Enum): NOVABIO_FLEX2 = "NOVABIO_FLEX2" PERKIN_ELMER_ENVISION = "PERKIN_ELMER_ENVISION" ROCHE_CEDEX_BIOHT = "ROCHE_CEDEX_BIOHT" + THERMO_FISHER_NANODROP_EIGHT = "THERMO_FISHER_NANODROP_EIGHT" UNCHAINED_LABS_LUNATIC = "UNCHAINED_LABS_LUNATIC" @@ -63,6 +67,7 @@ class Vendor(Enum): Vendor.NOVABIO_FLEX2: NovaBioFlexParser, Vendor.PERKIN_ELMER_ENVISION: PerkinElmerEnvisionParser, Vendor.ROCHE_CEDEX_BIOHT: RocheCedexBiohtParser, + Vendor.THERMO_FISHER_NANODROP_EIGHT: NanodropEightParser, Vendor.UNCHAINED_LABS_LUNATIC: UnchainedLabsLunaticParser, } diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py new file mode 100644 index 000000000..ec99d06f2 --- /dev/null +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -0,0 +1,257 @@ +from typing import Any, Optional, TypeVar +import uuid + +import pandas as pd + +from allotropy.allotrope.models.shared.definitions.custom import ( + TQuantityValueMicrogramPerMicroliter, + TQuantityValueMicrogramPerMilliliter, + TQuantityValueMilliAbsorbanceUnit, + TQuantityValueMilligramPerMilliliter, + TQuantityValueNanogramPerMicroliter, + TQuantityValueNanogramPerMilliliter, + TQuantityValueNanometer, + TQuantityValuePicogramPerMilliliter, +) +from allotropy.allotrope.models.shared.definitions.definitions import ( + TQuantityValue, + ValueEnum, +) +from allotropy.allotrope.models.spectrophotometry_benchling_2023_12_spectrophotometry import ( + CalculatedDataAggregateDocument, + CalculatedDataDocumentItem, + DataSourceAggregateDocument1, + DataSourceDocumentItem, + DataSystemDocument, + DeviceSystemDocument, + MeasurementAggregateDocument, + Model, + SampleDocument, + SpectrophotometryAggregateDocument, + SpectrophotometryDocumentItem, + UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument, + UltravioletAbsorbancePointDetectionDeviceControlDocumentItem, + UltravioletAbsorbancePointDetectionMeasurementDocumentItems, +) +from allotropy.constants import ASM_CONVERTER_NAME, ASM_CONVERTER_VERSION +from allotropy.named_file_contents import NamedFileContents +from allotropy.parsers.thermo_fisher_nanodrop_eight.nanodrop_eight_reader import ( + NanoDropEightReader, +) +from allotropy.parsers.vendor_parser import VendorParser + +T = TypeVar("T") + +CONCENTRATION_UNIT_TO_TQUANTITY = { + "ug/ul": TQuantityValueMicrogramPerMicroliter, + "ug/ml": TQuantityValueMicrogramPerMilliliter, + "mg/ml": TQuantityValueMilligramPerMilliliter, + "ng/ul": TQuantityValueNanogramPerMicroliter, + "ng/ml": TQuantityValueNanogramPerMilliliter, + "pg/ul": TQuantityValuePicogramPerMilliliter, +} + + +def _get_value(data_frame: pd.DataFrame, row: int, column: str) -> Optional[Any]: + if column not in data_frame.columns: + return None + if pd.isna(data_frame.iloc[row][column]): + return None + + return data_frame.iloc[row][column] + + +def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> float | ValueEnum: + try: + return float(data_frame.iloc[row][column]) + except (ValueError, TypeError): + return ValueEnum.NaN + + +def _get_concentration(conc: float | ValueEnum, unit: Optional[str]) -> Optional[T]: + if unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): + cls = CONCENTRATION_UNIT_TO_TQUANTITY[unit] + return cls(value=conc) # type: ignore[call-arg] + + return None + + +class NanodropEightParser(VendorParser): + def to_allotrope(self, named_file_contents: NamedFileContents) -> Model: + contents, filename = named_file_contents + data = NanoDropEightReader.read(contents) + data = self._add_measurement_uuids(data) + return self._get_model(data, filename) + + def _get_model(self, data: pd.DataFrame, filename: str) -> Model: + return Model( + field_asm_manifest="http://purl.allotrope.org/manifests/spectrophotometry/BENCHLING/2023/12/spectrophotometry.manifest", + spectrophotometry_aggregate_document=SpectrophotometryAggregateDocument( + spectrophotometry_document=self._get_spectrophotometry_document(data), + calculated_data_aggregate_document=CalculatedDataAggregateDocument( + calculated_data_document=self._get_calculated_data_document(data), + ), + data_system_document=DataSystemDocument( + file_name=filename, + ASM_converter_name=ASM_CONVERTER_NAME, + ASM_converter_version=ASM_CONVERTER_VERSION, + ), + device_system_document=DeviceSystemDocument( + model_number="Nanodrop Eight", + device_identifier="Nanodrop", + ), + ), + ) + + def _add_measurement_uuids(self, data: pd.DataFrame) -> pd.DataFrame: + data["A260 uuid"] = [str(uuid.uuid4()) for _ in range(len(data.index))] + data["A280 uuid"] = [str(uuid.uuid4()) for _ in range(len(data.index))] + return data + + def _get_spectrophotometry_document( + self, data: pd.DataFrame + ) -> list[SpectrophotometryDocumentItem]: + return [ + self._get_spectrophotometry_document_item(data, i) + for i in range(len(data.index)) + ] + + def _get_calculated_data_document( + self, data: pd.DataFrame + ) -> list[CalculatedDataDocumentItem]: + calculated_data_documents = [] + for i in range(len(data.index)): + if _get_value(data, i, "260/280"): + calculated_data_documents.append(self._get_260_280(data, i)) + + if _get_value(data, i, "260/230"): + calculated_data_documents.append(self._get_260_230(data, i)) + + return calculated_data_documents + + def _get_260_280(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentItem: + + return CalculatedDataDocumentItem( + calculated_data_name="A260/280", + calculated_result=TQuantityValue( + value=_get_float(data, row, "260/280"), unit="unitless" + ), + calculated_data_identifier=str(uuid.uuid4()), + data_source_aggregate_document=DataSourceAggregateDocument1( + [ + DataSourceDocumentItem( + data_source_feature="absorbance", + data_source_identifier=str(_get_value(data, row, "A260 uuid")), + ), + DataSourceDocumentItem( + data_source_feature="absorbance", + data_source_identifier=str(_get_value(data, row, "A280 uuid")), + ), + ] + ), + ) + + def _get_260_230(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentItem: + return CalculatedDataDocumentItem( + calculated_data_name="A260/230", + calculated_result=TQuantityValue( + value=_get_float(data, row, "260/230"), unit="unitless" + ), + calculated_data_identifier=str(uuid.uuid4()), + data_source_aggregate_document=DataSourceAggregateDocument1( + [ + DataSourceDocumentItem( + data_source_feature="absorbance", + data_source_identifier=str(_get_value(data, row, "A260 uuid")), + ) + ] + ), + ) + + def _get_spectrophotometry_document_item( + self, data: pd.DataFrame, row: int + ) -> SpectrophotometryDocumentItem: + return SpectrophotometryDocumentItem( + analyst=_get_value(data, row, "User ID"), + measurement_aggregate_document=MeasurementAggregateDocument( + measurement_time=self._get_date_time( + str(_get_value(data, row, "Date")) + + " " + + str(_get_value(data, row, "Time")) + ), + experiment_type=_get_value(data, row, "NA Type"), + measurement_document=self._get_measurement_document(data=data, row=row), + ), + ) + + def _get_measurement_document( + self, data: pd.DataFrame, row: int + ) -> list[UltravioletAbsorbancePointDetectionMeasurementDocumentItems]: + measurement_docs = [] + if _get_value(data, row, "A260"): + measurement_docs.append( + UltravioletAbsorbancePointDetectionMeasurementDocumentItems( + measurement_identifier=str(_get_value(data, row, "A260 uuid")), + sample_document=SampleDocument( + sample_identifier=str(_get_value(data, row, "Sample ID")), + well_plate_identifier=_get_value(data, row, "Plate ID"), + location_identifier=_get_value(data, row, "Well"), + ), + # capture concentration on the A260 measurement document if the experiment type is + # DNA or RNA, protein and other concentration is captured on A280 measurment + mass_concentration=_get_concentration( + _get_float(data, row, "Conc."), _get_value(data, row, "Units") + ) + if "NA" in str(_get_value(data, row, "NA Type")) + else None, + device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( + device_control_document=[ + UltravioletAbsorbancePointDetectionDeviceControlDocumentItem( + device_type="absorbance detector", + detector_wavelength_setting=TQuantityValueNanometer( + value=260 + ), + ) + ] + ), + absorbance=TQuantityValueMilliAbsorbanceUnit( + _get_float(data, row, "A260") + ), + ) + ) + a280_col = "A280" + if a280_col not in data.columns and "A280 10mm" in data.columns: + a280_col = "A280 10mm" + if _get_value(data, row, a280_col): + measurement_docs.append( + UltravioletAbsorbancePointDetectionMeasurementDocumentItems( + measurement_identifier=str(_get_value(data, row, "A280 uuid")), + sample_document=SampleDocument( + sample_identifier=str(_get_value(data, row, "Sample ID")), + well_plate_identifier=_get_value(data, row, "Plate ID"), + location_identifier=_get_value(data, row, "Well"), + ), + # capture concentration on the A280 measurement document if the experiment type is + # something other than DNA or RNA + mass_concentration=_get_concentration( + _get_float(data, row, "Conc."), _get_value(data, row, "Units") + ) + if "NA" not in str(_get_value(data, row, "NA Type")) + else None, + device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( + device_control_document=[ + UltravioletAbsorbancePointDetectionDeviceControlDocumentItem( + device_type="absorbance detector", + detector_wavelength_setting=TQuantityValueNanometer( + value=280 + ), + ) + ] + ), + absorbance=TQuantityValueMilliAbsorbanceUnit( + _get_float(data, row, a280_col) + ), + ) + ) + + return measurement_docs diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_reader.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_reader.py new file mode 100644 index 000000000..ac8aecd19 --- /dev/null +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_reader.py @@ -0,0 +1,25 @@ +from io import StringIO + +import pandas as pd + +from allotropy.parsers import lines_reader +from allotropy.parsers.lines_reader import CsvReader +from allotropy.types import IOType + + +class NanoDropEightReader: + @classmethod + def read(cls, contents: IOType) -> pd.DataFrame: + all_lines = lines_reader.read_to_lines(contents) + reader = CsvReader(all_lines) + lines = reader.pop_csv_block_as_lines() + raw_data = pd.read_csv( + StringIO("\n".join(lines)), + sep="\t", + dtype={"Plate ID": str, "Sample ID": str}, + # Prevent pandas from rounding decimal values, at the cost of some speed. + float_precision="round_trip", + ) + raw_data = raw_data.rename(columns=lambda x: x.strip()) + + return raw_data diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/__init__.py b/tests/parsers/thermo_fisher_nanodrop_eight/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json new file mode 100644 index 000000000..2b70f34eb --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json @@ -0,0 +1,377 @@ +{ + "$asm.manifest": "http://purl.allotrope.org/manifests/spectrophotometry/BENCHLING/2023/12/spectrophotometry.manifest", + "spectrophotometry aggregate document": { + "spectrophotometry document": [ + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "87f5cb6e-214a-49e2-907d-287fc48b4247", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "A1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.177, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "090b194c-343d-47f2-8233-08de20465e0b", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "B1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.409, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "09c6fd80-6e84-45a8-b2cb-cf7c29c6bdc0", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "C1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.43, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "1b7c049e-fa7b-4c06-91d7-d879ac984f78", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "D1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.144, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "d260463b-f46e-4054-bdea-7535d35e14c5", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "E1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.397, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "54bf6cd2-a36d-43e2-8ebf-2d47f6219be5", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "F1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.239, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2020-05-26T15:36:00+00:00", + "measurement document": [ + { + "measurement identifier": "c7797a15-a4fb-424f-bbb0-e311ccc713dc", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "baz", + "location identifier": "G1", + "well plate identifier": "foobar" + }, + "absorbance": { + "value": 3.286, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + } + ], + "device system document": { + "device identifier": "Nanodrop", + "model number": "Nanodrop Eight" + }, + "data system document": { + "file name": "Thermo_NanoDrop_Eight_example01.txt", + "ASM converter name": "allotropy", + "ASM converter version": "0.1.12" + }, + "calculated data aggregate document": { + "calculated data document": [ + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.59, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "20cc4484-af0f-410c-a29a-e5d37b4c2af2", + "data source feature": "absorbance" + }, + { + "data source identifier": "87f5cb6e-214a-49e2-907d-287fc48b4247", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "a914102b-4fac-4a10-9b42-b6f916573e96" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.58, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "e82a9bdf-2aa3-425a-a4dd-f66990be1b4b", + "data source feature": "absorbance" + }, + { + "data source identifier": "090b194c-343d-47f2-8233-08de20465e0b", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "3f5cfbee-5dba-44f4-9347-93f6052e09d4" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.57, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "08e32509-230b-4a6b-8845-9a1ebb144bc0", + "data source feature": "absorbance" + }, + { + "data source identifier": "09c6fd80-6e84-45a8-b2cb-cf7c29c6bdc0", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "fa1f10bb-dca1-44a9-b2ea-9e37e6d4f4ba" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.57, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "cc53a1b7-3b78-4089-84a4-6b7347df496a", + "data source feature": "absorbance" + }, + { + "data source identifier": "1b7c049e-fa7b-4c06-91d7-d879ac984f78", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "62be62c2-9e62-46e1-bb5c-bf41fa1eb57d" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.58, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "1545ea42-15e5-488d-8886-5fdd4b894c62", + "data source feature": "absorbance" + }, + { + "data source identifier": "d260463b-f46e-4054-bdea-7535d35e14c5", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "89e74329-ac8e-44b4-94cc-c628fa3e0f80" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.58, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "f1af7897-5f40-44ea-8f71-ffb0f8810797", + "data source feature": "absorbance" + }, + { + "data source identifier": "54bf6cd2-a36d-43e2-8ebf-2d47f6219be5", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "c9011ca4-9294-4fba-8795-7dec29a3bd7e" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.59, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "08f53a13-2e0a-4244-b6aa-70a241550b75", + "data source feature": "absorbance" + }, + { + "data source identifier": "c7797a15-a4fb-424f-bbb0-e311ccc713dc", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "87f3609e-9b55-4359-aec7-eee8df404003" + } + ] + } + } +} \ No newline at end of file diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.txt b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.txt new file mode 100644 index 000000000..7c65b2832 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.txt @@ -0,0 +1,9 @@ +Plate ID Well Sample ID User ID Date Time conc. units 260/280 A280 10mm E 1% Ext. Coeff x10e3 Mol. Wt. kDa Cursor Pos. Cursor abs. +foobar A1 baz Default 5/26/2020 3:36 PM 1.961 mg/ml 0.59 3.177 16.20 1.00 1.00 280 3.177 +foobar B1 baz Default 5/26/2020 3:36 PM 2.104 mg/ml 0.58 3.409 16.20 1.00 1.00 280 3.409 +foobar C1 baz Default 5/26/2020 3:36 PM 2.117 mg/ml 0.57 3.430 16.20 1.00 1.00 280 3.430 +foobar D1 baz Default 5/26/2020 3:36 PM 1.941 mg/ml 0.57 3.144 16.20 1.00 1.00 280 3.144 +foobar E1 baz Default 5/26/2020 3:36 PM 2.097 mg/ml 0.58 3.397 16.20 1.00 1.00 280 3.397 +foobar F1 baz Default 5/26/2020 3:36 PM 1.999 mg/ml 0.58 3.239 16.20 1.00 1.00 280 3.239 +foobar G1 baz Default 5/26/2020 3:36 PM 2.028 mg/ml 0.59 3.286 16.20 1.00 1.00 280 3.286 + diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json new file mode 100644 index 000000000..1bf67561d --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json @@ -0,0 +1,1964 @@ +{ + "$asm.manifest": "http://purl.allotrope.org/manifests/spectrophotometry/BENCHLING/2023/12/spectrophotometry.manifest", + "spectrophotometry aggregate document": { + "spectrophotometry document": [ + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "c952e8d0-c7ed-450e-9b47-45bf489401ac", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "8", + "location identifier": "A1" + }, + "absorbance": { + "value": 4.142, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "95c0e79b-135e-4a32-9cac-54c3ada0d6d9", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "8", + "location identifier": "B1" + }, + "absorbance": { + "value": 4.153, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "ce0958dd-a224-4942-bdc5-d07a646ca799", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "8", + "location identifier": "C1" + }, + "absorbance": { + "value": 4.138, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "50cf998e-374c-4562-a911-6efb81bf37c0", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "11", + "location identifier": "D1" + }, + "absorbance": { + "value": 4.158, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "1f66e50d-918a-476b-a33c-955cb19b388a", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "11", + "location identifier": "E1" + }, + "absorbance": { + "value": 4.18, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:25:00+00:00", + "measurement document": [ + { + "measurement identifier": "f5217f6d-639a-4798-87ff-2a7ea1566ad4", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "11", + "location identifier": "F1" + }, + "absorbance": { + "value": 4.185, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:28:00+00:00", + "measurement document": [ + { + "measurement identifier": "1998cadf-9a30-45d7-b564-fd62957998fd", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "13", + "location identifier": "A2" + }, + "absorbance": { + "value": 4.56, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:28:00+00:00", + "measurement document": [ + { + "measurement identifier": "77b7f30a-bbc2-424d-8025-29c05f246aa8", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "13", + "location identifier": "B2" + }, + "absorbance": { + "value": 4.544, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:28:00+00:00", + "measurement document": [ + { + "measurement identifier": "f35a8519-ad47-44bb-b032-921ef1df94f4", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "13", + "location identifier": "C2" + }, + "absorbance": { + "value": 4.548, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "79638051-f1dc-4f85-8b0d-17cdedd43fb4", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "A3" + }, + "absorbance": { + "value": 41.724, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "c97b85d6-83b1-43e2-ade0-532d79e43a94", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "B3" + }, + "absorbance": { + "value": 50.116, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "574c50b3-4b8a-48f2-9999-2811c667454f", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "C3" + }, + "absorbance": { + "value": 44.989, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "1c90e444-9a44-46f6-86f0-21f6df9cd986", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "D3" + }, + "absorbance": { + "value": 62.522, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "23181fa2-6b90-45fe-9417-38c86d0cb339", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "E3" + }, + "absorbance": { + "value": -5.338, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "512ac872-8292-4707-9059-59c1bf067d22", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "F3" + }, + "absorbance": { + "value": -8.199, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "b5fc179d-4299-412e-b89f-ca85c2163078", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "A3" + }, + "absorbance": { + "value": 4.919, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "601f06a1-914c-4e15-afba-04f1ee913c52", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "B3" + }, + "absorbance": { + "value": 4.871, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "4209847d-a81e-409c-9251-fa19a53520be", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "6", + "location identifier": "C3" + }, + "absorbance": { + "value": 4.829, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "84b3fec5-4f71-476e-a92f-902f49c7f5fa", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "D3" + }, + "absorbance": { + "value": 5.333, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "177cf3e6-b193-4514-9258-45fa5a2e2836", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "E3" + }, + "absorbance": { + "value": 5.3, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:39:00+00:00", + "measurement document": [ + { + "measurement identifier": "751e1faa-f7df-4686-9374-454310004d53", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "7", + "location identifier": "F3" + }, + "absorbance": { + "value": 5.326, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "f8ff7cb5-6623-47b8-8279-9f59737afdca", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "9", + "location identifier": "A4" + }, + "absorbance": { + "value": 6.969, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "ca07e2dc-2af7-4f9c-91cc-3ed070c2e195", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "9", + "location identifier": "B4" + }, + "absorbance": { + "value": 6.935, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "8a2081e6-182f-4f3e-a3bd-33dec7921b88", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "9", + "location identifier": "C4" + }, + "absorbance": { + "value": 6.972, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "3edb6491-ac3d-471d-9115-ec67704d24e4", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "10", + "location identifier": "D4" + }, + "absorbance": { + "value": 4.813, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "27adff21-f29d-4984-a419-13140f896666", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "10", + "location identifier": "E4" + }, + "absorbance": { + "value": 4.795, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:42:00+00:00", + "measurement document": [ + { + "measurement identifier": "35ce13f2-7369-491a-8c1b-62294e903055", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "10", + "location identifier": "F4" + }, + "absorbance": { + "value": 4.812, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "174adf8a-46eb-4ad7-ae46-12caf38dc4f0", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "12", + "location identifier": "A5" + }, + "absorbance": { + "value": 4.199, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "a0fe130f-504f-4c8e-92e1-9886b200a3b5", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "12", + "location identifier": "B5" + }, + "absorbance": { + "value": 4.175, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "d8b77035-e934-486d-b568-6fac86ae7831", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "12", + "location identifier": "C5" + }, + "absorbance": { + "value": 4.163, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "a80503cb-2267-4a81-84a9-a631bca24261", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "14", + "location identifier": "D5" + }, + "absorbance": { + "value": 4.514, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "dbe7d413-3638-4e72-bc9d-845c60cf46d9", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "14", + "location identifier": "E5" + }, + "absorbance": { + "value": 4.528, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:44:00+00:00", + "measurement document": [ + { + "measurement identifier": "cede0684-c8fb-4f49-bf35-7c4322e34e79", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "14", + "location identifier": "F5" + }, + "absorbance": { + "value": 4.558, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "efc2e3e2-5911-47b5-8fcb-687eee83df58", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "A6" + }, + "absorbance": { + "value": 4.572, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "7423f7fe-0baa-47e1-b9f5-bdcc13ab81ac", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "B6" + }, + "absorbance": { + "value": 4.54, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "482501a3-ddce-43eb-a5fb-3832cb74c1b3", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "C6" + }, + "absorbance": { + "value": 4.546, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "407984e9-289d-474b-982c-4094256b7046", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "D6" + }, + "absorbance": { + "value": 4.532, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "136cc393-20e1-4118-8a9c-819d2a43e7de", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "E6" + }, + "absorbance": { + "value": 4.542, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-09-01T14:45:00+00:00", + "measurement document": [ + { + "measurement identifier": "9ec3d6fb-f57b-4764-a47c-558eba3ab4ee", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "location identifier": "F6" + }, + "absorbance": { + "value": 4.537, + "unit": "mAU" + } + } + ] + }, + "analyst": "Default" + } + ], + "device system document": { + "device identifier": "Nanodrop", + "model number": "Nanodrop Eight" + }, + "data system document": { + "file name": "Thermo_NanoDrop_Eight_example02.txt", + "ASM converter name": "allotropy", + "ASM converter version": "0.1.12" + }, + "calculated data aggregate document": { + "calculated data document": [ + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "2f69aa23-0938-4967-8049-ec2a4bb4a97e", + "data source feature": "absorbance" + }, + { + "data source identifier": "c952e8d0-c7ed-450e-9b47-45bf489401ac", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "438bd4d5-e3ac-4617-8f87-c146e088fdc7" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "8062d642-de8b-4ea1-b8bb-f018d645d95c", + "data source feature": "absorbance" + }, + { + "data source identifier": "95c0e79b-135e-4a32-9cac-54c3ada0d6d9", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "6bbdfc1c-37ae-4f39-9ba6-6484fc30b1ae" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "b8a4b965-aa1f-42b4-98d1-afa4e4ea6e09", + "data source feature": "absorbance" + }, + { + "data source identifier": "ce0958dd-a224-4942-bdc5-d07a646ca799", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "f5a75cba-7d26-4b79-a4a0-d1e72ee0d874" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "41693c57-65c0-4a21-8cf2-ad07c3dc2806", + "data source feature": "absorbance" + }, + { + "data source identifier": "50cf998e-374c-4562-a911-6efb81bf37c0", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "7ec1e933-6c67-469b-aa32-1c53c013a462" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "95b1b4eb-1416-4ff2-9c5c-0a046b0ca298", + "data source feature": "absorbance" + }, + { + "data source identifier": "1f66e50d-918a-476b-a33c-955cb19b388a", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "f1ebfa17-769a-4e4f-beb2-68ac774c3952" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "9804717a-b806-456f-871b-4206866d3611", + "data source feature": "absorbance" + }, + { + "data source identifier": "f5217f6d-639a-4798-87ff-2a7ea1566ad4", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "1acee102-6f4a-43dc-aa4f-2a81db5d7ed8" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "090ba1e3-f777-482c-9b38-b50bc8e88b52", + "data source feature": "absorbance" + }, + { + "data source identifier": "1998cadf-9a30-45d7-b564-fd62957998fd", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "e377df0a-0af8-4300-8447-f8fedee49d63" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "f22f4787-7642-4ea8-9357-e5a026e93365", + "data source feature": "absorbance" + }, + { + "data source identifier": "77b7f30a-bbc2-424d-8025-29c05f246aa8", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "4d0786a8-4f6c-4d04-8c74-2b1b04e516a5" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "d8d93ab6-a3bc-40f9-b51f-8b3fa54efb40", + "data source feature": "absorbance" + }, + { + "data source identifier": "f35a8519-ad47-44bb-b032-921ef1df94f4", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "8be33170-dd03-4f58-a0cd-e4dadd1ca3ca" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.77, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "cd38a0e9-ae62-405b-9dc6-9b81bf573f17", + "data source feature": "absorbance" + }, + { + "data source identifier": "79638051-f1dc-4f85-8b0d-17cdedd43fb4", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "d537b9f3-99d2-472a-8d7d-d3cb4748456c" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": -0.06, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "40d57f8c-2d8f-4bc4-b610-99b6ba27d7a9", + "data source feature": "absorbance" + }, + { + "data source identifier": "c97b85d6-83b1-43e2-ade0-532d79e43a94", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "55ab9467-f9b2-4b19-b291-37f185732fee" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": -0.18, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "4eb458ce-0ebf-4113-b0c5-f739f46e5840", + "data source feature": "absorbance" + }, + { + "data source identifier": "574c50b3-4b8a-48f2-9999-2811c667454f", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "3be5827e-68c9-48fe-af99-4b931e7ff8e6" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.14, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "1773c8f7-57ab-4ef4-b257-abac9e8fa6aa", + "data source feature": "absorbance" + }, + { + "data source identifier": "1c90e444-9a44-46f6-86f0-21f6df9cd986", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "78d9fc1e-7123-44f4-a066-f46ddbc3e1e0" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 3.01, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "b73f8227-a643-485c-98aa-097898e1a1d6", + "data source feature": "absorbance" + }, + { + "data source identifier": "23181fa2-6b90-45fe-9417-38c86d0cb339", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "bae43efe-8b47-450e-9819-2bf5c1090a73" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.7, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "dc781dfc-8165-4251-b78b-3373d2d810e0", + "data source feature": "absorbance" + }, + { + "data source identifier": "512ac872-8292-4707-9059-59c1bf067d22", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "37b8a551-0c53-4236-806f-9ea6302bd215" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "5be289f3-2ae9-475a-9d3b-c45ca703068e", + "data source feature": "absorbance" + }, + { + "data source identifier": "b5fc179d-4299-412e-b89f-ca85c2163078", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "fc1ca6ed-4b57-46a5-8dc9-92902516e5c2" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "8cfbe629-138a-499b-851d-a65a547fc36a", + "data source feature": "absorbance" + }, + { + "data source identifier": "601f06a1-914c-4e15-afba-04f1ee913c52", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "bd29fa74-c7fa-48d3-adda-553831c2f1b8" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "077306d7-f380-4786-81c6-89c787a6b2a7", + "data source feature": "absorbance" + }, + { + "data source identifier": "4209847d-a81e-409c-9251-fa19a53520be", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9b79a145-a1e3-483b-9fb3-0d90b89db7e2" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "fc1e2bc7-62a6-4168-9471-f9bf601c65e1", + "data source feature": "absorbance" + }, + { + "data source identifier": "84b3fec5-4f71-476e-a92f-902f49c7f5fa", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9f4d5ed7-052f-4081-96ca-0db9eb562219" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "66579e82-9b52-4502-b01d-2f447a08a8f0", + "data source feature": "absorbance" + }, + { + "data source identifier": "177cf3e6-b193-4514-9258-45fa5a2e2836", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "7fe9b313-50b9-45bf-82f6-45b28643a50b" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "c05287bd-43f3-4b8a-867e-fa31e506b472", + "data source feature": "absorbance" + }, + { + "data source identifier": "751e1faa-f7df-4686-9374-454310004d53", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "d9cd3fae-49d0-416a-95d3-bdc9895ebafe" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "bbfa2ecf-de31-4a36-898f-60d71e7eed57", + "data source feature": "absorbance" + }, + { + "data source identifier": "f8ff7cb5-6623-47b8-8279-9f59737afdca", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "7232a4f6-cc81-45bc-9380-66ff0b0f8b62" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "dd51cdb5-da93-417c-8ce4-0e21d3c4c41c", + "data source feature": "absorbance" + }, + { + "data source identifier": "ca07e2dc-2af7-4f9c-91cc-3ed070c2e195", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "5add1e7e-5a88-4886-89df-2dc37598273c" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "537a87cd-b562-4fe8-9f66-be5bd73fd55e", + "data source feature": "absorbance" + }, + { + "data source identifier": "8a2081e6-182f-4f3e-a3bd-33dec7921b88", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "615c342b-96aa-44c8-b6c2-1711b51b3605" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.55, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "000cb316-7308-4545-a1bf-ae6c06a5b88d", + "data source feature": "absorbance" + }, + { + "data source identifier": "3edb6491-ac3d-471d-9115-ec67704d24e4", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "6f1e1a29-87b6-46c6-aba5-3b316538a3cd" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.55, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "edeb31f8-3982-42a9-b6c7-4758fa93c4d4", + "data source feature": "absorbance" + }, + { + "data source identifier": "27adff21-f29d-4984-a419-13140f896666", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "f6bc9e47-95c0-4b41-ae49-ee71ace6c526" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.55, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "3b990b04-b22e-41f1-8524-dd45eb1fa864", + "data source feature": "absorbance" + }, + { + "data source identifier": "35ce13f2-7369-491a-8c1b-62294e903055", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "f1e21c74-6c2b-4a5e-a979-53db67028684" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.55, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "2fab1dfd-75da-4959-9012-11298f0843ef", + "data source feature": "absorbance" + }, + { + "data source identifier": "174adf8a-46eb-4ad7-ae46-12caf38dc4f0", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "b1349608-b69c-48ac-9106-16a36ce231e6" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "7e16d2f7-3cbb-4b3a-b4db-c378f5009887", + "data source feature": "absorbance" + }, + { + "data source identifier": "a0fe130f-504f-4c8e-92e1-9886b200a3b5", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "b6827bb6-5a3b-49dd-bd1a-3ed73e25e3ad" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.54, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "30282777-623d-4290-83bd-389a4bad432d", + "data source feature": "absorbance" + }, + { + "data source identifier": "d8b77035-e934-486d-b568-6fac86ae7831", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "e061744b-11ec-4ebb-bfbb-9e87f6f84cdb" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "8a3d1b9e-ff9c-4fc1-b5b2-228b66cfc8cd", + "data source feature": "absorbance" + }, + { + "data source identifier": "a80503cb-2267-4a81-84a9-a631bca24261", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "df786339-597f-4e99-812e-660686c118d3" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "218e6f19-2a1c-4541-bae5-2d7c957b9fcd", + "data source feature": "absorbance" + }, + { + "data source identifier": "dbe7d413-3638-4e72-bc9d-845c60cf46d9", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "621d32bb-0ea2-4371-b10d-6749df60ee43" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "da446f2a-fc5b-4ac2-9e85-71bdb272e5da", + "data source feature": "absorbance" + }, + { + "data source identifier": "cede0684-c8fb-4f49-bf35-7c4322e34e79", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "f65e9a7c-5014-4024-9151-ba80dbefd5f1" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "42f4c270-c9c8-41a5-9121-cbbfe9914434", + "data source feature": "absorbance" + }, + { + "data source identifier": "efc2e3e2-5911-47b5-8fcb-687eee83df58", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "3486382e-c9d4-4a31-9f2b-fcd19e4c2770" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "336ff3f2-aabd-405f-89b5-e3963adf435b", + "data source feature": "absorbance" + }, + { + "data source identifier": "7423f7fe-0baa-47e1-b9f5-bdcc13ab81ac", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "1c2c6c02-9a08-4eee-b284-f6dfedeb682a" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "4223983e-10bf-4074-a070-b20b7fd86cec", + "data source feature": "absorbance" + }, + { + "data source identifier": "482501a3-ddce-43eb-a5fb-3832cb74c1b3", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "7f34c641-5564-4ad1-a146-6ecb07d8d922" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "105162e6-8fdd-443c-88b0-eac2fb9f2118", + "data source feature": "absorbance" + }, + { + "data source identifier": "407984e9-289d-474b-982c-4094256b7046", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "bca44a79-5fea-4889-953f-09ff59145f46" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "ddc94c14-d584-4630-b553-cd6bb6293d52", + "data source feature": "absorbance" + }, + { + "data source identifier": "136cc393-20e1-4118-8a9c-819d2a43e7de", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "3b49b811-d3df-4859-a509-ac2931b94600" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 0.53, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "e5221904-5d65-462c-be64-b48dee8280bf", + "data source feature": "absorbance" + }, + { + "data source identifier": "9ec3d6fb-f57b-4764-a47c-558eba3ab4ee", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "e3802549-7a2c-45ef-a940-81d41061d49a" + } + ] + } + } +} \ No newline at end of file diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.txt b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.txt new file mode 100644 index 000000000..8c79e8958 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.txt @@ -0,0 +1,81 @@ +Plate ID Well Sample ID User ID Date Time conc. units 260/280 A280 10mm E 1% Ext. Coeff x10e3 Mol. Wt. kDa Cursor Pos. Cursor abs. + A1 8 Default 9/1/2022 2:25 PM 4.142 mg/ml 0.54 4.142 10.00 1.00 1.00 280 4.142 + B1 8 Default 9/1/2022 2:25 PM 4.153 mg/ml 0.54 4.153 10.00 1.00 1.00 280 4.153 + C1 8 Default 9/1/2022 2:25 PM 4.138 mg/ml 0.54 4.138 10.00 1.00 1.00 280 4.138 + D1 11 Default 9/1/2022 2:25 PM 4.158 mg/ml 0.54 4.158 10.00 1.00 1.00 280 4.158 + E1 11 Default 9/1/2022 2:25 PM 4.180 mg/ml 0.53 4.180 10.00 1.00 1.00 280 4.180 + F1 11 Default 9/1/2022 2:25 PM 4.185 mg/ml 0.54 4.185 10.00 1.00 1.00 280 4.185 + A2 13 Default 9/1/2022 2:28 PM 4.560 mg/ml 0.54 4.560 10.00 1.00 1.00 280 4.560 + B2 13 Default 9/1/2022 2:28 PM 4.544 mg/ml 0.54 4.544 10.00 1.00 1.00 280 4.544 + C2 13 Default 9/1/2022 2:28 PM 4.548 mg/ml 0.54 4.548 10.00 1.00 1.00 280 4.548 + A3 6 Default 9/1/2022 2:39 PM 41.72 mg/ml 0.77 41.724 10.00 1.00 1.00 280 41.724 + B3 6 Default 9/1/2022 2:39 PM 50.12 mg/ml -0.06 50.116 10.00 1.00 1.00 280 50.116 + C3 6 Default 9/1/2022 2:39 PM 44.99 mg/ml -0.18 44.989 10.00 1.00 1.00 280 44.989 + D3 7 Default 9/1/2022 2:39 PM 62.52 mg/ml 0.14 62.522 10.00 1.00 1.00 280 62.522 + E3 7 Default 9/1/2022 2:39 PM -5.338 mg/ml 3.01 -5.338 10.00 1.00 1.00 280 -5.338 + F3 7 Default 9/1/2022 2:39 PM -8.199 mg/ml 0.70 -8.199 10.00 1.00 1.00 280 -8.199 + A3 6 Default 9/1/2022 2:39 PM 4.919 mg/ml 0.54 4.919 10.00 1.00 1.00 280 4.919 + B3 6 Default 9/1/2022 2:39 PM 4.871 mg/ml 0.54 4.871 10.00 1.00 1.00 280 4.871 + C3 6 Default 9/1/2022 2:39 PM 4.829 mg/ml 0.54 4.829 10.00 1.00 1.00 280 4.829 + D3 7 Default 9/1/2022 2:39 PM 5.333 mg/ml 0.53 5.333 10.00 1.00 1.00 280 5.333 + E3 7 Default 9/1/2022 2:39 PM 5.300 mg/ml 0.53 5.300 10.00 1.00 1.00 280 5.300 + F3 7 Default 9/1/2022 2:39 PM 5.326 mg/ml 0.53 5.326 10.00 1.00 1.00 280 5.326 + A4 9 Default 9/1/2022 2:42 PM 6.969 mg/ml 0.53 6.969 10.00 1.00 1.00 280 6.969 + B4 9 Default 9/1/2022 2:42 PM 6.935 mg/ml 0.53 6.935 10.00 1.00 1.00 280 6.935 + C4 9 Default 9/1/2022 2:42 PM 6.972 mg/ml 0.54 6.972 10.00 1.00 1.00 280 6.972 + D4 10 Default 9/1/2022 2:42 PM 4.813 mg/ml 0.55 4.813 10.00 1.00 1.00 280 4.813 + E4 10 Default 9/1/2022 2:42 PM 4.795 mg/ml 0.55 4.795 10.00 1.00 1.00 280 4.795 + F4 10 Default 9/1/2022 2:42 PM 4.812 mg/ml 0.55 4.812 10.00 1.00 1.00 280 4.812 + A5 12 Default 9/1/2022 2:44 PM 4.199 mg/ml 0.55 4.199 10.00 1.00 1.00 280 4.199 + B5 12 Default 9/1/2022 2:44 PM 4.175 mg/ml 0.54 4.175 10.00 1.00 1.00 280 4.175 + C5 12 Default 9/1/2022 2:44 PM 4.163 mg/ml 0.54 4.163 10.00 1.00 1.00 280 4.163 + D5 14 Default 9/1/2022 2:44 PM 4.514 mg/ml 0.53 4.514 10.00 1.00 1.00 280 4.514 + E5 14 Default 9/1/2022 2:44 PM 4.528 mg/ml 0.53 4.528 10.00 1.00 1.00 280 4.528 + F5 14 Default 9/1/2022 2:44 PM 4.558 mg/ml 0.53 4.558 10.00 1.00 1.00 280 4.558 + A6 Default 9/1/2022 2:45 PM 4.572 mg/ml 0.53 4.572 10.00 1.00 1.00 280 4.572 + B6 Default 9/1/2022 2:45 PM 4.540 mg/ml 0.53 4.540 10.00 1.00 1.00 280 4.540 + C6 Default 9/1/2022 2:45 PM 4.546 mg/ml 0.53 4.546 10.00 1.00 1.00 280 4.546 + D6 Default 9/1/2022 2:45 PM 4.532 mg/ml 0.53 4.532 10.00 1.00 1.00 280 4.532 + E6 Default 9/1/2022 2:45 PM 4.542 mg/ml 0.53 4.542 10.00 1.00 1.00 280 4.542 + F6 Default 9/1/2022 2:45 PM 4.537 mg/ml 0.53 4.537 10.00 1.00 1.00 280 4.537 + +Sample ID Curve Type Ref conc Ref Abs Std 1 conc Std 1 Abs. Std 2 conc Std 2 Abs Std 3 conc Std 3 Abs Std 4 conc Std 4 Abs Std 5 conc Std 5 Abs Std 6 conc Std 6 Abs Std 7 conc Std 7 Abs + 8 Interp + 8 Interp + 8 Interp + 11 Interp + 11 Interp + 11 Interp + 13 Interp + 13 Interp + 13 Interp + 6 Interp + 6 Interp + 6 Interp + 7 Interp + 7 Interp + 7 Interp + 6 Interp + 6 Interp + 6 Interp + 7 Interp + 7 Interp + 7 Interp + 9 Interp + 9 Interp + 9 Interp + 10 Interp + 10 Interp + 10 Interp + 12 Interp + 12 Interp + 12 Interp + 14 Interp + 14 Interp + 14 Interp + Interp + Interp + Interp + Interp + Interp + Interp diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json new file mode 100644 index 000000000..b877c7d8e --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json @@ -0,0 +1,578 @@ +{ + "$asm.manifest": "http://purl.allotrope.org/manifests/spectrophotometry/BENCHLING/2023/12/spectrophotometry.manifest", + "spectrophotometry aggregate document": { + "spectrophotometry document": [ + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "alpha", + "location identifier": "A1" + }, + "absorbance": { + "value": 0.185, + "unit": "mAU" + }, + "mass concentration": { + "value": 9.267, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "eb417f34-a888-41c5-bc9f-6c36611ea740", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "alpha", + "location identifier": "A1" + }, + "absorbance": { + "value": 0.082, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "bravo", + "location identifier": "B1" + }, + "absorbance": { + "value": 0.155, + "unit": "mAU" + }, + "mass concentration": { + "value": 7.726, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "ad6ddb19-20a7-40b8-bad6-dcf81b21b73c", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "bravo", + "location identifier": "B1" + }, + "absorbance": { + "value": 0.075, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "charlie", + "location identifier": "C1" + }, + "absorbance": { + "value": 0.1, + "unit": "mAU" + }, + "mass concentration": { + "value": 5.024, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "2e92e0b9-9af9-4345-b8aa-12ac7bdd4fc3", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "charlie", + "location identifier": "C1" + }, + "absorbance": { + "value": 0.051, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "delta", + "location identifier": "D1" + }, + "absorbance": { + "value": 0.207, + "unit": "mAU" + }, + "mass concentration": { + "value": 10.33, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "266550a7-203d-49df-8ebd-2e7ed96738de", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "delta", + "location identifier": "D1" + }, + "absorbance": { + "value": 0.11, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "echo", + "location identifier": "E1" + }, + "absorbance": { + "value": 0.173, + "unit": "mAU" + }, + "mass concentration": { + "value": 8.643, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "cb6bf558-c707-4f9d-bc68-7c3715c9cc43", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "echo", + "location identifier": "E1" + }, + "absorbance": { + "value": 0.096, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-14T15:48:00+00:00", + "measurement document": [ + { + "measurement identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "foxtrot", + "location identifier": "F1" + }, + "absorbance": { + "value": 0.138, + "unit": "mAU" + }, + "mass concentration": { + "value": 6.882, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "e97f0397-196c-4fcd-b659-b58d9f2012c3", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "foxtrot", + "location identifier": "F1" + }, + "absorbance": { + "value": 0.085, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + } + ], + "device system document": { + "device identifier": "Nanodrop", + "model number": "Nanodrop Eight" + }, + "data system document": { + "file name": "Thermo_NanoDrop_Eight_example03.txt", + "ASM converter name": "allotropy", + "ASM converter version": "0.1.12" + }, + "calculated data aggregate document": { + "calculated data document": [ + { + "calculated data name": "A260/280", + "calculated result": { + "value": 2.26, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "data source feature": "absorbance" + }, + { + "data source identifier": "eb417f34-a888-41c5-bc9f-6c36611ea740", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "74a0f8c6-04f0-43d3-a5e8-c8c7a4406ae9" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 1.39, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "6f7cca26-e12b-42fa-924e-8b7a159a7526" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 2.05, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "data source feature": "absorbance" + }, + { + "data source identifier": "ad6ddb19-20a7-40b8-bad6-dcf81b21b73c", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "b8417dda-2a81-4664-afb6-3addcc2ed444" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.44, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "3b373134-a58c-45b8-9c5c-7916bdbc9f70" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.99, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "data source feature": "absorbance" + }, + { + "data source identifier": "2e92e0b9-9af9-4345-b8aa-12ac7bdd4fc3", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "ebe1d0df-4107-4b77-aa12-7eeb4f899a2e" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 26.94, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "fb4e4274-165d-419d-a6b6-184bd2aa0f9b" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.88, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "data source feature": "absorbance" + }, + { + "data source identifier": "266550a7-203d-49df-8ebd-2e7ed96738de", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "c12945e5-b714-4904-a29d-69c98ff5e7e5" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 1.12, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9517e028-9529-4d72-a0ec-b7b969734417" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.79, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "data source feature": "absorbance" + }, + { + "data source identifier": "cb6bf558-c707-4f9d-bc68-7c3715c9cc43", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9bff52a8-622b-40b2-b84c-2a2efb615333" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 1.22, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "0ce26ed7-404d-4e3d-8406-bd6afab1eb2d" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.62, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "data source feature": "absorbance" + }, + { + "data source identifier": "e97f0397-196c-4fcd-b659-b58d9f2012c3", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "a4b233af-b3c7-493d-94ee-4187ff8d96de" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 1.66, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "eec1813e-8ee1-49fd-b582-0374d6a02897" + } + ] + } + } +} \ No newline at end of file diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.txt b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.txt new file mode 100644 index 000000000..c3788ceb3 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.txt @@ -0,0 +1,15 @@ +Plate ID Well Sample ID User ID Date Time Conc. Units A260 A280 260/280 260/230 Conc. Factor (ng/ul) Cursor Pos. Cursor abs. 340 raw NA Type + A1 alpha Default 4/14/2022 3:48 PM 9.267 ng/ul 0.185 0.082 2.26 1.39 50.00 260 0.185 0.014 DNA-50 + B1 bravo Default 4/14/2022 3:48 PM 7.726 ng/ul 0.155 0.075 2.05 2.44 50.00 260 0.155 0.000 DNA-50 + C1 charlie Default 4/14/2022 3:48 PM 5.024 ng/ul 0.100 0.051 1.99 26.94 50.00 260 0.100 -0.002 DNA-50 + D1 delta Default 4/14/2022 3:48 PM 10.33 ng/ul 0.207 0.110 1.88 1.12 50.00 260 0.207 0.047 DNA-50 + E1 echo Default 4/14/2022 3:48 PM 8.643 ng/ul 0.173 0.096 1.79 1.22 50.00 260 0.173 0.034 DNA-50 + F1 foxtrot Default 4/14/2022 3:48 PM 6.882 ng/ul 0.138 0.085 1.62 1.66 50.00 260 0.138 0.020 DNA-50 + +Sample ID Curve Type Ref conc Ref Abs Std 1 conc Std 1 Abs. Std 2 conc Std 2 Abs Std 3 conc Std 3 Abs Std 4 conc Std 4 Abs Std 5 conc Std 5 Abs Std 6 conc Std 6 Abs Std 7 conc Std 7 Abs + alpha Interp + bravo Interp + charlie Interp + delta Interp + echo Interp + foxtrot Interp diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json new file mode 100644 index 000000000..3760edbb8 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json @@ -0,0 +1,857 @@ +{ + "$asm.manifest": "http://purl.allotrope.org/manifests/spectrophotometry/BENCHLING/2023/12/spectrophotometry.manifest", + "spectrophotometry aggregate document": { + "spectrophotometry document": [ + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "alpha", + "location identifier": "A1" + }, + "absorbance": { + "value": 10.854, + "unit": "mAU" + }, + "mass concentration": { + "value": 542.7, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "aae2c825-16c8-4399-b5b8-ae6fb21c4e86", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "alpha", + "location identifier": "A1" + }, + "absorbance": { + "value": 5.978, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "bravo", + "location identifier": "B1" + }, + "absorbance": { + "value": 11.625, + "unit": "mAU" + }, + "mass concentration": { + "value": 581.2, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "90f80a74-7e53-4a08-a233-b5d67e1da7aa", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "bravo", + "location identifier": "B1" + }, + "absorbance": { + "value": 6.413, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "charlie", + "location identifier": "C1" + }, + "absorbance": { + "value": 6.233, + "unit": "mAU" + }, + "mass concentration": { + "value": 311.6, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "978e5129-f08b-4240-839a-d44c7e14e344", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "charlie", + "location identifier": "C1" + }, + "absorbance": { + "value": 3.376, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "delta", + "location identifier": "D1" + }, + "absorbance": { + "value": 9.693, + "unit": "mAU" + }, + "mass concentration": { + "value": 484.6, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "2590d499-36cf-46e6-bdf5-c8b6e92be41c", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "delta", + "location identifier": "D1" + }, + "absorbance": { + "value": 5.315, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "echo", + "location identifier": "E1" + }, + "absorbance": { + "value": 9.28, + "unit": "mAU" + }, + "mass concentration": { + "value": 464.0, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "340e7e39-667a-40a1-be42-bcef4a8122cc", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "echo", + "location identifier": "E1" + }, + "absorbance": { + "value": 5.049, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "foxtrot", + "location identifier": "F1" + }, + "absorbance": { + "value": 6.396, + "unit": "mAU" + }, + "mass concentration": { + "value": 319.8, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "5cbd1281-2f43-47de-8016-7cecb7605a6e", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "foxtrot", + "location identifier": "F1" + }, + "absorbance": { + "value": 3.464, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "golf", + "location identifier": "G1" + }, + "absorbance": { + "value": 8.936, + "unit": "mAU" + }, + "mass concentration": { + "value": 446.8, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "4f4b168d-8701-406f-abb0-914341514b79", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "golf", + "location identifier": "G1" + }, + "absorbance": { + "value": 4.871, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:20:00+00:00", + "measurement document": [ + { + "measurement identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "hotel", + "location identifier": "H1" + }, + "absorbance": { + "value": 9.728, + "unit": "mAU" + }, + "mass concentration": { + "value": 486.4, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "fe89a794-b9b7-4069-b117-0099156f07fc", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "hotel", + "location identifier": "H1" + }, + "absorbance": { + "value": 5.328, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + }, + { + "measurement aggregate document": { + "measurement time": "2022-04-06T16:22:00+00:00", + "measurement document": [ + { + "measurement identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 260, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "india", + "location identifier": "A2" + }, + "absorbance": { + "value": 9.97, + "unit": "mAU" + }, + "mass concentration": { + "value": 498.5, + "unit": "ng/uL" + } + }, + { + "measurement identifier": "88927825-c643-46b6-9478-bb96caa97840", + "device control aggregate document": { + "device control document": [ + { + "device type": "absorbance detector", + "detector wavelength setting": { + "value": 280, + "unit": "nm" + } + } + ] + }, + "sample document": { + "sample identifier": "india", + "location identifier": "A2" + }, + "absorbance": { + "value": 5.449, + "unit": "mAU" + } + } + ], + "experiment type": "DNA-50" + }, + "analyst": "Default" + } + ], + "device system document": { + "device identifier": "Nanodrop", + "model number": "Nanodrop Eight" + }, + "data system document": { + "file name": "Thermo_NanoDrop_Eight_example04.txt", + "ASM converter name": "allotropy", + "ASM converter version": "0.1.12" + }, + "calculated data aggregate document": { + "calculated data document": [ + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.82, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "data source feature": "absorbance" + }, + { + "data source identifier": "aae2c825-16c8-4399-b5b8-ae6fb21c4e86", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9c2b9bbb-94e0-47e9-b617-b8f34f4b0849" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.23, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "929591b9-7617-4f65-8ee8-dc37de6214c4" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.81, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "data source feature": "absorbance" + }, + { + "data source identifier": "90f80a74-7e53-4a08-a233-b5d67e1da7aa", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "74e74eca-f1c8-4ae0-8aab-5099d5d75a45" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.24, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "2358c39f-85b3-45e4-a62f-8e9f78173014" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.85, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "data source feature": "absorbance" + }, + { + "data source identifier": "978e5129-f08b-4240-839a-d44c7e14e344", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "efd245b4-2156-4ba2-8923-2339da6b7721" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.29, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "417a77ef-e14f-47cb-a8ca-984aa09ea959" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.82, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "data source feature": "absorbance" + }, + { + "data source identifier": "2590d499-36cf-46e6-bdf5-c8b6e92be41c", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "19f848ae-9e89-4460-87d3-6adfe3fcea11" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.25, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "e3e2da85-c2de-4b69-b135-2a07c5599608" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.84, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "data source feature": "absorbance" + }, + { + "data source identifier": "340e7e39-667a-40a1-be42-bcef4a8122cc", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "224a76ff-65f4-499a-9d22-ea2777e5be24" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.27, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "d97ff8c1-ffb2-44f2-82a2-d8456549d9cd" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.85, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "data source feature": "absorbance" + }, + { + "data source identifier": "5cbd1281-2f43-47de-8016-7cecb7605a6e", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "2e3a6779-ea5f-4d04-a499-bf857d487549" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.25, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "7f87cd58-adcb-421f-8348-478ee4ae3d65" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.83, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "data source feature": "absorbance" + }, + { + "data source identifier": "4f4b168d-8701-406f-abb0-914341514b79", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "37b9d187-5703-402a-afc3-30375d0849b3" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.23, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "fbe41f30-3027-41b0-b558-a273439f8c44" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.83, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "data source feature": "absorbance" + }, + { + "data source identifier": "fe89a794-b9b7-4069-b117-0099156f07fc", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "37a682f2-cf10-42c4-9303-2880d0a14b44" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.18, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "2f104861-bd35-4c63-8582-38a7378be216" + }, + { + "calculated data name": "A260/280", + "calculated result": { + "value": 1.83, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "data source feature": "absorbance" + }, + { + "data source identifier": "88927825-c643-46b6-9478-bb96caa97840", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "1c677329-de0d-44ba-86f8-50c1eb45d38a" + }, + { + "calculated data name": "A260/230", + "calculated result": { + "value": 2.24, + "unit": "unitless" + }, + "data source aggregate document": { + "data source document": [ + { + "data source identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "data source feature": "absorbance" + } + ] + }, + "calculated data identifier": "9ff6f524-8bbc-444b-8693-8c4d26e3262e" + } + ] + } + } +} \ No newline at end of file diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.txt b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.txt new file mode 100644 index 000000000..9af187f16 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.txt @@ -0,0 +1,21 @@ +Plate ID Well Sample ID User ID Date Time Conc. Units A260 A280 260/280 260/230 Conc. Factor (ng/ul) Cursor Pos. Cursor abs. 340 raw NA Type + A1 alpha Default 4/6/2022 4:20 PM 542.7 ng/ul 10.854 5.978 1.82 2.23 50.00 260 10.854 0.016 DNA-50 + B1 bravo Default 4/6/2022 4:20 PM 581.2 ng/ul 11.625 6.413 1.81 2.24 50.00 260 11.625 0.006 DNA-50 + C1 charlie Default 4/6/2022 4:20 PM 311.6 ng/ul 6.233 3.376 1.85 2.29 50.00 260 6.233 -0.023 DNA-50 + D1 delta Default 4/6/2022 4:20 PM 484.6 ng/ul 9.693 5.315 1.82 2.25 50.00 260 9.693 0.012 DNA-50 + E1 echo Default 4/6/2022 4:20 PM 464.0 ng/ul 9.280 5.049 1.84 2.27 50.00 260 9.280 0.007 DNA-50 + F1 foxtrot Default 4/6/2022 4:20 PM 319.8 ng/ul 6.396 3.464 1.85 2.25 50.00 260 6.396 0.014 DNA-50 + G1 golf Default 4/6/2022 4:20 PM 446.8 ng/ul 8.936 4.871 1.83 2.23 50.00 260 8.936 0.023 DNA-50 + H1 hotel Default 4/6/2022 4:20 PM 486.4 ng/ul 9.728 5.328 1.83 2.18 50.00 260 9.728 0.095 DNA-50 + A2 india Default 4/6/2022 4:22 PM 498.5 ng/ul 9.970 5.449 1.83 2.24 50.00 260 9.970 -0.032 DNA-50 + +Sample ID Curve Type Ref conc Ref Abs Std 1 conc Std 1 Abs. Std 2 conc Std 2 Abs Std 3 conc Std 3 Abs Std 4 conc Std 4 Abs Std 5 conc Std 5 Abs Std 6 conc Std 6 Abs Std 7 conc Std 7 Abs + alpha Interp + bravo Interp + charlie Interp + delta Interp + echo Interp + foxtrot Interp + golf Interp + hotel Interp + india Interp diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/thermo_fisher_nanodrop_eight_parser_test.py b/tests/parsers/thermo_fisher_nanodrop_eight/thermo_fisher_nanodrop_eight_parser_test.py new file mode 100644 index 000000000..80dd7fbd7 --- /dev/null +++ b/tests/parsers/thermo_fisher_nanodrop_eight/thermo_fisher_nanodrop_eight_parser_test.py @@ -0,0 +1,38 @@ +import pytest + +from allotropy.parser_factory import Vendor +from tests.parsers.test_utils import from_file, validate_contents, validate_schema + +OUTPUT_FILES = ( + "Thermo_NanoDrop_Eight_example01.txt", + "Thermo_NanoDrop_Eight_example02.txt", + "Thermo_NanoDrop_Eight_example03.txt", + "Thermo_NanoDrop_Eight_example04.txt", +) + +VENDOR_TYPE = Vendor.THERMO_FISHER_NANODROP_EIGHT +SCHEMA_FILE = "spectrophotometry/BENCHLING/2023/12/spectrophotometry.json" + + +@pytest.mark.parametrize("output_file", OUTPUT_FILES) +def test_parse_thermo_fisher_nanodrop_eight_to_asm_schema_is_valid( + output_file: str, +) -> None: + test_filepath = f"tests/parsers/thermo_fisher_nanodrop_eight/testdata/{output_file}" + allotrope_dict = from_file(test_filepath, VENDOR_TYPE) + validate_schema(allotrope_dict, SCHEMA_FILE) + + +@pytest.mark.parametrize("output_file", OUTPUT_FILES) +def test_parse_thermo_fisher_nanodrop_eight_to_asm_expected_contents( + output_file: str, +) -> None: + test_filepath = f"tests/parsers/thermo_fisher_nanodrop_eight/testdata/{output_file}" + expected_filepath = ( + f"tests/parsers/thermo_fisher_nanodrop_eight/testdata/{output_file}".removesuffix( + "txt" + ) + + "json" + ) + allotrope_dict = from_file(test_filepath, VENDOR_TYPE) + validate_contents(allotrope_dict, expected_filepath) From b945603470088c80c421a94eaa73316a1e6d1577 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 11 Jan 2024 14:26:10 -0500 Subject: [PATCH 2/9] fix for concentration --- .../nanodrop_eight_parser.py | 64 +++++++++++-------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index ec99d06f2..e65b099ed 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -1,4 +1,4 @@ -from typing import Any, Optional, TypeVar +from typing import Optional, TypeVar import uuid import pandas as pd @@ -52,13 +52,13 @@ } -def _get_value(data_frame: pd.DataFrame, row: int, column: str) -> Optional[Any]: +def _get_str(data_frame: pd.DataFrame, row: int, column: str) -> Optional[str]: if column not in data_frame.columns: return None if pd.isna(data_frame.iloc[row][column]): return None - return data_frame.iloc[row][column] + return str(data_frame.iloc[row][column]) def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> float | ValueEnum: @@ -71,7 +71,7 @@ def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> float | Value def _get_concentration(conc: float | ValueEnum, unit: Optional[str]) -> Optional[T]: if unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): cls = CONCENTRATION_UNIT_TO_TQUANTITY[unit] - return cls(value=conc) # type: ignore[call-arg] + return cls(value=conc) # type: ignore[return-value] return None @@ -121,10 +121,10 @@ def _get_calculated_data_document( ) -> list[CalculatedDataDocumentItem]: calculated_data_documents = [] for i in range(len(data.index)): - if _get_value(data, i, "260/280"): + if _get_str(data, i, "260/280"): calculated_data_documents.append(self._get_260_280(data, i)) - if _get_value(data, i, "260/230"): + if _get_str(data, i, "260/230"): calculated_data_documents.append(self._get_260_230(data, i)) return calculated_data_documents @@ -141,11 +141,11 @@ def _get_260_280(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt [ DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_value(data, row, "A260 uuid")), + data_source_identifier=str(_get_str(data, row, "A260 uuid")), ), DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_value(data, row, "A280 uuid")), + data_source_identifier=str(_get_str(data, row, "A280 uuid")), ), ] ), @@ -162,7 +162,7 @@ def _get_260_230(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt [ DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_value(data, row, "A260 uuid")), + data_source_identifier=str(_get_str(data, row, "A260 uuid")), ) ] ), @@ -172,14 +172,14 @@ def _get_spectrophotometry_document_item( self, data: pd.DataFrame, row: int ) -> SpectrophotometryDocumentItem: return SpectrophotometryDocumentItem( - analyst=_get_value(data, row, "User ID"), + analyst=_get_str(data, row, "User ID"), measurement_aggregate_document=MeasurementAggregateDocument( measurement_time=self._get_date_time( - str(_get_value(data, row, "Date")) + str(_get_str(data, row, "Date")) + " " - + str(_get_value(data, row, "Time")) + + str(_get_str(data, row, "Time")) ), - experiment_type=_get_value(data, row, "NA Type"), + experiment_type=_get_str(data, row, "NA Type"), measurement_document=self._get_measurement_document(data=data, row=row), ), ) @@ -188,21 +188,23 @@ def _get_measurement_document( self, data: pd.DataFrame, row: int ) -> list[UltravioletAbsorbancePointDetectionMeasurementDocumentItems]: measurement_docs = [] - if _get_value(data, row, "A260"): + if _get_str(data, row, "A260"): measurement_docs.append( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( - measurement_identifier=str(_get_value(data, row, "A260 uuid")), + measurement_identifier=str(_get_str(data, row, "A260 uuid")), sample_document=SampleDocument( - sample_identifier=str(_get_value(data, row, "Sample ID")), - well_plate_identifier=_get_value(data, row, "Plate ID"), - location_identifier=_get_value(data, row, "Well"), + sample_identifier=str(_get_str(data, row, "Sample ID")), + well_plate_identifier=_get_str(data, row, "Plate ID"), + location_identifier=_get_str(data, row, "Well"), ), # capture concentration on the A260 measurement document if the experiment type is # DNA or RNA, protein and other concentration is captured on A280 measurment mass_concentration=_get_concentration( - _get_float(data, row, "Conc."), _get_value(data, row, "Units") + _get_float(data, row, str(self._get_concentration_col(data))), + _get_str(data, row, "Units"), ) - if "NA" in str(_get_value(data, row, "NA Type")) + if "NA" in str(_get_str(data, row, "NA Type")) + and self._get_concentration_col(data) else None, device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( device_control_document=[ @@ -222,21 +224,23 @@ def _get_measurement_document( a280_col = "A280" if a280_col not in data.columns and "A280 10mm" in data.columns: a280_col = "A280 10mm" - if _get_value(data, row, a280_col): + if _get_str(data, row, a280_col): measurement_docs.append( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( - measurement_identifier=str(_get_value(data, row, "A280 uuid")), + measurement_identifier=str(_get_str(data, row, "A280 uuid")), sample_document=SampleDocument( - sample_identifier=str(_get_value(data, row, "Sample ID")), - well_plate_identifier=_get_value(data, row, "Plate ID"), - location_identifier=_get_value(data, row, "Well"), + sample_identifier=str(_get_str(data, row, "Sample ID")), + well_plate_identifier=_get_str(data, row, "Plate ID"), + location_identifier=_get_str(data, row, "Well"), ), # capture concentration on the A280 measurement document if the experiment type is # something other than DNA or RNA mass_concentration=_get_concentration( - _get_float(data, row, "Conc."), _get_value(data, row, "Units") + _get_float(data, row, str(self._get_concentration_col(data))), + _get_str(data, row, "Units"), ) - if "NA" not in str(_get_value(data, row, "NA Type")) + if "NA" not in str(_get_str(data, row, "NA Type")) + and self._get_concentration_col(data) else None, device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( device_control_document=[ @@ -255,3 +259,9 @@ def _get_measurement_document( ) return measurement_docs + + def _get_concentration_col(self, data: pd.DataFrame) -> Optional[str]: + for col in data.columns: + if col.lower() in ["conc.", "conc", "concentration"]: + return col + return None From 32887c076c0da1a0c84b7da5754f0c9b35701130 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 11 Jan 2024 14:29:43 -0500 Subject: [PATCH 3/9] fix for missing sample ID --- .../nanodrop_eight_parser.py | 8 +- .../Thermo_NanoDrop_Eight_example01.json | 56 +-- .../Thermo_NanoDrop_Eight_example02.json | 318 +++++++++--------- .../Thermo_NanoDrop_Eight_example03.json | 84 ++--- .../Thermo_NanoDrop_Eight_example04.json | 126 +++---- 5 files changed, 301 insertions(+), 291 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index e65b099ed..7fd2937ff 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -193,7 +193,9 @@ def _get_measurement_document( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( measurement_identifier=str(_get_str(data, row, "A260 uuid")), sample_document=SampleDocument( - sample_identifier=str(_get_str(data, row, "Sample ID")), + sample_identifier=str(_get_str(data, row, "Sample ID")) + if _get_str(data, row, "Sample ID") + else "NA", well_plate_identifier=_get_str(data, row, "Plate ID"), location_identifier=_get_str(data, row, "Well"), ), @@ -229,7 +231,9 @@ def _get_measurement_document( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( measurement_identifier=str(_get_str(data, row, "A280 uuid")), sample_document=SampleDocument( - sample_identifier=str(_get_str(data, row, "Sample ID")), + sample_identifier=str(_get_str(data, row, "Sample ID")) + if _get_str(data, row, "Sample ID") + else "NA", well_plate_identifier=_get_str(data, row, "Plate ID"), location_identifier=_get_str(data, row, "Well"), ), diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json index 2b70f34eb..9b544478d 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json @@ -7,7 +7,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "87f5cb6e-214a-49e2-907d-287fc48b4247", + "measurement identifier": "3c512b3d-3c87-4af4-9519-b0a583504493", "device control aggregate document": { "device control document": [ { @@ -38,7 +38,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "090b194c-343d-47f2-8233-08de20465e0b", + "measurement identifier": "89c03566-fee8-4211-9f8a-e549eb48b3f5", "device control aggregate document": { "device control document": [ { @@ -69,7 +69,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "09c6fd80-6e84-45a8-b2cb-cf7c29c6bdc0", + "measurement identifier": "a91b24c3-5869-42a9-827d-ad34313725b4", "device control aggregate document": { "device control document": [ { @@ -100,7 +100,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "1b7c049e-fa7b-4c06-91d7-d879ac984f78", + "measurement identifier": "17e9aa39-1e45-4e77-a4b9-d5a6990f9cb5", "device control aggregate document": { "device control document": [ { @@ -131,7 +131,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "d260463b-f46e-4054-bdea-7535d35e14c5", + "measurement identifier": "26368cec-872f-474c-b0d7-9885958e7270", "device control aggregate document": { "device control document": [ { @@ -162,7 +162,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "54bf6cd2-a36d-43e2-8ebf-2d47f6219be5", + "measurement identifier": "47d52810-5fab-48a7-9ec0-c95f4a61498d", "device control aggregate document": { "device control document": [ { @@ -193,7 +193,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "c7797a15-a4fb-424f-bbb0-e311ccc713dc", + "measurement identifier": "c08dec47-3eed-4dff-8d8d-2f631dddada9", "device control aggregate document": { "device control document": [ { @@ -240,16 +240,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "20cc4484-af0f-410c-a29a-e5d37b4c2af2", + "data source identifier": "467410fd-df22-4f71-918b-d6fd6ac8ba85", "data source feature": "absorbance" }, { - "data source identifier": "87f5cb6e-214a-49e2-907d-287fc48b4247", + "data source identifier": "3c512b3d-3c87-4af4-9519-b0a583504493", "data source feature": "absorbance" } ] }, - "calculated data identifier": "a914102b-4fac-4a10-9b42-b6f916573e96" + "calculated data identifier": "ba9f2077-c636-4dea-b98d-d66b6b0c60da" }, { "calculated data name": "A260/280", @@ -260,16 +260,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "e82a9bdf-2aa3-425a-a4dd-f66990be1b4b", + "data source identifier": "3e6613d9-6f29-43ea-b887-7221e9a87a2c", "data source feature": "absorbance" }, { - "data source identifier": "090b194c-343d-47f2-8233-08de20465e0b", + "data source identifier": "89c03566-fee8-4211-9f8a-e549eb48b3f5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3f5cfbee-5dba-44f4-9347-93f6052e09d4" + "calculated data identifier": "39681398-fb24-4150-aae9-f0c351baffb0" }, { "calculated data name": "A260/280", @@ -280,16 +280,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "08e32509-230b-4a6b-8845-9a1ebb144bc0", + "data source identifier": "ee76db3c-b461-4a0a-a664-b4885ae6d0fd", "data source feature": "absorbance" }, { - "data source identifier": "09c6fd80-6e84-45a8-b2cb-cf7c29c6bdc0", + "data source identifier": "a91b24c3-5869-42a9-827d-ad34313725b4", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fa1f10bb-dca1-44a9-b2ea-9e37e6d4f4ba" + "calculated data identifier": "a7bda336-30a5-414f-803d-b176dce10453" }, { "calculated data name": "A260/280", @@ -300,16 +300,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "cc53a1b7-3b78-4089-84a4-6b7347df496a", + "data source identifier": "068a951c-22f2-4c45-9313-c23b13b1b79b", "data source feature": "absorbance" }, { - "data source identifier": "1b7c049e-fa7b-4c06-91d7-d879ac984f78", + "data source identifier": "17e9aa39-1e45-4e77-a4b9-d5a6990f9cb5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "62be62c2-9e62-46e1-bb5c-bf41fa1eb57d" + "calculated data identifier": "793c3d16-d7bc-4fea-a485-510ba97588ad" }, { "calculated data name": "A260/280", @@ -320,16 +320,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "1545ea42-15e5-488d-8886-5fdd4b894c62", + "data source identifier": "9fac9675-1982-434b-a32c-d54009e22dcb", "data source feature": "absorbance" }, { - "data source identifier": "d260463b-f46e-4054-bdea-7535d35e14c5", + "data source identifier": "26368cec-872f-474c-b0d7-9885958e7270", "data source feature": "absorbance" } ] }, - "calculated data identifier": "89e74329-ac8e-44b4-94cc-c628fa3e0f80" + "calculated data identifier": "66adec4c-37ef-4432-8e52-7b739c8a5bcb" }, { "calculated data name": "A260/280", @@ -340,16 +340,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "f1af7897-5f40-44ea-8f71-ffb0f8810797", + "data source identifier": "9f2a2b45-2f98-46a9-8837-13597fcef25e", "data source feature": "absorbance" }, { - "data source identifier": "54bf6cd2-a36d-43e2-8ebf-2d47f6219be5", + "data source identifier": "47d52810-5fab-48a7-9ec0-c95f4a61498d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "c9011ca4-9294-4fba-8795-7dec29a3bd7e" + "calculated data identifier": "cbd38234-260f-4cbd-b576-a43d873338e5" }, { "calculated data name": "A260/280", @@ -360,16 +360,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "08f53a13-2e0a-4244-b6aa-70a241550b75", + "data source identifier": "625f6578-d4e9-46b8-8dc2-a4866547cb9b", "data source feature": "absorbance" }, { - "data source identifier": "c7797a15-a4fb-424f-bbb0-e311ccc713dc", + "data source identifier": "c08dec47-3eed-4dff-8d8d-2f631dddada9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "87f3609e-9b55-4359-aec7-eee8df404003" + "calculated data identifier": "214129a0-1182-4443-92e3-8fc60998181f" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json index 1bf67561d..6575abd39 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json @@ -7,7 +7,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "c952e8d0-c7ed-450e-9b47-45bf489401ac", + "measurement identifier": "0e44adc2-77fd-4cea-8fe8-39ddfc8b5bc3", "device control aggregate document": { "device control document": [ { @@ -37,7 +37,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "95c0e79b-135e-4a32-9cac-54c3ada0d6d9", + "measurement identifier": "a708eb99-ab32-4638-86c7-02b5afe5ff97", "device control aggregate document": { "device control document": [ { @@ -67,7 +67,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "ce0958dd-a224-4942-bdc5-d07a646ca799", + "measurement identifier": "49729556-b4f5-4ee0-9e27-7d2c6501f4d9", "device control aggregate document": { "device control document": [ { @@ -97,7 +97,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "50cf998e-374c-4562-a911-6efb81bf37c0", + "measurement identifier": "c81c70d0-a469-4dfe-aaea-cc22374d2901", "device control aggregate document": { "device control document": [ { @@ -127,7 +127,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "1f66e50d-918a-476b-a33c-955cb19b388a", + "measurement identifier": "5935bb16-f671-4057-90f6-a4dd89fd6f07", "device control aggregate document": { "device control document": [ { @@ -157,7 +157,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "f5217f6d-639a-4798-87ff-2a7ea1566ad4", + "measurement identifier": "bbac11c4-8fae-48ef-be7e-ae0072047665", "device control aggregate document": { "device control document": [ { @@ -187,7 +187,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "1998cadf-9a30-45d7-b564-fd62957998fd", + "measurement identifier": "1cce3977-864a-49b9-8ef0-30645d05362d", "device control aggregate document": { "device control document": [ { @@ -217,7 +217,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "77b7f30a-bbc2-424d-8025-29c05f246aa8", + "measurement identifier": "c4be71b2-7b26-4666-bb3a-d79ce87c77d4", "device control aggregate document": { "device control document": [ { @@ -247,7 +247,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "f35a8519-ad47-44bb-b032-921ef1df94f4", + "measurement identifier": "856d6f0d-5fa5-4fad-a3a1-c8babddf6f13", "device control aggregate document": { "device control document": [ { @@ -277,7 +277,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "79638051-f1dc-4f85-8b0d-17cdedd43fb4", + "measurement identifier": "3e08676a-3fef-437d-a9f5-00e4be67ca64", "device control aggregate document": { "device control document": [ { @@ -307,7 +307,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "c97b85d6-83b1-43e2-ade0-532d79e43a94", + "measurement identifier": "0e1b709b-6f46-4fb7-8870-b102527b0c1c", "device control aggregate document": { "device control document": [ { @@ -337,7 +337,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "574c50b3-4b8a-48f2-9999-2811c667454f", + "measurement identifier": "f446c75e-1e24-4b7e-b349-6c3684a88f58", "device control aggregate document": { "device control document": [ { @@ -367,7 +367,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "1c90e444-9a44-46f6-86f0-21f6df9cd986", + "measurement identifier": "d03129ba-fd8d-40b9-87ad-36e84f2a6219", "device control aggregate document": { "device control document": [ { @@ -397,7 +397,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "23181fa2-6b90-45fe-9417-38c86d0cb339", + "measurement identifier": "536af872-625a-4c36-a331-ac2899344ebf", "device control aggregate document": { "device control document": [ { @@ -427,7 +427,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "512ac872-8292-4707-9059-59c1bf067d22", + "measurement identifier": "3a4c7595-cee9-4f4e-9797-7b660583d5c6", "device control aggregate document": { "device control document": [ { @@ -457,7 +457,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "b5fc179d-4299-412e-b89f-ca85c2163078", + "measurement identifier": "ce7e299f-08af-431c-abab-3d7b30901a9c", "device control aggregate document": { "device control document": [ { @@ -487,7 +487,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "601f06a1-914c-4e15-afba-04f1ee913c52", + "measurement identifier": "6ee6fdaa-e74c-4d0c-a728-9aa0dc111816", "device control aggregate document": { "device control document": [ { @@ -517,7 +517,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "4209847d-a81e-409c-9251-fa19a53520be", + "measurement identifier": "c4d67732-f195-4b9a-a1fa-5c322750477a", "device control aggregate document": { "device control document": [ { @@ -547,7 +547,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "84b3fec5-4f71-476e-a92f-902f49c7f5fa", + "measurement identifier": "25210380-4fd4-4153-b8cb-35923aeafa51", "device control aggregate document": { "device control document": [ { @@ -577,7 +577,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "177cf3e6-b193-4514-9258-45fa5a2e2836", + "measurement identifier": "755c7ca5-3c31-4638-854f-21557015ea91", "device control aggregate document": { "device control document": [ { @@ -607,7 +607,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "751e1faa-f7df-4686-9374-454310004d53", + "measurement identifier": "2747701c-d8e1-42d7-ae36-33565461560c", "device control aggregate document": { "device control document": [ { @@ -637,7 +637,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "f8ff7cb5-6623-47b8-8279-9f59737afdca", + "measurement identifier": "e882c17b-988d-481a-8a8f-9857b7a58ab9", "device control aggregate document": { "device control document": [ { @@ -667,7 +667,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "ca07e2dc-2af7-4f9c-91cc-3ed070c2e195", + "measurement identifier": "fa23ea44-ad2d-46eb-9a9b-7e917f791ee3", "device control aggregate document": { "device control document": [ { @@ -697,7 +697,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "8a2081e6-182f-4f3e-a3bd-33dec7921b88", + "measurement identifier": "c7f8da35-e1e5-4071-9b9c-0c6ab3666049", "device control aggregate document": { "device control document": [ { @@ -727,7 +727,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "3edb6491-ac3d-471d-9115-ec67704d24e4", + "measurement identifier": "4c1b9662-8ce6-497d-b83c-06078a79f223", "device control aggregate document": { "device control document": [ { @@ -757,7 +757,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "27adff21-f29d-4984-a419-13140f896666", + "measurement identifier": "fff52906-497a-4337-8f97-25c042394efd", "device control aggregate document": { "device control document": [ { @@ -787,7 +787,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "35ce13f2-7369-491a-8c1b-62294e903055", + "measurement identifier": "4abe5575-5dfe-4cae-8f03-af6f0f5f83ea", "device control aggregate document": { "device control document": [ { @@ -817,7 +817,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "174adf8a-46eb-4ad7-ae46-12caf38dc4f0", + "measurement identifier": "ed69be7d-7e90-4789-8ac8-63afede7b8f3", "device control aggregate document": { "device control document": [ { @@ -847,7 +847,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "a0fe130f-504f-4c8e-92e1-9886b200a3b5", + "measurement identifier": "d35ab803-e501-46ee-aa5d-1c6911c172d7", "device control aggregate document": { "device control document": [ { @@ -877,7 +877,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "d8b77035-e934-486d-b568-6fac86ae7831", + "measurement identifier": "76a12db2-391b-4e54-b158-fd6ef7ac4816", "device control aggregate document": { "device control document": [ { @@ -907,7 +907,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "a80503cb-2267-4a81-84a9-a631bca24261", + "measurement identifier": "44609afc-758f-4de7-a509-7793b68a771b", "device control aggregate document": { "device control document": [ { @@ -937,7 +937,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "dbe7d413-3638-4e72-bc9d-845c60cf46d9", + "measurement identifier": "dc0fd705-83c7-46f8-8d98-7548229ef8c3", "device control aggregate document": { "device control document": [ { @@ -967,7 +967,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "cede0684-c8fb-4f49-bf35-7c4322e34e79", + "measurement identifier": "0c49f7b5-0f9c-43e3-a7ad-ce1961dd276e", "device control aggregate document": { "device control document": [ { @@ -997,7 +997,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "efc2e3e2-5911-47b5-8fcb-687eee83df58", + "measurement identifier": "3c7d373c-9fb4-4f2b-93be-189b3cbe3f22", "device control aggregate document": { "device control document": [ { @@ -1010,6 +1010,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "A6" }, "absorbance": { @@ -1026,7 +1027,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "7423f7fe-0baa-47e1-b9f5-bdcc13ab81ac", + "measurement identifier": "0d6a0ba5-35c2-48ae-a1d0-b4ce00c91236", "device control aggregate document": { "device control document": [ { @@ -1039,6 +1040,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "B6" }, "absorbance": { @@ -1055,7 +1057,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "482501a3-ddce-43eb-a5fb-3832cb74c1b3", + "measurement identifier": "4ad6c1d4-616e-4601-892e-d7135195a749", "device control aggregate document": { "device control document": [ { @@ -1068,6 +1070,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "C6" }, "absorbance": { @@ -1084,7 +1087,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "407984e9-289d-474b-982c-4094256b7046", + "measurement identifier": "1dfcc44e-d8e1-4742-ac84-46e8b66cba59", "device control aggregate document": { "device control document": [ { @@ -1097,6 +1100,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "D6" }, "absorbance": { @@ -1113,7 +1117,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "136cc393-20e1-4118-8a9c-819d2a43e7de", + "measurement identifier": "3c5b14b0-baab-498e-bf75-a4297f5bb16e", "device control aggregate document": { "device control document": [ { @@ -1126,6 +1130,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "E6" }, "absorbance": { @@ -1142,7 +1147,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "9ec3d6fb-f57b-4764-a47c-558eba3ab4ee", + "measurement identifier": "ff319d88-4162-4485-bc1b-fc524eeae15d", "device control aggregate document": { "device control document": [ { @@ -1155,6 +1160,7 @@ ] }, "sample document": { + "sample identifier": "NA", "location identifier": "F6" }, "absorbance": { @@ -1187,16 +1193,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "2f69aa23-0938-4967-8049-ec2a4bb4a97e", + "data source identifier": "32a2a79b-f582-43ad-80e8-461d47759989", "data source feature": "absorbance" }, { - "data source identifier": "c952e8d0-c7ed-450e-9b47-45bf489401ac", + "data source identifier": "0e44adc2-77fd-4cea-8fe8-39ddfc8b5bc3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "438bd4d5-e3ac-4617-8f87-c146e088fdc7" + "calculated data identifier": "7d9163e3-3473-4441-95e7-3168194ce9ec" }, { "calculated data name": "A260/280", @@ -1207,16 +1213,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "8062d642-de8b-4ea1-b8bb-f018d645d95c", + "data source identifier": "d3dcdda4-8ecd-4793-b8a2-cc2b8a400a75", "data source feature": "absorbance" }, { - "data source identifier": "95c0e79b-135e-4a32-9cac-54c3ada0d6d9", + "data source identifier": "a708eb99-ab32-4638-86c7-02b5afe5ff97", "data source feature": "absorbance" } ] }, - "calculated data identifier": "6bbdfc1c-37ae-4f39-9ba6-6484fc30b1ae" + "calculated data identifier": "8fb0c164-1e8d-4a37-9889-210363b2d986" }, { "calculated data name": "A260/280", @@ -1227,16 +1233,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "b8a4b965-aa1f-42b4-98d1-afa4e4ea6e09", + "data source identifier": "82435c3a-61af-45d2-8ad7-b333b32b8073", "data source feature": "absorbance" }, { - "data source identifier": "ce0958dd-a224-4942-bdc5-d07a646ca799", + "data source identifier": "49729556-b4f5-4ee0-9e27-7d2c6501f4d9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f5a75cba-7d26-4b79-a4a0-d1e72ee0d874" + "calculated data identifier": "bf1d74ca-6f0b-4810-961b-3b7d62004f8b" }, { "calculated data name": "A260/280", @@ -1247,16 +1253,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "41693c57-65c0-4a21-8cf2-ad07c3dc2806", + "data source identifier": "ba618e31-bbd3-470d-8f54-476c6e71e6a4", "data source feature": "absorbance" }, { - "data source identifier": "50cf998e-374c-4562-a911-6efb81bf37c0", + "data source identifier": "c81c70d0-a469-4dfe-aaea-cc22374d2901", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7ec1e933-6c67-469b-aa32-1c53c013a462" + "calculated data identifier": "659c3298-5566-41e7-b8ee-a420e00a28d1" }, { "calculated data name": "A260/280", @@ -1267,16 +1273,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "95b1b4eb-1416-4ff2-9c5c-0a046b0ca298", + "data source identifier": "a208da44-0860-476f-851d-23223102830b", "data source feature": "absorbance" }, { - "data source identifier": "1f66e50d-918a-476b-a33c-955cb19b388a", + "data source identifier": "5935bb16-f671-4057-90f6-a4dd89fd6f07", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f1ebfa17-769a-4e4f-beb2-68ac774c3952" + "calculated data identifier": "5c73ea44-84de-439d-8fc2-770f8b682d05" }, { "calculated data name": "A260/280", @@ -1287,16 +1293,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "9804717a-b806-456f-871b-4206866d3611", + "data source identifier": "6fc6ecb3-836d-42d3-8486-ef8a4a72bc08", "data source feature": "absorbance" }, { - "data source identifier": "f5217f6d-639a-4798-87ff-2a7ea1566ad4", + "data source identifier": "bbac11c4-8fae-48ef-be7e-ae0072047665", "data source feature": "absorbance" } ] }, - "calculated data identifier": "1acee102-6f4a-43dc-aa4f-2a81db5d7ed8" + "calculated data identifier": "5ba85caf-6d3c-47b6-9f9b-efc56676a489" }, { "calculated data name": "A260/280", @@ -1307,16 +1313,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "090ba1e3-f777-482c-9b38-b50bc8e88b52", + "data source identifier": "d57756d5-90a0-4cd6-b914-0fc62009ef3e", "data source feature": "absorbance" }, { - "data source identifier": "1998cadf-9a30-45d7-b564-fd62957998fd", + "data source identifier": "1cce3977-864a-49b9-8ef0-30645d05362d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "e377df0a-0af8-4300-8447-f8fedee49d63" + "calculated data identifier": "286e1083-dcd9-4b83-8c0e-7913ee3bf63e" }, { "calculated data name": "A260/280", @@ -1327,16 +1333,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "f22f4787-7642-4ea8-9357-e5a026e93365", + "data source identifier": "0fb28c12-940f-4c66-bd52-409c8987bf85", "data source feature": "absorbance" }, { - "data source identifier": "77b7f30a-bbc2-424d-8025-29c05f246aa8", + "data source identifier": "c4be71b2-7b26-4666-bb3a-d79ce87c77d4", "data source feature": "absorbance" } ] }, - "calculated data identifier": "4d0786a8-4f6c-4d04-8c74-2b1b04e516a5" + "calculated data identifier": "f52a9112-7dad-46ab-aad4-f654d750907b" }, { "calculated data name": "A260/280", @@ -1347,16 +1353,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "d8d93ab6-a3bc-40f9-b51f-8b3fa54efb40", + "data source identifier": "d850f2ed-18b5-4424-87f1-465d6e5b0e25", "data source feature": "absorbance" }, { - "data source identifier": "f35a8519-ad47-44bb-b032-921ef1df94f4", + "data source identifier": "856d6f0d-5fa5-4fad-a3a1-c8babddf6f13", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8be33170-dd03-4f58-a0cd-e4dadd1ca3ca" + "calculated data identifier": "80e8a16c-d695-4ef4-9027-91964a5edb3e" }, { "calculated data name": "A260/280", @@ -1367,16 +1373,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "cd38a0e9-ae62-405b-9dc6-9b81bf573f17", + "data source identifier": "58d2c8d3-4718-4974-8829-bd3b4e35d1ad", "data source feature": "absorbance" }, { - "data source identifier": "79638051-f1dc-4f85-8b0d-17cdedd43fb4", + "data source identifier": "3e08676a-3fef-437d-a9f5-00e4be67ca64", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d537b9f3-99d2-472a-8d7d-d3cb4748456c" + "calculated data identifier": "8fbc5024-3a2f-43fb-877e-6fcaa28f65cb" }, { "calculated data name": "A260/280", @@ -1387,16 +1393,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "40d57f8c-2d8f-4bc4-b610-99b6ba27d7a9", + "data source identifier": "b8f5f47e-7a46-4a0a-aed3-db340231b5a4", "data source feature": "absorbance" }, { - "data source identifier": "c97b85d6-83b1-43e2-ade0-532d79e43a94", + "data source identifier": "0e1b709b-6f46-4fb7-8870-b102527b0c1c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "55ab9467-f9b2-4b19-b291-37f185732fee" + "calculated data identifier": "c15915c9-9dac-4f78-ab29-2dbe6e1add88" }, { "calculated data name": "A260/280", @@ -1407,16 +1413,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "4eb458ce-0ebf-4113-b0c5-f739f46e5840", + "data source identifier": "11191f80-2162-4dab-9d7b-f2dacf605a9f", "data source feature": "absorbance" }, { - "data source identifier": "574c50b3-4b8a-48f2-9999-2811c667454f", + "data source identifier": "f446c75e-1e24-4b7e-b349-6c3684a88f58", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3be5827e-68c9-48fe-af99-4b931e7ff8e6" + "calculated data identifier": "021cab1f-673c-477f-85a7-558af1b26883" }, { "calculated data name": "A260/280", @@ -1427,16 +1433,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "1773c8f7-57ab-4ef4-b257-abac9e8fa6aa", + "data source identifier": "894a172d-1a37-4460-b94f-5ee1ed276ef8", "data source feature": "absorbance" }, { - "data source identifier": "1c90e444-9a44-46f6-86f0-21f6df9cd986", + "data source identifier": "d03129ba-fd8d-40b9-87ad-36e84f2a6219", "data source feature": "absorbance" } ] }, - "calculated data identifier": "78d9fc1e-7123-44f4-a066-f46ddbc3e1e0" + "calculated data identifier": "f3fb816a-86ae-481e-950c-200dbe06296f" }, { "calculated data name": "A260/280", @@ -1447,16 +1453,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "b73f8227-a643-485c-98aa-097898e1a1d6", + "data source identifier": "3f5938f5-70df-49f9-a222-807e15b329b4", "data source feature": "absorbance" }, { - "data source identifier": "23181fa2-6b90-45fe-9417-38c86d0cb339", + "data source identifier": "536af872-625a-4c36-a331-ac2899344ebf", "data source feature": "absorbance" } ] }, - "calculated data identifier": "bae43efe-8b47-450e-9819-2bf5c1090a73" + "calculated data identifier": "f651d13b-3809-4fd5-ab85-fc8fab515c4c" }, { "calculated data name": "A260/280", @@ -1467,16 +1473,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "dc781dfc-8165-4251-b78b-3373d2d810e0", + "data source identifier": "da5d8700-9976-49c9-8608-7a372a21fe3e", "data source feature": "absorbance" }, { - "data source identifier": "512ac872-8292-4707-9059-59c1bf067d22", + "data source identifier": "3a4c7595-cee9-4f4e-9797-7b660583d5c6", "data source feature": "absorbance" } ] }, - "calculated data identifier": "37b8a551-0c53-4236-806f-9ea6302bd215" + "calculated data identifier": "208ff9b1-4190-44ae-a389-bedfb4ce2e51" }, { "calculated data name": "A260/280", @@ -1487,16 +1493,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "5be289f3-2ae9-475a-9d3b-c45ca703068e", + "data source identifier": "9d2ea147-aa82-44aa-90a7-95ce812d8bbf", "data source feature": "absorbance" }, { - "data source identifier": "b5fc179d-4299-412e-b89f-ca85c2163078", + "data source identifier": "ce7e299f-08af-431c-abab-3d7b30901a9c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fc1ca6ed-4b57-46a5-8dc9-92902516e5c2" + "calculated data identifier": "ad796742-3f9a-4798-b579-4a0c809afba2" }, { "calculated data name": "A260/280", @@ -1507,16 +1513,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "8cfbe629-138a-499b-851d-a65a547fc36a", + "data source identifier": "db61dd55-7e72-444b-bbf0-3a5952edffff", "data source feature": "absorbance" }, { - "data source identifier": "601f06a1-914c-4e15-afba-04f1ee913c52", + "data source identifier": "6ee6fdaa-e74c-4d0c-a728-9aa0dc111816", "data source feature": "absorbance" } ] }, - "calculated data identifier": "bd29fa74-c7fa-48d3-adda-553831c2f1b8" + "calculated data identifier": "4a646697-fe62-4bf6-86ae-fad6f6b97004" }, { "calculated data name": "A260/280", @@ -1527,16 +1533,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "077306d7-f380-4786-81c6-89c787a6b2a7", + "data source identifier": "2f9677e5-c74d-4888-a15d-96c361491add", "data source feature": "absorbance" }, { - "data source identifier": "4209847d-a81e-409c-9251-fa19a53520be", + "data source identifier": "c4d67732-f195-4b9a-a1fa-5c322750477a", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9b79a145-a1e3-483b-9fb3-0d90b89db7e2" + "calculated data identifier": "9dd3d626-272f-4c53-8e5c-a6e93c3b3718" }, { "calculated data name": "A260/280", @@ -1547,16 +1553,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "fc1e2bc7-62a6-4168-9471-f9bf601c65e1", + "data source identifier": "2f6e76be-a705-464b-bb82-4b585ebfb618", "data source feature": "absorbance" }, { - "data source identifier": "84b3fec5-4f71-476e-a92f-902f49c7f5fa", + "data source identifier": "25210380-4fd4-4153-b8cb-35923aeafa51", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9f4d5ed7-052f-4081-96ca-0db9eb562219" + "calculated data identifier": "a6907168-b24c-45d3-a576-5252d7cf1730" }, { "calculated data name": "A260/280", @@ -1567,16 +1573,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "66579e82-9b52-4502-b01d-2f447a08a8f0", + "data source identifier": "14e5671c-05d6-4a35-8f7a-89d31a5d1f7b", "data source feature": "absorbance" }, { - "data source identifier": "177cf3e6-b193-4514-9258-45fa5a2e2836", + "data source identifier": "755c7ca5-3c31-4638-854f-21557015ea91", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7fe9b313-50b9-45bf-82f6-45b28643a50b" + "calculated data identifier": "8c3eee72-a589-44d7-a540-a62d4ebe753e" }, { "calculated data name": "A260/280", @@ -1587,16 +1593,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "c05287bd-43f3-4b8a-867e-fa31e506b472", + "data source identifier": "45818431-3952-4109-ab16-7bde2ff92c5d", "data source feature": "absorbance" }, { - "data source identifier": "751e1faa-f7df-4686-9374-454310004d53", + "data source identifier": "2747701c-d8e1-42d7-ae36-33565461560c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d9cd3fae-49d0-416a-95d3-bdc9895ebafe" + "calculated data identifier": "fef1df78-49de-4445-8f48-dbbea691e86f" }, { "calculated data name": "A260/280", @@ -1607,16 +1613,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "bbfa2ecf-de31-4a36-898f-60d71e7eed57", + "data source identifier": "a62c0693-5994-41f7-9fba-ed98b5d97cb6", "data source feature": "absorbance" }, { - "data source identifier": "f8ff7cb5-6623-47b8-8279-9f59737afdca", + "data source identifier": "e882c17b-988d-481a-8a8f-9857b7a58ab9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7232a4f6-cc81-45bc-9380-66ff0b0f8b62" + "calculated data identifier": "3ff3e100-b28a-4e5f-bb1c-ae2637044984" }, { "calculated data name": "A260/280", @@ -1627,16 +1633,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "dd51cdb5-da93-417c-8ce4-0e21d3c4c41c", + "data source identifier": "8e324679-5356-435b-a17a-9c14022febb3", "data source feature": "absorbance" }, { - "data source identifier": "ca07e2dc-2af7-4f9c-91cc-3ed070c2e195", + "data source identifier": "fa23ea44-ad2d-46eb-9a9b-7e917f791ee3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "5add1e7e-5a88-4886-89df-2dc37598273c" + "calculated data identifier": "d770b777-cc5b-404e-87ff-6ba587ed9c58" }, { "calculated data name": "A260/280", @@ -1647,16 +1653,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "537a87cd-b562-4fe8-9f66-be5bd73fd55e", + "data source identifier": "33e82e41-6310-46c0-a2f3-b70d2046e125", "data source feature": "absorbance" }, { - "data source identifier": "8a2081e6-182f-4f3e-a3bd-33dec7921b88", + "data source identifier": "c7f8da35-e1e5-4071-9b9c-0c6ab3666049", "data source feature": "absorbance" } ] }, - "calculated data identifier": "615c342b-96aa-44c8-b6c2-1711b51b3605" + "calculated data identifier": "b90ffca0-f202-436b-996c-25858a2dff6d" }, { "calculated data name": "A260/280", @@ -1667,16 +1673,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "000cb316-7308-4545-a1bf-ae6c06a5b88d", + "data source identifier": "5fb59173-d150-4768-add4-2990f5065184", "data source feature": "absorbance" }, { - "data source identifier": "3edb6491-ac3d-471d-9115-ec67704d24e4", + "data source identifier": "4c1b9662-8ce6-497d-b83c-06078a79f223", "data source feature": "absorbance" } ] }, - "calculated data identifier": "6f1e1a29-87b6-46c6-aba5-3b316538a3cd" + "calculated data identifier": "fe1ef6cf-898e-4093-ab7e-13011e9096ae" }, { "calculated data name": "A260/280", @@ -1687,16 +1693,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "edeb31f8-3982-42a9-b6c7-4758fa93c4d4", + "data source identifier": "93c99e42-68e9-4981-bb99-7f89acbb5ab1", "data source feature": "absorbance" }, { - "data source identifier": "27adff21-f29d-4984-a419-13140f896666", + "data source identifier": "fff52906-497a-4337-8f97-25c042394efd", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f6bc9e47-95c0-4b41-ae49-ee71ace6c526" + "calculated data identifier": "52e64079-256e-4ed1-a144-5c5c641bdbf3" }, { "calculated data name": "A260/280", @@ -1707,16 +1713,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "3b990b04-b22e-41f1-8524-dd45eb1fa864", + "data source identifier": "94ec72a6-2d3a-49c4-8b35-cba4d3a1b661", "data source feature": "absorbance" }, { - "data source identifier": "35ce13f2-7369-491a-8c1b-62294e903055", + "data source identifier": "4abe5575-5dfe-4cae-8f03-af6f0f5f83ea", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f1e21c74-6c2b-4a5e-a979-53db67028684" + "calculated data identifier": "81938272-daa3-401d-b7f0-e126d35f7487" }, { "calculated data name": "A260/280", @@ -1727,16 +1733,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "2fab1dfd-75da-4959-9012-11298f0843ef", + "data source identifier": "cf705073-4c4a-42a6-b182-3e3a119a9797", "data source feature": "absorbance" }, { - "data source identifier": "174adf8a-46eb-4ad7-ae46-12caf38dc4f0", + "data source identifier": "ed69be7d-7e90-4789-8ac8-63afede7b8f3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "b1349608-b69c-48ac-9106-16a36ce231e6" + "calculated data identifier": "9b1282eb-1663-42db-943c-3991da0292c5" }, { "calculated data name": "A260/280", @@ -1747,16 +1753,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "7e16d2f7-3cbb-4b3a-b4db-c378f5009887", + "data source identifier": "aea628e2-8488-425a-92be-1c266d94579d", "data source feature": "absorbance" }, { - "data source identifier": "a0fe130f-504f-4c8e-92e1-9886b200a3b5", + "data source identifier": "d35ab803-e501-46ee-aa5d-1c6911c172d7", "data source feature": "absorbance" } ] }, - "calculated data identifier": "b6827bb6-5a3b-49dd-bd1a-3ed73e25e3ad" + "calculated data identifier": "d0e2ce7e-0eb4-41bf-a0f5-d9fa60792fce" }, { "calculated data name": "A260/280", @@ -1767,16 +1773,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "30282777-623d-4290-83bd-389a4bad432d", + "data source identifier": "df499383-55e2-45e5-8f05-74a3c966c153", "data source feature": "absorbance" }, { - "data source identifier": "d8b77035-e934-486d-b568-6fac86ae7831", + "data source identifier": "76a12db2-391b-4e54-b158-fd6ef7ac4816", "data source feature": "absorbance" } ] }, - "calculated data identifier": "e061744b-11ec-4ebb-bfbb-9e87f6f84cdb" + "calculated data identifier": "25f93914-8226-4130-a1ee-cea64305c0ab" }, { "calculated data name": "A260/280", @@ -1787,16 +1793,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "8a3d1b9e-ff9c-4fc1-b5b2-228b66cfc8cd", + "data source identifier": "bc915e2c-00b7-4500-bf06-d1ee5e33c971", "data source feature": "absorbance" }, { - "data source identifier": "a80503cb-2267-4a81-84a9-a631bca24261", + "data source identifier": "44609afc-758f-4de7-a509-7793b68a771b", "data source feature": "absorbance" } ] }, - "calculated data identifier": "df786339-597f-4e99-812e-660686c118d3" + "calculated data identifier": "376d68dd-5cef-43ce-999d-c5fe6b86e009" }, { "calculated data name": "A260/280", @@ -1807,16 +1813,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "218e6f19-2a1c-4541-bae5-2d7c957b9fcd", + "data source identifier": "4afe4b9c-6015-43a4-ba32-95e65c9cd9b6", "data source feature": "absorbance" }, { - "data source identifier": "dbe7d413-3638-4e72-bc9d-845c60cf46d9", + "data source identifier": "dc0fd705-83c7-46f8-8d98-7548229ef8c3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "621d32bb-0ea2-4371-b10d-6749df60ee43" + "calculated data identifier": "76f701a9-5836-4948-bb4c-9307184a41a7" }, { "calculated data name": "A260/280", @@ -1827,16 +1833,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "da446f2a-fc5b-4ac2-9e85-71bdb272e5da", + "data source identifier": "de04fffa-6157-48d2-9fa6-da9449fa3d58", "data source feature": "absorbance" }, { - "data source identifier": "cede0684-c8fb-4f49-bf35-7c4322e34e79", + "data source identifier": "0c49f7b5-0f9c-43e3-a7ad-ce1961dd276e", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f65e9a7c-5014-4024-9151-ba80dbefd5f1" + "calculated data identifier": "41a44a04-c8f7-40b0-8c18-b226975de003" }, { "calculated data name": "A260/280", @@ -1847,16 +1853,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "42f4c270-c9c8-41a5-9121-cbbfe9914434", + "data source identifier": "ef3c7ac8-19eb-4a72-b69e-562027e25b45", "data source feature": "absorbance" }, { - "data source identifier": "efc2e3e2-5911-47b5-8fcb-687eee83df58", + "data source identifier": "3c7d373c-9fb4-4f2b-93be-189b3cbe3f22", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3486382e-c9d4-4a31-9f2b-fcd19e4c2770" + "calculated data identifier": "94f60767-f73d-4235-b51d-0ffcf6ad10e7" }, { "calculated data name": "A260/280", @@ -1867,16 +1873,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "336ff3f2-aabd-405f-89b5-e3963adf435b", + "data source identifier": "e388ecf8-1195-4555-9e72-f4faced79088", "data source feature": "absorbance" }, { - "data source identifier": "7423f7fe-0baa-47e1-b9f5-bdcc13ab81ac", + "data source identifier": "0d6a0ba5-35c2-48ae-a1d0-b4ce00c91236", "data source feature": "absorbance" } ] }, - "calculated data identifier": "1c2c6c02-9a08-4eee-b284-f6dfedeb682a" + "calculated data identifier": "c1a5b79a-8e56-4be7-b787-ece81ffb32c4" }, { "calculated data name": "A260/280", @@ -1887,16 +1893,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "4223983e-10bf-4074-a070-b20b7fd86cec", + "data source identifier": "8edba720-2209-4c48-ba5e-18524c435d8e", "data source feature": "absorbance" }, { - "data source identifier": "482501a3-ddce-43eb-a5fb-3832cb74c1b3", + "data source identifier": "4ad6c1d4-616e-4601-892e-d7135195a749", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7f34c641-5564-4ad1-a146-6ecb07d8d922" + "calculated data identifier": "40107fa6-934a-4356-9a55-6a5fa4c7972c" }, { "calculated data name": "A260/280", @@ -1907,16 +1913,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "105162e6-8fdd-443c-88b0-eac2fb9f2118", + "data source identifier": "2c1c3821-d901-45cb-b1c5-0cb52d63790f", "data source feature": "absorbance" }, { - "data source identifier": "407984e9-289d-474b-982c-4094256b7046", + "data source identifier": "1dfcc44e-d8e1-4742-ac84-46e8b66cba59", "data source feature": "absorbance" } ] }, - "calculated data identifier": "bca44a79-5fea-4889-953f-09ff59145f46" + "calculated data identifier": "2daf0600-6c1d-4310-812d-094f85ff1528" }, { "calculated data name": "A260/280", @@ -1927,16 +1933,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "ddc94c14-d584-4630-b553-cd6bb6293d52", + "data source identifier": "a998e6f1-7b3d-44ee-8ea0-74268fa8ee33", "data source feature": "absorbance" }, { - "data source identifier": "136cc393-20e1-4118-8a9c-819d2a43e7de", + "data source identifier": "3c5b14b0-baab-498e-bf75-a4297f5bb16e", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3b49b811-d3df-4859-a509-ac2931b94600" + "calculated data identifier": "9dbcd9db-4563-46de-bd04-665547c98611" }, { "calculated data name": "A260/280", @@ -1947,16 +1953,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "e5221904-5d65-462c-be64-b48dee8280bf", + "data source identifier": "2e9badfa-f693-4931-80d2-2a455f8547b3", "data source feature": "absorbance" }, { - "data source identifier": "9ec3d6fb-f57b-4764-a47c-558eba3ab4ee", + "data source identifier": "ff319d88-4162-4485-bc1b-fc524eeae15d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "e3802549-7a2c-45ef-a940-81d41061d49a" + "calculated data identifier": "a0be4294-d876-419e-bdd5-55c1cf186dd5" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json index b877c7d8e..a37746fca 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json @@ -7,7 +7,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "measurement identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", "device control aggregate document": { "device control document": [ { @@ -33,7 +33,7 @@ } }, { - "measurement identifier": "eb417f34-a888-41c5-bc9f-6c36611ea740", + "measurement identifier": "d2d61680-8a6b-4778-a6b0-b93977564e57", "device control aggregate document": { "device control document": [ { @@ -64,7 +64,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "measurement identifier": "081c3780-3923-4399-9c23-d3e881c2e001", "device control aggregate document": { "device control document": [ { @@ -90,7 +90,7 @@ } }, { - "measurement identifier": "ad6ddb19-20a7-40b8-bad6-dcf81b21b73c", + "measurement identifier": "8539d4a7-fc24-4d8c-92a6-c6cdecae1670", "device control aggregate document": { "device control document": [ { @@ -121,7 +121,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "measurement identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", "device control aggregate document": { "device control document": [ { @@ -147,7 +147,7 @@ } }, { - "measurement identifier": "2e92e0b9-9af9-4345-b8aa-12ac7bdd4fc3", + "measurement identifier": "12cc86d3-9e0e-4953-b17f-5aba924ce58f", "device control aggregate document": { "device control document": [ { @@ -178,7 +178,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "measurement identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", "device control aggregate document": { "device control document": [ { @@ -204,7 +204,7 @@ } }, { - "measurement identifier": "266550a7-203d-49df-8ebd-2e7ed96738de", + "measurement identifier": "051765cc-3b35-4dfa-9d4d-d9017f9710ba", "device control aggregate document": { "device control document": [ { @@ -235,7 +235,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "measurement identifier": "3b239467-e501-4897-9344-10e0b0618541", "device control aggregate document": { "device control document": [ { @@ -261,7 +261,7 @@ } }, { - "measurement identifier": "cb6bf558-c707-4f9d-bc68-7c3715c9cc43", + "measurement identifier": "73f57a50-118a-4cf3-bfbd-29110fb28cc9", "device control aggregate document": { "device control document": [ { @@ -292,7 +292,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "measurement identifier": "c29728d4-1c57-4213-a705-72d691cebe51", "device control aggregate document": { "device control document": [ { @@ -318,7 +318,7 @@ } }, { - "measurement identifier": "e97f0397-196c-4fcd-b659-b58d9f2012c3", + "measurement identifier": "b4d21fca-79cb-4077-8354-4cc83381dd40", "device control aggregate document": { "device control document": [ { @@ -365,16 +365,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "data source identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", "data source feature": "absorbance" }, { - "data source identifier": "eb417f34-a888-41c5-bc9f-6c36611ea740", + "data source identifier": "d2d61680-8a6b-4778-a6b0-b93977564e57", "data source feature": "absorbance" } ] }, - "calculated data identifier": "74a0f8c6-04f0-43d3-a5e8-c8c7a4406ae9" + "calculated data identifier": "3fa3786b-23e3-4c55-99cf-cda49a466de9" }, { "calculated data name": "A260/230", @@ -385,12 +385,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "5fdc15f5-e52a-43cb-a3f7-9b27c2575a81", + "data source identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", "data source feature": "absorbance" } ] }, - "calculated data identifier": "6f7cca26-e12b-42fa-924e-8b7a159a7526" + "calculated data identifier": "759fba2c-3b7b-44b6-888c-027618e50eee" }, { "calculated data name": "A260/280", @@ -401,16 +401,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "data source identifier": "081c3780-3923-4399-9c23-d3e881c2e001", "data source feature": "absorbance" }, { - "data source identifier": "ad6ddb19-20a7-40b8-bad6-dcf81b21b73c", + "data source identifier": "8539d4a7-fc24-4d8c-92a6-c6cdecae1670", "data source feature": "absorbance" } ] }, - "calculated data identifier": "b8417dda-2a81-4664-afb6-3addcc2ed444" + "calculated data identifier": "8a0641e4-1a17-4286-b3b9-57450df6f6d7" }, { "calculated data name": "A260/230", @@ -421,12 +421,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "fd676c7a-ac36-4c14-a410-1a6d10620b90", + "data source identifier": "081c3780-3923-4399-9c23-d3e881c2e001", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3b373134-a58c-45b8-9c5c-7916bdbc9f70" + "calculated data identifier": "2aa68f5b-4819-4093-aa45-f50e14def7d1" }, { "calculated data name": "A260/280", @@ -437,16 +437,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "data source identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", "data source feature": "absorbance" }, { - "data source identifier": "2e92e0b9-9af9-4345-b8aa-12ac7bdd4fc3", + "data source identifier": "12cc86d3-9e0e-4953-b17f-5aba924ce58f", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ebe1d0df-4107-4b77-aa12-7eeb4f899a2e" + "calculated data identifier": "488b517b-2588-482f-9f61-23b37e9df1af" }, { "calculated data name": "A260/230", @@ -457,12 +457,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "3c325add-feff-4f0b-885f-c9e87b7534cd", + "data source identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fb4e4274-165d-419d-a6b6-184bd2aa0f9b" + "calculated data identifier": "8d7fec93-1df1-461b-8c33-8a257bb762b8" }, { "calculated data name": "A260/280", @@ -473,16 +473,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "data source identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", "data source feature": "absorbance" }, { - "data source identifier": "266550a7-203d-49df-8ebd-2e7ed96738de", + "data source identifier": "051765cc-3b35-4dfa-9d4d-d9017f9710ba", "data source feature": "absorbance" } ] }, - "calculated data identifier": "c12945e5-b714-4904-a29d-69c98ff5e7e5" + "calculated data identifier": "9e0ab6b5-a695-45ba-8dc0-34a7c4b11dd6" }, { "calculated data name": "A260/230", @@ -493,12 +493,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "a95bce64-c17c-4211-9cae-050176a0e6f1", + "data source identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9517e028-9529-4d72-a0ec-b7b969734417" + "calculated data identifier": "f5ff2987-26e0-466b-a7f1-eedcc27a9f8a" }, { "calculated data name": "A260/280", @@ -509,16 +509,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "data source identifier": "3b239467-e501-4897-9344-10e0b0618541", "data source feature": "absorbance" }, { - "data source identifier": "cb6bf558-c707-4f9d-bc68-7c3715c9cc43", + "data source identifier": "73f57a50-118a-4cf3-bfbd-29110fb28cc9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9bff52a8-622b-40b2-b84c-2a2efb615333" + "calculated data identifier": "80824480-30a1-495c-9da2-262ca93e2c6c" }, { "calculated data name": "A260/230", @@ -529,12 +529,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "e4a0b893-9a6c-4986-903d-34529ba36baa", + "data source identifier": "3b239467-e501-4897-9344-10e0b0618541", "data source feature": "absorbance" } ] }, - "calculated data identifier": "0ce26ed7-404d-4e3d-8406-bd6afab1eb2d" + "calculated data identifier": "ea3eb3ba-ee28-4644-8859-fc1c136cbc44" }, { "calculated data name": "A260/280", @@ -545,16 +545,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "data source identifier": "c29728d4-1c57-4213-a705-72d691cebe51", "data source feature": "absorbance" }, { - "data source identifier": "e97f0397-196c-4fcd-b659-b58d9f2012c3", + "data source identifier": "b4d21fca-79cb-4077-8354-4cc83381dd40", "data source feature": "absorbance" } ] }, - "calculated data identifier": "a4b233af-b3c7-493d-94ee-4187ff8d96de" + "calculated data identifier": "ee26ee3b-9455-4ee9-a402-34b46336acdd" }, { "calculated data name": "A260/230", @@ -565,12 +565,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "2a2ccc6c-f1e1-4ced-a0a8-4ccb1c815b73", + "data source identifier": "c29728d4-1c57-4213-a705-72d691cebe51", "data source feature": "absorbance" } ] }, - "calculated data identifier": "eec1813e-8ee1-49fd-b582-0374d6a02897" + "calculated data identifier": "26b2c012-e7b1-496a-9c9c-e2778d9d3e6b" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json index 3760edbb8..22ef997b6 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json @@ -7,7 +7,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "measurement identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", "device control aggregate document": { "device control document": [ { @@ -33,7 +33,7 @@ } }, { - "measurement identifier": "aae2c825-16c8-4399-b5b8-ae6fb21c4e86", + "measurement identifier": "a40731c4-7a42-4f94-9104-77a481598a92", "device control aggregate document": { "device control document": [ { @@ -64,7 +64,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "measurement identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", "device control aggregate document": { "device control document": [ { @@ -90,7 +90,7 @@ } }, { - "measurement identifier": "90f80a74-7e53-4a08-a233-b5d67e1da7aa", + "measurement identifier": "ebae9f1d-4f2a-4b3d-a679-f8bae7e037e1", "device control aggregate document": { "device control document": [ { @@ -121,7 +121,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "measurement identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", "device control aggregate document": { "device control document": [ { @@ -147,7 +147,7 @@ } }, { - "measurement identifier": "978e5129-f08b-4240-839a-d44c7e14e344", + "measurement identifier": "243ce304-b831-4fe4-9d0a-b66708cf81bf", "device control aggregate document": { "device control document": [ { @@ -178,7 +178,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "measurement identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", "device control aggregate document": { "device control document": [ { @@ -204,7 +204,7 @@ } }, { - "measurement identifier": "2590d499-36cf-46e6-bdf5-c8b6e92be41c", + "measurement identifier": "6ca5747c-d682-4f01-a766-8f7b1705aecb", "device control aggregate document": { "device control document": [ { @@ -235,7 +235,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "measurement identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", "device control aggregate document": { "device control document": [ { @@ -261,7 +261,7 @@ } }, { - "measurement identifier": "340e7e39-667a-40a1-be42-bcef4a8122cc", + "measurement identifier": "1f3208c9-7dce-4128-985f-d3771b0c6573", "device control aggregate document": { "device control document": [ { @@ -292,7 +292,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "measurement identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", "device control aggregate document": { "device control document": [ { @@ -318,7 +318,7 @@ } }, { - "measurement identifier": "5cbd1281-2f43-47de-8016-7cecb7605a6e", + "measurement identifier": "6b6c2292-7a95-403a-9a42-5743a94ce186", "device control aggregate document": { "device control document": [ { @@ -349,7 +349,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "measurement identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", "device control aggregate document": { "device control document": [ { @@ -375,7 +375,7 @@ } }, { - "measurement identifier": "4f4b168d-8701-406f-abb0-914341514b79", + "measurement identifier": "0241829e-5d5f-4cf0-a025-4684daf5b66c", "device control aggregate document": { "device control document": [ { @@ -406,7 +406,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "measurement identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", "device control aggregate document": { "device control document": [ { @@ -432,7 +432,7 @@ } }, { - "measurement identifier": "fe89a794-b9b7-4069-b117-0099156f07fc", + "measurement identifier": "14629fc9-4ae1-4bff-844f-0f00fa87d0db", "device control aggregate document": { "device control document": [ { @@ -463,7 +463,7 @@ "measurement time": "2022-04-06T16:22:00+00:00", "measurement document": [ { - "measurement identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "measurement identifier": "8815766f-e968-41d3-a31a-d8dac1743711", "device control aggregate document": { "device control document": [ { @@ -489,7 +489,7 @@ } }, { - "measurement identifier": "88927825-c643-46b6-9478-bb96caa97840", + "measurement identifier": "6c5b60ec-59e4-4fef-8e15-37a2b16beed0", "device control aggregate document": { "device control document": [ { @@ -536,16 +536,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "data source identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", "data source feature": "absorbance" }, { - "data source identifier": "aae2c825-16c8-4399-b5b8-ae6fb21c4e86", + "data source identifier": "a40731c4-7a42-4f94-9104-77a481598a92", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9c2b9bbb-94e0-47e9-b617-b8f34f4b0849" + "calculated data identifier": "71f5aa5c-6dc0-4a22-819e-e601c69f973d" }, { "calculated data name": "A260/230", @@ -556,12 +556,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "7bd62c10-7daa-42fd-a7bd-d40192ba9d4d", + "data source identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "929591b9-7617-4f65-8ee8-dc37de6214c4" + "calculated data identifier": "234e05e6-b73f-46a2-8be6-c1c662aff454" }, { "calculated data name": "A260/280", @@ -572,16 +572,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "data source identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", "data source feature": "absorbance" }, { - "data source identifier": "90f80a74-7e53-4a08-a233-b5d67e1da7aa", + "data source identifier": "ebae9f1d-4f2a-4b3d-a679-f8bae7e037e1", "data source feature": "absorbance" } ] }, - "calculated data identifier": "74e74eca-f1c8-4ae0-8aab-5099d5d75a45" + "calculated data identifier": "ade6c538-c1dd-4b8d-8477-43b8d015292d" }, { "calculated data name": "A260/230", @@ -592,12 +592,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "fcccb178-50f2-4323-8891-f075a3c46dff", + "data source identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2358c39f-85b3-45e4-a62f-8e9f78173014" + "calculated data identifier": "92180847-7cea-44f6-9086-1ed257b1328a" }, { "calculated data name": "A260/280", @@ -608,16 +608,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "data source identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", "data source feature": "absorbance" }, { - "data source identifier": "978e5129-f08b-4240-839a-d44c7e14e344", + "data source identifier": "243ce304-b831-4fe4-9d0a-b66708cf81bf", "data source feature": "absorbance" } ] }, - "calculated data identifier": "efd245b4-2156-4ba2-8923-2339da6b7721" + "calculated data identifier": "8a57bd42-3b59-4531-a2ca-260c5ff59e73" }, { "calculated data name": "A260/230", @@ -628,12 +628,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "8535cf5f-6246-4165-a293-dece04de499e", + "data source identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "417a77ef-e14f-47cb-a8ca-984aa09ea959" + "calculated data identifier": "ee1ce45a-7bab-4963-b5e8-f864588d46b9" }, { "calculated data name": "A260/280", @@ -644,16 +644,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "data source identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", "data source feature": "absorbance" }, { - "data source identifier": "2590d499-36cf-46e6-bdf5-c8b6e92be41c", + "data source identifier": "6ca5747c-d682-4f01-a766-8f7b1705aecb", "data source feature": "absorbance" } ] }, - "calculated data identifier": "19f848ae-9e89-4460-87d3-6adfe3fcea11" + "calculated data identifier": "40be3d7e-f02d-44a0-8a86-910fcc7b4a00" }, { "calculated data name": "A260/230", @@ -664,12 +664,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "4691bcbe-8952-4d04-ba11-5f6a9d7576b9", + "data source identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", "data source feature": "absorbance" } ] }, - "calculated data identifier": "e3e2da85-c2de-4b69-b135-2a07c5599608" + "calculated data identifier": "cbf83305-2b0d-4563-bdef-429e97f83f21" }, { "calculated data name": "A260/280", @@ -680,16 +680,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "data source identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", "data source feature": "absorbance" }, { - "data source identifier": "340e7e39-667a-40a1-be42-bcef4a8122cc", + "data source identifier": "1f3208c9-7dce-4128-985f-d3771b0c6573", "data source feature": "absorbance" } ] }, - "calculated data identifier": "224a76ff-65f4-499a-9d22-ea2777e5be24" + "calculated data identifier": "e5909bb2-daef-4f6b-b987-5123825ee3f0" }, { "calculated data name": "A260/230", @@ -700,12 +700,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "cfae188d-5d9c-48a1-af02-ad664fd0d190", + "data source identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d97ff8c1-ffb2-44f2-82a2-d8456549d9cd" + "calculated data identifier": "7744a915-4d20-41a1-abe9-c83557781458" }, { "calculated data name": "A260/280", @@ -716,16 +716,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "data source identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", "data source feature": "absorbance" }, { - "data source identifier": "5cbd1281-2f43-47de-8016-7cecb7605a6e", + "data source identifier": "6b6c2292-7a95-403a-9a42-5743a94ce186", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2e3a6779-ea5f-4d04-a499-bf857d487549" + "calculated data identifier": "b1a12fcc-79c4-4d14-9e18-4e3653315cbb" }, { "calculated data name": "A260/230", @@ -736,12 +736,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "0038a063-ebd4-4471-a353-e4d34445bc84", + "data source identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7f87cd58-adcb-421f-8348-478ee4ae3d65" + "calculated data identifier": "573b209a-e43d-435a-96a7-2675b1033e98" }, { "calculated data name": "A260/280", @@ -752,16 +752,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "data source identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", "data source feature": "absorbance" }, { - "data source identifier": "4f4b168d-8701-406f-abb0-914341514b79", + "data source identifier": "0241829e-5d5f-4cf0-a025-4684daf5b66c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "37b9d187-5703-402a-afc3-30375d0849b3" + "calculated data identifier": "d448d859-3c3c-4673-9d9f-a728860289fe" }, { "calculated data name": "A260/230", @@ -772,12 +772,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "df33a672-0d9d-4f7b-8357-7ba4375bd05b", + "data source identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fbe41f30-3027-41b0-b558-a273439f8c44" + "calculated data identifier": "9b0d3f3b-09e4-4682-9611-841102f40987" }, { "calculated data name": "A260/280", @@ -788,16 +788,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "data source identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", "data source feature": "absorbance" }, { - "data source identifier": "fe89a794-b9b7-4069-b117-0099156f07fc", + "data source identifier": "14629fc9-4ae1-4bff-844f-0f00fa87d0db", "data source feature": "absorbance" } ] }, - "calculated data identifier": "37a682f2-cf10-42c4-9303-2880d0a14b44" + "calculated data identifier": "bcad688a-68b2-4c45-9aff-726ef487001a" }, { "calculated data name": "A260/230", @@ -808,12 +808,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "c80c7c4c-2aa3-48dc-86f6-0c2e527af8b9", + "data source identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2f104861-bd35-4c63-8582-38a7378be216" + "calculated data identifier": "2e8b7354-f268-4b89-b9de-d34de9797cbd" }, { "calculated data name": "A260/280", @@ -824,16 +824,16 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "data source identifier": "8815766f-e968-41d3-a31a-d8dac1743711", "data source feature": "absorbance" }, { - "data source identifier": "88927825-c643-46b6-9478-bb96caa97840", + "data source identifier": "6c5b60ec-59e4-4fef-8e15-37a2b16beed0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "1c677329-de0d-44ba-86f8-50c1eb45d38a" + "calculated data identifier": "56e42da3-be4f-47e8-b11b-19ad3eab7aa2" }, { "calculated data name": "A260/230", @@ -844,12 +844,12 @@ "data source aggregate document": { "data source document": [ { - "data source identifier": "a17d7404-5f2c-4352-bed3-96461e13f92b", + "data source identifier": "8815766f-e968-41d3-a31a-d8dac1743711", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9ff6f524-8bbc-444b-8693-8c4d26e3262e" + "calculated data identifier": "0e1b7937-8508-4814-a877-5a2e6e6fbe1c" } ] } From 93d9291703988297b099ac5e5aa8115d7a1d2d92 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 11 Jan 2024 15:12:05 -0500 Subject: [PATCH 4/9] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61168e136..2218f40dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add calculated data documents to Unchained Labs Lunatic adapter - Parser for ChemoMetic NucleoView - Add non numeric options for tQuantityValue value property +- Parser for Nanodrop Eight ### Fixed ### Changed - Simplify Moldev Softmax Pro parsing with dataclasses From 86d205762d7dc1187d5a74a79e7aacfc0b21b3b8 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 11 Jan 2024 15:59:37 -0500 Subject: [PATCH 5/9] use JsonFloat and InvalidJsonFloat --- .../nanodrop_eight_parser.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index 7fd2937ff..66aa2c152 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -14,8 +14,9 @@ TQuantityValuePicogramPerMilliliter, ) from allotropy.allotrope.models.shared.definitions.definitions import ( + InvalidJsonFloat, + JsonFloat, TQuantityValue, - ValueEnum, ) from allotropy.allotrope.models.spectrophotometry_benchling_2023_12_spectrophotometry import ( CalculatedDataAggregateDocument, @@ -61,14 +62,14 @@ def _get_str(data_frame: pd.DataFrame, row: int, column: str) -> Optional[str]: return str(data_frame.iloc[row][column]) -def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> float | ValueEnum: +def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> JsonFloat: try: return float(data_frame.iloc[row][column]) except (ValueError, TypeError): - return ValueEnum.NaN + return InvalidJsonFloat.NaN -def _get_concentration(conc: float | ValueEnum, unit: Optional[str]) -> Optional[T]: +def _get_concentration(conc: JsonFloat, unit: Optional[str]) -> Optional[T]: if unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): cls = CONCENTRATION_UNIT_TO_TQUANTITY[unit] return cls(value=conc) # type: ignore[return-value] From 03d16aa21f13a99c1554ac839700ef690be76601 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Wed, 17 Jan 2024 15:55:14 -0500 Subject: [PATCH 6/9] refactor get_str --- .../nanodrop_eight_parser.py | 69 +++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index 66aa2c152..cd0f8c25d 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -39,6 +39,7 @@ from allotropy.parsers.thermo_fisher_nanodrop_eight.nanodrop_eight_reader import ( NanoDropEightReader, ) +from allotropy.parsers.utils.values import assert_not_none from allotropy.parsers.vendor_parser import VendorParser T = TypeVar("T") @@ -53,13 +54,23 @@ } -def _get_str(data_frame: pd.DataFrame, row: int, column: str) -> Optional[str]: +def _get_str_or_none(data_frame: pd.DataFrame, row: int, column: str) -> Optional[str]: if column not in data_frame.columns: return None - if pd.isna(data_frame.iloc[row][column]): + + val = data_frame.iloc[row][column] + if pd.isna(val): return None - return str(data_frame.iloc[row][column]) + return str(val) + + +def _get_str(data_frame: pd.DataFrame, row: int, column: str) -> str: + val = _get_str_or_none(data_frame=data_frame, row=row, column=column) + + assert_not_none(val) + + return str(val) def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> JsonFloat: @@ -122,10 +133,10 @@ def _get_calculated_data_document( ) -> list[CalculatedDataDocumentItem]: calculated_data_documents = [] for i in range(len(data.index)): - if _get_str(data, i, "260/280"): + if _get_str_or_none(data, i, "260/280"): calculated_data_documents.append(self._get_260_280(data, i)) - if _get_str(data, i, "260/230"): + if _get_str_or_none(data, i, "260/230"): calculated_data_documents.append(self._get_260_230(data, i)) return calculated_data_documents @@ -142,11 +153,11 @@ def _get_260_280(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt [ DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_str(data, row, "A260 uuid")), + data_source_identifier=_get_str(data, row, "A260 uuid"), ), DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_str(data, row, "A280 uuid")), + data_source_identifier=_get_str(data, row, "A280 uuid"), ), ] ), @@ -163,7 +174,7 @@ def _get_260_230(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt [ DataSourceDocumentItem( data_source_feature="absorbance", - data_source_identifier=str(_get_str(data, row, "A260 uuid")), + data_source_identifier=_get_str(data, row, "A260 uuid"), ) ] ), @@ -173,14 +184,12 @@ def _get_spectrophotometry_document_item( self, data: pd.DataFrame, row: int ) -> SpectrophotometryDocumentItem: return SpectrophotometryDocumentItem( - analyst=_get_str(data, row, "User ID"), + analyst=_get_str_or_none(data, row, "User ID"), measurement_aggregate_document=MeasurementAggregateDocument( measurement_time=self._get_date_time( - str(_get_str(data, row, "Date")) - + " " - + str(_get_str(data, row, "Time")) + _get_str(data, row, "Date") + " " + _get_str(data, row, "Time") ), - experiment_type=_get_str(data, row, "NA Type"), + experiment_type=_get_str_or_none(data, row, "NA Type"), measurement_document=self._get_measurement_document(data=data, row=row), ), ) @@ -189,24 +198,25 @@ def _get_measurement_document( self, data: pd.DataFrame, row: int ) -> list[UltravioletAbsorbancePointDetectionMeasurementDocumentItems]: measurement_docs = [] - if _get_str(data, row, "A260"): + if _get_str_or_none(data, row, "A260"): measurement_docs.append( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( - measurement_identifier=str(_get_str(data, row, "A260 uuid")), + measurement_identifier=_get_str(data, row, "A260 uuid"), sample_document=SampleDocument( - sample_identifier=str(_get_str(data, row, "Sample ID")) - if _get_str(data, row, "Sample ID") + sample_identifier=_get_str(data, row, "Sample ID") + if _get_str_or_none(data, row, "Sample ID") else "NA", - well_plate_identifier=_get_str(data, row, "Plate ID"), - location_identifier=_get_str(data, row, "Well"), + well_plate_identifier=_get_str_or_none(data, row, "Plate ID"), + location_identifier=_get_str_or_none(data, row, "Well"), ), # capture concentration on the A260 measurement document if the experiment type is # DNA or RNA, protein and other concentration is captured on A280 measurment mass_concentration=_get_concentration( _get_float(data, row, str(self._get_concentration_col(data))), - _get_str(data, row, "Units"), + _get_str_or_none(data, row, "Units"), ) - if "NA" in str(_get_str(data, row, "NA Type")) + if _get_str_or_none(data, row, "NA Type") + and "NA" in _get_str(data, row, "NA Type") and self._get_concentration_col(data) else None, device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( @@ -227,24 +237,25 @@ def _get_measurement_document( a280_col = "A280" if a280_col not in data.columns and "A280 10mm" in data.columns: a280_col = "A280 10mm" - if _get_str(data, row, a280_col): + if _get_str_or_none(data, row, a280_col): measurement_docs.append( UltravioletAbsorbancePointDetectionMeasurementDocumentItems( - measurement_identifier=str(_get_str(data, row, "A280 uuid")), + measurement_identifier=_get_str(data, row, "A280 uuid"), sample_document=SampleDocument( - sample_identifier=str(_get_str(data, row, "Sample ID")) - if _get_str(data, row, "Sample ID") + sample_identifier=_get_str(data, row, "Sample ID") + if _get_str_or_none(data, row, "Sample ID") else "NA", - well_plate_identifier=_get_str(data, row, "Plate ID"), - location_identifier=_get_str(data, row, "Well"), + well_plate_identifier=_get_str_or_none(data, row, "Plate ID"), + location_identifier=_get_str_or_none(data, row, "Well"), ), # capture concentration on the A280 measurement document if the experiment type is # something other than DNA or RNA mass_concentration=_get_concentration( _get_float(data, row, str(self._get_concentration_col(data))), - _get_str(data, row, "Units"), + _get_str_or_none(data, row, "Units"), ) - if "NA" not in str(_get_str(data, row, "NA Type")) + if _get_str_or_none(data, row, "NA Type") + and "NA" not in _get_str(data, row, "NA Type") and self._get_concentration_col(data) else None, device_control_aggregate_document=UltravioletAbsorbancePointDetectionDeviceControlAggregateDocument( From cb456a52216b153795237d4241b4f8beeec0a98b Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Wed, 17 Jan 2024 18:14:16 -0500 Subject: [PATCH 7/9] use UNITLESS const --- .../nanodrop_eight_parser.py | 5 +- .../Thermo_NanoDrop_Eight_example01.json | 70 ++-- .../Thermo_NanoDrop_Eight_example02.json | 390 +++++++++--------- .../Thermo_NanoDrop_Eight_example03.json | 108 ++--- .../Thermo_NanoDrop_Eight_example04.json | 162 ++++---- 5 files changed, 368 insertions(+), 367 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index cd0f8c25d..2158c9693 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -18,6 +18,7 @@ JsonFloat, TQuantityValue, ) +from allotropy.allotrope.models.shared.definitions.units import UNITLESS from allotropy.allotrope.models.spectrophotometry_benchling_2023_12_spectrophotometry import ( CalculatedDataAggregateDocument, CalculatedDataDocumentItem, @@ -146,7 +147,7 @@ def _get_260_280(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt return CalculatedDataDocumentItem( calculated_data_name="A260/280", calculated_result=TQuantityValue( - value=_get_float(data, row, "260/280"), unit="unitless" + value=_get_float(data, row, "260/280"), unit=UNITLESS ), calculated_data_identifier=str(uuid.uuid4()), data_source_aggregate_document=DataSourceAggregateDocument1( @@ -167,7 +168,7 @@ def _get_260_230(self, data: pd.DataFrame, row: int) -> CalculatedDataDocumentIt return CalculatedDataDocumentItem( calculated_data_name="A260/230", calculated_result=TQuantityValue( - value=_get_float(data, row, "260/230"), unit="unitless" + value=_get_float(data, row, "260/230"), unit=UNITLESS ), calculated_data_identifier=str(uuid.uuid4()), data_source_aggregate_document=DataSourceAggregateDocument1( diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json index 9b544478d..0a35fe497 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example01.json @@ -7,7 +7,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "3c512b3d-3c87-4af4-9519-b0a583504493", + "measurement identifier": "430f01e9-cc6e-465a-bbdd-08b49e8c0438", "device control aggregate document": { "device control document": [ { @@ -38,7 +38,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "89c03566-fee8-4211-9f8a-e549eb48b3f5", + "measurement identifier": "7d7460f6-256e-4bb8-afb9-06174818b430", "device control aggregate document": { "device control document": [ { @@ -69,7 +69,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "a91b24c3-5869-42a9-827d-ad34313725b4", + "measurement identifier": "5e4d6700-d18a-4050-8bff-8edb89dc236c", "device control aggregate document": { "device control document": [ { @@ -100,7 +100,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "17e9aa39-1e45-4e77-a4b9-d5a6990f9cb5", + "measurement identifier": "58ce8a00-ac62-4ed2-8473-cc30dc363768", "device control aggregate document": { "device control document": [ { @@ -131,7 +131,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "26368cec-872f-474c-b0d7-9885958e7270", + "measurement identifier": "a8ec2a41-e1dc-4d39-b2da-064843090a38", "device control aggregate document": { "device control document": [ { @@ -162,7 +162,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "47d52810-5fab-48a7-9ec0-c95f4a61498d", + "measurement identifier": "56286814-7a62-460d-8416-3455702fe48a", "device control aggregate document": { "device control document": [ { @@ -193,7 +193,7 @@ "measurement time": "2020-05-26T15:36:00+00:00", "measurement document": [ { - "measurement identifier": "c08dec47-3eed-4dff-8d8d-2f631dddada9", + "measurement identifier": "8f34f0ca-892e-42b4-896b-89e651cafbee", "device control aggregate document": { "device control document": [ { @@ -235,141 +235,141 @@ "calculated data name": "A260/280", "calculated result": { "value": 0.59, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "467410fd-df22-4f71-918b-d6fd6ac8ba85", + "data source identifier": "591bb76c-04fa-4153-98af-1839d7e2d764", "data source feature": "absorbance" }, { - "data source identifier": "3c512b3d-3c87-4af4-9519-b0a583504493", + "data source identifier": "430f01e9-cc6e-465a-bbdd-08b49e8c0438", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ba9f2077-c636-4dea-b98d-d66b6b0c60da" + "calculated data identifier": "cecacb28-72e2-48f1-97b8-75cead96b012" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.58, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "3e6613d9-6f29-43ea-b887-7221e9a87a2c", + "data source identifier": "12967f83-fb82-4f84-8b0c-406cb54be4d2", "data source feature": "absorbance" }, { - "data source identifier": "89c03566-fee8-4211-9f8a-e549eb48b3f5", + "data source identifier": "7d7460f6-256e-4bb8-afb9-06174818b430", "data source feature": "absorbance" } ] }, - "calculated data identifier": "39681398-fb24-4150-aae9-f0c351baffb0" + "calculated data identifier": "ff677c30-e3ef-4dcb-945a-5d1d51d76ab7" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.57, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "ee76db3c-b461-4a0a-a664-b4885ae6d0fd", + "data source identifier": "9a42e128-3b3a-407b-91ba-2bb79cc5076c", "data source feature": "absorbance" }, { - "data source identifier": "a91b24c3-5869-42a9-827d-ad34313725b4", + "data source identifier": "5e4d6700-d18a-4050-8bff-8edb89dc236c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "a7bda336-30a5-414f-803d-b176dce10453" + "calculated data identifier": "4e86d045-abfb-4e6d-acc8-5830b06a3813" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.57, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "068a951c-22f2-4c45-9313-c23b13b1b79b", + "data source identifier": "7c2b4e1d-36d6-4ff8-b8d2-d2145df415c9", "data source feature": "absorbance" }, { - "data source identifier": "17e9aa39-1e45-4e77-a4b9-d5a6990f9cb5", + "data source identifier": "58ce8a00-ac62-4ed2-8473-cc30dc363768", "data source feature": "absorbance" } ] }, - "calculated data identifier": "793c3d16-d7bc-4fea-a485-510ba97588ad" + "calculated data identifier": "77c64b2f-7ef3-4dce-8519-b51eafc202a9" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.58, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "9fac9675-1982-434b-a32c-d54009e22dcb", + "data source identifier": "8993093a-f56e-4bb9-ab9a-87316dde6627", "data source feature": "absorbance" }, { - "data source identifier": "26368cec-872f-474c-b0d7-9885958e7270", + "data source identifier": "a8ec2a41-e1dc-4d39-b2da-064843090a38", "data source feature": "absorbance" } ] }, - "calculated data identifier": "66adec4c-37ef-4432-8e52-7b739c8a5bcb" + "calculated data identifier": "8caf2cc6-705e-4a2e-b749-bcbabffac49d" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.58, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "9f2a2b45-2f98-46a9-8837-13597fcef25e", + "data source identifier": "ac740796-a949-4d55-8b16-31c85fd34fff", "data source feature": "absorbance" }, { - "data source identifier": "47d52810-5fab-48a7-9ec0-c95f4a61498d", + "data source identifier": "56286814-7a62-460d-8416-3455702fe48a", "data source feature": "absorbance" } ] }, - "calculated data identifier": "cbd38234-260f-4cbd-b576-a43d873338e5" + "calculated data identifier": "205e8376-d053-43c6-b554-d7c3cfe87e88" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.59, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "625f6578-d4e9-46b8-8dc2-a4866547cb9b", + "data source identifier": "6e750fc1-450c-4fd1-89b7-fda24a0c66db", "data source feature": "absorbance" }, { - "data source identifier": "c08dec47-3eed-4dff-8d8d-2f631dddada9", + "data source identifier": "8f34f0ca-892e-42b4-896b-89e651cafbee", "data source feature": "absorbance" } ] }, - "calculated data identifier": "214129a0-1182-4443-92e3-8fc60998181f" + "calculated data identifier": "30d73e76-c75b-4385-b5a8-76c4eac18333" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json index 6575abd39..5088f3f5b 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example02.json @@ -7,7 +7,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "0e44adc2-77fd-4cea-8fe8-39ddfc8b5bc3", + "measurement identifier": "1c6035e8-bfa2-4517-bfa6-20fcdb3e9bd8", "device control aggregate document": { "device control document": [ { @@ -37,7 +37,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "a708eb99-ab32-4638-86c7-02b5afe5ff97", + "measurement identifier": "aef96986-c941-4a8f-bf74-0788d618890e", "device control aggregate document": { "device control document": [ { @@ -67,7 +67,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "49729556-b4f5-4ee0-9e27-7d2c6501f4d9", + "measurement identifier": "dbf717e2-360f-4d11-8f82-033cd1046e9b", "device control aggregate document": { "device control document": [ { @@ -97,7 +97,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "c81c70d0-a469-4dfe-aaea-cc22374d2901", + "measurement identifier": "5ee55ebd-808c-448c-a5a6-8fbcc7f196d5", "device control aggregate document": { "device control document": [ { @@ -127,7 +127,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "5935bb16-f671-4057-90f6-a4dd89fd6f07", + "measurement identifier": "68476cf5-b508-47b7-8e9c-1bfed5686d91", "device control aggregate document": { "device control document": [ { @@ -157,7 +157,7 @@ "measurement time": "2022-09-01T14:25:00+00:00", "measurement document": [ { - "measurement identifier": "bbac11c4-8fae-48ef-be7e-ae0072047665", + "measurement identifier": "1fcc4a91-5fcf-414a-90a4-54ff0989b4b7", "device control aggregate document": { "device control document": [ { @@ -187,7 +187,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "1cce3977-864a-49b9-8ef0-30645d05362d", + "measurement identifier": "5f20b426-c410-488b-9c34-e42b6558f511", "device control aggregate document": { "device control document": [ { @@ -217,7 +217,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "c4be71b2-7b26-4666-bb3a-d79ce87c77d4", + "measurement identifier": "7371e536-6416-4911-a477-4421ec124982", "device control aggregate document": { "device control document": [ { @@ -247,7 +247,7 @@ "measurement time": "2022-09-01T14:28:00+00:00", "measurement document": [ { - "measurement identifier": "856d6f0d-5fa5-4fad-a3a1-c8babddf6f13", + "measurement identifier": "0f01ede6-720f-4436-bb21-5700d0d87aea", "device control aggregate document": { "device control document": [ { @@ -277,7 +277,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "3e08676a-3fef-437d-a9f5-00e4be67ca64", + "measurement identifier": "cbf082cd-ff5c-49b5-99c5-47c6da27d19d", "device control aggregate document": { "device control document": [ { @@ -307,7 +307,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "0e1b709b-6f46-4fb7-8870-b102527b0c1c", + "measurement identifier": "2e8094cf-c95f-4412-90f8-af8b39e3e14f", "device control aggregate document": { "device control document": [ { @@ -337,7 +337,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "f446c75e-1e24-4b7e-b349-6c3684a88f58", + "measurement identifier": "3844eb8a-2f5d-4b1e-8efc-1106fba8105b", "device control aggregate document": { "device control document": [ { @@ -367,7 +367,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "d03129ba-fd8d-40b9-87ad-36e84f2a6219", + "measurement identifier": "196ce8fa-5fa4-4842-a631-57cec0cdd9e0", "device control aggregate document": { "device control document": [ { @@ -397,7 +397,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "536af872-625a-4c36-a331-ac2899344ebf", + "measurement identifier": "9860b421-2b02-46ae-b7d7-7ce4a724c85a", "device control aggregate document": { "device control document": [ { @@ -427,7 +427,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "3a4c7595-cee9-4f4e-9797-7b660583d5c6", + "measurement identifier": "b166c6f7-7ec9-458a-8ca1-3cebef1623fa", "device control aggregate document": { "device control document": [ { @@ -457,7 +457,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "ce7e299f-08af-431c-abab-3d7b30901a9c", + "measurement identifier": "13dc543f-592d-4aa4-8ad8-e26fcb763133", "device control aggregate document": { "device control document": [ { @@ -487,7 +487,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "6ee6fdaa-e74c-4d0c-a728-9aa0dc111816", + "measurement identifier": "46d3500b-0453-41c7-8776-04c5536cd6ed", "device control aggregate document": { "device control document": [ { @@ -517,7 +517,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "c4d67732-f195-4b9a-a1fa-5c322750477a", + "measurement identifier": "9bdd8ab9-2832-46da-b6f3-e0e02436e61c", "device control aggregate document": { "device control document": [ { @@ -547,7 +547,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "25210380-4fd4-4153-b8cb-35923aeafa51", + "measurement identifier": "64a9a0ba-dad0-4451-88b7-af758a432841", "device control aggregate document": { "device control document": [ { @@ -577,7 +577,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "755c7ca5-3c31-4638-854f-21557015ea91", + "measurement identifier": "c0d31b4a-35a6-4305-9dca-d8b50ffecc1e", "device control aggregate document": { "device control document": [ { @@ -607,7 +607,7 @@ "measurement time": "2022-09-01T14:39:00+00:00", "measurement document": [ { - "measurement identifier": "2747701c-d8e1-42d7-ae36-33565461560c", + "measurement identifier": "17980122-7267-48ba-bd33-0b95b759357d", "device control aggregate document": { "device control document": [ { @@ -637,7 +637,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "e882c17b-988d-481a-8a8f-9857b7a58ab9", + "measurement identifier": "155d304f-b947-4fce-af4e-4077efdf3d76", "device control aggregate document": { "device control document": [ { @@ -667,7 +667,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "fa23ea44-ad2d-46eb-9a9b-7e917f791ee3", + "measurement identifier": "d4d93b2b-d0fe-4d18-863f-e6a1fe11c63c", "device control aggregate document": { "device control document": [ { @@ -697,7 +697,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "c7f8da35-e1e5-4071-9b9c-0c6ab3666049", + "measurement identifier": "b2e22003-a1d0-4bda-acb2-23300371a2ae", "device control aggregate document": { "device control document": [ { @@ -727,7 +727,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "4c1b9662-8ce6-497d-b83c-06078a79f223", + "measurement identifier": "25a92fbf-5fd5-4f7f-bffb-3130ffa01b70", "device control aggregate document": { "device control document": [ { @@ -757,7 +757,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "fff52906-497a-4337-8f97-25c042394efd", + "measurement identifier": "9285457c-615c-40a4-b7c8-b60c759d0277", "device control aggregate document": { "device control document": [ { @@ -787,7 +787,7 @@ "measurement time": "2022-09-01T14:42:00+00:00", "measurement document": [ { - "measurement identifier": "4abe5575-5dfe-4cae-8f03-af6f0f5f83ea", + "measurement identifier": "8cad517f-f5ed-4e3c-96f5-6dbb8b02a342", "device control aggregate document": { "device control document": [ { @@ -817,7 +817,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "ed69be7d-7e90-4789-8ac8-63afede7b8f3", + "measurement identifier": "0c591705-eda0-4123-a42e-456fef1653be", "device control aggregate document": { "device control document": [ { @@ -847,7 +847,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "d35ab803-e501-46ee-aa5d-1c6911c172d7", + "measurement identifier": "b22f9d0b-f275-4c8f-9269-287c27251b72", "device control aggregate document": { "device control document": [ { @@ -877,7 +877,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "76a12db2-391b-4e54-b158-fd6ef7ac4816", + "measurement identifier": "0d7067c9-8477-4381-babd-77d8208c4d21", "device control aggregate document": { "device control document": [ { @@ -907,7 +907,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "44609afc-758f-4de7-a509-7793b68a771b", + "measurement identifier": "da9373bc-3898-49be-8169-6db6490907e4", "device control aggregate document": { "device control document": [ { @@ -937,7 +937,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "dc0fd705-83c7-46f8-8d98-7548229ef8c3", + "measurement identifier": "ce73a9e4-2142-4c5b-8e07-05b16d73490c", "device control aggregate document": { "device control document": [ { @@ -967,7 +967,7 @@ "measurement time": "2022-09-01T14:44:00+00:00", "measurement document": [ { - "measurement identifier": "0c49f7b5-0f9c-43e3-a7ad-ce1961dd276e", + "measurement identifier": "4d0236b4-2e03-4be7-b0c1-755ee3679676", "device control aggregate document": { "device control document": [ { @@ -997,7 +997,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "3c7d373c-9fb4-4f2b-93be-189b3cbe3f22", + "measurement identifier": "66e2681b-25b1-4317-ae81-4f1cadaa62ef", "device control aggregate document": { "device control document": [ { @@ -1027,7 +1027,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "0d6a0ba5-35c2-48ae-a1d0-b4ce00c91236", + "measurement identifier": "d99ee65f-269e-4de3-890a-a8b0608d2307", "device control aggregate document": { "device control document": [ { @@ -1057,7 +1057,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "4ad6c1d4-616e-4601-892e-d7135195a749", + "measurement identifier": "c96cf316-ac51-4269-a231-989f218ae48f", "device control aggregate document": { "device control document": [ { @@ -1087,7 +1087,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "1dfcc44e-d8e1-4742-ac84-46e8b66cba59", + "measurement identifier": "65ba66a6-72a1-4ac2-a29b-dfc9e0f47853", "device control aggregate document": { "device control document": [ { @@ -1117,7 +1117,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "3c5b14b0-baab-498e-bf75-a4297f5bb16e", + "measurement identifier": "70fb186d-b39b-4605-bded-1aa714e6b5b9", "device control aggregate document": { "device control document": [ { @@ -1147,7 +1147,7 @@ "measurement time": "2022-09-01T14:45:00+00:00", "measurement document": [ { - "measurement identifier": "ff319d88-4162-4485-bc1b-fc524eeae15d", + "measurement identifier": "5b750792-b046-46a9-8938-606fd7e09b3c", "device control aggregate document": { "device control document": [ { @@ -1188,781 +1188,781 @@ "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "32a2a79b-f582-43ad-80e8-461d47759989", + "data source identifier": "2d94a03f-9a27-433c-9edd-bcbabc624ec9", "data source feature": "absorbance" }, { - "data source identifier": "0e44adc2-77fd-4cea-8fe8-39ddfc8b5bc3", + "data source identifier": "1c6035e8-bfa2-4517-bfa6-20fcdb3e9bd8", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7d9163e3-3473-4441-95e7-3168194ce9ec" + "calculated data identifier": "a0701a19-d42f-4725-983a-5a1ac34d14be" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "d3dcdda4-8ecd-4793-b8a2-cc2b8a400a75", + "data source identifier": "ec667fdd-53c6-4069-ae56-5a14e05c7d10", "data source feature": "absorbance" }, { - "data source identifier": "a708eb99-ab32-4638-86c7-02b5afe5ff97", + "data source identifier": "aef96986-c941-4a8f-bf74-0788d618890e", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8fb0c164-1e8d-4a37-9889-210363b2d986" + "calculated data identifier": "189933f5-ef6e-4e0a-8cdf-5367ad9da623" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "82435c3a-61af-45d2-8ad7-b333b32b8073", + "data source identifier": "14be0bc3-21c8-4986-bd6d-1b2ddb773f93", "data source feature": "absorbance" }, { - "data source identifier": "49729556-b4f5-4ee0-9e27-7d2c6501f4d9", + "data source identifier": "dbf717e2-360f-4d11-8f82-033cd1046e9b", "data source feature": "absorbance" } ] }, - "calculated data identifier": "bf1d74ca-6f0b-4810-961b-3b7d62004f8b" + "calculated data identifier": "b27d7ad7-636f-4882-886a-2def262d2e51" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "ba618e31-bbd3-470d-8f54-476c6e71e6a4", + "data source identifier": "0950dbaa-4c37-4288-adc6-6c60b875cd71", "data source feature": "absorbance" }, { - "data source identifier": "c81c70d0-a469-4dfe-aaea-cc22374d2901", + "data source identifier": "5ee55ebd-808c-448c-a5a6-8fbcc7f196d5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "659c3298-5566-41e7-b8ee-a420e00a28d1" + "calculated data identifier": "ed81ab0a-69e4-4abf-ad17-b2798e88f0fd" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "a208da44-0860-476f-851d-23223102830b", + "data source identifier": "70dcec2b-0a30-4c8e-8da0-1c8f874a05ab", "data source feature": "absorbance" }, { - "data source identifier": "5935bb16-f671-4057-90f6-a4dd89fd6f07", + "data source identifier": "68476cf5-b508-47b7-8e9c-1bfed5686d91", "data source feature": "absorbance" } ] }, - "calculated data identifier": "5c73ea44-84de-439d-8fc2-770f8b682d05" + "calculated data identifier": "2760787b-1399-40e8-8c39-4451d014c0d7" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "6fc6ecb3-836d-42d3-8486-ef8a4a72bc08", + "data source identifier": "526b22fb-cdc3-46eb-a5cd-3dec316cd81d", "data source feature": "absorbance" }, { - "data source identifier": "bbac11c4-8fae-48ef-be7e-ae0072047665", + "data source identifier": "1fcc4a91-5fcf-414a-90a4-54ff0989b4b7", "data source feature": "absorbance" } ] }, - "calculated data identifier": "5ba85caf-6d3c-47b6-9f9b-efc56676a489" + "calculated data identifier": "b9a0529b-9d3d-4599-91c1-cf4d42670ecb" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "d57756d5-90a0-4cd6-b914-0fc62009ef3e", + "data source identifier": "cfb69db9-246d-4f76-8933-1e13812a4487", "data source feature": "absorbance" }, { - "data source identifier": "1cce3977-864a-49b9-8ef0-30645d05362d", + "data source identifier": "5f20b426-c410-488b-9c34-e42b6558f511", "data source feature": "absorbance" } ] }, - "calculated data identifier": "286e1083-dcd9-4b83-8c0e-7913ee3bf63e" + "calculated data identifier": "b2fa3a78-502d-48bf-b012-1691166b3e0e" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "0fb28c12-940f-4c66-bd52-409c8987bf85", + "data source identifier": "417061f9-0208-410c-b861-d336ad1db91d", "data source feature": "absorbance" }, { - "data source identifier": "c4be71b2-7b26-4666-bb3a-d79ce87c77d4", + "data source identifier": "7371e536-6416-4911-a477-4421ec124982", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f52a9112-7dad-46ab-aad4-f654d750907b" + "calculated data identifier": "9ca9214d-76d6-4c66-ad45-4043735d4199" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "d850f2ed-18b5-4424-87f1-465d6e5b0e25", + "data source identifier": "f70b7694-c27a-439f-876d-b11058f8fa9f", "data source feature": "absorbance" }, { - "data source identifier": "856d6f0d-5fa5-4fad-a3a1-c8babddf6f13", + "data source identifier": "0f01ede6-720f-4436-bb21-5700d0d87aea", "data source feature": "absorbance" } ] }, - "calculated data identifier": "80e8a16c-d695-4ef4-9027-91964a5edb3e" + "calculated data identifier": "47e22359-e893-43bf-ab6d-ecd2e5845565" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.77, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "58d2c8d3-4718-4974-8829-bd3b4e35d1ad", + "data source identifier": "33d19798-71e9-4f53-8b63-de7250aca5a2", "data source feature": "absorbance" }, { - "data source identifier": "3e08676a-3fef-437d-a9f5-00e4be67ca64", + "data source identifier": "cbf082cd-ff5c-49b5-99c5-47c6da27d19d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8fbc5024-3a2f-43fb-877e-6fcaa28f65cb" + "calculated data identifier": "c1409528-8215-40b9-9e00-f7e7096d7ed2" }, { "calculated data name": "A260/280", "calculated result": { "value": -0.06, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "b8f5f47e-7a46-4a0a-aed3-db340231b5a4", + "data source identifier": "62ec0c48-228c-496d-9a08-2965dfaf1a45", "data source feature": "absorbance" }, { - "data source identifier": "0e1b709b-6f46-4fb7-8870-b102527b0c1c", + "data source identifier": "2e8094cf-c95f-4412-90f8-af8b39e3e14f", "data source feature": "absorbance" } ] }, - "calculated data identifier": "c15915c9-9dac-4f78-ab29-2dbe6e1add88" + "calculated data identifier": "7ae6cd21-1dc9-4250-a340-77662cdbb610" }, { "calculated data name": "A260/280", "calculated result": { "value": -0.18, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "11191f80-2162-4dab-9d7b-f2dacf605a9f", + "data source identifier": "2002c906-7120-47f7-8c9e-c329c7f26e46", "data source feature": "absorbance" }, { - "data source identifier": "f446c75e-1e24-4b7e-b349-6c3684a88f58", + "data source identifier": "3844eb8a-2f5d-4b1e-8efc-1106fba8105b", "data source feature": "absorbance" } ] }, - "calculated data identifier": "021cab1f-673c-477f-85a7-558af1b26883" + "calculated data identifier": "3a789492-e680-4e10-a3d7-341365cd0268" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.14, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "894a172d-1a37-4460-b94f-5ee1ed276ef8", + "data source identifier": "2cb0e233-0104-40ea-811a-cd16e24d0f9a", "data source feature": "absorbance" }, { - "data source identifier": "d03129ba-fd8d-40b9-87ad-36e84f2a6219", + "data source identifier": "196ce8fa-5fa4-4842-a631-57cec0cdd9e0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f3fb816a-86ae-481e-950c-200dbe06296f" + "calculated data identifier": "68bb373c-55f7-4705-a72e-2c81152db87e" }, { "calculated data name": "A260/280", "calculated result": { "value": 3.01, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "3f5938f5-70df-49f9-a222-807e15b329b4", + "data source identifier": "3389b51c-2c42-4124-9bed-54be4fec3a70", "data source feature": "absorbance" }, { - "data source identifier": "536af872-625a-4c36-a331-ac2899344ebf", + "data source identifier": "9860b421-2b02-46ae-b7d7-7ce4a724c85a", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f651d13b-3809-4fd5-ab85-fc8fab515c4c" + "calculated data identifier": "c3c41180-87af-4c8c-b0c3-c23efd6288a3" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.7, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "da5d8700-9976-49c9-8608-7a372a21fe3e", + "data source identifier": "17ef520e-f1fd-460c-8608-8fbd9d539648", "data source feature": "absorbance" }, { - "data source identifier": "3a4c7595-cee9-4f4e-9797-7b660583d5c6", + "data source identifier": "b166c6f7-7ec9-458a-8ca1-3cebef1623fa", "data source feature": "absorbance" } ] }, - "calculated data identifier": "208ff9b1-4190-44ae-a389-bedfb4ce2e51" + "calculated data identifier": "eb21e6e8-e697-41ad-ad60-3072f396a0ba" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "9d2ea147-aa82-44aa-90a7-95ce812d8bbf", + "data source identifier": "b4100814-0bf0-4c4f-a19e-24bc323bc78a", "data source feature": "absorbance" }, { - "data source identifier": "ce7e299f-08af-431c-abab-3d7b30901a9c", + "data source identifier": "13dc543f-592d-4aa4-8ad8-e26fcb763133", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ad796742-3f9a-4798-b579-4a0c809afba2" + "calculated data identifier": "1d047f56-93fd-4228-866e-9a4b74496a13" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "db61dd55-7e72-444b-bbf0-3a5952edffff", + "data source identifier": "a6b7f46b-7730-4b9f-bb35-dd2e1b9deded", "data source feature": "absorbance" }, { - "data source identifier": "6ee6fdaa-e74c-4d0c-a728-9aa0dc111816", + "data source identifier": "46d3500b-0453-41c7-8776-04c5536cd6ed", "data source feature": "absorbance" } ] }, - "calculated data identifier": "4a646697-fe62-4bf6-86ae-fad6f6b97004" + "calculated data identifier": "a4910171-1de2-402e-9270-e099eaff60dc" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2f9677e5-c74d-4888-a15d-96c361491add", + "data source identifier": "8b586482-00d2-4c4a-afeb-ec352398c136", "data source feature": "absorbance" }, { - "data source identifier": "c4d67732-f195-4b9a-a1fa-5c322750477a", + "data source identifier": "9bdd8ab9-2832-46da-b6f3-e0e02436e61c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9dd3d626-272f-4c53-8e5c-a6e93c3b3718" + "calculated data identifier": "7ca149fc-859c-42f1-93fd-1b7fb5f44773" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2f6e76be-a705-464b-bb82-4b585ebfb618", + "data source identifier": "086b3676-9d52-4d26-b342-25f7f072de6e", "data source feature": "absorbance" }, { - "data source identifier": "25210380-4fd4-4153-b8cb-35923aeafa51", + "data source identifier": "64a9a0ba-dad0-4451-88b7-af758a432841", "data source feature": "absorbance" } ] }, - "calculated data identifier": "a6907168-b24c-45d3-a576-5252d7cf1730" + "calculated data identifier": "d6f05835-0cf3-4e0e-872a-8b65c83a42d8" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "14e5671c-05d6-4a35-8f7a-89d31a5d1f7b", + "data source identifier": "3d2a1b59-612c-489f-9a85-d9109786d083", "data source feature": "absorbance" }, { - "data source identifier": "755c7ca5-3c31-4638-854f-21557015ea91", + "data source identifier": "c0d31b4a-35a6-4305-9dca-d8b50ffecc1e", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8c3eee72-a589-44d7-a540-a62d4ebe753e" + "calculated data identifier": "5ee27f0b-9b34-47c5-8b07-6ccfffa94dd6" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "45818431-3952-4109-ab16-7bde2ff92c5d", + "data source identifier": "ce15d6f2-29ba-4d2c-9265-cab975dc9e96", "data source feature": "absorbance" }, { - "data source identifier": "2747701c-d8e1-42d7-ae36-33565461560c", + "data source identifier": "17980122-7267-48ba-bd33-0b95b759357d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fef1df78-49de-4445-8f48-dbbea691e86f" + "calculated data identifier": "ef6deb96-3156-4772-88f2-e99988fcb534" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "a62c0693-5994-41f7-9fba-ed98b5d97cb6", + "data source identifier": "dfedf29e-4435-44cf-8f55-f7a6c9cdc2a4", "data source feature": "absorbance" }, { - "data source identifier": "e882c17b-988d-481a-8a8f-9857b7a58ab9", + "data source identifier": "155d304f-b947-4fce-af4e-4077efdf3d76", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3ff3e100-b28a-4e5f-bb1c-ae2637044984" + "calculated data identifier": "86109c54-f682-4637-87c1-29f835738bf9" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8e324679-5356-435b-a17a-9c14022febb3", + "data source identifier": "42aee082-3a1e-4464-a717-ec6c87194ac9", "data source feature": "absorbance" }, { - "data source identifier": "fa23ea44-ad2d-46eb-9a9b-7e917f791ee3", + "data source identifier": "d4d93b2b-d0fe-4d18-863f-e6a1fe11c63c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d770b777-cc5b-404e-87ff-6ba587ed9c58" + "calculated data identifier": "c08ac793-426d-4b67-841c-cc9e52966053" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "33e82e41-6310-46c0-a2f3-b70d2046e125", + "data source identifier": "7e7b61e6-d2eb-4032-900c-804752bff437", "data source feature": "absorbance" }, { - "data source identifier": "c7f8da35-e1e5-4071-9b9c-0c6ab3666049", + "data source identifier": "b2e22003-a1d0-4bda-acb2-23300371a2ae", "data source feature": "absorbance" } ] }, - "calculated data identifier": "b90ffca0-f202-436b-996c-25858a2dff6d" + "calculated data identifier": "fc73057a-f953-44f3-b873-5c290f37b024" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.55, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "5fb59173-d150-4768-add4-2990f5065184", + "data source identifier": "47adbee4-1663-483c-865f-1c0e29547bd6", "data source feature": "absorbance" }, { - "data source identifier": "4c1b9662-8ce6-497d-b83c-06078a79f223", + "data source identifier": "25a92fbf-5fd5-4f7f-bffb-3130ffa01b70", "data source feature": "absorbance" } ] }, - "calculated data identifier": "fe1ef6cf-898e-4093-ab7e-13011e9096ae" + "calculated data identifier": "dd1d6352-4061-4709-a602-19916f17d5a5" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.55, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "93c99e42-68e9-4981-bb99-7f89acbb5ab1", + "data source identifier": "fca83b1d-f7ae-47f9-9064-fd81358704f0", "data source feature": "absorbance" }, { - "data source identifier": "fff52906-497a-4337-8f97-25c042394efd", + "data source identifier": "9285457c-615c-40a4-b7c8-b60c759d0277", "data source feature": "absorbance" } ] }, - "calculated data identifier": "52e64079-256e-4ed1-a144-5c5c641bdbf3" + "calculated data identifier": "37b13ce7-1947-43be-bca6-faa5a1270dd2" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.55, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "94ec72a6-2d3a-49c4-8b35-cba4d3a1b661", + "data source identifier": "0a4066be-62c7-4f10-ba24-159ff2f6b770", "data source feature": "absorbance" }, { - "data source identifier": "4abe5575-5dfe-4cae-8f03-af6f0f5f83ea", + "data source identifier": "8cad517f-f5ed-4e3c-96f5-6dbb8b02a342", "data source feature": "absorbance" } ] }, - "calculated data identifier": "81938272-daa3-401d-b7f0-e126d35f7487" + "calculated data identifier": "4760b107-cc1a-44d8-8e24-753ab10b45b8" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.55, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "cf705073-4c4a-42a6-b182-3e3a119a9797", + "data source identifier": "48bebeec-52d1-4ccf-a4a9-de0f92c9332f", "data source feature": "absorbance" }, { - "data source identifier": "ed69be7d-7e90-4789-8ac8-63afede7b8f3", + "data source identifier": "0c591705-eda0-4123-a42e-456fef1653be", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9b1282eb-1663-42db-943c-3991da0292c5" + "calculated data identifier": "4ef794f8-2bac-435d-a55f-849f43a9c501" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "aea628e2-8488-425a-92be-1c266d94579d", + "data source identifier": "be9de735-3d33-4737-8a83-fdfd815e7115", "data source feature": "absorbance" }, { - "data source identifier": "d35ab803-e501-46ee-aa5d-1c6911c172d7", + "data source identifier": "b22f9d0b-f275-4c8f-9269-287c27251b72", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d0e2ce7e-0eb4-41bf-a0f5-d9fa60792fce" + "calculated data identifier": "e3e8e133-0b7f-41ca-b9a2-59fdc1b2fe3b" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.54, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "df499383-55e2-45e5-8f05-74a3c966c153", + "data source identifier": "00485250-3ad7-4dd5-90f4-5f8c86114a5d", "data source feature": "absorbance" }, { - "data source identifier": "76a12db2-391b-4e54-b158-fd6ef7ac4816", + "data source identifier": "0d7067c9-8477-4381-babd-77d8208c4d21", "data source feature": "absorbance" } ] }, - "calculated data identifier": "25f93914-8226-4130-a1ee-cea64305c0ab" + "calculated data identifier": "666352bb-776a-49f0-9cd1-9ff12fbf6171" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "bc915e2c-00b7-4500-bf06-d1ee5e33c971", + "data source identifier": "33cf3065-8178-4847-af10-386169dccc67", "data source feature": "absorbance" }, { - "data source identifier": "44609afc-758f-4de7-a509-7793b68a771b", + "data source identifier": "da9373bc-3898-49be-8169-6db6490907e4", "data source feature": "absorbance" } ] }, - "calculated data identifier": "376d68dd-5cef-43ce-999d-c5fe6b86e009" + "calculated data identifier": "451d1e85-6357-4a0a-ad17-e552ba2c05fe" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "4afe4b9c-6015-43a4-ba32-95e65c9cd9b6", + "data source identifier": "d4402245-4fdd-41c7-bdc8-eb95de30f344", "data source feature": "absorbance" }, { - "data source identifier": "dc0fd705-83c7-46f8-8d98-7548229ef8c3", + "data source identifier": "ce73a9e4-2142-4c5b-8e07-05b16d73490c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "76f701a9-5836-4948-bb4c-9307184a41a7" + "calculated data identifier": "32b11b57-40d6-4cc5-9c76-71bcc1a77b74" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "de04fffa-6157-48d2-9fa6-da9449fa3d58", + "data source identifier": "de58f32a-98f6-4abd-88f9-bffa13655650", "data source feature": "absorbance" }, { - "data source identifier": "0c49f7b5-0f9c-43e3-a7ad-ce1961dd276e", + "data source identifier": "4d0236b4-2e03-4be7-b0c1-755ee3679676", "data source feature": "absorbance" } ] }, - "calculated data identifier": "41a44a04-c8f7-40b0-8c18-b226975de003" + "calculated data identifier": "701ced90-00cf-4bb5-ae61-59fe0a5ace73" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "ef3c7ac8-19eb-4a72-b69e-562027e25b45", + "data source identifier": "59da030d-c067-4120-ac0c-8ad35c0c581b", "data source feature": "absorbance" }, { - "data source identifier": "3c7d373c-9fb4-4f2b-93be-189b3cbe3f22", + "data source identifier": "66e2681b-25b1-4317-ae81-4f1cadaa62ef", "data source feature": "absorbance" } ] }, - "calculated data identifier": "94f60767-f73d-4235-b51d-0ffcf6ad10e7" + "calculated data identifier": "4b986e4e-c25b-40e2-8438-2edf6c158add" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "e388ecf8-1195-4555-9e72-f4faced79088", + "data source identifier": "270ef7a4-56ad-43e1-adc8-3d29c451010a", "data source feature": "absorbance" }, { - "data source identifier": "0d6a0ba5-35c2-48ae-a1d0-b4ce00c91236", + "data source identifier": "d99ee65f-269e-4de3-890a-a8b0608d2307", "data source feature": "absorbance" } ] }, - "calculated data identifier": "c1a5b79a-8e56-4be7-b787-ece81ffb32c4" + "calculated data identifier": "0a181fee-8284-4a93-8504-feeb6f900a42" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8edba720-2209-4c48-ba5e-18524c435d8e", + "data source identifier": "28c02a04-08a9-48c2-81bc-4c95923f48ad", "data source feature": "absorbance" }, { - "data source identifier": "4ad6c1d4-616e-4601-892e-d7135195a749", + "data source identifier": "c96cf316-ac51-4269-a231-989f218ae48f", "data source feature": "absorbance" } ] }, - "calculated data identifier": "40107fa6-934a-4356-9a55-6a5fa4c7972c" + "calculated data identifier": "476b3b19-4fae-44f9-8eda-36e0a1a9cccd" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2c1c3821-d901-45cb-b1c5-0cb52d63790f", + "data source identifier": "0aa1b01a-6afb-48f6-a0ec-3b46e777fa70", "data source feature": "absorbance" }, { - "data source identifier": "1dfcc44e-d8e1-4742-ac84-46e8b66cba59", + "data source identifier": "65ba66a6-72a1-4ac2-a29b-dfc9e0f47853", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2daf0600-6c1d-4310-812d-094f85ff1528" + "calculated data identifier": "3003ce2f-fccc-4832-8a5d-cfdeba5316d0" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "a998e6f1-7b3d-44ee-8ea0-74268fa8ee33", + "data source identifier": "3e1dc20d-ccd3-4cc6-b1f0-d372fcb59c93", "data source feature": "absorbance" }, { - "data source identifier": "3c5b14b0-baab-498e-bf75-a4297f5bb16e", + "data source identifier": "70fb186d-b39b-4605-bded-1aa714e6b5b9", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9dbcd9db-4563-46de-bd04-665547c98611" + "calculated data identifier": "c14010f6-77f9-4bd5-bfa4-712241784a47" }, { "calculated data name": "A260/280", "calculated result": { "value": 0.53, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2e9badfa-f693-4931-80d2-2a455f8547b3", + "data source identifier": "06fe2915-4eb0-4dbb-8138-f212cb0306ad", "data source feature": "absorbance" }, { - "data source identifier": "ff319d88-4162-4485-bc1b-fc524eeae15d", + "data source identifier": "5b750792-b046-46a9-8938-606fd7e09b3c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "a0be4294-d876-419e-bdd5-55c1cf186dd5" + "calculated data identifier": "cb980d9e-606a-4822-9ac6-e22b518ac430" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json index a37746fca..379df12ef 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example03.json @@ -7,7 +7,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", + "measurement identifier": "307bc125-8b2f-4d8c-ba1c-bdd462ce1f02", "device control aggregate document": { "device control document": [ { @@ -33,7 +33,7 @@ } }, { - "measurement identifier": "d2d61680-8a6b-4778-a6b0-b93977564e57", + "measurement identifier": "4de2d578-5fec-443c-ac3a-bdf2b75f3978", "device control aggregate document": { "device control document": [ { @@ -64,7 +64,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "081c3780-3923-4399-9c23-d3e881c2e001", + "measurement identifier": "e711d811-deee-415a-8211-ff5d214f06da", "device control aggregate document": { "device control document": [ { @@ -90,7 +90,7 @@ } }, { - "measurement identifier": "8539d4a7-fc24-4d8c-92a6-c6cdecae1670", + "measurement identifier": "0eb3e1cb-e584-430a-b400-677c468edc72", "device control aggregate document": { "device control document": [ { @@ -121,7 +121,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", + "measurement identifier": "2053b368-3cea-4b74-800d-df37e1ce3611", "device control aggregate document": { "device control document": [ { @@ -147,7 +147,7 @@ } }, { - "measurement identifier": "12cc86d3-9e0e-4953-b17f-5aba924ce58f", + "measurement identifier": "5b03bbfc-a796-4652-bb02-8f0a76ee9b00", "device control aggregate document": { "device control document": [ { @@ -178,7 +178,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", + "measurement identifier": "ad8eaf13-ba05-4b4e-849b-67c53ddadcb1", "device control aggregate document": { "device control document": [ { @@ -204,7 +204,7 @@ } }, { - "measurement identifier": "051765cc-3b35-4dfa-9d4d-d9017f9710ba", + "measurement identifier": "a912320e-0363-4f04-8c59-de58a98ff52c", "device control aggregate document": { "device control document": [ { @@ -235,7 +235,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "3b239467-e501-4897-9344-10e0b0618541", + "measurement identifier": "64986365-887c-40b5-a494-2f462f5e363c", "device control aggregate document": { "device control document": [ { @@ -261,7 +261,7 @@ } }, { - "measurement identifier": "73f57a50-118a-4cf3-bfbd-29110fb28cc9", + "measurement identifier": "51bb2074-9ff3-4fc1-8d64-9b015012a06a", "device control aggregate document": { "device control document": [ { @@ -292,7 +292,7 @@ "measurement time": "2022-04-14T15:48:00+00:00", "measurement document": [ { - "measurement identifier": "c29728d4-1c57-4213-a705-72d691cebe51", + "measurement identifier": "0e43c097-b06d-4cc8-831c-12a9783e1127", "device control aggregate document": { "device control document": [ { @@ -318,7 +318,7 @@ } }, { - "measurement identifier": "b4d21fca-79cb-4077-8354-4cc83381dd40", + "measurement identifier": "dbdb65c3-02ff-4726-bfff-b2dab48c1865", "device control aggregate document": { "device control document": [ { @@ -360,217 +360,217 @@ "calculated data name": "A260/280", "calculated result": { "value": 2.26, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", + "data source identifier": "307bc125-8b2f-4d8c-ba1c-bdd462ce1f02", "data source feature": "absorbance" }, { - "data source identifier": "d2d61680-8a6b-4778-a6b0-b93977564e57", + "data source identifier": "4de2d578-5fec-443c-ac3a-bdf2b75f3978", "data source feature": "absorbance" } ] }, - "calculated data identifier": "3fa3786b-23e3-4c55-99cf-cda49a466de9" + "calculated data identifier": "6bc2dea6-9db2-4122-9d2d-8094902f28c9" }, { "calculated data name": "A260/230", "calculated result": { "value": 1.39, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "2ac6b437-2fcd-495a-9637-29883f5e383e", + "data source identifier": "307bc125-8b2f-4d8c-ba1c-bdd462ce1f02", "data source feature": "absorbance" } ] }, - "calculated data identifier": "759fba2c-3b7b-44b6-888c-027618e50eee" + "calculated data identifier": "cf10021d-deb9-4dcc-ac26-ab9936300bda" }, { "calculated data name": "A260/280", "calculated result": { "value": 2.05, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "081c3780-3923-4399-9c23-d3e881c2e001", + "data source identifier": "e711d811-deee-415a-8211-ff5d214f06da", "data source feature": "absorbance" }, { - "data source identifier": "8539d4a7-fc24-4d8c-92a6-c6cdecae1670", + "data source identifier": "0eb3e1cb-e584-430a-b400-677c468edc72", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8a0641e4-1a17-4286-b3b9-57450df6f6d7" + "calculated data identifier": "b4043346-5520-4fa2-916e-60992f80ec11" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.44, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "081c3780-3923-4399-9c23-d3e881c2e001", + "data source identifier": "e711d811-deee-415a-8211-ff5d214f06da", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2aa68f5b-4819-4093-aa45-f50e14def7d1" + "calculated data identifier": "a9c5fedd-5d5e-491a-845f-b76b1b2ece66" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.99, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", + "data source identifier": "2053b368-3cea-4b74-800d-df37e1ce3611", "data source feature": "absorbance" }, { - "data source identifier": "12cc86d3-9e0e-4953-b17f-5aba924ce58f", + "data source identifier": "5b03bbfc-a796-4652-bb02-8f0a76ee9b00", "data source feature": "absorbance" } ] }, - "calculated data identifier": "488b517b-2588-482f-9f61-23b37e9df1af" + "calculated data identifier": "8dfc5265-c8fb-4044-9b72-356ea18ea19e" }, { "calculated data name": "A260/230", "calculated result": { "value": 26.94, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "ea9fdbad-e71f-4e3f-b4a2-80e5fb5269a0", + "data source identifier": "2053b368-3cea-4b74-800d-df37e1ce3611", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8d7fec93-1df1-461b-8c33-8a257bb762b8" + "calculated data identifier": "f6f16b1a-f6f0-4e97-a101-52671aa7ec1a" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.88, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", + "data source identifier": "ad8eaf13-ba05-4b4e-849b-67c53ddadcb1", "data source feature": "absorbance" }, { - "data source identifier": "051765cc-3b35-4dfa-9d4d-d9017f9710ba", + "data source identifier": "a912320e-0363-4f04-8c59-de58a98ff52c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9e0ab6b5-a695-45ba-8dc0-34a7c4b11dd6" + "calculated data identifier": "7eada7bc-dbb8-4af2-8e27-d8dc9b4f896b" }, { "calculated data name": "A260/230", "calculated result": { "value": 1.12, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "507bdd74-b984-4380-a601-0ca4b707f0a0", + "data source identifier": "ad8eaf13-ba05-4b4e-849b-67c53ddadcb1", "data source feature": "absorbance" } ] }, - "calculated data identifier": "f5ff2987-26e0-466b-a7f1-eedcc27a9f8a" + "calculated data identifier": "efba28b8-3a96-45dc-84ba-68f450b59110" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.79, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "3b239467-e501-4897-9344-10e0b0618541", + "data source identifier": "64986365-887c-40b5-a494-2f462f5e363c", "data source feature": "absorbance" }, { - "data source identifier": "73f57a50-118a-4cf3-bfbd-29110fb28cc9", + "data source identifier": "51bb2074-9ff3-4fc1-8d64-9b015012a06a", "data source feature": "absorbance" } ] }, - "calculated data identifier": "80824480-30a1-495c-9da2-262ca93e2c6c" + "calculated data identifier": "a19449a1-f5e4-4329-a5f1-556b48eee30b" }, { "calculated data name": "A260/230", "calculated result": { "value": 1.22, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "3b239467-e501-4897-9344-10e0b0618541", + "data source identifier": "64986365-887c-40b5-a494-2f462f5e363c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ea3eb3ba-ee28-4644-8859-fc1c136cbc44" + "calculated data identifier": "9b5ec17d-fb59-4fc7-8e34-baa1f630d73e" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.62, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "c29728d4-1c57-4213-a705-72d691cebe51", + "data source identifier": "0e43c097-b06d-4cc8-831c-12a9783e1127", "data source feature": "absorbance" }, { - "data source identifier": "b4d21fca-79cb-4077-8354-4cc83381dd40", + "data source identifier": "dbdb65c3-02ff-4726-bfff-b2dab48c1865", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ee26ee3b-9455-4ee9-a402-34b46336acdd" + "calculated data identifier": "3477bb6e-98f2-4202-a886-052f549740b5" }, { "calculated data name": "A260/230", "calculated result": { "value": 1.66, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "c29728d4-1c57-4213-a705-72d691cebe51", + "data source identifier": "0e43c097-b06d-4cc8-831c-12a9783e1127", "data source feature": "absorbance" } ] }, - "calculated data identifier": "26b2c012-e7b1-496a-9c9c-e2778d9d3e6b" + "calculated data identifier": "48464fe1-9cbb-4636-ae84-e454505d998d" } ] } diff --git a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json index 22ef997b6..289564e5f 100644 --- a/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json +++ b/tests/parsers/thermo_fisher_nanodrop_eight/testdata/Thermo_NanoDrop_Eight_example04.json @@ -7,7 +7,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", + "measurement identifier": "d11e8b85-9bf5-4d41-850b-a32c0ee821f5", "device control aggregate document": { "device control document": [ { @@ -33,7 +33,7 @@ } }, { - "measurement identifier": "a40731c4-7a42-4f94-9104-77a481598a92", + "measurement identifier": "b2d7f6ae-90c7-416a-a123-897f982119bb", "device control aggregate document": { "device control document": [ { @@ -64,7 +64,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", + "measurement identifier": "f19fb58f-3d57-46c9-99ee-2c5ecf3a1c58", "device control aggregate document": { "device control document": [ { @@ -90,7 +90,7 @@ } }, { - "measurement identifier": "ebae9f1d-4f2a-4b3d-a679-f8bae7e037e1", + "measurement identifier": "ef8ac7d9-fd95-4617-be0e-9428bbba709c", "device control aggregate document": { "device control document": [ { @@ -121,7 +121,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", + "measurement identifier": "19ff8ce1-6cb2-4580-a3aa-8d988ec73798", "device control aggregate document": { "device control document": [ { @@ -147,7 +147,7 @@ } }, { - "measurement identifier": "243ce304-b831-4fe4-9d0a-b66708cf81bf", + "measurement identifier": "fa3d97fe-64b8-4e10-b4ef-0ccf278e7aab", "device control aggregate document": { "device control document": [ { @@ -178,7 +178,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", + "measurement identifier": "7ebd62f6-af8f-40a9-9f1f-089563739db3", "device control aggregate document": { "device control document": [ { @@ -204,7 +204,7 @@ } }, { - "measurement identifier": "6ca5747c-d682-4f01-a766-8f7b1705aecb", + "measurement identifier": "0d412cea-6eb4-4bb4-bea4-76bcec9c3620", "device control aggregate document": { "device control document": [ { @@ -235,7 +235,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", + "measurement identifier": "8ced41d1-f95f-40c4-a2d9-8d7b3fda1791", "device control aggregate document": { "device control document": [ { @@ -261,7 +261,7 @@ } }, { - "measurement identifier": "1f3208c9-7dce-4128-985f-d3771b0c6573", + "measurement identifier": "000c4669-92df-40e7-a749-caf57c6b5f79", "device control aggregate document": { "device control document": [ { @@ -292,7 +292,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", + "measurement identifier": "2b91fa59-cf4b-4b3a-a2c6-46a1a1ad4c5d", "device control aggregate document": { "device control document": [ { @@ -318,7 +318,7 @@ } }, { - "measurement identifier": "6b6c2292-7a95-403a-9a42-5743a94ce186", + "measurement identifier": "f3371985-61a9-4fa5-9a08-4bb979292479", "device control aggregate document": { "device control document": [ { @@ -349,7 +349,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", + "measurement identifier": "819b94a3-78be-4af6-83d8-434fa5ca83c5", "device control aggregate document": { "device control document": [ { @@ -375,7 +375,7 @@ } }, { - "measurement identifier": "0241829e-5d5f-4cf0-a025-4684daf5b66c", + "measurement identifier": "82938e4f-aab3-4ce5-870b-06b9f7c61f28", "device control aggregate document": { "device control document": [ { @@ -406,7 +406,7 @@ "measurement time": "2022-04-06T16:20:00+00:00", "measurement document": [ { - "measurement identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", + "measurement identifier": "326601dc-e35e-450c-b87e-be31e6d8ae55", "device control aggregate document": { "device control document": [ { @@ -432,7 +432,7 @@ } }, { - "measurement identifier": "14629fc9-4ae1-4bff-844f-0f00fa87d0db", + "measurement identifier": "91e40f64-2152-47dd-ba86-31a0c5a860e0", "device control aggregate document": { "device control document": [ { @@ -463,7 +463,7 @@ "measurement time": "2022-04-06T16:22:00+00:00", "measurement document": [ { - "measurement identifier": "8815766f-e968-41d3-a31a-d8dac1743711", + "measurement identifier": "319c86f8-bacc-4a6e-bf39-972fbee271d7", "device control aggregate document": { "device control document": [ { @@ -489,7 +489,7 @@ } }, { - "measurement identifier": "6c5b60ec-59e4-4fef-8e15-37a2b16beed0", + "measurement identifier": "8380aaa2-c13b-48f8-a9cc-55c523acacd3", "device control aggregate document": { "device control document": [ { @@ -531,325 +531,325 @@ "calculated data name": "A260/280", "calculated result": { "value": 1.82, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", + "data source identifier": "d11e8b85-9bf5-4d41-850b-a32c0ee821f5", "data source feature": "absorbance" }, { - "data source identifier": "a40731c4-7a42-4f94-9104-77a481598a92", + "data source identifier": "b2d7f6ae-90c7-416a-a123-897f982119bb", "data source feature": "absorbance" } ] }, - "calculated data identifier": "71f5aa5c-6dc0-4a22-819e-e601c69f973d" + "calculated data identifier": "b2102bc3-0072-48fe-bbd6-e4e5ba1b2eda" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.23, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "62da5f29-1cb8-48bc-9b4a-914fb40128f5", + "data source identifier": "d11e8b85-9bf5-4d41-850b-a32c0ee821f5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "234e05e6-b73f-46a2-8be6-c1c662aff454" + "calculated data identifier": "faafcf95-380d-4a35-a3fb-4b233f63348b" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.81, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", + "data source identifier": "f19fb58f-3d57-46c9-99ee-2c5ecf3a1c58", "data source feature": "absorbance" }, { - "data source identifier": "ebae9f1d-4f2a-4b3d-a679-f8bae7e037e1", + "data source identifier": "ef8ac7d9-fd95-4617-be0e-9428bbba709c", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ade6c538-c1dd-4b8d-8477-43b8d015292d" + "calculated data identifier": "9554994d-e9eb-42ba-8ad9-347152f15c9c" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.24, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "fc9e7264-c8b2-4588-bb06-46de79e7b5a9", + "data source identifier": "f19fb58f-3d57-46c9-99ee-2c5ecf3a1c58", "data source feature": "absorbance" } ] }, - "calculated data identifier": "92180847-7cea-44f6-9086-1ed257b1328a" + "calculated data identifier": "fb850104-b497-47b5-8896-37676179fe4a" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.85, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", + "data source identifier": "19ff8ce1-6cb2-4580-a3aa-8d988ec73798", "data source feature": "absorbance" }, { - "data source identifier": "243ce304-b831-4fe4-9d0a-b66708cf81bf", + "data source identifier": "fa3d97fe-64b8-4e10-b4ef-0ccf278e7aab", "data source feature": "absorbance" } ] }, - "calculated data identifier": "8a57bd42-3b59-4531-a2ca-260c5ff59e73" + "calculated data identifier": "c925ffb8-e4c9-40eb-883e-9573b9331e62" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.29, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "7fbbf50e-ed4d-49c4-885c-a53f0fb9593d", + "data source identifier": "19ff8ce1-6cb2-4580-a3aa-8d988ec73798", "data source feature": "absorbance" } ] }, - "calculated data identifier": "ee1ce45a-7bab-4963-b5e8-f864588d46b9" + "calculated data identifier": "32716ae8-a898-484d-909c-09a33fdd861a" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.82, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", + "data source identifier": "7ebd62f6-af8f-40a9-9f1f-089563739db3", "data source feature": "absorbance" }, { - "data source identifier": "6ca5747c-d682-4f01-a766-8f7b1705aecb", + "data source identifier": "0d412cea-6eb4-4bb4-bea4-76bcec9c3620", "data source feature": "absorbance" } ] }, - "calculated data identifier": "40be3d7e-f02d-44a0-8a86-910fcc7b4a00" + "calculated data identifier": "9154e74a-04b3-4c0c-b176-0c8f92f8ec9e" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.25, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "6576b4c0-cda4-4cfd-9c54-9c0a1735c640", + "data source identifier": "7ebd62f6-af8f-40a9-9f1f-089563739db3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "cbf83305-2b0d-4563-bdef-429e97f83f21" + "calculated data identifier": "95420e7e-bda6-4b10-a65c-031b3bbe6ecf" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.84, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", + "data source identifier": "8ced41d1-f95f-40c4-a2d9-8d7b3fda1791", "data source feature": "absorbance" }, { - "data source identifier": "1f3208c9-7dce-4128-985f-d3771b0c6573", + "data source identifier": "000c4669-92df-40e7-a749-caf57c6b5f79", "data source feature": "absorbance" } ] }, - "calculated data identifier": "e5909bb2-daef-4f6b-b987-5123825ee3f0" + "calculated data identifier": "009eb0c6-3125-49fd-a3cb-899749fad4eb" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.27, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "de7f0bdd-cf58-4e28-8753-2b3a5f816b96", + "data source identifier": "8ced41d1-f95f-40c4-a2d9-8d7b3fda1791", "data source feature": "absorbance" } ] }, - "calculated data identifier": "7744a915-4d20-41a1-abe9-c83557781458" + "calculated data identifier": "bf1f9d9b-391e-41a5-a71f-ad2fbb3f485a" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.85, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", + "data source identifier": "2b91fa59-cf4b-4b3a-a2c6-46a1a1ad4c5d", "data source feature": "absorbance" }, { - "data source identifier": "6b6c2292-7a95-403a-9a42-5743a94ce186", + "data source identifier": "f3371985-61a9-4fa5-9a08-4bb979292479", "data source feature": "absorbance" } ] }, - "calculated data identifier": "b1a12fcc-79c4-4d14-9e18-4e3653315cbb" + "calculated data identifier": "53af8fc5-baa8-43fe-bc14-b83de139bfc5" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.25, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8a9afb23-3152-48db-900a-e73c8ac1dac0", + "data source identifier": "2b91fa59-cf4b-4b3a-a2c6-46a1a1ad4c5d", "data source feature": "absorbance" } ] }, - "calculated data identifier": "573b209a-e43d-435a-96a7-2675b1033e98" + "calculated data identifier": "437c83da-4644-4a26-812f-0d9bdf6b3395" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.83, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", + "data source identifier": "819b94a3-78be-4af6-83d8-434fa5ca83c5", "data source feature": "absorbance" }, { - "data source identifier": "0241829e-5d5f-4cf0-a025-4684daf5b66c", + "data source identifier": "82938e4f-aab3-4ce5-870b-06b9f7c61f28", "data source feature": "absorbance" } ] }, - "calculated data identifier": "d448d859-3c3c-4673-9d9f-a728860289fe" + "calculated data identifier": "9914e05b-8ac8-44ac-85cf-e74360402980" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.23, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "734a52c5-1191-4522-be9d-742e71c56e4d", + "data source identifier": "819b94a3-78be-4af6-83d8-434fa5ca83c5", "data source feature": "absorbance" } ] }, - "calculated data identifier": "9b0d3f3b-09e4-4682-9611-841102f40987" + "calculated data identifier": "1d3b68e0-1d29-4afb-9683-c85245f1e9e3" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.83, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", + "data source identifier": "326601dc-e35e-450c-b87e-be31e6d8ae55", "data source feature": "absorbance" }, { - "data source identifier": "14629fc9-4ae1-4bff-844f-0f00fa87d0db", + "data source identifier": "91e40f64-2152-47dd-ba86-31a0c5a860e0", "data source feature": "absorbance" } ] }, - "calculated data identifier": "bcad688a-68b2-4c45-9aff-726ef487001a" + "calculated data identifier": "c7b72598-6bc0-424c-9983-624823c381af" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.18, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "9037d503-5df4-47bc-9c21-320ef8bba175", + "data source identifier": "326601dc-e35e-450c-b87e-be31e6d8ae55", "data source feature": "absorbance" } ] }, - "calculated data identifier": "2e8b7354-f268-4b89-b9de-d34de9797cbd" + "calculated data identifier": "e48c64f8-d186-4036-a370-cf74ba6788d5" }, { "calculated data name": "A260/280", "calculated result": { "value": 1.83, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8815766f-e968-41d3-a31a-d8dac1743711", + "data source identifier": "319c86f8-bacc-4a6e-bf39-972fbee271d7", "data source feature": "absorbance" }, { - "data source identifier": "6c5b60ec-59e4-4fef-8e15-37a2b16beed0", + "data source identifier": "8380aaa2-c13b-48f8-a9cc-55c523acacd3", "data source feature": "absorbance" } ] }, - "calculated data identifier": "56e42da3-be4f-47e8-b11b-19ad3eab7aa2" + "calculated data identifier": "9eb240e8-2387-488b-a1fb-79b29194912f" }, { "calculated data name": "A260/230", "calculated result": { "value": 2.24, - "unit": "unitless" + "unit": "(unitless)" }, "data source aggregate document": { "data source document": [ { - "data source identifier": "8815766f-e968-41d3-a31a-d8dac1743711", + "data source identifier": "319c86f8-bacc-4a6e-bf39-972fbee271d7", "data source feature": "absorbance" } ] }, - "calculated data identifier": "0e1b7937-8508-4814-a877-5a2e6e6fbe1c" + "calculated data identifier": "8621627a-62f1-4d94-9a17-77aadb8eab4e" } ] } From ea6e41660659b6cdd84ed0fd58ebec444702d0e9 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Wed, 17 Jan 2024 18:20:44 -0500 Subject: [PATCH 8/9] refactor typing for _get_concentration --- .../nanodrop_eight_parser.py | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index 2158c9693..c277b1b61 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -1,4 +1,5 @@ -from typing import Optional, TypeVar +from collections.abc import Mapping +from typing import Optional, Union import uuid import pandas as pd @@ -43,9 +44,24 @@ from allotropy.parsers.utils.values import assert_not_none from allotropy.parsers.vendor_parser import VendorParser -T = TypeVar("T") - -CONCENTRATION_UNIT_TO_TQUANTITY = { +ConcentrationType = Union[ + TQuantityValueMicrogramPerMicroliter, + TQuantityValueMicrogramPerMilliliter, + TQuantityValueMilligramPerMilliliter, + TQuantityValueNanogramPerMicroliter, + TQuantityValueNanogramPerMilliliter, + TQuantityValuePicogramPerMilliliter, +] +ConcentrationClassType = Union[ + type[TQuantityValueMicrogramPerMicroliter], + type[TQuantityValueMicrogramPerMilliliter], + type[TQuantityValueMilligramPerMilliliter], + type[TQuantityValueNanogramPerMicroliter], + type[TQuantityValueNanogramPerMilliliter], + type[TQuantityValuePicogramPerMilliliter], +] + +CONCENTRATION_UNIT_TO_TQUANTITY: Mapping[str, ConcentrationClassType] = { "ug/ul": TQuantityValueMicrogramPerMicroliter, "ug/ml": TQuantityValueMicrogramPerMilliliter, "mg/ml": TQuantityValueMilligramPerMilliliter, @@ -81,10 +97,12 @@ def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> JsonFloat: return InvalidJsonFloat.NaN -def _get_concentration(conc: JsonFloat, unit: Optional[str]) -> Optional[T]: +def _get_concentration( + conc: JsonFloat, unit: Optional[str] +) -> Optional[ConcentrationType]: if unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): - cls = CONCENTRATION_UNIT_TO_TQUANTITY[unit] - return cls(value=conc) # type: ignore[return-value] + cls = CONCENTRATION_UNIT_TO_TQUANTITY[str(unit)] + return cls(value=conc) return None From c6d5db1a1389ab4f45027b3025d9c67b2841bad0 Mon Sep 17 00:00:00 2001 From: Ben Wolfe Date: Thu, 18 Jan 2024 14:30:10 -0500 Subject: [PATCH 9/9] remove str cast --- .../thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py index c277b1b61..c01b674af 100644 --- a/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py +++ b/src/allotropy/parsers/thermo_fisher_nanodrop_eight/nanodrop_eight_parser.py @@ -100,8 +100,8 @@ def _get_float(data_frame: pd.DataFrame, row: int, column: str) -> JsonFloat: def _get_concentration( conc: JsonFloat, unit: Optional[str] ) -> Optional[ConcentrationType]: - if unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): - cls = CONCENTRATION_UNIT_TO_TQUANTITY[str(unit)] + if unit and unit in CONCENTRATION_UNIT_TO_TQUANTITY and isinstance(conc, float): + cls = CONCENTRATION_UNIT_TO_TQUANTITY[unit] return cls(value=conc) return None