diff --git a/src/allotropy/allotrope/converter.py b/src/allotropy/allotrope/converter.py index 431a174ff..a25923215 100644 --- a/src/allotropy/allotrope/converter.py +++ b/src/allotropy/allotrope/converter.py @@ -111,18 +111,32 @@ def add_custom_information_document( if not custom_info_doc: return model - if isinstance(custom_info_doc, dict): - custom_info_doc = structure_custom_information_document( - custom_info_doc, "custom information document" - ) - if not is_dataclass(custom_info_doc): + # Convert to a dictionary first, so we can clean up values. + if is_dataclass(custom_info_doc): + custom_info_dict = asdict(custom_info_doc) + elif isinstance(custom_info_doc, dict): + custom_info_dict = custom_info_doc + else: msg = f"Invalid custom_info_doc: {custom_info_doc}" raise ValueError(msg) - # Do not add custom info doc if all values are None - if all(value is None for value in asdict(custom_info_doc).values()): + # Remove None and {"value": None, "unit"...} values + cleaned_dict = {} + for key, value in custom_info_dict.items(): + if value is None: + continue + if isinstance(value, dict) and "value" in value and value["value"] is None: + continue + cleaned_dict[key] = value + + # If dict is empty after cleaning, do not attach. + if not cleaned_dict: return model + custom_info_doc = structure_custom_information_document( + cleaned_dict, "custom information document" + ) + model.custom_information_document = custom_info_doc # type: ignore return model diff --git a/src/allotropy/allotrope/schema_mappers/adm/spectrophotometry/benchling/_2023/_12/spectrophotometry.py b/src/allotropy/allotrope/schema_mappers/adm/spectrophotometry/benchling/_2023/_12/spectrophotometry.py index da258e10b..793a35945 100644 --- a/src/allotropy/allotrope/schema_mappers/adm/spectrophotometry/benchling/_2023/_12/spectrophotometry.py +++ b/src/allotropy/allotrope/schema_mappers/adm/spectrophotometry/benchling/_2023/_12/spectrophotometry.py @@ -406,6 +406,16 @@ def _get_sample_document(self, measurement: Measurement) -> SampleDocument: measurement.original_sample_concentration, ) } + # TODO: this is a temporary work around until we implement the new REC custom info doc logic, at which + # time we will detect and convert timestamps generically. + if ( + measurement.sample_custom_info + and "last read standards" in measurement.sample_custom_info + ): + measurement.sample_custom_info["last read standards"] = self.get_date_time( + measurement.sample_custom_info["last read standards"] + ) + return add_custom_information_document( SampleDocument( sample_identifier=measurement.sample_identifier, diff --git a/src/allotropy/parsers/thermo_fisher_qubit4/thermo_fisher_qubit4_reader.py b/src/allotropy/parsers/thermo_fisher_qubit4/thermo_fisher_qubit4_reader.py index f3814f932..504f11a17 100644 --- a/src/allotropy/parsers/thermo_fisher_qubit4/thermo_fisher_qubit4_reader.py +++ b/src/allotropy/parsers/thermo_fisher_qubit4/thermo_fisher_qubit4_reader.py @@ -1,5 +1,6 @@ """Reader file for ThermoFisher Qubit 4 Adapter""" +import numpy as np import pandas as pd from allotropy.constants import DEFAULT_ENCODING @@ -35,18 +36,17 @@ def read(cls, named_file_contents: NamedFileContents) -> pd.DataFrame: AllotropeConversionError: If the file format is not supported. """ if named_file_contents.extension == "xlsx": - dataframe = read_excel(named_file_contents.contents) + df = read_excel(named_file_contents.contents) else: - dataframe = read_csv( - named_file_contents.contents, - index_col=False, - encoding=DEFAULT_ENCODING, + df = read_csv( + named_file_contents.contents, index_col=False, encoding=DEFAULT_ENCODING ) - columns = dataframe.columns.tolist() + columns = df.columns.tolist() new_columns = [ f"Units_{columns[i - 1]}" if "Units" in col else col for i, col in enumerate(columns) ] - set_columns(dataframe, new_columns) - return dataframe + set_columns(df, new_columns) + df = df.replace(np.nan, None) + return df diff --git a/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_parser.py b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_parser.py index ea2c4b3c6..e2577cd75 100644 --- a/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_parser.py +++ b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_parser.py @@ -1,457 +1,31 @@ -""" Parser file for Thermo Fisher Qubit Flex Adapter""" -from __future__ import annotations - -from typing import Any, TypeVar - -import numpy as np -import pandas as pd - -from allotropy.allotrope.converter import add_custom_information_document from allotropy.allotrope.models.adm.spectrophotometry.benchling._2023._12.spectrophotometry import ( - ContainerType, - DataSystemDocument, - DeviceSystemDocument, - FluorescenceEmissionSpectrumDetectionMeasurementDocumentItems, - FluorescencePointDetectionDeviceControlAggregateDocument, - FluorescencePointDetectionDeviceControlDocumentItem, - FluorescencePointDetectionMeasurementDocumentItems, - LuminescencePointDetectionMeasurementDocumentItems, - MeasurementAggregateDocument, Model, - SampleDocument, - SpectrophotometryAggregateDocument, - SpectrophotometryDocumentItem, - UltravioletAbsorbancePointDetectionMeasurementDocumentItems, - UltravioletAbsorbanceSpectrumDetectionMeasurementDocumentItems, ) -from allotropy.allotrope.models.shared.definitions.custom import ( - TQuantityValueMicrogramPerMicroliter, - TQuantityValueMicrogramPerMilliliter, - TQuantityValueMicroliter, - TQuantityValueMilligramPerMilliliter, - TQuantityValueNanogramPerMicroliter, - TQuantityValueNanogramPerMilliliter, - TQuantityValuePicogramPerMilliliter, - TQuantityValueRelativeFluorescenceUnit, - TQuantityValueUnitless, +from allotropy.allotrope.schema_mappers.adm.spectrophotometry.benchling._2023._12.spectrophotometry import ( + Data, + Mapper, ) -from allotropy.constants import ASM_CONVERTER_VERSION -from allotropy.exceptions import AllotropeConversionError from allotropy.named_file_contents import NamedFileContents -from allotropy.parsers.constants import NOT_APPLICABLE from allotropy.parsers.release_state import ReleaseState +from allotropy.parsers.thermo_fisher_qubit4.thermo_fisher_qubit4_reader import ( + ThermoFisherQubit4Reader, +) from allotropy.parsers.thermo_fisher_qubit_flex import constants from allotropy.parsers.thermo_fisher_qubit_flex.thermo_fisher_qubit_flex_reader import ( ThermoFisherQubitFlexReader, ) -from allotropy.parsers.utils.uuids import random_uuid_str -from allotropy.parsers.vendor_parser import VendorParser - -DataType = TypeVar("DataType") - -CONCENTRATION_UNIT_TO_TQUANTITY = { - "ug/uL": TQuantityValueMicrogramPerMicroliter, - "ug/mL": TQuantityValueMicrogramPerMilliliter, - "mg/mL": TQuantityValueMilligramPerMilliliter, - "ng/uL": TQuantityValueNanogramPerMicroliter, - "ng/mL": TQuantityValueNanogramPerMilliliter, - "pg/uL": TQuantityValuePicogramPerMilliliter, -} - - -def _get_concentration_value( - data_frame: pd.DataFrame, column: str, units_column: str, row: int -) -> DataType | None: - """ - Retrieves the value and its unit from the specified columns and row in the DataFrame. If units are not there, replace it with unitless" unit. - - parameters: - data_frame (pd.DataFrame): The DataFrame from which to retrieve the value. - column (str): The column name from which to retrieve the value. - units_column (str): The column name from which to retrieve the unit. - row (int): The row index from which to retrieve the value. - - Returns: - Optional[DataType|None]: The concentration value converted to the appropriate data type, or None if the units are not available or invalid. - """ - units = _get_value(data_frame, units_column, row) - if units is None: - units = "" - datatype = CONCENTRATION_UNIT_TO_TQUANTITY.get(units, TQuantityValueUnitless) - return _get_property_value(data_frame, column, row, datatype) - - -def _get_value(data_frame: pd.DataFrame, column: str, row: int) -> Any | None: - """ - Retrieves the value from a specified column and row in a DataFrame, handling NaNs - and converting certain numpy types to native Python types. - - Parameters: - data_frame (pd.DataFrame): The DataFrame from which to retrieve the value. - column (str): The column name from which to retrieve the value. - row (int): The row index from which to retrieve the value. - - Returns: - Optional[Any|None]: The value from the specified cell converted to the appropriate Python type. - Returns None if the column does not exist or the value is NaN. - """ - if column not in data_frame.columns: - return None - value = data_frame[column][row] - - if pd.isna(value): - return None - if isinstance(value, np.int64): - return int(value) - if isinstance(value, np.float64): - return float(value) - return value - - -def _get_property_value( - data_frame: pd.DataFrame, column: str, row: int, datatype: type -) -> DataType | None: - """ - Retrieves the value from a specified column and row in a DataFrame and converts it - to the specified datatype. - - Parameters: - data_frame (pd.DataFrame): The DataFrame from which to retrieve the value. - column (str): The column name from which to retrieve the value. - row (int): The row index from which to retrieve the value. - datatype (type): The type to which the retrieved value should be converted. - - Returns: - Datatype (Any|None): The value from the specified cell converted to the specified datatype. - Returns None if the value is not found. - """ - return ( - datatype(value=value) - if (value := _get_value(data_frame, column, row)) - else None - ) - - -def _get_value_not_none(dataframe: pd.DataFrame, column: str, row: int) -> Any: - """ - Retrieves the value from a specified column and row in a DataFrame, ensuring the value is not None. - - Parameters: - dataframe (pd.DataFrame): The DataFrame from which to retrieve the value. - column (str): The column name from which to retrieve the value. - row (int): The row index from which to retrieve the value. - - Returns: - Any: The value from the specified cell. - - Raises: - AllotropeConversionError: If the value is None. - """ - value = _get_value(dataframe, column, row) - if value is None: - msg = f"{constants.VALUE_ERROR} '{column}'." - raise AllotropeConversionError(msg) - return value - - -def _get_property_value_not_none( - data_frame: pd.DataFrame, column: str, row: int, datatype: type -) -> DataType | None: - """ - Retrieves the value from a specified column and row in a DataFrame and converts it - to the specified datatype. If the value is not in the respective column it throws the Allotrope Exception. - - Parameters: - data_frame (pd.DataFrame): The DataFrame from which to retrieve the value. - column (str): The column name from which to retrieve the value. - row (int): The row index from which to retrieve the value. - datatype (type): The type to which the retrieved value should be converted. - - Returns: - Datatype(Any): The value from the specified cell converted to the specified datatype. - - Raises: - AllotropeConversionError: If the value is None. - """ - return ( - datatype(value=value) - if (value := _get_value_not_none(data_frame, column, row)) - else None - ) - +from allotropy.parsers.thermo_fisher_qubit_flex.thermo_fisher_qubit_flex_structure import ( + create_data, +) +from allotropy.parsers.vendor_parser import MapperVendorParser -class ThermoFisherQubitFlexParser(VendorParser): - """ - A class provides the allotrope model of the Thermo Fisher Qubit Flex files - """ +class ThermoFisherQubitFlexParser(MapperVendorParser[Data, Model]): DISPLAY_NAME = constants.DISPLAY_NAME RELEASE_STATE = ReleaseState.RECOMMENDED - SUPPORTED_EXTENSIONS = ThermoFisherQubitFlexReader.SUPPORTED_EXTENSIONS - - def to_allotrope(self, named_file_contents: NamedFileContents) -> Model: - """ - Reads the content of the provided named file and returns it as Model - - Parameters: - named_file_contents: contents of the provided named file - - Returns: the Model of the provided named file - """ - return self._get_model( - data=ThermoFisherQubitFlexReader.read(named_file_contents), - filename=named_file_contents.original_file_name, - ) - - def _get_model(self, data: pd.DataFrame, filename: str) -> Model: - """ - Reads the content of the provided named file and returns it as Model - - Parameters: - data: dataframe of the provided named file - filename: original filename of the provided named file - - Returns: the Model of the provided named file - """ - software_version = _get_value(data, "Software Version", (len(data.index) - 1)) - 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), - data_system_document=DataSystemDocument( - file_name=filename, - software_name=constants.SOFTWARE_NAME, - software_version=software_version, - ASM_converter_name=self.asm_converter_name, - ASM_converter_version=ASM_CONVERTER_VERSION, - ), - device_system_document=DeviceSystemDocument( - model_number=constants.MODEL_NUMBER, - device_identifier=NOT_APPLICABLE, - brand_name=constants.BRAND_NAME, - product_manufacturer=constants.PRODUCT_MANUFACTURER, - ), - ), - ) - - def _get_spectrophotometry_document( - self, data: pd.DataFrame - ) -> list[SpectrophotometryDocumentItem]: - """ - Reads the content of the provided named file and returns it as a list. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe - - Returns: the spectrophotometry document list - """ - return [ - SpectrophotometryDocumentItem( - measurement_aggregate_document=self._get_measurement_aggregate_document( - data, i - ) - ) - for i in range(len(data.index)) - ] - - def _get_measurement_aggregate_document( - self, data: pd.DataFrame, i: int - ) -> MeasurementAggregateDocument: - """ - Reads the content of the provided named file and returns it as a dictionary. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe - - Returns: the measurement aggregate document dictionary - """ - return MeasurementAggregateDocument( - measurement_time=self._get_date_time( - str(_get_value_not_none(data, "Test Date", i)) - ), - experiment_type=_get_value(data, "Assay Name", i), - container_type=ContainerType.tube, - measurement_document=self._get_measurement_document(data, i), - ) - - def _get_measurement_document( - self, data: pd.DataFrame, i: int - ) -> list[ - FluorescenceEmissionSpectrumDetectionMeasurementDocumentItems - | FluorescencePointDetectionMeasurementDocumentItems - | LuminescencePointDetectionMeasurementDocumentItems - | UltravioletAbsorbancePointDetectionMeasurementDocumentItems - | UltravioletAbsorbanceSpectrumDetectionMeasurementDocumentItems - ]: - """ - Reads the content of the provided named file and returns it as a dictionary. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe - - Returns: the measurement document dictionary - """ - # TODO(nstender): these should be in measurement.custom_info in schema mapper - measurement_custom_document = { - "calibrated tubes": _get_value(data, "Calibrated Tubes", i), - } - # TODO(ASM gaps): we believe these values should be introduced to ASM. - custom_info_doc = {"reagent lot number": _get_value(data, "Reagent Lot#", i)} - - # Check if all values in sample_custom_document are None - if all(value is None for value in measurement_custom_document.values()): - return [ - FluorescencePointDetectionMeasurementDocumentItems( - fluorescence=self._get_fluorescence_value(data, i), - measurement_identifier=random_uuid_str(), - sample_document=self._get_sample_document(data, i), - device_control_aggregate_document=self._get_device_control_document( - data, i - ), - ), - ] - - else: - return [ - add_custom_information_document( - FluorescencePointDetectionMeasurementDocumentItems( - fluorescence=self._get_fluorescence_value(data, i), - measurement_identifier=random_uuid_str(), - sample_document=self._get_sample_document(data, i), - device_control_aggregate_document=self._get_device_control_document( - data, i - ), - ), - measurement_custom_document | custom_info_doc, - ) - ] - - def _get_fluorescence_value(self, data: pd.DataFrame, i: int) -> Any: - """ - Reads the content of the provided named file and returns the fluorescence value as string. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe - - Returns: the fluorescence value as string - """ - value = _get_property_value_not_none( - data, "Sample RFU", i, TQuantityValueRelativeFluorescenceUnit - ) - return value - - def _get_sample_document(self, data: pd.DataFrame, i: int) -> SampleDocument: - """ - Reads the content of the provided named file and returns it as a dictionary. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe - - Returns: the sample document dictionary - """ - sample_id = _get_value(data, "Sample ID", i) - location_id = _get_value(data, "Well", i) - well_plate_id = _get_value(data, "Plate Barcode", i) - if sample_id is None: - sample_id = _get_value_not_none(data, "Sample Name", i) - # TODO(ASM gaps): we believe these values should be introduced to ASM. - sample_custom_document = { - "original sample concentration": _get_concentration_value( - data, "Original Sample Conc.", "Original sample conc. units", i - ), - } - # TODO(nstender): these should go in custom_sample_info in schema mapper refactor. - custom_sample_info = { - "qubit tube concentration": _get_concentration_value( - data, "Qubit Tube Conc.", "Qubit tube conc. units", i - ), - "standard 1 concentration": _get_property_value( - data, "Std 1 RFU", i, TQuantityValueRelativeFluorescenceUnit - ), - "standard 2 concentration": _get_property_value( - data, "Std 2 RFU", i, TQuantityValueRelativeFluorescenceUnit - ), - "standard 3 concentration": _get_property_value( - data, "Std 3 RFU", i, TQuantityValueRelativeFluorescenceUnit - ), - "last read standards": self._get_date_time( - str(_get_value(data, "Test Date", i)) - ), - "selected samples": _get_value(data, "Selected Samples", i), - } - if all(value is None for value in sample_custom_document.values()): - return SampleDocument( - sample_identifier=sample_id, - batch_identifier=str(_get_value(data, "Run ID", i)), - location_identifier=location_id, - well_plate_identifier=well_plate_id, - ) - else: - return add_custom_information_document( - SampleDocument( - sample_identifier=sample_id, - batch_identifier=str(_get_value(data, "Run ID", i)), - location_identifier=location_id, - well_plate_identifier=well_plate_id, - ), - custom_sample_info | sample_custom_document, - ) - - def _get_device_control_document( - self, data: pd.DataFrame, i: int - ) -> FluorescencePointDetectionDeviceControlAggregateDocument: - """ - Reads the content of the provided named file and returns it as a dictionary. - - Parameters: - data: dataframe of the provided named file - i: index of the dataframe + SUPPORTED_EXTENSIONS = ThermoFisherQubit4Reader.SUPPORTED_EXTENSIONS + SCHEMA_MAPPER = Mapper - Returns: the device control document dictionary - """ - # TODO(ASM gaps): we believe these values should be introduced to ASM. - custom_device_document = { - "sample volume setting": _get_property_value( - data, "Sample Volume (uL)", i, TQuantityValueMicroliter - ), - "excitation setting": _get_value(data, "Excitation", i), - "dilution factor": _get_property_value( - data, "Dilution Factor", i, TQuantityValueUnitless - ), - } - # TODO(nstender): these should do in device_control_custom_info in schema mapper refactor. - device_custom_data_document = { - "operating minimum": _get_property_value( - data, "Extended Low Range", i, TQuantityValueNanogramPerMicroliter - ), - "operating range": _get_property_value( - data, "Core Range", i, TQuantityValueNanogramPerMicroliter - ), - "operating maximum": _get_property_value( - data, "Extended High Range", i, TQuantityValueNanogramPerMicroliter - ), - } - if all(value is None for value in custom_device_document.values()): - return FluorescencePointDetectionDeviceControlAggregateDocument( - device_control_document=[ - FluorescencePointDetectionDeviceControlDocumentItem( - device_type=constants.DEVICE_TYPE - ), - ] - ) - else: - return FluorescencePointDetectionDeviceControlAggregateDocument( - device_control_document=[ - add_custom_information_document( - FluorescencePointDetectionDeviceControlDocumentItem( - device_type=constants.DEVICE_TYPE - ), - custom_device_document | device_custom_data_document, - ) - ] - ) + def create_data(self, named_file_contents: NamedFileContents) -> Data: + df = ThermoFisherQubitFlexReader.read(named_file_contents) + return create_data(df, named_file_contents.original_file_name) diff --git a/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_reader.py b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_reader.py index eb2a4ce23..5161bf575 100644 --- a/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_reader.py +++ b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_reader.py @@ -1,5 +1,6 @@ """" Reader file for Thermo Fisher Qubit Flex Parser""" +import numpy as np import pandas as pd from allotropy.constants import DEFAULT_ENCODING @@ -26,10 +27,12 @@ def read(cls, named_file_contents: NamedFileContents) -> pd.DataFrame: AllotropeConversionError: If the file format is not supported. """ if named_file_contents.extension == "csv": - return read_csv( + df = read_csv( named_file_contents.contents, index_col=False, encoding=DEFAULT_ENCODING, ) else: - return read_excel(named_file_contents.contents) + df = read_excel(named_file_contents.contents) + df = df.replace(np.nan, None) + return df diff --git a/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_structure.py b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_structure.py new file mode 100644 index 000000000..47da933ee --- /dev/null +++ b/src/allotropy/parsers/thermo_fisher_qubit_flex/thermo_fisher_qubit_flex_structure.py @@ -0,0 +1,115 @@ +from __future__ import annotations + +import pandas as pd + +from allotropy.allotrope.models.adm.spectrophotometry.benchling._2023._12.spectrophotometry import ( + ContainerType, +) +from allotropy.allotrope.models.shared.definitions.definitions import ( + NaN, +) +from allotropy.allotrope.models.shared.definitions.units import UNITLESS +from allotropy.allotrope.schema_mappers.adm.spectrophotometry.benchling._2023._12.spectrophotometry import ( + Data, + Measurement, + MeasurementGroup, + MeasurementType, + Metadata, +) +from allotropy.parsers.constants import NOT_APPLICABLE +from allotropy.parsers.thermo_fisher_qubit_flex import constants +from allotropy.parsers.utils.pandas import map_rows, SeriesData +from allotropy.parsers.utils.uuids import random_uuid_str + + +def create_measurement_group(data: SeriesData) -> MeasurementGroup: + return MeasurementGroup( + measurement_time=data[str, "Test Date"], + experiment_type=data.get(str, "Assay Name"), + measurements=[ + Measurement( + type_=MeasurementType.FLUORESCENCE, + identifier=random_uuid_str(), + fluorescence=data[float, "Sample RFU"], + batch_identifier=data.get(str, "Run ID"), + sample_identifier=data[str, ["Sample ID", "Sample Name"]], + location_identifier=data.get(str, "Well"), + well_plate_identifier=data.get(str, "Plate Barcode"), + sample_volume_setting=data.get( + float, "Sample Volume (uL)", validate=SeriesData.NOT_NAN + ), + excitation_wavelength_setting=data.get(str, "Excitation"), + dilution_factor_setting=data.get( + float, "Dilution Factor", validate=SeriesData.NOT_NAN + ), + original_sample_concentration=data.get( + float, "Original Sample Conc.", NaN + ), + original_sample_concentration_unit=data.get( + str, "Original sample conc. units" + ), + custom_info={ + "reagent lot number": data.get(int, "Reagent Lot#"), + "calibrated tubes": data.get(int, "Calibrated Tubes"), + }, + sample_custom_info={ + "last read standards": data.get(str, "Test Date"), + "selected standards": data.get(int, "Selected Samples"), + "qubit tube concentration": { + "value": data.get(float, "Qubit Tube Conc.", NaN), + "unit": data.get(str, "Qubit tube conc. units", UNITLESS), + }, + "standard 1 concentration": { + "value": data.get( + float, "Std 1 RFU", validate=SeriesData.NOT_NAN + ), + "unit": "RFU", + }, + "standard 2 concentration": { + "value": data.get( + float, "Std 2 RFU", validate=SeriesData.NOT_NAN + ), + "unit": "RFU", + }, + "standard 3 concentration": { + "value": data.get( + float, "Std 3 RFU", validate=SeriesData.NOT_NAN + ), + "unit": "RFU", + }, + }, + device_control_custom_info={ + "operating minimum": { + "value": data.get(str, "Extended Low Range"), + "unit": "ng/µL", + }, + "operating maximum": { + "value": data.get(str, "Extended High Range"), + "unit": "ng/µL", + }, + "operating range": { + "value": data.get( + str, "Core Range", validate=SeriesData.NOT_NAN + ), + "unit": "ng/µL", + }, + }, + ) + ], + ) + + +def create_data(data_frame: pd.DataFrame, file_name: str) -> Data: + return Data( + metadata=Metadata( + file_name=file_name, + device_identifier=NOT_APPLICABLE, + model_number=constants.MODEL_NUMBER, + software_name=constants.SOFTWARE_NAME, + product_manufacturer=constants.PRODUCT_MANUFACTURER, + brand_name=constants.BRAND_NAME, + device_type=constants.DEVICE_TYPE, + container_type=ContainerType.tube, + ), + measurement_groups=map_rows(data_frame, create_measurement_group), + ) diff --git a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_01.json b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_01.json index 170410a69..0b7341f0a 100644 --- a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_01.json +++ b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_01.json @@ -13,25 +13,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -42,10 +42,8 @@ "sample identifier": "S1", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 528, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 2.64, "unit": "ug/mL" @@ -58,8 +56,10 @@ "value": 45.4272739973, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 528.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -86,25 +86,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -115,10 +115,8 @@ "sample identifier": "S2", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 610, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 3.05, "unit": "ug/mL" @@ -131,8 +129,10 @@ "value": 42.6888518933, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 610.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -159,25 +159,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -188,10 +188,8 @@ "sample identifier": "S3", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 534, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 2.67, "unit": "ug/mL" @@ -204,8 +202,10 @@ "value": 40.589712998, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 534.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -232,25 +232,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -261,10 +261,8 @@ "sample identifier": "S4", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 372, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 1.86, "unit": "ug/mL" @@ -277,8 +275,10 @@ "value": 43.0991381318, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 372.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -305,25 +305,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -334,10 +334,8 @@ "sample identifier": "S5", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 546, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 2.73, "unit": "ug/mL" @@ -350,8 +348,10 @@ "value": 41.381660854, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 546.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -378,25 +378,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "10.0-20.0", "unit": "ng/µL" }, + "operating maximum": { + "value": "1000-1200", + "unit": "ng/µL" + }, "operating range": { "value": "20.0-1000", "unit": "ng/µL" }, - "operating maximum": { - "value": "1000-1200", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "RED", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -407,10 +407,8 @@ "sample identifier": "S6", "batch identifier": "131222-164034", "custom information document": { - "original sample concentration": { - "value": 486, - "unit": "ng/µL" - }, + "last read standards": "2022-12-13T16:41:09+00:00", + "selected standards": 6, "qubit tube concentration": { "value": 2.43, "unit": "ug/mL" @@ -423,8 +421,10 @@ "value": 40.2748421637, "unit": "RFU" }, - "last read standards": "2022-12-13T16:41:09+00:00", - "selected samples": 6 + "original sample concentration": { + "value": 486.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -450,9 +450,8 @@ "data system document": { "file name": "thermo_fisher_qubit_flex_example_01.csv", "software name": "Qubit Flex software", - "software version": "1.5.0", "ASM converter name": "allotropy_thermo_fisher_qubit_flex", - "ASM converter version": "0.1.38" + "ASM converter version": "0.1.56" } } } diff --git a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_02.json b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_02.json index 69d211035..bdff312ed 100644 --- a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_02.json +++ b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_02.json @@ -13,25 +13,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -42,10 +42,7 @@ "sample identifier": "S1", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 8.09, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 80.9, "unit": "ng/mL" @@ -58,11 +55,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 8.09, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 156, + "value": 156.0, "unit": "RFU" } } @@ -82,25 +82,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -111,10 +111,7 @@ "sample identifier": "S2", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 8.15, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 81.5, "unit": "ng/mL" @@ -127,11 +124,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 8.15, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 164, + "value": 164.0, "unit": "RFU" } } @@ -151,25 +151,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -180,10 +180,7 @@ "sample identifier": "S3", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 8.1, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 81.0, "unit": "ng/mL" @@ -196,11 +193,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 8.1, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 156, + "value": 156.0, "unit": "RFU" } } @@ -220,25 +220,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -249,10 +249,7 @@ "sample identifier": "S4", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 8.27, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 82.7, "unit": "ng/mL" @@ -265,11 +262,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 8.27, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 162, + "value": 162.0, "unit": "RFU" } } @@ -289,25 +289,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -318,10 +318,7 @@ "sample identifier": "S5", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.85, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 78.5, "unit": "ng/mL" @@ -334,11 +331,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 7.85, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 150, + "value": 150.0, "unit": "RFU" } } @@ -358,25 +358,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -387,10 +387,7 @@ "sample identifier": "S6", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.75, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 77.5, "unit": "ng/mL" @@ -403,11 +400,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 7.75, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 132, + "value": 132.0, "unit": "RFU" } } @@ -427,25 +427,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -456,10 +456,7 @@ "sample identifier": "S7", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.71, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 77.1, "unit": "ng/mL" @@ -472,11 +469,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 7.71, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 125, + "value": 125.0, "unit": "RFU" } } @@ -496,25 +496,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -525,10 +525,7 @@ "sample identifier": "S8", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.17, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:36+00:00", "qubit tube concentration": { "value": 71.7, "unit": "ng/mL" @@ -541,11 +538,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:36+00:00" + "original sample concentration": { + "value": 7.17, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 113, + "value": 113.0, "unit": "RFU" } } @@ -565,25 +565,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -594,10 +594,7 @@ "sample identifier": "S9", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.93, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 69.3, "unit": "ng/mL" @@ -610,11 +607,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 6.93, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 134, + "value": 134.0, "unit": "RFU" } } @@ -634,25 +634,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -663,10 +663,7 @@ "sample identifier": "S10", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.91, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 69.1, "unit": "ng/mL" @@ -679,11 +676,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 6.91, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 139, + "value": 139.0, "unit": "RFU" } } @@ -703,25 +703,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -732,10 +732,7 @@ "sample identifier": "S11", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.02, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 70.2, "unit": "ng/mL" @@ -748,11 +745,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.02, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 135, + "value": 135.0, "unit": "RFU" } } @@ -772,25 +772,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -801,10 +801,7 @@ "sample identifier": "S12", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.04, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 70.4, "unit": "ng/mL" @@ -817,11 +814,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.04, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 138, + "value": 138.0, "unit": "RFU" } } @@ -841,25 +841,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -870,10 +870,7 @@ "sample identifier": "S13", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.01, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 70.1, "unit": "ng/mL" @@ -886,11 +883,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.01, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 134, + "value": 134.0, "unit": "RFU" } } @@ -910,25 +910,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -939,10 +939,7 @@ "sample identifier": "S14", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.28, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 72.8, "unit": "ng/mL" @@ -955,11 +952,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.28, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 124, + "value": 124.0, "unit": "RFU" } } @@ -979,25 +979,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1008,10 +1008,7 @@ "sample identifier": "S15", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.16, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 71.6, "unit": "ng/mL" @@ -1024,11 +1021,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.16, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 116, + "value": 116.0, "unit": "RFU" } } @@ -1048,25 +1048,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1077,10 +1077,7 @@ "sample identifier": "S16", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.03, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:49+00:00", "qubit tube concentration": { "value": 70.3, "unit": "ng/mL" @@ -1093,11 +1090,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:49+00:00" + "original sample concentration": { + "value": 7.03, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 111, + "value": 111.0, "unit": "RFU" } } @@ -1117,25 +1117,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1146,10 +1146,7 @@ "sample identifier": "S17", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.47, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 74.7, "unit": "ng/mL" @@ -1162,11 +1159,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.47, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 144, + "value": 144.0, "unit": "RFU" } } @@ -1186,25 +1186,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1215,10 +1215,7 @@ "sample identifier": "S18", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.19, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 71.9, "unit": "ng/mL" @@ -1231,11 +1228,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.19, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 145, + "value": 145.0, "unit": "RFU" } } @@ -1255,25 +1255,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1284,10 +1284,7 @@ "sample identifier": "S19", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.35, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 73.5, "unit": "ng/mL" @@ -1300,11 +1297,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.35, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 142, + "value": 142.0, "unit": "RFU" } } @@ -1324,25 +1324,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1353,10 +1353,7 @@ "sample identifier": "S20", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.36, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 73.6, "unit": "ng/mL" @@ -1369,11 +1366,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.36, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 144, + "value": 144.0, "unit": "RFU" } } @@ -1393,25 +1393,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1422,10 +1422,7 @@ "sample identifier": "S21", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.95, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 69.5, "unit": "ng/mL" @@ -1438,11 +1435,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 6.95, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 133, + "value": 133.0, "unit": "RFU" } } @@ -1462,25 +1462,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1491,10 +1491,7 @@ "sample identifier": "S22", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.06, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 70.6, "unit": "ng/mL" @@ -1507,11 +1504,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.06, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 120, + "value": 120.0, "unit": "RFU" } } @@ -1531,25 +1531,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1560,10 +1560,7 @@ "sample identifier": "S23", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.94, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 69.4, "unit": "ng/mL" @@ -1576,11 +1573,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 6.94, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 113, + "value": 113.0, "unit": "RFU" } } @@ -1600,25 +1600,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1629,10 +1629,7 @@ "sample identifier": "S24", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 7.01, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:17:58+00:00", "qubit tube concentration": { "value": 70.1, "unit": "ng/mL" @@ -1645,11 +1642,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:17:58+00:00" + "original sample concentration": { + "value": 7.01, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 110, + "value": 110.0, "unit": "RFU" } } @@ -1669,25 +1669,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1698,10 +1698,7 @@ "sample identifier": "S25", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.63, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 66.3, "unit": "ng/mL" @@ -1714,11 +1711,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.63, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 128, + "value": 128.0, "unit": "RFU" } } @@ -1738,25 +1738,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1767,10 +1767,7 @@ "sample identifier": "S26", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.47, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 64.7, "unit": "ng/mL" @@ -1783,11 +1780,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.47, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 130, + "value": 130.0, "unit": "RFU" } } @@ -1807,25 +1807,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1836,10 +1836,7 @@ "sample identifier": "S27", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.48, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 64.8, "unit": "ng/mL" @@ -1852,11 +1849,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.48, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 125, + "value": 125.0, "unit": "RFU" } } @@ -1876,25 +1876,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1905,10 +1905,7 @@ "sample identifier": "S28", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.49, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 64.9, "unit": "ng/mL" @@ -1921,11 +1918,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.49, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 127, + "value": 127.0, "unit": "RFU" } } @@ -1945,25 +1945,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -1974,10 +1974,7 @@ "sample identifier": "S29", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.45, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 64.5, "unit": "ng/mL" @@ -1990,11 +1987,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.45, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 123, + "value": 123.0, "unit": "RFU" } } @@ -2014,25 +2014,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2043,10 +2043,7 @@ "sample identifier": "S30", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.53, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 65.3, "unit": "ng/mL" @@ -2059,11 +2056,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.53, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 111, + "value": 111.0, "unit": "RFU" } } @@ -2083,25 +2083,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2112,10 +2112,7 @@ "sample identifier": "S31", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.56, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 65.6, "unit": "ng/mL" @@ -2128,11 +2125,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.56, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 106, + "value": 106.0, "unit": "RFU" } } @@ -2152,25 +2152,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2181,10 +2181,7 @@ "sample identifier": "S32", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.59, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:06+00:00", "qubit tube concentration": { "value": 65.9, "unit": "ng/mL" @@ -2197,11 +2194,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:06+00:00" + "original sample concentration": { + "value": 6.59, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 104, + "value": 104.0, "unit": "RFU" } } @@ -2221,25 +2221,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2250,10 +2250,7 @@ "sample identifier": "S33", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.54, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 65.4, "unit": "ng/mL" @@ -2266,11 +2263,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.54, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 126, + "value": 126.0, "unit": "RFU" } } @@ -2290,25 +2290,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2319,10 +2319,7 @@ "sample identifier": "S34", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.61, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 66.1, "unit": "ng/mL" @@ -2335,11 +2332,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.61, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 133, + "value": 133.0, "unit": "RFU" } } @@ -2359,25 +2359,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2388,10 +2388,7 @@ "sample identifier": "S35", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.6, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 66.0, "unit": "ng/mL" @@ -2404,11 +2401,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.6, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 127, + "value": 127.0, "unit": "RFU" } } @@ -2428,25 +2428,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2457,10 +2457,7 @@ "sample identifier": "S36", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.86, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 68.6, "unit": "ng/mL" @@ -2473,11 +2470,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.86, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 134, + "value": 134.0, "unit": "RFU" } } @@ -2497,25 +2497,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2526,10 +2526,7 @@ "sample identifier": "S37", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.9, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 69.0, "unit": "ng/mL" @@ -2542,11 +2539,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.9, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 132, + "value": 132.0, "unit": "RFU" } } @@ -2566,25 +2566,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2595,10 +2595,7 @@ "sample identifier": "S38", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.9, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 69.0, "unit": "ng/mL" @@ -2611,11 +2608,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.9, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 118, + "value": 118.0, "unit": "RFU" } } @@ -2635,25 +2635,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2664,10 +2664,7 @@ "sample identifier": "S39", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.93, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 69.3, "unit": "ng/mL" @@ -2680,11 +2677,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.93, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 112, + "value": 112.0, "unit": "RFU" } } @@ -2704,25 +2704,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2733,10 +2733,7 @@ "sample identifier": "S40", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.84, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:15+00:00", "qubit tube concentration": { "value": 68.4, "unit": "ng/mL" @@ -2749,11 +2746,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:15+00:00" + "original sample concentration": { + "value": 6.84, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 108, + "value": 108.0, "unit": "RFU" } } @@ -2773,25 +2773,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2802,10 +2802,7 @@ "sample identifier": "S41", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.46, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 64.6, "unit": "ng/mL" @@ -2818,11 +2815,14 @@ "value": 968.243447194, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.46, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 125, + "value": 125.0, "unit": "RFU" } } @@ -2842,25 +2842,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2871,10 +2871,7 @@ "sample identifier": "S42", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.55, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 65.5, "unit": "ng/mL" @@ -2887,11 +2884,14 @@ "value": 1011.24211785, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.55, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 132, + "value": 132.0, "unit": "RFU" } } @@ -2911,25 +2911,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -2940,10 +2940,7 @@ "sample identifier": "S43", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.75, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 67.5, "unit": "ng/mL" @@ -2956,11 +2953,14 @@ "value": 967.148849047, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.75, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 130, + "value": 130.0, "unit": "RFU" } } @@ -2980,25 +2980,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -3009,10 +3009,7 @@ "sample identifier": "S44", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.98, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 69.8, "unit": "ng/mL" @@ -3025,11 +3022,14 @@ "value": 982.615996767, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.98, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 137, + "value": 137.0, "unit": "RFU" } } @@ -3049,25 +3049,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -3078,10 +3078,7 @@ "sample identifier": "S45", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.81, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 68.1, "unit": "ng/mL" @@ -3094,11 +3091,14 @@ "value": 957.939947254, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.81, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 130, + "value": 130.0, "unit": "RFU" } } @@ -3118,25 +3118,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -3147,10 +3147,7 @@ "sample identifier": "S46", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.74, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 67.4, "unit": "ng/mL" @@ -3163,11 +3160,14 @@ "value": 855.35706446, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.74, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 115, + "value": 115.0, "unit": "RFU" } } @@ -3187,25 +3187,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -3216,10 +3216,7 @@ "sample identifier": "S47", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.92, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 69.2, "unit": "ng/mL" @@ -3232,11 +3229,14 @@ "value": 814.547590094, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.92, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 112, + "value": 112.0, "unit": "RFU" } } @@ -3256,25 +3256,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 2, - "unit": "μL" - }, "operating minimum": { "value": "0.05-0.1", "unit": "ng/µL" }, + "operating maximum": { + "value": "50.0-60.0", + "unit": "ng/µL" + }, "operating range": { "value": "0.1-50.0", "unit": "ng/µL" }, - "operating maximum": { - "value": "50.0-60.0", - "unit": "ng/µL" + "sample volume setting": { + "value": 2.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 100, + "value": 100.0, "unit": "(unitless)" } } @@ -3285,10 +3285,7 @@ "sample identifier": "S48", "batch identifier": "031123-101734", "custom information document": { - "original sample concentration": { - "value": 6.76, - "unit": "ng/µL" - }, + "last read standards": "2023-03-11T10:18:24+00:00", "qubit tube concentration": { "value": 67.6, "unit": "ng/mL" @@ -3301,11 +3298,14 @@ "value": 790.63300016, "unit": "RFU" }, - "last read standards": "2023-03-11T10:18:24+00:00" + "original sample concentration": { + "value": 6.76, + "unit": "ng/µL" + } } }, "fluorescence": { - "value": 107, + "value": 107.0, "unit": "RFU" } } @@ -3325,7 +3325,7 @@ "file name": "thermo_fisher_qubit_flex_example_02.xlsx", "software name": "Qubit Flex software", "ASM converter name": "allotropy_thermo_fisher_qubit_flex", - "ASM converter version": "0.1.49" + "ASM converter version": "0.1.56" } } } diff --git a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_03.json b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_03.json index 9c4df9002..60bb533bc 100644 --- a/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_03.json +++ b/tests/parsers/thermo_fisher_qubit_flex/testdata/thermo_fisher_qubit_flex_example_03.json @@ -13,25 +13,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -42,10 +42,7 @@ "sample identifier": "S1", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 12.7, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 63.6, "unit": "ng/mL" @@ -58,7 +55,10 @@ "value": 1021.37558695, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 12.7, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -82,25 +82,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -111,10 +111,7 @@ "sample identifier": "S2", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 9.74, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 48.7, "unit": "ng/mL" @@ -127,7 +124,10 @@ "value": 978.738614734, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 9.74, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -151,25 +151,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -180,10 +180,7 @@ "sample identifier": "S3", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 10.2, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 50.8, "unit": "ng/mL" @@ -196,7 +193,10 @@ "value": 998.4849411, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 10.2, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -220,25 +220,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -249,10 +249,7 @@ "sample identifier": "S4", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 3.72, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 18.6, "unit": "ng/mL" @@ -265,7 +262,10 @@ "value": 988.649509754, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 3.72, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -289,25 +289,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -318,10 +318,7 @@ "sample identifier": "S5", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 214.0, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 1070.0, "unit": "ng/mL" @@ -334,7 +331,10 @@ "value": 976.49985926, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 214.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -358,25 +358,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -387,10 +387,7 @@ "sample identifier": "S6", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 14.1, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 70.5, "unit": "ng/mL" @@ -403,7 +400,10 @@ "value": 878.522864107, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 14.1, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -427,25 +427,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -456,10 +456,7 @@ "sample identifier": "S7", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 14.5, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 72.6, "unit": "ng/mL" @@ -472,7 +469,10 @@ "value": 818.655021114, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 14.5, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -496,25 +496,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -525,10 +525,7 @@ "sample identifier": "S8", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 6.34, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:27:55+00:00", "qubit tube concentration": { "value": 31.7, "unit": "ng/mL" @@ -541,7 +538,10 @@ "value": 824.314796187, "unit": "RFU" }, - "last read standards": "2023-10-10T12:27:55+00:00" + "original sample concentration": { + "value": 6.34, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -565,25 +565,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -594,10 +594,7 @@ "sample identifier": "S9", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 194.0, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:29:12+00:00", "qubit tube concentration": { "value": 969.0, "unit": "ng/mL" @@ -610,7 +607,10 @@ "value": 1021.37558695, "unit": "RFU" }, - "last read standards": "2023-10-10T12:29:12+00:00" + "original sample concentration": { + "value": 194.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -634,25 +634,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -663,10 +663,7 @@ "sample identifier": "S10", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 136.0, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:32:21+00:00", "qubit tube concentration": { "value": 678.0, "unit": "ng/mL" @@ -679,7 +676,10 @@ "value": 1021.37558695, "unit": "RFU" }, - "last read standards": "2023-10-10T12:32:21+00:00" + "original sample concentration": { + "value": 136.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -703,25 +703,25 @@ { "device type": "fluorescence detector", "custom information document": { - "sample volume setting": { - "value": 1, - "unit": "μL" - }, "operating minimum": { "value": "0.1-0.2", "unit": "ng/µL" }, + "operating maximum": { + "value": "100-120", + "unit": "ng/µL" + }, "operating range": { "value": "0.2-100", "unit": "ng/µL" }, - "operating maximum": { - "value": "100-120", - "unit": "ng/µL" + "sample volume setting": { + "value": 1.0, + "unit": "μL" }, "excitation setting": "BLUE", "dilution factor": { - "value": 200, + "value": 200.0, "unit": "(unitless)" } } @@ -732,10 +732,7 @@ "sample identifier": "S11", "batch identifier": "101023-122753", "custom information document": { - "original sample concentration": { - "value": 60.0, - "unit": "ng/µL" - }, + "last read standards": "2023-10-10T12:34:17+00:00", "qubit tube concentration": { "value": 300.0, "unit": "ng/mL" @@ -748,7 +745,10 @@ "value": 1021.37558695, "unit": "RFU" }, - "last read standards": "2023-10-10T12:34:17+00:00" + "original sample concentration": { + "value": 60.0, + "unit": "ng/µL" + } } }, "fluorescence": { @@ -772,7 +772,7 @@ "file name": "thermo_fisher_qubit_flex_example_03.xlsx", "software name": "Qubit Flex software", "ASM converter name": "allotropy_thermo_fisher_qubit_flex", - "ASM converter version": "0.1.38" + "ASM converter version": "0.1.56" } } }