Opentrons / opentrons

Software for writing protocols and running them on the Opentrons Flex and Opentrons OT-2
https://opentrons.com
Apache License 2.0
419 stars 178 forks source link

bug: Consolidate() function is not broken down into a series of transfer steps beyond a certain volume #7411

Open Gyliann opened 3 years ago

Gyliann commented 3 years ago

Overview

When using the consolidate() function, if the volume is larger than 400uL, the robot doesn't break down the function into a series of transfer steps and just skips the step altogether.

Steps to reproduce

Code used to run:

from opentrons import protocol_api, types

metadata = {'apiLevel': '2.9'}

def run(protocol: protocol_api.ProtocolContext):
    res = protocol.load_labware('nest_12_reservoir_15ml', '8',
                                '"12-Channel Reservoir (14mL DMEM in each of well 1, 2)"')
    plate = protocol.load_labware('usascientific_96_wellplate_2.4ml_deep', '9',
                                  '"96 Deep Well Plate w/ 16 working stocks in cols 1&2 + SFM bullet in A3"')

    tip_rack_200 = protocol.load_labware('opentrons_96_filtertiprack_200ul', '11', '"Tip Rack 200 uL filtered"')
    p300 = protocol.load_instrument('p300_single_gen2', 'right', [tip_rack_200])

    p300.pick_up_tip()
    # Consolidate breaks when the amount specified is greater than 400uL
    p300.consolidate(
                1000,
                res.wells()[0],
                plate.wells()[0],
                new_tip='never')
 p300.consolidate(
            400,
            res.wells()[0],
            plate.wells()[0],
            new_tip='never')

The same protocol was ran with 350 instead of 1000 in the consolidate function

Current behavior

When running the protocol through the app with 1000 in the consolidation step, the protocol will run normally and then skip the first consolidation step, but have no issues running 2nd consolidation step. With the volume as 350, the code runs all the way through, breaking down both consolidation functions as a series of smaller volume transfer steps.

Expected behavior

The software should break down the step with a volume of 1000 into a series of transfer functions of smaller volumes.

SyntaxColoring commented 3 years ago

Wild guess: possibly a bug in the same underlying code as #6170.