I’m trying to set the TIP_MASK so that the liquid handling will be faster, but I can’t seem to find the right place to put the set variable command. This is the most recent where it did use the correct number of tips, but will trigger errors stating “tip x: Aspirate without mounted DiTi”. I’m wondering if there’s a way to prevent the errors? I think my placement of the TIP_MASK set variable grouping might be off.
Get & Drop DiTis before / after worklist shouldn’t be needed, the worklist takes DiTis by itself.
TIP_MASK needs values between 0 (no tip) and 255 (all tips) whereas it is the sum of the values for each tip Tip1=1 ; Tip2=2 ; Tip3=4 ; Tip4=8 ; Tip5=16 ; Tip6=32 ; Tip7=64 ; Tip8=128
Value of a tipnumber =2 ^ (tipnumber -1)
Your group has >60 script lines to calculate some Tipmask value, my recommendation would be just first to try and make work a simple example first. For example just set Tip_Mask=63 and then test if it indeed only uses tip 1 to 6.
May also depend on the worklist file, if the worklist can freely choose which tip to use for which transfer or if the worklist lines contain the optional parameter that specify the tipnumber to use for a certain worklist line.
I agree with snowball, the worklist file you used in this example would be helpful to troubleshoot. Also, the way you obtained the .gwl (Either Evoware built-in „Import worklist“ command or assembled by an external programming tool)
It seems like there is a mismatch between the TIP_MASK value you had active during runtime and the Tip Mask value specified in your .gwl worklist file. Your TIP_MASK value during runtime most likely is correct, causing a pickup of tips 1-5 in your example. The worklist however seems to expect tips 6-8 to be mounted as well, thus throwing the errors you described.
The „Execute Worklist“ command lets you choose a Tip selection/tip mask in the command dialog. However, this is static and does not accept variable input, so I don‘t think it is directly compatible with the system variable TIP_MASK. I believe you could specify the tip mask in the .gwl file instead. This would override any selection you made in the dialog.
I know this is bad news. I assume it is not an option to simply pick up 8 tips always, so that the .gwl file can be executed with all 8 tips.
So, how many active tip combinations are imagineable for your scenario? If I remember correctly, I had an application where I needed a total of 1-8 tips, but always starting at tip 1. That leads to 8 distinct tip masks. I just went and had 8 unique „Execute worklist“ commands, each one in a different if/else branch with the only difference being the visual tip selection. Ugly, but it works.
I‘m afraid if you need full flexibility in your active tips, e.g tips 2, 5 and 8 active for your worklist, having all those if/else branches is impossible. This would force you to build the .gwl files through programming. There should be plenty of resources on this forum on how to do so.
That’s correct. The example I’m working on generates a worklist that tells the Tecan to perform a pre-mix. By using a tip mask, I wanted it to use channels 1-5 if there were only 5 samples to be processed (stored in num_samples variable) by setting TIP_MASK=31 using the formula snowball mentioned.
Without the tip mask, it’d use channels 6-8 as part of the initial mixing step and that adds movements that aren’t necessary.
Based on what I’m reading here, it sounds like the recommendation is to specify the tip in the GWL
Example:
if this is the sample in well A1 and I want Tip 1 to do all of the mixing, I’d do something like
A;Sample Dilution Plate;;96 Well DeepWell;1;;53;;;1;
D;Sample Dilution Plate;;96 Well DeepWell;1;;53;;;1;
…other mixing steps for sample 1…
sample in well B1
A;Sample Dilution Plate;;96 Well DeepWell;2;;53;;;2;
D;Sample Dilution Plate;;96 Well DeepWell;2;;53;;;2;
…other mixing steps for sample 2…
sample in C1
A;Sample Dilution Plate;;96 Well DeepWell;3;;53;;;4;
D;Sample Dilution Plate;;96 Well DeepWell;3;;53;;;4;
…other mixing steps for sample 3…
and so forth to specify which tip to use for mixing?
definitely add the mask per tip in each line,
also worth adding a B; command at end of mixing to force the tips to be dropped,
you could even go as far as writing specific liquid class, to incorporate a pre-mix prior to aspiration (from within the liquid class) - this would save on timings etc with tip movements up and down between each asp/disp command
I considered going the pre-mix route previously. I was concerned about having droplets or residual liquid stuck on the tips after mixing, so I opted to have it as a separate step after the tips are dropped just to guard against that.
The mix volume for each sample also isn’t fixed (this portion of the script is a serial dilution down to 1ug/mL and requires some flexibility), which is why I opted to do this in a worklist rather than have the operator populate mix volumes for each sample or import it from elsewhere (though if that’d be cleaner, I’d be open to trying it).
Wrt the “B;” would that be better than the “W;”? I was working off of a general worklist example and I’m not super familiar with all of the different letters. At some point, I was told “M;…” could be used for mixing, but I couldn’t figure it out.