Pipetting with specific tips

Pipetting with specific tips#

Sometimes it is useful to specify exactly which tip to use for pipetting. This can be to avoid cross-contaminations, but is also needed if some tips are broken/deactivated.

To restrict pipetting operations to specific tips, one can pass the tip kwarg. The tip kwarg can be used in three ways:

  • Use tip=1 to use only tip number one

  • Alternatively tip=robotools.Tip.T1 is the same as the above.

  • Or you can pass an iterable such as a set, tuple or list. For example: tip=[1, 3, 4]

The code examples below show this in action.

import robotools

water = robotools.Trough("water", 8, 1, min_volume=0, max_volume=100_000, initial_volumes=100_000)
target = robotools.Labware("target", 4, 5, min_volume=0, max_volume=300)


with robotools.Worklist() as wl:
    wl.transfer(
        source=water,
        source_wells=robotools.get_trough_wells(10, water.wells),
        destination=target,
        # Only the 1st and 4th row
        destination_wells=[
            ['A01', 'A02', 'A03', 'A04', 'A05'],
            ['D01', 'D02', 'D03', 'D04', 'D05'],
        ],
        volumes=200,
        # Using tips 1 and 4
        tip=[1, 4],
        label="Transfer water with tips 1 and 4",
    )

The volumes are as expected: Water in the first and last row 👇

target
target
[[200. 200. 200. 200. 200.]
 [  0.   0.   0.   0.   0.]
 [  0.   0.   0.   0.   0.]
 [200. 200. 200. 200. 200.]]

Internally the EVOware identifies the tips in binary using the formula $2^{\text{tip number} - 1}$. This way it can get away with storing one number instead of a sequence of numbers:

Tip.T1 has the value $2^{1 - 1} = 1$ and Tip.T4 has the value $2^{4 - 1} = 8$.

The tip mask for using both together is the sum: $1 + 8 = 9$.

If we look at the generated worklist wl we can see that each aspirate (A) and dispense (D) command had a tip mask of 9.

wl
C;Transfer water with tips 1 and 4
A;water;;;1;;200.00;;;9;
D;target;;;1;;200.00;;;9;
W1;
A;water;;;2;;200.00;;;9;
D;target;;;4;;200.00;;;9;
W1;
A;water;;;3;;200.00;;;9;
D;target;;;5;;200.00;;;9;
W1;
A;water;;;4;;200.00;;;9;
D;target;;;8;;200.00;;;9;
W1;
A;water;;;5;;200.00;;;9;
D;target;;;9;;200.00;;;9;
W1;
A;water;;;6;;200.00;;;9;
D;target;;;12;;200.00;;;9;
W1;
A;water;;;7;;200.00;;;9;
D;target;;;13;;200.00;;;9;
W1;
A;water;;;8;;200.00;;;9;
D;target;;;16;;200.00;;;9;
W1;
A;water;;;1;;200.00;;;9;
D;target;;;17;;200.00;;;9;
W1;
A;water;;;2;;200.00;;;9;
D;target;;;20;;200.00;;;9;
W1;