Worklist pipetting pattern logic

Hello Tecaners

I’ve only started delving into writing my own worklist, and I’ve encountered an oddity

I have this worklist I made using a python script:

Worklist

C;Removing 50uL from wellplates
A;wellplate96[001];;;A4;;50;;;;
A;wellplate96[001];;;B4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;C4;;50;;;;
A;wellplate96[001];;;D4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;E4;;50;;;;
A;wellplate96[001];;;F4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;G4;;50;;;;
A;wellplate96[001];;;H4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[002];;;A4;;50;;;;
A;wellplate96[002];;;B4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[002];;;C4;;50;;;;
A;wellplate96[002];;;D4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[002];;;E4;;50;;;;
A;wellplate96[002];;;F4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[002];;;G4;;50;;;;
A;wellplate96[002];;;H4;;50;;;;
D;waste;;;A1;;100;;;;
F;

with this as a command

Load Worklist

I would expect something like this:

But instead, I get an odd pipetting pattern like this:

I can live with this, but I’m just puzzled why the machine interprets the worklist this way. Does anybody with more experience have an answer? Why is it just using 4 tips at a time?

At first I tried this but it also doesn’t seem to work

Worklist I tried first

A;wellplate96[001];;;A4;;50;;;;
A;wellplate96[001];;;B4;;50;;;;
A;wellplate96[001];;;C4;;50;;;;
A;wellplate96[001];;;D4;;50;;;;
A;wellplate96[001];;;E4;;50;;;;
A;wellplate96[001];;;F4;;50;;;;
A;wellplate96[001];;;G4;;50;;;;
A;wellplate96[001];;;H4;;50;;;;
A;wellplate96[002];;;A4;;50;;;;
A;wellplate96[002];;;B4;;50;;;;
A;wellplate96[002];;;C4;;50;;;;
A;wellplate96[002];;;D4;;50;;;;
A;wellplate96[002];;;E4;;50;;;;
A;wellplate96[002];;;F4;;50;;;;
A;wellplate96[002];;;G4;;50;;;;
A;wellplate96[002];;;H4;;50;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
D;waste;;;A1;;100;;;;
F;
F;
F;
F;
F;
F;
F;
F;

It first detects pipetting sequences in the worklist and then assigns each sequence to a tip for pipetting. When each A;A;D;F; was recognized as one pipetting sequence, it will do it with the same tip, hence aspirate from A4 and B4 with the same tip.

Perhaps like the following to aspirate twice in a row from the same well?

A;wellplate96[001];;;A4;;50;;;;
A;wellplate96[001];;;A4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;B4;;50;;;;
A;wellplate96[001];;;B4;;50;;;;
D;waste;;;A1;;100;;;;
F;
etc…

1 Like

Ah, indeed you’re right Snowball

Worklist
C;Removing 50uL from wellplates
A;wellplate96[001];;;A4;;50;;;;
A;wellplate96[002];;;A4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;B4;;50;;;;
A;wellplate96[002];;;B4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;C4;;50;;;;
A;wellplate96[002];;;C4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;D4;;50;;;;
A;wellplate96[002];;;D4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;E4;;50;;;;
A;wellplate96[002];;;E4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;F4;;50;;;;
A;wellplate96[002];;;F4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;G4;;50;;;;
A;wellplate96[002];;;G4;;50;;;;
D;waste;;;A1;;100;;;;
F;
A;wellplate96[001];;;H4;;50;;;;
A;wellplate96[002];;;H4;;50;;;;
D;waste;;;A1;;100;;;;
F;

Uses all channels on the same column

Thanks for the hint, now to see how to manipulate my dataset to do that :sweat_smile:

1 Like

Manipulate data :scream: that doesn’t sound good…

Out of curiosity what are you doing in this worklist? It could be something that can be done very easily in Synthace.

I’m creating a custom workflow that incorporates a googlesheet users can fill in, which gives translates the input into both commands for a high content analyzer and the opentrons units we have.

I’m converting it so it works on tecan as well!

Hey Snowball, you seem to have a lot of experience with this,
any idea why this one gives this error?

image

A;4WellReservoir[001];;;A1;;228.0;;;;
D;wellplate96[001];;;A1;;50.0;;;;
D;wellplate96[001];;;A3;;50.0;;;;
D;wellplate96[001];;;A5;;50.0;;;;
D;wellplate96[001];;;A7;;50.0;;;;
D;4WellReservoir[001];;;A1;;28.0;;;;
F;

I’m aspirating 228.0 here and dispensing 228.0 (50+50+50+50+28) :face_with_spiral_eyes:

At first I thought this was a liquid class issue, but upon further testing (disabling the actual aspirate / dispense commands in the LC microscripts) I do not believe that tecan actually looks at your liquid class before giving you worklist errors.
Still possible that FC looks at easy control though

I believe the Tecan still “compiles” the work list commands so it’s looking at some data to verify that it can continue without a problem. It’s tough to say in this case but do you get the same error if you modify your liquid class to something else like Water Free Single?

In older versions of FC, you could get errors because of the airgaps or maybe the LC was atrociously setup so you’re asking to aspirate or dispense more than is in the tip.

1 Like

Indeed Luis you’re right! I removed the airgaps and it works as I intend. I’ll keep that in mind in the future

I guess that it does look at the liquid class, I was mistaken.

1 Like

Ah glad that worked, it helps to make sure that aspirate and dispense air gaps line up or this could cause issues for future engineers/projects.

I had the same issue sometimes at the beginning of a script.

As always I started with tip initialization and for some odd reason this would trow the volume in the next step off.
When I removed the tip initialization then there was no error. Or a another solution was to add a drop tips after the initialization.