Expose Well.bottom() & Well.top() #141
Closed
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.
Hi everyone,
Let's expose some of that Opentrons wisdom to PLR:
In this PR I added two small methods to the
Well
class inresources/well.py
:Well.bottom(z_offset=0.0)
... convenient method to compute the absolute Coordinate of the 2D central bottom of a well, with the added functionality that a z_offset can directly be declared.Well.top(z_offset=0.0)
... similar as above just for the 2D central top of a well.Why
With
Well.get_absolute_location()
already in place there is a valid question as to why generate these two methods.The main reason is convenience and clarity to facilitate plate definition creation.
Currently, when defining labware there is no PLR
probe_z_height_using_channel
function (which I created in #69) that works with standard plates and tubes becauseprobe_z_height_using_channel
detects items using capacitative liquid level detection but cannot detect plates due to their material being highly electrically resistant.As a consequence, the dimensions of a plate have to be manually evaluated. In particular the depth of a well represents a small but important challenge: it is arguably one of the most important definitions to get right to avoid crashes and minimise dead volume.
It is therefore important that the machine used enables moving a tip quickly to the bottom of a well and to the top of a well, back and forth, with the ability to efficiently add a z_offset to each Coordinate.
(A laminated piece of paper is very effective at testing whether
Well.top()
is indeed the top of the well, and when moving the tip toWell.bottom()
, the tip can be slightly moved by hand, sensing slight resistance to the move, i.e. the tip hasn't crashed.)Example Use Case
A step-by-step guide to conveniently and transparently use these little methods:
I hope this helps PLR users to create more robust labware definitions.