Skip to content

Replace polynomial with piecewise linear interpolation for EnduraPlate#996

Merged
BioCam merged 4 commits intoPyLabRobot:mainfrom
BioCam:enduraplate-interpolation-upgrade
Apr 17, 2026
Merged

Replace polynomial with piecewise linear interpolation for EnduraPlate#996
BioCam merged 4 commits intoPyLabRobot:mainfrom
BioCam:enduraplate-interpolation-upgrade

Conversation

@BioCam
Copy link
Copy Markdown
Collaborator

@BioCam BioCam commented Apr 16, 2026

Summary

  • The independently fitted 4th-degree polynomials for Thermo_AB_96_wellplate_300ul_Vb_EnduraPlate had round-trip errors up to 13.4 uL at 290 uL and 2.4 uL at 50 uL
  • Replaced both _compute_volume_from_height and _compute_height_from_volume with interpolate_1d using the original calibration data as piecewise linear lookup
  • Round-trip error is now zero at all calibration points
  • Corrected error messages that incorrectly referenced ThermoScientific_96_wellplate_1200ul_Rd
  • size_z=20.1 mm is unchanged — the last calibration point (15.17 mm at 260 uL) extrapolates reasonably to the rated 300 uL capacity at ~17.2 mm, within the physical well depth

Companion to #995 (same change for MicroAmp plate).

Test plan

  • Verify round-trip accuracy at calibration points (0, 4, 8, 20, 70, 120, 170, 220, 260 uL) and interpolated points (50, 290, 300 uL)
  • Verify Well.__init__ max_volume computation succeeds with bounds_handling="extrapolate"
  • make format — passes
  • make lint — passes (no new errors)
  • make typecheck — passes (no new errors)

🤖 Generated with Claude Code

BioCam and others added 4 commits April 16, 2026 21:46
The independently fitted 4th-degree polynomials for
`Thermo_AB_96_wellplate_300ul_Vb_EnduraPlate` had round-trip errors up to
13.4 uL at 290 uL and 2.4 uL at 50 uL. Replaced both functions with
`interpolate_1d` using the original calibration data. Round-trip error is
now zero at all calibration points.

Also corrected the error message which incorrectly referenced
"ThermoScientific_96_wellplate_1200ul_Rd" (copy-paste from another plate).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@BioCam BioCam merged commit c3e041d into PyLabRobot:main Apr 17, 2026
21 checks passed
@BioCam BioCam deleted the enduraplate-interpolation-upgrade branch April 17, 2026 09:58
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.

1 participant