Skip to content

fix: Support bare UV curve name in Cytiva Unicorn parser#1200

Merged
nathan-stender merged 1 commit into
mainfrom
fix/unicorn-bare-uv-curve-name
May 18, 2026
Merged

fix: Support bare UV curve name in Cytiva Unicorn parser#1200
nathan-stender merged 1 commit into
mainfrom
fix/unicorn-bare-uv-curve-name

Conversation

@nathan-stender

@nathan-stender nathan-stender commented May 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Fixes parsing failure for UNICORN 7.7 exports where the UV detector curve is named just "UV" instead of "UV 1_280"
  • Makes absorbance measurements optional (returns None gracefully) instead of raising on missing curves — consistent with all other measurement types
  • Adds anonymized test file exercising the single-UV-detector format

Context

Files from UNICORN 7.7.0.4016 system failed with:

"Expected non-null value for Unable to find curve data for absorbance measurement."

The file is a properly exported "Entire Result(s)" (has Result.xml, Chrom.1.Xml, SystemData, etc.) — it simply has a single UV detector whose curve is named "UV" without a wavelength suffix. The 30-file count (vs 40+) is because this system has fewer detector modules, not because it's a partial export.

Test plan

  • Existing unicorn_1.zip test passes unchanged (UV 1_280 format)
  • New unicorn_single_uv.zip test covers bare "UV" curve name
  • Vendor discovery tests pass
  • Linting + mypy pass

🤖 Generated with Claude Code

UNICORN 7.7 instruments with a single UV detector export the absorbance
curve as just "UV" rather than "UV 1_280". The parser regex `^UV 1_\d+$`
failed to match, raising "Unable to find curve data for absorbance
measurement."

Changes:
- Update AbsorbanceMeasurement1 regex to `^UV( 1_\d+)?$` to match both
  "UV" and "UV 1_280" naming styles
- Make all absorbance measurements optional (return None instead of
  raising) consistent with how other measurement types behave

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nathan-stender
nathan-stender requested review from a team and slopez-b as code owners May 18, 2026 20:32
@nathan-stender
nathan-stender merged commit ed6a1ff into main May 18, 2026
16 checks passed
@nathan-stender
nathan-stender deleted the fix/unicorn-bare-uv-curve-name branch May 18, 2026 20:42
nathan-stender added a commit that referenced this pull request May 19, 2026
### Added

- Add Claude skill for generating Allotropy parsers (#1160)

### Fixed

- Support bare UV curve name in Cytiva Unicorn parser (#1200)
- Handle transposed flow cell format in Biacore Insight parser (#1199)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants