-
Notifications
You must be signed in to change notification settings - Fork 126
Create STAR.probe_liquid_volumes()
#789
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Create STAR.probe_liquid_volumes()
#789
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new method probe_liquid_volumes() for the Hamilton STAR backend that enables automated measurement of liquid volumes in containers using Liquid Level Detection (LLD). The method supports both capacitive and pressure-based detection modes, performs multiple technical replicates for accuracy, and converts detected heights to volumes using container-specific volume functions.
Key Changes:
- Added
probe_liquid_volumes()method that performs zero-volume aspirate operations to detect liquid levels - Implements support for both capacitive (mode 1) and pressure-based (mode 2) LLD
- Returns either geometric mean or individual replicate measurements based on configuration
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
enabling time acceleration
|
I think this would be easier by calling |
Yes, that is what I initially wanted to do but
We'd first have to implement the pressure sensing though to facilitate this (it is command |
|
So the long-term solution I see:
But that takes time and I think, first needed an example of how it could be done (this PR). So I wanted (and needed) a |
|
regarding everything you said: this can be fixed by improving if we have a robust probe_liquid_heights function, the step to volume should be super trivial. in any case, probe_liquid_volumes will be probing the liquid height first, so it only makes sense to me to have that logic be in |
|
in your code, you just bypass the tip requirement by always saying |
|
I agree it's a real problem, and we should have a good fix, but right now we just have to whack solutions:
I think 1 is the lesser evil because at least it's correct |
I agree... but there are two problems here:
In terms of results, this implementation gives the correct result. |
|
which is fine, given that that hack works better actually. but I still think that prove_liquid_volume can be written simply in one go: probe liquid height and then convert it to volume. everything else should be done in probe_liquid_height. including this hack, why don't you put the logic in probe_liquid_height? |
Hi everyone,
Our automated Protocols (aPs) keep using liquids from Containers and we must know what the volume in all containers (
Wells inside wellplates,Tubes,Troughs, ...) is.This is crucial for "compound management" and verification correct workcell/deck setups.
Here, I am proposing a beta version of
STAR.probe_liquid_volumes()which can measure the volume of anyContainerfor which height/volume functions have been previously defined in PyLabRobot.This first version uses the
STAR.aspirate()function withvolume=0to enable liquid level detection in either a...This means that both conductive and non-conductive/clear tips can be used to probe the volume in containers.
Accuracy: cLLD/pLLD is not always the most precise measurement technique and for low-volume or narrow Containers might not work at all, based on the STAR cLLD/pLLD limitations.
You have to verify that the LLD works for your Containers and give your processes enough dead-volume if you use it at the low-volume end.
However, by enabling both LLD modes you have quite some flexibility to find a way that suits your application.
Furthermore, by default, 3 technical replicates of the probing will be executed, and this can be adjusted based on the method arguments:
This has been tested on single Container (troughs) and different multi-wellplates on a Hamilton STAR.
Note: This is a beta method - use with caution and we will continuously iterate and improve over the coming months.
E.g.: a discussion should be had about whether to swap the
.aspirate()implementation withclld_probe_/plld_probe_implementation.Please report any issues you might encounter on the PyLabRobot forum.
Happy compound management 🧪