autoprotocol/autoprotocol-python

outward spin should reset volume of wells to 0

scottbecker opened this issue · 8 comments

The following should assert to True (since outward spinning removes volume)

p.spin(cell_plate, '8.4:g', '2:second',flow_direction='outward')

assert all([well.volume.magnitude == 0 for well in cell_plate.all_wells()])

Seems logical to me, as long as the user specifies sufficient parameters to actually achieve complete removal. Thoughts @polarpine ?

I'm extremely hesitant to state that that's always gonna be true. It really depends on the device, parameters and plate type
Internally, the device we've evaluated shows dependent liquid removal performance. This ranges from 0.5uL to 10uL at different spin speeds and times.
As a side note, if the purposes is cell culture, its probably a good idea to not use the strongest spin setting, as we've observed cell shearing at high speeds. This will probably not lead to complete removal

Can the well just be set to its dead volume?

That will depend on the subsequent application and how important the accuracy of the volume in the well matters.
If the accuracy matters, the dead volume may not be a good approximation. As mentioned above, the variation can differ by an order of magnitude for the evaluated device. The relationship between the plate dead volume and the evacuated volume isn't clear, in fact, it may be closer to an inverse relationship. The geometry/width of the wells seem to have a bigger impact.

I don't think its wise to generalize the behavior of an outward spin instruction. I think that at this stage of Autoprotocol development, we should probably leave the setting of volume up to the author of the protocol, based on his experiments and device used.

I don't think its wise to generalize the behavior of an outward spin instruction. I think that at this stage of Autoprotocol development, we should probably leave the setting of volume up to the author of the protocol, based on his experiments and device used.

Hmm true!

@scottbecker you may want to make a little method that spins the plate then takes all the Wells then does Well.set_volume("x:microliter") on each one.

@bmiles Thanks (I did this to move past the issue). I will follow up with you guys on how best to remove the volume then (we really do want to dry these plates out to 0uL)

btw, we are setting the volume to be the dead volume for now. We think that is the upper limit on anything we are doing.

seems like this was resolved. Protocol authors should set volumes as its not a deterministic behavior on the volume wells would be evacuated to