diff --git a/src/allotropy/parsers/cytiva_unicorn/structure/measurements/absorbance.py b/src/allotropy/parsers/cytiva_unicorn/structure/measurements/absorbance.py index 78108662d..ad8023795 100644 --- a/src/allotropy/parsers/cytiva_unicorn/structure/measurements/absorbance.py +++ b/src/allotropy/parsers/cytiva_unicorn/structure/measurements/absorbance.py @@ -37,7 +37,7 @@ StrictXmlElement, ) from allotropy.parsers.utils.uuids import random_uuid_str -from allotropy.parsers.utils.values import assert_not_none, quantity_or_none +from allotropy.parsers.utils.values import quantity_or_none class AbsorbanceMeasurement(UnicornMeasurement): @@ -56,25 +56,24 @@ def create_or_none( handler: UnicornZipHandler, elements: list[StrictXmlElement], static_docs: StaticDocs, - ) -> UnicornMeasurement: - element = assert_not_none( - cls.filter_curve_or_none(elements, cls.get_curve_regex()), - "Unable to find curve data for absorbance measurement.", + ) -> UnicornMeasurement | None: + element = cls.filter_curve_or_none(elements, cls.get_curve_regex()) + if element is None: + return None + data_cube = cls.get_data_cube_or_none( + handler, + element, + DataCubeComponent( + type_=FieldComponentDatatype.float, + concept="absorbance", + unit="mAU", + ), ) + if data_cube is None: + return None measurement = cls.get_measurement( static_docs=static_docs, - chromatogram_data_cube=assert_not_none( - cls.get_data_cube_or_none( - handler, - element, - DataCubeComponent( - type_=FieldComponentDatatype.float, - concept="absorbance", - unit="mAU", - ), - ), - msg="Unable to find information to create absorbance data cubes.", - ), + chromatogram_data_cube=data_cube, device_control_docs=[ DeviceControlDoc( device_type=DEVICE_TYPE, @@ -93,7 +92,7 @@ def create_or_none( class AbsorbanceMeasurement1(AbsorbanceMeasurement): @classmethod def get_curve_regex(cls) -> str: - return r"^UV 1_\d+$" + return r"^UV( 1_\d+)?$" @classmethod def get_peaks_custom_info( diff --git a/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.json b/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.json new file mode 100644 index 000000000..cf86617f4 --- /dev/null +++ b/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.json @@ -0,0 +1,1038 @@ +{ + "$asm.manifest": "http://purl.allotrope.org/manifests/liquid-chromatography/BENCHLING/2023/09/liquid-chromatography.manifest", + "liquid chromatography aggregate document": { + "data system document": { + "ASM converter name": "allotropy_cytiva_unicorn", + "ASM converter version": "0.1.126", + "file name": "unicorn_single_uv.zip", + "software version": "7.7.0.4016", + "UNC path": "tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.zip", + "custom information document": { + "Created": "2025-01-15T10:00:00.000", + "CreatedBy": "TestUser", + "CreatedUtcOffsetMinutes": "0", + "FolderPath": "/TestHome/TestSystem", + "IsArchived": "false", + "IsArchivingAllowed": "true", + "IsLegacy": "false", + "IsReadOnly": "false", + "LastModified": "2025-01-15T12:00:00.000", + "LastModifiedBy": "System", + "LastModifiedUtcOffsetMinutes": "0", + "ResultFormatVersion": "7", + "ResultPurpose": "0", + "ResultState": "Normal" + } + }, + "device system document": { + "asset management identifier": "AKTA pure 25", + "product manufacturer": "Cytiva Life Sciences", + "device identifier": "TestSystem 1000000", + "firmware version": "4.24.2.0", + "custom information document": { + "SystemTypeName": "NEXTAKTAchromatography" + } + }, + "liquid chromatography document": [ + { + "measurement aggregate document": { + "measurement document": [ + { + "device control aggregate document": { + "device control document": [ + { + "device type": "HPLC", + "start time setting": "2025-01-15T10:00:00+00:00", + "custom information document": { + "ColumnVolume": "120.0", + "ScanInterval": "0" + } + } + ] + }, + "sample document": { + "sample identifier": "N/A", + "batch identifier": "00000000-0000-0000-0000-000000000001" + }, + "chromatography column document": {}, + "measurement identifier": "CYTIVA_UNICORN_TEST_ID_1", + "injection document": { + "autosampler injection volume setting (chromatography)": { + "value": -0.0, + "unit": "mm^3" + }, + "injection identifier": "CYTIVA_UNICORN_TEST_ID_0", + "injection time": "2025-01-15T10:00:00+00:00" + }, + "chromatogram data cube": { + "label": "UV", + "cube-structure": { + "dimensions": [ + { + "@componentDatatype": "float", + "concept": "retention volume", + "unit": "mL" + } + ], + "measures": [ + { + "@componentDatatype": "float", + "concept": "absorbance", + "unit": "mAU" + } + ] + }, + "data": { + "measures": [ + [ + -8.779904132896689e-16, + -9.905489243514781e-14, + -1.9386643135501458e-28, + -1.1690488170032824e-27, + -1.8128472515473384e+31, 124049170432.0, + 5.660722758593639e-12, + -9.509998699193579e+24, + 1.2026155169784375e+32, + 1.2731467239367115e+19, + -2.7687974864670687e+25, + 8.800792066595106e-28, + 3.5400303204369266e-06, + -1.8132966288866604e-21, + -8.012610373056493e-20, 372467744.0, + 2.3912650110786074e+27, + -1.6578013612320627e-26, + 1.0505236544628192e+31, + -7.082031121112768e-34, + -11426399232.0, + -0.09713983535766602, + -10.022523880004883, + -1.1787061099036159e-18, + -2.8030835887747055e+31, + 6.5677176333139855e-22, + -1.3044050306407098e-33, + 5.224799481950981e-10, 194.86038208007812, 9351.5634765625, + 1.690576437116928e+17, + -1.6480989870615304e-06, + -2250523136.0, + -3.036104820589636e-36, + -7.218288729436621e+34, 9057403904.0, + 2.464789389377536e+16, + -5.709899261878102e-27, + -29.341920852661133, + -1.115054258441176e-22, + -0.007029683329164982, + -2.8773346372190645e-08, + 5.2289980151979425e+28, + -5.339668859960511e-05, + 9.27702586697199e-31, + -1.3320258434745288e-21, + -7.344149258784954e-29, + 1.1889037681909817e-37, + 2.0560045169629228e-22, + -2608609053638656.0, + -3.3195732069642343e-16, + 4.426004431636996e-30, + -1.1032751241364819e+20, 2605035372412928.0, + 2.8888005558233203e+20, + -2.03699029030168e-19, + -2.2265547120846368e+28, + -3593.765625, + -5.023769798123732e-23, + -2.6361111979897e-20, + 6.83310963491751e-31, + -8.219659832534321e-18, + -6.874758340162624e-31, + -3.2369956799316664e-28, + -3.9920558544198973e-23, + -2.3344832764885828e+27, + 1.118661963722743e-29, 0.00021740517695434391, + -4.516082386524234e-12, + 6.806048754242401e+34, + 2.5855943147495902e-36, + -14876738.0, + -3.2643429062802164e+34, + 1.0783282032021275e-37, + -3.7208509117199605e-28, + 1.7796731346531506e+38, + -3.511289481394897e-09 + ] + ], + "dimensions": [ + [ + 4.6864740797481967e+30, + -6.117306788877559e-37, + -7.211314597944294e-31, + -8.522539647797986e-25, + -1.0688829943361755e-18, + -1.304546965244513e-12, + -1.5605548924213508e-06, + -1.8383867740631104, + -2181904.5, + -2732153372672.0, + -3.330711541359051e+18, + -3.980900181287642e+24, + -4.6864740797481967e+30, + -5.585492918761819e+36, + 6.117306788877559e-37, + 6.653211241110278e-34, + 7.211315068142034e-31, + 7.792375629196435e-28, + 8.522540633874118e-25, + 9.582696555196635e-22, + 1.068883097733752e-18, + 1.1842540218525376e-15, + 1.3045470736647302e-12, + 1.4299036399378906e-09, + 1.5605550061081885e-06, 0.0016966540133580565, 1.8383868932724, 1985.9456787109375, 2181904.75, 2451194624.0, 2732153634816.0, 3025186790047744.0, + 3.3307118162369577e+18, + 3.649087478498148e+21, + 3.980900469518018e+24, + 4.326538609719227e+27, + 4.6864743819796516e+30, + 5.061194985069378e+33, + 5.585493552587119e+36, + -1.8522882983175697e-38, + -6.117307237293067e-37, + -2.0183334143903717e-35, + -6.653211241110278e-34, + -2.1912817779748373e-32, + -7.211315068142034e-31, + -2.3713691029646684e-29, + -7.792375629196435e-28, + -2.558838441249898e-26, + -8.522540633874118e-25, + -2.860902838169333e-23, + -9.582696555196635e-22, + -3.203361289040449e-20, + -1.068883097733752e-18, + -3.5606098655185933e-17, + -1.1842540218525376e-15, + -3.933161237565201e-14, + -1.3045470736647302e-12, + -4.3215441641875074e-11, + -1.4299036399378906e-09, + -4.7262130209446696e-08, + -1.5605550061081885e-06, + -5.147909905645065e-05, + -0.0016966540133580565, + -0.05587125942111015, + -1.8383868932724, + -60.4445915222168, + -1985.9456787109375, + -65205.26171875, + -2181904.75, + -73210392.0, + -2451194624.0, + -81909014528.0, + -2732153634816.0, + -90983001751552.0, + -3025186790047744.0, + -1.0044536076946637e+17, + -3.3307118162369577e+18 + ] + ] + } + } + }, + { + "device control aggregate document": { + "device control document": [ + { + "device type": "HPLC", + "start time setting": "2025-01-15T10:00:00+00:00", + "custom information document": { + "ColumnVolume": "120.0", + "ScanInterval": "0" + } + } + ] + }, + "sample document": { + "sample identifier": "N/A", + "batch identifier": "00000000-0000-0000-0000-000000000001" + }, + "chromatography column document": {}, + "measurement identifier": "CYTIVA_UNICORN_TEST_ID_2", + "injection document": { + "autosampler injection volume setting (chromatography)": { + "value": -0.0, + "unit": "mm^3" + }, + "injection identifier": "CYTIVA_UNICORN_TEST_ID_0", + "injection time": "2025-01-15T10:00:00+00:00" + }, + "chromatogram data cube": { + "label": "Cond", + "cube-structure": { + "dimensions": [ + { + "@componentDatatype": "float", + "concept": "retention volume", + "unit": "mL" + } + ], + "measures": [ + { + "@componentDatatype": "float", + "concept": "electric conductivity", + "unit": "S/m" + } + ] + }, + "data": { + "measures": [ + [ + -4.587564908433706e-05, + -1.0825943401698545e-19, + 1.832207668594073e+36, + -4.610734710697173e-12, + -3.185059465623316e-20, + -3.908668351009282e-27, + -1.5252796359277454e-09, 41483592584396.8, + -8.569889965045652e-20, + -4.281196908095808e-09, + -7.680089556856173e+36, + 5.430429994568442e-11, + -3.235371195842163e-07, + 3.8340340559502026e-14, + -1.6735362643217696e-18, + -2.350578499205058e-13, + 7.260980261492022e-10, 5361484.4, + 1.7131277357118482e-16, + -5.112981149579809e-10, 0.15691910982131957, + 1.0516928699559929e-35, + -0.001818573847413063, + 3.6730796110525107e-39, 443459276.8, + -2.381548263381772e-32, + 1.922240103355033e-29, + -5.481079864501953, + -0.3957840442657471, + -97082.0125, 2947.1626953125, + -4.453610939489754e+28, + -8.23953423960788e+20, + 7.136299295787885e+25, + 3.3495717355469085e+30, 59938.0125, + -8.126985990862452e-18, + -8.459484134434144e+17, + -1.2458550600058515e-07, + -0.12990190982818603, + 2.0111840868674826e+23, 39.99238586425781, + -258.089111328125, + -2.0614871978759766, + -4.463884982935867e-36, + -2.7261648433549506e-25, + -0.015250876545906067, + -2.5981413654778445e-29, + 1.981532697439662e-28, + 9.807966079688438e+35, + 1.9393636950120854e+36, 5699019787468.8, + 4.8651500122680354e-30, + -1.9913136843808947e-16, + 7.335811473725061e-40, + -3.6955181344185645e-27, + -1.8440353510119286e-38, + 1.0611393605332236e+26, + -1.9755509588488026e-35, + -362490259046.4, 11237016.8, + -6.64356889501505e-08, + -2.5135126988354318e-39, + -4.896621047622883e-33, + -8.474703747050234e-34, + 7.349509082646768e-24, + -0.00033046756871044634, + 1.537744320856064e+16, + 7.137866643599345e-35, + 1.0636069873726228e-07, + -1.145904025179334e-05, + -2.253495445803111e-11, + -91623027.2, + -1.4998401937798845e-37, + -1.310683066149666e-18, + 2.6762822205067757e+17, 189167330918.4] + ], + "dimensions": [ + [ + 4.6864740797481967e+30, + -6.117306788877559e-37, + -7.211314597944294e-31, + -8.522539647797986e-25, + -1.0688829943361755e-18, + -1.304546965244513e-12, + -1.5605548924213508e-06, + -1.8383867740631104, + -2181904.5, + -2732153372672.0, + -3.330711541359051e+18, + -3.980900181287642e+24, + -4.6864740797481967e+30, + -5.585492918761819e+36, + 6.117306788877559e-37, + 6.653211241110278e-34, + 7.211315068142034e-31, + 7.792375629196435e-28, + 8.522540633874118e-25, + 9.582696555196635e-22, + 1.068883097733752e-18, + 1.1842540218525376e-15, + 1.3045470736647302e-12, + 1.4299036399378906e-09, + 1.5605550061081885e-06, 0.0016966540133580565, 1.8383868932724, 1985.9456787109375, 2181904.75, 2451194624.0, 2732153634816.0, 3025186790047744.0, + 3.3307118162369577e+18, + 3.649087478498148e+21, + 3.980900469518018e+24, + 4.326538609719227e+27, + 4.6864743819796516e+30, + 5.061194985069378e+33, + 5.585493552587119e+36, + -1.8522882983175697e-38, + -6.117307237293067e-37, + -2.0183334143903717e-35, + -6.653211241110278e-34, + -2.1912817779748373e-32, + -7.211315068142034e-31, + -2.3713691029646684e-29, + -7.792375629196435e-28, + -2.558838441249898e-26, + -8.522540633874118e-25, + -2.860902838169333e-23, + -9.582696555196635e-22, + -3.203361289040449e-20, + -1.068883097733752e-18, + -3.5606098655185933e-17, + -1.1842540218525376e-15, + -3.933161237565201e-14, + -1.3045470736647302e-12, + -4.3215441641875074e-11, + -1.4299036399378906e-09, + -4.7262130209446696e-08, + -1.5605550061081885e-06, + -5.147909905645065e-05, + -0.0016966540133580565, + -0.05587125942111015, + -1.8383868932724, + -60.4445915222168, + -1985.9456787109375, + -65205.26171875, + -2181904.75, + -73210392.0, + -2451194624.0, + -81909014528.0, + -2732153634816.0, + -90983001751552.0, + -3025186790047744.0, + -1.0044536076946637e+17, + -3.3307118162369577e+18 + ] + ] + } + } + }, + { + "device control aggregate document": { + "device control document": [ + { + "device type": "HPLC", + "start time setting": "2025-01-15T10:00:00+00:00", + "custom information document": { + "ColumnVolume": "120.0", + "ScanInterval": "0" + } + } + ] + }, + "sample document": { + "sample identifier": "N/A", + "batch identifier": "00000000-0000-0000-0000-000000000001" + }, + "chromatography column document": {}, + "measurement identifier": "CYTIVA_UNICORN_TEST_ID_3", + "injection document": { + "autosampler injection volume setting (chromatography)": { + "value": -0.0, + "unit": "mm^3" + }, + "injection identifier": "CYTIVA_UNICORN_TEST_ID_0", + "injection time": "2025-01-15T10:00:00+00:00" + }, + "chromatogram data cube": { + "label": "pH", + "cube-structure": { + "dimensions": [ + { + "@componentDatatype": "float", + "concept": "retention volume", + "unit": "mL" + } + ], + "measures": [ + { + "@componentDatatype": "float", + "concept": "pH", + "unit": "pH" + } + ] + }, + "data": { + "measures": [ + [ + -1.6781575981804342e-37, + -5.456536911196963e-08, + -2.9529924606215876e-30, + -0.09990932047367096, + 1.241106620142167e-37, + -4.127025049574458e-26, + -8.713503664119862e-38, + -9.602953469304426e-14, + -7.86301437189434e-37, + 3.888606639605244e+21, + 9.095133596295559e-26, + 1.8945112862394747e-27, + -2911065604096.0, + -177.07911682128906, + -77.07080841064453, + 2.5041475367332922e-21, + -1.3549938060464228e-08, + 5.080034355203916e+36, + -2.608235211346663e-20, 581796.125, + 4.6033165288798826e+23, 2077.01611328125, + -5.881804464619509e-22, + -5.000349993437466e-29, + -9.11849621975099e+19, + 2.6351036471710674e-22, + -2.795117357966454e-38, + -1.0863269917417927e-30, + -0.009245694614946842, + -0.39286237955093384, + -7.422554517688695e-06, + 7.282814721550913e-27, + -6919.7822265625, + -0.0003240797377657145, + 7.036490530867856e-13, + -13.295473098754883, + -5.792023658752441, + -2.7371339786710913e-13, + -3.460763403008368e+26, + 2.8539551824048705e-23, + -1.6537902232556523e-13, + -2.286704269486661e+37, + -2.2887611990366606e-34, + 6.645519196778136e+18, + -0.0028553162701427937, + -3.4806863803060016e-32, + 9.907128798480488e+21, + 2.080302947456668e-22, + 6.52785667127062e+32, + -8368.564453125, + 4.681295659777235e+19, 3572842752.0, + -2.269198440263409e-10, + -8.449145569920179e-27, + -4.4529048440292926e-32, + -1.9658706563406054e-31, + 2.0105652367198867e-29, + -1.3516418221524942e+26, + -1.513098732214276e-18, + -1.8134053094331574e-18, + -1.3307190419031834e-11, + -4.944770807924215e-06, 72069648.0, 317994.0625, + -7.145394218855898e-20, + -9.336119629478493e-38, + -1.7618725455124636e-31, + -3.569967413406524e-20, + -7.466555373980555e-09, + 1.3444204654638833e-34, + 1.5161987949628698e-25, + 1.8014193438545788e-25, + 9.817219566023611e+23, + 1.603495118110219e+23, 0.0007218904793262482, 2512401786208256.0, + -5.538434047587912e+22 + ] + ], + "dimensions": [ + [ + 4.6864740797481967e+30, + -6.117306788877559e-37, + -7.211314597944294e-31, + -8.522539647797986e-25, + -1.0688829943361755e-18, + -1.304546965244513e-12, + -1.5605548924213508e-06, + -1.8383867740631104, + -2181904.5, + -2732153372672.0, + -3.330711541359051e+18, + -3.980900181287642e+24, + -4.6864740797481967e+30, + -5.585492918761819e+36, + 6.117306788877559e-37, + 6.653211241110278e-34, + 7.211315068142034e-31, + 7.792375629196435e-28, + 8.522540633874118e-25, + 9.582696555196635e-22, + 1.068883097733752e-18, + 1.1842540218525376e-15, + 1.3045470736647302e-12, + 1.4299036399378906e-09, + 1.5605550061081885e-06, 0.0016966540133580565, 1.8383868932724, 1985.9456787109375, 2181904.75, 2451194624.0, 2732153634816.0, 3025186790047744.0, + 3.3307118162369577e+18, + 3.649087478498148e+21, + 3.980900469518018e+24, + 4.326538609719227e+27, + 4.6864743819796516e+30, + 5.061194985069378e+33, + 5.585493552587119e+36, + -1.8522882983175697e-38, + -6.117307237293067e-37, + -2.0183334143903717e-35, + -6.653211241110278e-34, + -2.1912817779748373e-32, + -7.211315068142034e-31, + -2.3713691029646684e-29, + -7.792375629196435e-28, + -2.558838441249898e-26, + -8.522540633874118e-25, + -2.860902838169333e-23, + -9.582696555196635e-22, + -3.203361289040449e-20, + -1.068883097733752e-18, + -3.5606098655185933e-17, + -1.1842540218525376e-15, + -3.933161237565201e-14, + -1.3045470736647302e-12, + -4.3215441641875074e-11, + -1.4299036399378906e-09, + -4.7262130209446696e-08, + -1.5605550061081885e-06, + -5.147909905645065e-05, + -0.0016966540133580565, + -0.05587125942111015, + -1.8383868932724, + -60.4445915222168, + -1985.9456787109375, + -65205.26171875, + -2181904.75, + -73210392.0, + -2451194624.0, + -81909014528.0, + -2732153634816.0, + -90983001751552.0, + -3025186790047744.0, + -1.0044536076946637e+17, + -3.3307118162369577e+18 + ] + ] + } + } + }, + { + "device control aggregate document": { + "device control document": [ + { + "device type": "HPLC", + "start time setting": "2025-01-15T10:00:00+00:00", + "system pressure data cube": { + "label": "System pressure", + "cube-structure": { + "dimensions": [ + { + "@componentDatatype": "float", + "concept": "retention volume", + "unit": "mL" + } + ], + "measures": [ + { + "@componentDatatype": "float", + "concept": "system pressure", + "unit": "MPa" + } + ] + }, + "data": { + "measures": [ + [ + 2.583887240489044e-18, + -4.237457275390625, + -2.472808080939944e-15, + -3.425842515874037e-32, + 1.6131004635351753e-17, + -1.5665204895082075e-32, + 2.656045118198604e+35, + -182013.015625, + 9.953494796179866e+16, + -5.800925818935044e-30, + -1.6234338215023163e-36, + -3.4942448744395702e+19, + -0.4865284264087677, + -3.744156493680493e-27, + 1.7100751076044308e+18, + 1.1168263689700262e+32, + 5.9687777520544584e-15, + -11219.814453125, + 2.8054180786329157e-30, + -9.417171023191031e-25, + -4.4961700041312724e-05, 0.00034972463618032634, + -2.289138954076286e-27, + -1.565142316513252e-37, + -5.385310253291919e-13, + -2.885540055703607e-31, 0.08369113504886627, + 9.057435856483503e-22, 1323.7266845703125, 0.05554414540529251, + -1.3841966137182674e-32, + 1.5735525729643207e-11, + 4.889237772367348e-20, + 1.0904421142271107e+33, + 4.572240272180152e+37, + -9.823052810657761e-29, + 8.737620601454232e-26, + 2.8045632605917496e+35, 791156.125, + -7.25756369064634e-13, + -1.1115138879589204e-36, + -1.594042023418224e-37, + -4.8404016773471194e+20, + -1.1375494304859144e-38, + 7.644277192579013e-14, + 6.2688529616379e+25, + -0.00853210873901844, + 2.084401736111827e+23, + 1.6262583393474827e-22, + -1.546110048926608e-38, + 1.2224832971696742e-05, + 1.3451770999078912e+16, + -0.012390198186039925, + 4.981926091355913e-23, + -2.9524693489074707, + -5.437215122583439e-07, + -1.0721878345305049e-21, + -2.2047672417344553e+18, + 6.460115147916636e-19, + -1.430146668536334e+25, + 5.03536177386007e-25, + -9.265306166253773e-34, + -7.590584110652255e+21, + -2.3156735337115088e+38, + -2.7713185004750625e-14, + 2.4308456053033932e-26, + -6.201260555746741e-18, + -2.9037525065861903e+20, 0.0352327860891819, + -4.178158606526713e-32, + 1.534293614995286e+36, + -2.3152771366774516e-10, + -1.6615016889528128e-27, + -3.019226296418685e-19, + -3.705044563130738e+20, + -1.5014129489663037e-30, + -1.2882494245306898e-25 + ] + ], + "dimensions": [ + [ + 4.6864740797481967e+30, + -6.117306788877559e-37, + -7.211314597944294e-31, + -8.522539647797986e-25, + -1.0688829943361755e-18, + -1.304546965244513e-12, + -1.5605548924213508e-06, + -1.8383867740631104, + -2181904.5, + -2732153372672.0, + -3.330711541359051e+18, + -3.980900181287642e+24, + -4.6864740797481967e+30, + -5.585492918761819e+36, + 6.117306788877559e-37, + 6.653211241110278e-34, + 7.211315068142034e-31, + 7.792375629196435e-28, + 8.522540633874118e-25, + 9.582696555196635e-22, + 1.068883097733752e-18, + 1.1842540218525376e-15, + 1.3045470736647302e-12, + 1.4299036399378906e-09, + 1.5605550061081885e-06, 0.0016966540133580565, 1.8383868932724, 1985.9456787109375, 2181904.75, 2451194624.0, 2732153634816.0, 3025186790047744.0, + 3.3307118162369577e+18, + 3.649087478498148e+21, + 3.980900469518018e+24, + 4.326538609719227e+27, + 4.6864743819796516e+30, + 5.061194985069378e+33, + 5.585493552587119e+36, + -1.8522882983175697e-38, + -6.117307237293067e-37, + -2.0183334143903717e-35, + -6.653211241110278e-34, + -2.1912817779748373e-32, + -7.211315068142034e-31, + -2.3713691029646684e-29, + -7.792375629196435e-28, + -2.558838441249898e-26, + -8.522540633874118e-25, + -2.860902838169333e-23, + -9.582696555196635e-22, + -3.203361289040449e-20, + -1.068883097733752e-18, + -3.5606098655185933e-17, + -1.1842540218525376e-15, + -3.933161237565201e-14, + -1.3045470736647302e-12, + -4.3215441641875074e-11, + -1.4299036399378906e-09, + -4.7262130209446696e-08, + -1.5605550061081885e-06, + -5.147909905645065e-05, + -0.0016966540133580565, + -0.05587125942111015, + -1.8383868932724, + -60.4445915222168, + -1985.9456787109375, + -65205.26171875, + -2181904.75, + -73210392.0, + -2451194624.0, + -81909014528.0, + -2732153634816.0, + -90983001751552.0, + -3025186790047744.0, + -1.0044536076946637e+17, + -3.3307118162369577e+18 + ] + ] + } + } + } + ] + }, + "sample document": { + "sample identifier": "N/A", + "batch identifier": "00000000-0000-0000-0000-000000000001" + }, + "chromatography column document": {}, + "measurement identifier": "CYTIVA_UNICORN_TEST_ID_5", + "injection document": { + "autosampler injection volume setting (chromatography)": { + "value": -0.0, + "unit": "mm^3" + }, + "injection identifier": "CYTIVA_UNICORN_TEST_ID_0", + "injection time": "2025-01-15T10:00:00+00:00" + } + }, + { + "device control aggregate document": { + "device control document": [ + { + "device type": "HPLC", + "start time setting": "2025-01-15T10:00:00+00:00", + "temperature profile data cube": { + "label": "Cond temp", + "cube-structure": { + "dimensions": [ + { + "@componentDatatype": "float", + "concept": "retention volume", + "unit": "mL" + } + ], + "measures": [ + { + "@componentDatatype": "float", + "concept": "temperature", + "unit": "degC" + } + ] + }, + "data": { + "measures": [ + [ + -0.15535834431648254, + 6.612495721279651e+22, + 7.814610863841552e+36, + 5.234529254494191e-08, + -8.79901022346231e+25, + 7.266053603028323e-37, + -4.850421447222629e-35, + -2.0160526189471117e-25, + -1.1056356176912325e-20, + -6.258785364493624e-21, + 3.7553019465651593e-28, 6292.53173828125, + -4.199450631858781e-05, + 1.1695780062560256e+17, + 1.1403147315292017e-09, + -4.029545586092809e-09, + 1.70791641441424e-31, 0.003153220284730196, + 2.9720733373495494e+22, + -2.6540185831918314e-24, + 4.087559786446574e+33, + 1.3813322727546055e-18, + 5.497530513378447e-35, + -1.3683507735450304e-31, + -8.139626975445844e+24, + -4.840645062792557e-17, + -5.904210018812982e-31, + 1.2376629011401194e-37, + 2.851705443645454e-34, + -3391.140869140625, + 7.323825319712299e-26, + 9.782320499743689e-27, + -3.885155667778876e-18, + -0.059357888996601105, + -2868.07861328125, + -2.7944140320386647e-25, + 2.0838081286155773e-25, + 1.4472266873900932e-35, + -1.968051827176063e-22, + 1.5895527452571599e+19, + 7.83075996624652e-14, + -7.351665090027382e-07, + 6.824536491478739e-09, 2253.015869140625, + -1.6694348351349868e-28, 0.0037666705902665854, + -1.5985736467882816e-07, 0.15216922760009766, 0.00846868846565485, + -7.918695582945612e-38, + -3.6653047617486e-26, + 1.6393181042290919e+25, + -3.7380528450012207, + 9.804477322270293e-26, + -2.1521734345283716e+22, + -2.0949577142492792e-11, + -2.6126716790031423e-08, + -5.156036853790283, + -2.4448523587193607e-22, + -31.224729537963867, + -7.540139453056452e-33, + -1.0857377219508635e-08, 638209622016.0, + -19430.12890625, + -8.03430524404014e+26, + 1.249124373990736e+18, + -27.536258697509766, 50793291776.0, + 2.0190026397033538e+36, + -3.2034577926080733e-32, + 1.5572079519188264e-06, + 6.955093367775454e+35, + 2.8075211222109008e+25, + -1.7442746980123047e-07, + -1.8749392639208824e-28, + -1.1371420174124476e+20, + -0.14557363092899323 + ] + ], + "dimensions": [ + [ + 4.6864740797481967e+30, + -6.117306788877559e-37, + -7.211314597944294e-31, + -8.522539647797986e-25, + -1.0688829943361755e-18, + -1.304546965244513e-12, + -1.5605548924213508e-06, + -1.8383867740631104, + -2181904.5, + -2732153372672.0, + -3.330711541359051e+18, + -3.980900181287642e+24, + -4.6864740797481967e+30, + -5.585492918761819e+36, + 6.117306788877559e-37, + 6.653211241110278e-34, + 7.211315068142034e-31, + 7.792375629196435e-28, + 8.522540633874118e-25, + 9.582696555196635e-22, + 1.068883097733752e-18, + 1.1842540218525376e-15, + 1.3045470736647302e-12, + 1.4299036399378906e-09, + 1.5605550061081885e-06, 0.0016966540133580565, 1.8383868932724, 1985.9456787109375, 2181904.75, 2451194624.0, 2732153634816.0, 3025186790047744.0, + 3.3307118162369577e+18, + 3.649087478498148e+21, + 3.980900469518018e+24, + 4.326538609719227e+27, + 4.6864743819796516e+30, + 5.061194985069378e+33, + 5.585493552587119e+36, + -1.8522882983175697e-38, + -6.117307237293067e-37, + -2.0183334143903717e-35, + -6.653211241110278e-34, + -2.1912817779748373e-32, + -7.211315068142034e-31, + -2.3713691029646684e-29, + -7.792375629196435e-28, + -2.558838441249898e-26, + -8.522540633874118e-25, + -2.860902838169333e-23, + -9.582696555196635e-22, + -3.203361289040449e-20, + -1.068883097733752e-18, + -3.5606098655185933e-17, + -1.1842540218525376e-15, + -3.933161237565201e-14, + -1.3045470736647302e-12, + -4.3215441641875074e-11, + -1.4299036399378906e-09, + -4.7262130209446696e-08, + -1.5605550061081885e-06, + -5.147909905645065e-05, + -0.0016966540133580565, + -0.05587125942111015, + -1.8383868932724, + -60.4445915222168, + -1985.9456787109375, + -65205.26171875, + -2181904.75, + -73210392.0, + -2451194624.0, + -81909014528.0, + -2732153634816.0, + -90983001751552.0, + -3025186790047744.0, + -1.0044536076946637e+17, + -3.3307118162369577e+18 + ] + ] + } + }, + "custom information document": { + "ColumnVolume": "120.0", + "ScanInterval": "0" + } + } + ] + }, + "sample document": { + "sample identifier": "N/A", + "batch identifier": "00000000-0000-0000-0000-000000000001" + }, + "chromatography column document": {}, + "measurement identifier": "CYTIVA_UNICORN_TEST_ID_7", + "injection document": { + "autosampler injection volume setting (chromatography)": { + "value": -0.0, + "unit": "mm^3" + }, + "injection identifier": "CYTIVA_UNICORN_TEST_ID_0", + "injection time": "2025-01-15T10:00:00+00:00" + } + } + ], + "fraction aggregate document": { + "fraction document": [] + }, + "log aggregate document": { + "log document": [] + }, + "custom information document": { + "RunIndex": "0", + "RunType": "Method", + "Name": "TestRun_001", + "ChromatogramID": "1", + "ChromatogramName": "Chrom.1", + "Created": "2025-01-15T10:00:00.000", + "CreatedUtcOffsetMinutes": "0", + "FormatVersion": "9" + } + } + } + ] + } +} diff --git a/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.zip b/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.zip new file mode 100644 index 000000000..526934222 Binary files /dev/null and b/tests/parsers/cytiva_unicorn/testdata/unicorn_single_uv.zip differ