fix(api): meniscus relative positioning in LC based transfers#18097
fix(api): meniscus relative positioning in LC based transfers#18097
Conversation
| case PositionReference.LIQUID_MENISCUS: | ||
| meniscus_point = well.get_meniscus() | ||
| if not isinstance(meniscus_point, Point): | ||
| reference_point = well.get_center() | ||
| estimated_liquid_height = well.estimate_liquid_height_after_pipetting( | ||
| operation_volume=well_volume_difference, | ||
| ) | ||
| if isinstance(estimated_liquid_height, (float, int)): | ||
| reference_point = well.get_bottom(z_offset=estimated_liquid_height) | ||
| else: | ||
| reference_point = meniscus_point | ||
| # If estimated liquid height gives a SimulatedProbeResult then | ||
| # assume meniscus is at well center. | ||
| # Will this cause more harm than good? Is there a better alternative to this? | ||
| reference_point = well.get_center() |
There was a problem hiding this comment.
@andySigler @caila-marashaj am I using the estimate_liquid_height_after_pipetting function correctly?
jbleon95
left a comment
There was a problem hiding this comment.
Code make senses, thanks for the doc strings and comments
|
There's a known bug in this implementation that will raise an error if meniscus relative positions are specified for aspirate or dispense and the protocol does not specify well volumes with This does not affect any well-relative positions at all so I think this can still be merged so that meniscus relative positions are corrected for testing. I will follow up with a fix for the described bug. |
…lative positions, moved prep for volume stuff into aspirate_liquid_class, updated tests
5cd4258 to
4a2c86c
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## edge #18097 +/- ##
=======================================
Coverage 57.38% 57.38%
=======================================
Files 3041 3041
Lines 255256 255256
Branches 30439 30439
=======================================
Hits 146484 146484
Misses 108586 108586
Partials 186 186
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Update: Fixed the above bug. The transfer will no longer raise any wrongful errors if meniscus relative positions are specified for aspirate or dispense and the protocol does not specify well volumes with |
jbleon95
left a comment
There was a problem hiding this comment.
Changes and code reorganization since last review all look good and make sense.
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653 # Overview Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid *after* the aspirate or dispense action. Updated the `absolute_point_from_position_reference_and_offset()` function to use `well.estimate_liquid_height_after_pipetting()` instead of `well.meniscus()` ## Risk assessment Low. Only affects meniscus-relative pipetting locations (cherry picked from commit 7429fae)
Closes AUTH-1653
Overview
Meniscus relative positions for aspirate & dispense will now be relative to the position of meniscus of the liquid after the aspirate or dispense action.
Updated the
absolute_point_from_position_reference_and_offset()function to usewell.estimate_liquid_height_after_pipetting()instead ofwell.meniscus()Test Plan and Hands on Testing
Added unit tests but will need to be tested on a real Flex in order to test that the pipette goes to the correct location.
Test protocol (updated after rebasing onto edge)-
Pipette positioning expectations-
Review requests
estimate_liquid_height_after_pipettingto return aSimulatedProbeResult? How should we handle it?Risk assessment
Low. Only affects meniscus-relative pipetting locations