cgevans / mixes

BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

don't normalize pipetting volumes in mixes #20

Open dave-doty opened 2 years ago

dave-doty commented 2 years ago

The pint quantities are typically normalized to be the correct "3 orders of magnitude", i.e., 10 nM instead of 0.01 uM or 10,000 pM.

However, this is awkward for pipetting since we almost always want uL or mL:

image

Make the default behavior (perhaps configurable by an optional parameter somewhere) to be that pipetting volumes are normalized only if they are above 1 uL (e.g., so still normalize from 2000 uL to 2 mL), but for instance 0.75 uL would be written like that rather than 750 nL.

cgevans commented 1 year ago

This makes sense, but I wonder whether it would be best to either:

  1. Keep volumes <= 1,000 µL as µL. This makes very small volumes (eg, 2.5 nL) awkward, which is fine for us now, because no one is going to try pipetting that, but it could become awkward if, eg, we had support for acoustic liquid handlers. This still risks large volumes potentially being confusing as well (eg, a 2 mL step being mistaken as 2 µL).
  2. Keep volumes in some range as µL, eg, <= 1,000 µL and > 25 nL.
  3. For a given table, choose one prefix to use, based on the values in it. This may be the most flexible, and while it could result in awkward values in some cases, would probably be the least likely to cause mistakes.
dave-doty commented 1 year ago

If someone is using this for manual pipetting, I don't see a reason to use anything other than uL or mL since that's all manual pipettes use.

I've not programmed an acoustic liquid handler. I'm guessing that the protocol for doing so wouldn't map cleanly onto the current abstraction of alhambra_mixes, for example you're always adding into a plate with an Echo machine, so a destination well would need to be specified. I could see if we wanted to support something like Echo protocols, just making a different class than Mix that is specialized to that. Not sure though. Maybe we want to try meeting with Chris Thachuk, who has a lot of experience with them.