diff --git a/src/allotropy/allotrope/schema_mappers/adm/cell_counting/rec/_2024/_09/cell_counting.py b/src/allotropy/allotrope/schema_mappers/adm/cell_counting/rec/_2024/_09/cell_counting.py index 733c6f875..78f1668fc 100644 --- a/src/allotropy/allotrope/schema_mappers/adm/cell_counting/rec/_2024/_09/cell_counting.py +++ b/src/allotropy/allotrope/schema_mappers/adm/cell_counting/rec/_2024/_09/cell_counting.py @@ -107,6 +107,12 @@ class Measurement: sample_custom_info: dict[str, Any] | None = None custom_info: dict[str, Any] | None = None + # Custom information documents + device_control_custom_info: dict[str, Any] | None = None + image_processing_custom_info: dict[str, Any] | None = None + data_processing_custom_info: dict[str, Any] | None = None + processed_data_custom_info: dict[str, Any] | None = None + @dataclass(frozen=True) class MeasurementGroup: @@ -223,21 +229,23 @@ def _get_technique_document( def _get_measurement_document( self, measurement: Measurement, metadata: Metadata ) -> MeasurementDocument: + device_control_doc = DeviceControlDocumentItem( + device_type=metadata.device_type, + detection_type=metadata.detection_type, + sample_volume_setting=quantity_or_none( + TQuantityValueMicroliter, + measurement.sample_volume_setting, + ), + ) + device_control_doc = add_custom_information_document( + device_control_doc, measurement.device_control_custom_info or {} + ) measurement_document = MeasurementDocument( measurement_time=self.get_date_time(measurement.timestamp), measurement_identifier=measurement.measurement_identifier, sample_document=self._get_sample_document(measurement), device_control_aggregate_document=DeviceControlAggregateDocument( - device_control_document=[ - DeviceControlDocumentItem( - device_type=metadata.device_type, - detection_type=metadata.detection_type, - sample_volume_setting=quantity_or_none( - TQuantityValueMicroliter, - measurement.sample_volume_setting, - ), - ) - ] + device_control_document=[device_control_doc] ), processed_data_aggregate_document=self._get_processed_data_aggregate_document( measurement @@ -247,12 +255,16 @@ def _get_measurement_document( ), image_aggregate_document=ImageAggregateDocument( image_document=[ - ImageDocumentItem( - experimental_data_identifier=measurement.experimental_data_identifier + add_custom_information_document( + ImageDocumentItem( + experimental_data_identifier=measurement.experimental_data_identifier + ), + measurement.image_processing_custom_info or {}, ) ], ) if measurement.experimental_data_identifier + or measurement.image_processing_custom_info else None, ) return add_custom_information_document( @@ -322,20 +334,23 @@ def _get_processed_data_aggregate_document( TQuantityValueUnitless, measurement.debris_index ), } - data_processing_document = DataProcessingDocument( - cell_type_processing_method=measurement.cell_type_processing_method, - minimum_cell_diameter_setting=quantity_or_none( - TQuantityValueMicrometer, - measurement.minimum_cell_diameter_setting, - ), - maximum_cell_diameter_setting=quantity_or_none( - TQuantityValueMicrometer, - measurement.maximum_cell_diameter_setting, - ), - cell_density_dilution_factor=quantity_or_none( - TQuantityValueUnitless, - measurement.cell_density_dilution_factor, + data_processing_document = add_custom_information_document( + DataProcessingDocument( + cell_type_processing_method=measurement.cell_type_processing_method, + minimum_cell_diameter_setting=quantity_or_none( + TQuantityValueMicrometer, + measurement.minimum_cell_diameter_setting, + ), + maximum_cell_diameter_setting=quantity_or_none( + TQuantityValueMicrometer, + measurement.maximum_cell_diameter_setting, + ), + cell_density_dilution_factor=quantity_or_none( + TQuantityValueUnitless, + measurement.cell_density_dilution_factor, + ), ), + measurement.data_processing_custom_info or {}, ) processed_data_document = ProcessedDataDocumentItem( processed_data_identifier=measurement.processed_data_identifier, @@ -389,7 +404,8 @@ def _get_processed_data_aggregate_document( return ProcessedDataAggregateDocument( processed_data_document=[ add_custom_information_document( - processed_data_document, custom_document + processed_data_document, + custom_document | (measurement.processed_data_custom_info or {}), ) ] ) diff --git a/src/allotropy/parsers/beckman_vi_cell_blu/vi_cell_blu_structure.py b/src/allotropy/parsers/beckman_vi_cell_blu/vi_cell_blu_structure.py index efa2fca2a..c7bb3663b 100644 --- a/src/allotropy/parsers/beckman_vi_cell_blu/vi_cell_blu_structure.py +++ b/src/allotropy/parsers/beckman_vi_cell_blu/vi_cell_blu_structure.py @@ -53,6 +53,28 @@ def create_measurement_group(data: SeriesData) -> MeasurementGroup: average_viable_cell_circularity=data.get( float, "Average viable circularity" ), + device_control_custom_info=data.get_custom_keys( + {"Wash", "Mixing cycles", "Aspiration cycles"} + ), + image_processing_custom_info=data.get_custom_keys( + {"Images", "Images for analysis"} + ), + data_processing_custom_info=data.get_custom_keys( + { + "Decluster degree", + "Minimum circularity", + "Viable spot area (%)", + "Viable spot brightness (%)", + "Cell sharpness", + "Average background intensity", + "Bubble count", + "Cluster count", + } + ), + processed_data_custom_info=data.get_custom_keys( + {"Average cells per image"} + ), + custom_info=data.get_unread(), ) ], ) diff --git a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_different_mu_character.json b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_different_mu_character.json index b3225dc6b..92055d231 100644 --- a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_different_mu_character.json +++ b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_different_mu_character.json @@ -10,7 +10,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0 + } } ] }, @@ -32,6 +37,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Bubble count": 0.0, + "Minimum circularity": 0.1, + "Cluster count": 0.0, + "Decluster degree": "Medium", + "Viable spot brightness (%)": 50.0, + "Viable spot area (%)": 5.0, + "Average background intensity": 134.0, + "Cell sharpness": 7.0 } }, "viability (cell counter)": { @@ -69,12 +84,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 21.0 } } ] }, "sample document": { "sample identifier": "CLB001" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -88,7 +116,7 @@ "file name": "Beckman_Vi-Cell-BLU_different_mu_character.csv", "UNC path": "tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_different_mu_character.csv", "ASM converter name": "allotropy_beckman_coulter_vi_cell_blu", - "ASM converter version": "0.1.69", + "ASM converter version": "0.1.97", "software name": "Vi-Cell BLU" }, "device system document": { diff --git a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01.json b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01.json index 2235aac20..0f167947b 100644 --- a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01.json +++ b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01.json @@ -10,7 +10,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -32,6 +37,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -69,12 +84,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 21.0 } } ] }, "sample document": { "sample identifier": "CLB001" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -89,7 +117,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -111,6 +144,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 135.0 } }, "viability (cell counter)": { @@ -148,12 +191,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 76.0 } } ] }, "sample document": { "sample identifier": "CLB002" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -168,7 +224,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -190,6 +251,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -227,12 +298,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 15.0 } } ] }, "sample document": { "sample identifier": "CLB003" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -247,7 +331,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -269,6 +358,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -306,12 +405,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 31.0 } } ] }, "sample document": { "sample identifier": "CLB005" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -326,7 +438,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -348,6 +465,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -385,12 +512,25 @@ "average viable cell circularity": { "value": 0.87, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 24.0 } } ] }, "sample document": { "sample identifier": "CLB006" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -405,7 +545,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -427,6 +572,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -464,12 +619,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 29.0 } } ] }, "sample document": { "sample identifier": "CLB007" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -484,7 +652,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -506,6 +679,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 4.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -535,12 +718,25 @@ "average viable cell circularity": { "value": 0.87, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 70.0 } } ] }, "sample document": { "sample identifier": "CLB008" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -555,7 +751,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -577,6 +778,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 0.0, + "Average background intensity": 135.0 } }, "viability (cell counter)": { @@ -614,12 +825,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 52.0 } } ] }, "sample document": { "sample identifier": "CLB009" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -634,7 +858,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -656,6 +885,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 24.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -693,12 +932,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 113.0 } } ] }, "sample document": { "sample identifier": "CLB010" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -713,7 +965,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Aspiration cycles": 3.0, + "Mixing cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -735,6 +992,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Bubble count": 0.0, + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Minimum circularity": 0.1, + "Cell sharpness": 7.0, + "Cluster count": 7.0, + "Average background intensity": 135.0 } }, "viability (cell counter)": { @@ -772,12 +1039,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 97.0 } } ] }, "sample document": { "sample identifier": "CLB011" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images for analysis": 100.0, + "Images": 100.0 + } + } + ] } } ] @@ -791,7 +1071,7 @@ "file name": "Beckman_Vi-Cell-BLU_example01.csv", "UNC path": "tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01.csv", "ASM converter name": "allotropy_beckman_coulter_vi_cell_blu", - "ASM converter version": "0.1.69", + "ASM converter version": "0.1.97", "software name": "Vi-Cell BLU" }, "device system document": { diff --git a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01_utf16.json b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01_utf16.json index 8876163da..d3b9fd77d 100644 --- a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01_utf16.json +++ b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01_utf16.json @@ -10,7 +10,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -32,6 +37,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -69,12 +84,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 21.0 } } ] }, "sample document": { "sample identifier": "CLB001" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -89,7 +117,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -111,6 +144,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 135.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -148,12 +191,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 76.0 } } ] }, "sample document": { "sample identifier": "CLB002" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -168,7 +224,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -190,6 +251,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -227,12 +298,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 15.0 } } ] }, "sample document": { "sample identifier": "CLB003" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -247,7 +331,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -269,6 +358,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -306,12 +405,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 31.0 } } ] }, "sample document": { "sample identifier": "CLB005" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -326,7 +438,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -348,6 +465,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -385,12 +512,25 @@ "average viable cell circularity": { "value": 0.87, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 24.0 } } ] }, "sample document": { "sample identifier": "CLB006" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -405,7 +545,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -427,6 +572,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -464,12 +619,25 @@ "average viable cell circularity": { "value": 0.88, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 29.0 } } ] }, "sample document": { "sample identifier": "CLB007" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -484,7 +652,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -506,6 +679,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 4.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -543,12 +726,25 @@ "average viable cell circularity": { "value": 0.87, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 70.0 } } ] }, "sample document": { "sample identifier": "CLB008" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -563,7 +759,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -585,6 +786,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 135.0, + "Cluster count": 0.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -622,12 +833,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 52.0 } } ] }, "sample document": { "sample identifier": "CLB009" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -642,7 +866,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -664,6 +893,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 134.0, + "Cluster count": 24.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -701,12 +940,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 113.0 } } ] }, "sample document": { "sample identifier": "CLB010" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -721,7 +973,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Mixing cycles": 3.0, + "Aspiration cycles": 3.0, + "Wash": "Normal Wash" + } } ] }, @@ -743,6 +1000,16 @@ "maximum cell diameter setting": { "value": 30.0, "unit": "µm" + }, + "custom information document": { + "Viable spot area (%)": 5.0, + "Viable spot brightness (%)": 50.0, + "Decluster degree": "Medium", + "Cell sharpness": 7.0, + "Minimum circularity": 0.1, + "Average background intensity": 135.0, + "Cluster count": 7.0, + "Bubble count": 0.0 } }, "viability (cell counter)": { @@ -780,12 +1047,25 @@ "average viable cell circularity": { "value": 0.89, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 97.0 } } ] }, "sample document": { "sample identifier": "CLB011" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 100.0 + } + } + ] } } ] @@ -799,7 +1079,7 @@ "file name": "Beckman_Vi-Cell-BLU_example01_utf16.csv", "UNC path": "tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example01_utf16.csv", "ASM converter name": "allotropy_beckman_coulter_vi_cell_blu", - "ASM converter version": "0.1.69", + "ASM converter version": "0.1.97", "software name": "Vi-Cell BLU" }, "device system document": { diff --git a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example02.json b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example02.json index a575ac5e3..afa059516 100644 --- a/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example02.json +++ b/tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example02.json @@ -10,7 +10,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Mixing cycles": 3.0, + "Aspiration cycles": 4.0 + } } ] }, @@ -32,6 +37,16 @@ "maximum cell diameter setting": { "value": 50.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Minimum circularity": 0.0, + "Cluster count": 45.0, + "Cell sharpness": 10.0, + "Viable spot area (%)": 10.0, + "Bubble count": 0.0, + "Viable spot brightness (%)": 55.0, + "Average background intensity": 135.0 } }, "viability (cell counter)": { @@ -69,12 +84,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 20.0 } } ] }, "sample document": { "sample identifier": "CLB001" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 59.0 + } + } + ] } } ] @@ -89,7 +117,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Mixing cycles": 3.0, + "Aspiration cycles": 4.0 + } } ] }, @@ -111,6 +144,16 @@ "maximum cell diameter setting": { "value": 50.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Minimum circularity": 0.0, + "Cluster count": 33.0, + "Cell sharpness": 10.0, + "Viable spot area (%)": 10.0, + "Bubble count": 0.0, + "Viable spot brightness (%)": 55.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -148,12 +191,25 @@ "average viable cell circularity": { "value": 0.92, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 9.0 } } ] }, "sample document": { "sample identifier": "CLB002" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 51.0 + } + } + ] } } ] @@ -168,7 +224,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Mixing cycles": 3.0, + "Aspiration cycles": 4.0 + } } ] }, @@ -190,6 +251,16 @@ "maximum cell diameter setting": { "value": 50.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Minimum circularity": 0.0, + "Cluster count": 41.0, + "Cell sharpness": 10.0, + "Viable spot area (%)": 10.0, + "Bubble count": 0.0, + "Viable spot brightness (%)": 55.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -227,12 +298,25 @@ "average viable cell circularity": { "value": 0.9, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 34.0 } } ] }, "sample document": { "sample identifier": "CLB003" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 50.0 + } + } + ] } } ] @@ -247,7 +331,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Mixing cycles": 3.0, + "Aspiration cycles": 4.0 + } } ] }, @@ -269,6 +358,16 @@ "maximum cell diameter setting": { "value": 50.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Minimum circularity": 0.0, + "Cluster count": 40.0, + "Cell sharpness": 10.0, + "Viable spot area (%)": 10.0, + "Bubble count": 0.0, + "Viable spot brightness (%)": 55.0, + "Average background intensity": 135.0 } }, "viability (cell counter)": { @@ -306,12 +405,25 @@ "average viable cell circularity": { "value": 0.91, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 28.0 } } ] }, "sample document": { "sample identifier": "CLB004" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 62.0 + } + } + ] } } ] @@ -326,7 +438,12 @@ "device control document": [ { "device type": "brightfield imager (cell counter)", - "detection type": "brightfield" + "detection type": "brightfield", + "custom information document": { + "Wash": "Normal Wash", + "Mixing cycles": 3.0, + "Aspiration cycles": 4.0 + } } ] }, @@ -348,6 +465,16 @@ "maximum cell diameter setting": { "value": 50.0, "unit": "µm" + }, + "custom information document": { + "Decluster degree": "Medium", + "Minimum circularity": 0.0, + "Cluster count": 58.0, + "Cell sharpness": 10.0, + "Viable spot area (%)": 10.0, + "Bubble count": 0.0, + "Viable spot brightness (%)": 55.0, + "Average background intensity": 134.0 } }, "viability (cell counter)": { @@ -385,12 +512,25 @@ "average viable cell circularity": { "value": 0.92, "unit": "(unitless)" + }, + "custom information document": { + "Average cells per image": 16.0 } } ] }, "sample document": { "sample identifier": "CLB005" + }, + "image aggregate document": { + "image document": [ + { + "custom information document": { + "Images": 100.0, + "Images for analysis": 50.0 + } + } + ] } } ] @@ -404,7 +544,7 @@ "file name": "Beckman_Vi-Cell-BLU_example02.csv", "UNC path": "tests/parsers/beckman_vi_cell_blu/testdata/Beckman_Vi-Cell-BLU_example02.csv", "ASM converter name": "allotropy_beckman_coulter_vi_cell_blu", - "ASM converter version": "0.1.69", + "ASM converter version": "0.1.97", "software name": "Vi-Cell BLU" }, "device system document": {