-
Notifications
You must be signed in to change notification settings - Fork 120
Resource Integration: Greiner_384_wellplate_28ul_Fb
#774
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?
Resource Integration: Greiner_384_wellplate_28ul_Fb
#774
Conversation
…/github.com/BioCam/pylabrobot into Integration---Greiner-384-wellplate-28uL-Fb
| # _Greiner_384_wellplate_28ul_Fb_height_to_volume_measurements = { | ||
| # 0.0: 0.0, # height in mm : volume in µL | ||
| # 2.2: 3.0, | ||
| # 3.5: 5.0, | ||
| # 4.0: 8.0, | ||
| # 4.7: 11.0, | ||
| # 5.2: 15.0, | ||
| # 5.6: 20.0, | ||
| # 6.0: 25.0, | ||
| # 5.5: 28.0, | ||
| # } | ||
| # _Greiner_384_wellplate_28ul_Fb_volume_to_height_measurements = { | ||
| # v: k for k, v in _Greiner_384_wellplate_28ul_Fb_height_to_volume_measurements.items() | ||
| # } | ||
|
|
||
|
|
||
| def _compute_volume_from_height_Greiner_384_wellplate_28ul_Fb(h: float) -> float: | ||
| """Estimate liquid volume (µL) from observed liquid height (mm) | ||
| in the Greiner 384 wellplate 28ul Fb, using piecewise linear interpolation. | ||
| """ | ||
| # if h < 0: | ||
| # raise ValueError("Height must be ≥ 0 mm.") | ||
| # if h > 5.5 * 1.05: | ||
| # raise ValueError(f"Height {h} is too large for Greiner_384_wellplate_28ul_Fb.") | ||
|
|
||
| # vol_ul = interpolate_1d( | ||
| # h, _Greiner_384_wellplate_28ul_Fb_height_to_volume_measurements, bounds_handling="error" | ||
| # ) | ||
| # return round(max(0.0, vol_ul), 3) | ||
| raise NotImplementedError( | ||
| "Computation of volume from height is not currently defined. " | ||
| "It is difficult (perhaps impossible?) to robustly perform liquid " | ||
| "level detection in such a small well AND such low volumes." | ||
| ) | ||
|
|
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.
is it defined or not?
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.
It is defined but the cLLD capabilities of the STAR keep failing - I take at least 3 cLLD measurements for each point at the calibration curve, occasionally our STAR manages to take one measurement down to 8uL, and fails in the repeats - interpretation: the well geometry and low volume together create a "charge dissipation" target that is not being recognised by the charge sensor.
Keeping this commented out code, would mean others can try as well and test whether their system is more sensitive, and compare.
This might be interesting to see with the Zeus X1 pipettes 👀
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.
I don't think we should be checking in uncommented code because it is very vague what the purpose of it is, and it's not discoverable. does that mean the measurements are also inaccurate? if so, we should not have this code. if not, why not have it as real code and then have a warning saying "clld on star does not work on this container"? that way people can use/debug as they like
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.
Yeah fair enough, I wanted to highlight somehow that someone has previously tried cLLD on this well instance and found the STAR is not capable of detecting it - fighting people's tendency to leave out very useful negative data.
But if it's not clear then, I agree, there's no point 😅
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.
Yeah fair enough, I wanted to highlight somehow that someone has previously tried cLLD on this well instance and found the STAR is not capable of detecting it - fighting people's tendency to leave out very useful negative data.
But if it's not clear then, I agree, there's no point 😅
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.
remove it?
| def Greiner_384_wellplate_28ul_Fb_Lid(name: str) -> Lid: | ||
| raise NotImplementedError("This lid is not currently defined.") | ||
| # See https://github.com/PyLabRobot/pylabrobot/pull/161. | ||
| # return Lid( | ||
| # name=name, | ||
| # size_x=127.76, | ||
| # size_y=85.48, | ||
| # size_z=None, # measure the total z height | ||
| # nesting_z_height=None, # measure overlap between lid and plate | ||
| # model="Greiner_384_wellplate_28ul_Fb_Lid", | ||
| # ) | ||
|
|
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.
why have this commented out def?
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.
that is actually just the copy from all definitions - I am not sure why I found them like this originally a long time ago, but I assumed it's for information purposes?
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.
not all, but many are commented out because we know the part that exists is correct but they were missing the nesting_z_height parameter which you added in #161 . are the size x and y correct here? if so we can keep it in anticipation of someone adding the missing parameters
No description provided.