예제 #1
0
    def protocol(self):
        self.robot.get_serial_ports_list()
        self.robot.home()

        tiprack = containers_load(
            self.robot,
            'tiprack-200ul',  # container type
            'A1',             # slot
            'tiprack'         # user-defined name
        )
        plate = containers_load(
            self.robot,
            '96-flat',
            'B1',
            'plate'
        )
        trash = containers_load(
            self.robot,
            'point',
            'C2',
            'trash'
        )
        trough = containers_load(
            self.robot,
            'trough-12row',
            'B2',
            'trough'
        )

        p200 = pipette.Pipette(
            self.robot,
            name="p200",
            trash_container=trash,
            tip_racks=[tiprack],
            max_volume=200,
            min_volume=0.5,
            axis="b",
            channels=1
        )

        self.robot.clear_commands()

        # distribute
        p200.pick_up_tip(tiprack[0])
        p200.aspirate(96 * 2, trough[0])
        for i in range(96):
            p200.dispense(2, plate[i]).touch_tip()
        p200.drop_tip(tiprack[0])

        p200.pick_up_tip(tiprack[1])
        for i in range(96):
            p200.aspirate(2, plate[95 - i])
        p200.dispense(trough[0])
        p200.drop_tip(tiprack[1])
예제 #2
0
def test_deck_setup(robot):
    deck = robot.deck

    pip = pipette.Pipette(robot, mount='left', max_volume=300, ul_per_mm=18.0)

    # Check that the fixed trash has loaded on to the pipette
    trash = pip.trash_container
    tiprack = containers_load(robot, 'tiprack-10ul', '5')

    assert isinstance(tiprack, Container)
    assert isinstance(deck, Deck)
    # Check that well location is the same on the robot as the pipette
    assert robot._deck['12']['tall-fixed-trash'][0] == trash
    assert deck.has_container(tiprack)
예제 #3
0
def test_protocol_head(robot):
    trash = containers_load(robot, 'point', '1', 'myTrash')
    tiprack = containers_load(robot, 'tiprack-10ul', '5')

    p200 = pipette.Pipette(
        robot,
        name='myPipette',
        trash_container=trash,
        tip_racks=[tiprack],
        max_volume=200,
        min_volume=10,  # These are variable
        ul_per_mm=18.0,
        mount='left',
        channels=1)
    instruments_list = robot.get_instruments()
    assert instruments_list[0] == ('left', p200)
    instruments_list = robot.get_instruments('myPipette')
    assert instruments_list[0] == ('left', p200)
예제 #4
0
def test_serial_dilution(robot):
    plate = load(robot, '96-flat', '2', 'plate')

    tiprack = load(
        robot,
        'tiprack-200ul',  # container type from library
        '1',  # slot on deck
        'tiprack'  # calibration reference for 1.2 compatibility
    )

    trough = load(robot, 'trough-12row', '5', 'trough')

    trash = load(robot, 'point', '3', 'trash')

    p200 = pipette.Pipette(
        robot,
        ul_per_mm=18.5,
        trash_container=trash,
        tip_racks=[tiprack],
        min_volume=10,
        max_volume=200,  # These are variable
        mount='left',
        channels=1)
    p200.calibrate_plunger(top=0, bottom=10, blow_out=12, drop_tip=13)

    for t, col in enumerate(plate.cols):
        p200.pick_up_tip(tiprack[t])

        p200.aspirate(10, trough[t])
        p200.dispense(10, col[0])

        for well, next_well in zip(col[:-1], col[1:]):
            p200.aspirate(10, well)
            p200.dispense(10, next_well)
            p200.mix(repetitions=3, volume=10, location=next_well)

        p200.drop_tip(trash)