feat: Migrate plate_reader parsers to REC 2026/03 schema#1179
Open
nathan-stender wants to merge 4 commits into
Open
feat: Migrate plate_reader parsers to REC 2026/03 schema#1179nathan-stender wants to merge 4 commits into
nathan-stender wants to merge 4 commits into
Conversation
Migrate all 10 plate_reader parsers from REC 2024/06 and REC 2025/03 to REC 2026/03. This includes downloading the 2026/03 schema + dependencies, generating model code, creating the 2026/03 schema mapper, and updating all parser imports. Parsers migrated from 2024/06: - bmg_labtech_smart_control - bmg_mars - methodical_mind - msd_workbench - perkin_elmer_envision - tecan_magellan Parsers migrated from 2025/03: - agilent_gen5 - moldev_softmax_pro - thermo_skanit - unchained_labs_lunatic_stunner Structural changes in the migration: - analytical_method_identifier and experimental_data_identifier moved from MeasurementGroup to individual Measurement level - data_processing_document replaced by custom_information_document for concentration_factor in unchained_labs_lunatic_stunner - DeviceSystemDocument now has required device_identifier and model_number fields (aliased import as PlateReaderDeviceSystemDocument) - Fixed pre-existing bug in agilent_gen5 where fluorescence spectrum data cubes incorrectly used absorbance concept/unit (mAU) instead of fluorescence (RFU) - Moved luminescence spectral_scan test to xfail: 2026/03 schema has no luminescence spectrum data cube field (pre-existing limitation) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…der 2026/03 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restores the compact single-line format for numeric arrays in data cube structures that was lost during JSON key reordering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ajcariaga16
approved these changes
Apr 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrates all 10 plate_reader parsers to REC 2026/03 schema:
Changes
New files
src/allotropy/allotrope/schema_mappers/adm/plate_reader/rec/_2026/_03/plate_reader.pyschemas/adm/{plate-reader,core,absorbance,fluorescence,luminescence,optical-imaging}/REC/2026/03/models/adm/{plate_reader,core,absorbance,fluorescence,luminescence,optical_imaging}/rec/_2026/_03/quantity_values.py,units.py(new unit types from 2026/03 QUDT)Import path updates (38 source files)
All parser
*_parser.py,*_structure.py,constants.py, calcdocs, and test files updated fromrec._2024._06orrec._2025._03torec._2026._03.Structural code changes
analytical_method_identifierand/orexperimental_data_identifierfromMeasurementGroupto individualMeasurementlevel (schema change)concentration_factornow usesadd_custom_information_documentinstead ofdata_processing_documentdict (type changed fromdict[str, Any]to typedDataProcessingDocumentin 2026/03)DeviceSystemDocumentimported asPlateReaderDeviceSystemDocumentalias (2026/03 makesdevice_identifierandmodel_numberrequired)Bug fix
"absorbance") and unit ("mAU") — now correctly uses"fluorescence"/"RFU"or"luminescence"/"RLU"based on read mode.Known limitation
luminescence/spectral_scan.txt) moved toexclude/and markedxfail— the 2026/03 plate_reader schema has noluminescence_spectrum_data_cubefield, so luminescence spectrum measurements cannot be validated. This is a pre-existing schema limitation, not introduced by this migration.JSON test data audit (111 files)
All 111 JSON test output files were regenerated. Changes are:
REC/2024/06orREC/2025/03→REC/2026/030.1.118data system documentanddevice system documentbeforeplate reader document;detection typebeforedevice type;measuresbeforedimensionsin data cubes)analytical_method_identifierand/orexperimental_data_identifiermoved frommeasurement aggregate documenttomeasurement documentcustom information documentmoved from insidemeasurement aggregate documenttoplate reader documentleveldata processing documentwrapper replaced bycustom information documentfor concentration factorabsorbance→fluorescence, unitmAU→RFUNo changes to measurement values, sample identifiers, well locations, plate identifiers, timestamps, or data cube numeric arrays.
Test plan
hatch run test:test tests/parsers/{all 10 parsers}/— 207 passed, 1 xfailedhatch run lint— cleanhatch run lint:typing— clean🤖 Generated with Claude Code