Aspirating All/Most Liquid from 96 Well Plate Wells (Opentrons Flex)

Just wanted to share her in case it’s helpful. I was having trouble with residual liquid left behind in the corner of my 96 well plate wells. I was doing z=1 and also tried going down to z=0.5.

On the advice of @Stanjak and @MeghanFerzoco, I tried lower (z=0, z=1) and it seems to help greatly.

From left to right, all with a 1000 uL tip with y=-2 offset unless specified:

  • Aspirating at z=0.5 (ring of liquid remaining)
  • z=0.25 (didn’t help that much)
  • z=0.1 (less liquid remaining)
  • z=0 (even less liquid remaining)
  • Aspirating at z=1 from each “corner” of the well
  • Aspirating 50% of the liquid at z=1, then 35% at z=0.5, then 15% at z=0.1. Then finally 15 uL extra aspiration at z=0
  • Aspirating 50% of the liquid at z=1, then 35% at z=0.5, then 15% at z=0.1. Then finally 5 uL extra aspiration from each corner, at z=0

I’m moving forward with the decreasing Z position .aspirate() actions (I’m pipetting cells so I want to save the potentially higher shear force z=1 and z=0 aspirations for just the residual liquid/cells that are left in the well.

Example (non-professional) code:

well_vol = TRYPLE_WASH_VOL + TRYPLE_VOL
aspirate_1 = well.bottom(z=1).move(Y_OFFSET_96_WELL)
aspirate_2 = well.bottom(z=0.5).move(Y_OFFSET_96_WELL)
aspirate_3 = well.bottom(z=0.1).move(Y_OFFSET_96_WELL)
aspirate_4 = well.bottom(z=0).move(Y_OFFSET_96_WELL)
                
p1000_multi.mix(2, well_vol / 2, aspirate_1, aspirate_flow_rate=150, dispense_flow_rate=150)
p1000_multi.flow_rate.aspirate = 150
p1000_multi.aspirate((well_vol-40)/2, aspirate_1)
p1000_multi.aspirate((well_vol-40)/2, aspirate_2)
p1000_multi.flow_rate.aspirate = 50
p1000_multi.aspirate(30, aspirate_3)
p1000_multi.aspirate(10, aspirate_4)
2 Likes

I seem to not be able to edit, but the 5th well from the left is actually z=0.1 eith aspiration from each corner, not 1 mm!