Worklist Commands - Mixing?

Hello!

I’m looking for alternative ways to mix samples instead of issuing the Mix commands that are built into FC.

I don’t want to use FC’s Mix command because I have a dynamic number of samples. I found the Reagent Distribution and Sample Transfer commands are able to take in variables for dynamic parameters, and I’m looking for something very similar, but for Mixing. See nHitpick variable in Sample Transfer command below:

Is it possible to issue a Mix command using worklists? I did not see any mention of this in the FC Help menu.

I considered making a custom worklist that would cycle aspiration and dispense commands to replicate “mix” cycles. This feels like brute force though, so I’m curious if someone has a more elegant solution.

Thank you!

1 Like

Here are some options in order of difficulty…

  1. Build the mix into the Liquid Class Microscript (allows you to use all SMART Commands with Mixing)
  2. Create a VB that constructs an asop/disp worklist with mixing and execute it (total control but lose some ability to recover plus may be more difficult if you don’t code)
  3. Dynamically build the steps with variables in a Variable Pipetting Loop or normal plate loop with the Mix command (native, powerful, don’t end up doing step #1 which is a huge no-no for some)

Third is the most difficult because you can end up with a hearty number of dynamic variables once you figure out how to use Tip Selection and Well Offset in ways that allow you to map the plate however you want.

2 Likes

The third idea is very interesting! I think you’re right about the difficulty… it may be too complex for me at this time.

I learned how to code VB this week (thanks to some of your other examples around the forum), so I will go with the 2nd option.

Really great feedback!

1 Like

That’s great! Learning to create a worklist in VB is a nice way to flex those programming muscles.

You can also execute SMART commands from a worklist.

There is also a 4th option that I forgot to mention but it’s tricky, you can always mix with a shaker. Not the ideal but it’s an option’

2 Likes

Great options @luisvillaautomata. Personally I would build a mix into your liquid class microscript. As there is a bit of a hidden feature where you can also dynamically feed in an inbuilt mixing liquid class or non-mixing as a variable into commands.

For example, in your smart command image where you input the liquid class if you click the grey box next to it, you can now input a function or a declared variable. The user can then pre-define if the want to use a mixing or non-mixing liquid class for the command.

with Predefined variable “LiquidClass”

This is also true if you feed Liquid Class into worklist commands so it’s the best way to centralize actions for multiple scripts. You just have to be good at managing your Liquid Class library.

2 Likes

Thank you both for your suggestions!

I explored the worklist option, but it seems I may need to build out Tip Selection to make the worklists run quicker. In the arrangement below, the worklist aspirated and dispensed samples one at a time. I think it is possible to aspirate/dispense multiple samples at once if I specify the tip in each command, but haven’t tried yet.

GWL A/D cycles to replicate mixing:
A;Hitpick[001];;;1;;50;Water Free Multi;;;
D;Hitpick[001];;;1;;50;Water Free Multi;;;
A;Hitpick[001];;;2;;50;Water Free Multi;;;
D;Hitpick[001];;;2;;50;Water Free Multi;;;
A;Hitpick[001];;;3;;50;Water Free Multi;;;
D;Hitpick[001];;;3;;50;Water Free Multi;;;
A;Hitpick[001];;;4;;50;Water Free Multi;;;
D;Hitpick[001];;;4;;50;Water Free Multi;;;
A;Hitpick[001];;;5;;50;Water Free Multi;;;
D;Hitpick[001];;;5;;50;Water Free Multi;;;
A;Hitpick[001];;;6;;50;Water Free Multi;;;
D;Hitpick[001];;;6;;50;Water Free Multi;;;
A;Hitpick[001];;;7;;50;Water Free Multi;;;
D;Hitpick[001];;;7;;50;Water Free Multi;;;
A;Hitpick[001];;;8;;50;Water Free Multi;;;
D;Hitpick[001];;;8;;50;Water Free Multi;;;
W;

I also built the mixing microscript into my liquid class. I simply copy-pasted another Mixing liquid class’s microscript to the end of my Dispense liquid class’s microscript. It seemed to work pretty well. It’s good enough for my purpose, so I think I will use this for now.

2 Likes

If they’re in a column maybe you can also try,

2 Likes

Hi Luis! Thanks for your suggestion.

I tried this on my TECAN. You can see the A/D commands generated below. Still 1 tip at a time.

I suspected the problem may be due to Hitpick[001] being a 384-well microplate (not 96-well), which might be messing with the worklist’s logic during tip selection. So I changed the worklist to:

GWL A/D cycles to replicate mixing:
A;Hitpick[001];;;1;;50;Water Free Multi;;;
A;Hitpick[001];;;3;;50;Water Free Multi;;;
A;Hitpick[001];;;5;;50;Water Free Multi;;;
A;Hitpick[001];;;7;;50;Water Free Multi;;;
A;Hitpick[001];;;9;;50;Water Free Multi;;;
A;Hitpick[001];;;11;;50;Water Free Multi;;;
A;Hitpick[001];;;13;;50;Water Free Multi;;;
A;Hitpick[001];;;15;;50;Water Free Multi;;;
D;Hitpick[001];;;1;;50;Water Free Multi;;;
D;Hitpick[001];;;3;;50;Water Free Multi;;;
D;Hitpick[001];;;5;;50;Water Free Multi;;;
D;Hitpick[001];;;7;;50;Water Free Multi;;;
D;Hitpick[001];;;9;;50;Water Free Multi;;;
D;Hitpick[001];;;11;;50;Water Free Multi;;;
D;Hitpick[001];;;13;;50;Water Free Multi;;;
D;Hitpick[001];;;15;;50;Water Free Multi;;;
W;

However, I continued to see single tip selection throughout the generated A/D commands.

In any case, I’ve resolved the mixing issue from the original post, so I won’t need follow up on this further.

In the future, I may create a tip selection algorithm for worklist generations similar to above. I’ll be sure to post here and share if I do. Thank you again for the support!

You need to specify a tip mask just as an fyi.

Other wise it will just use the same tip for everything.

1 Like

if you break up the gwl into:
A;
D;
W;
A;
D;
W;

FluentControl will identify the first A for the first tip selected in the “load worklist” command, and second “A” for second tip
so a gwl with 8 x ADW groups will use 8 tips in parallel
if you want more specific tip use, each A; & D; can be assigned a tipmask value to force a specific tip for that action

2 Likes

Also if you want to reuse the same tip replace W with F. This forces a tip flush wash and keeps any mounted tips for the next pippetting action. Unfortunately there is no standard WL command to set tips back or not flush tips but reuse. You will need to look into advanced worklist commands with tip masking for this.

2 Likes

To resolve this issue, I added a mixing microscript to my liquid class after the dispense microscript. My LC is shown below:

Posting this in case someone wants an example. I’m able to mix samples within my worklists nicely now. :smiley:

I made additional changes to the LC that are not related to the mixing microscript. For unrelated changes, refer to lines: 050, 053, 055, 063, 072, 085.

The unrelated changes were put in after I observed this LC diluting buffers during mixing. I also observed the default Water Mix LC had dilution issues as well. The addition of the leading airgap (line 050 & 073) significantly helped reduce dilution. A minor amount of dilution is still present (2-5% dilution), but much better as opposed to 10-20% dilution that was there previously.

(I believe the dilution may be due to the STAG not properly separating my buffer from the system liquid, causing them to mix and dilute effectively. If anyone has experience solving/troubleshooting this “dilution” issue, please let me know!)

5 Likes

AWESOME! And this is why the microscript is the Fluent’s greatest superpower.

2 Likes

It is possible to multi-dispense from the worklist, if you setup the .gwl file correctly. For example, you could aspirate 300 uL and dispense 6 sets of 50 uL, if you have use the appropriate liquid class for multi-dispense. You would not use the CSV → GWL because that will set up your .gwl for single-dispense. However, you could either write a program to directly write the .gwl, or you could have the CSV → GWL generate the GWL and then write a program to modify the .gwl for multi-dispense. I have successfully implemented this for some projects.

Mike Mueller
Nucleus Automation Partners LLC
www.nucleus-automation.com

1 Like

Hi! I was wondering how I would need to change your microscript to have the mixing happening during the aspiration rather than after the dispensing? I would like to have my samples/reagents mixed BEFORE distributing them somewhere else…?
Many thx in advance!

You can alter the aspirate microscript in pretty much the same way. You might want to make sure that the mixing doesn’t alter the accuracy of the liquid class.

that’s what I assumed, but could you give me more details, where exactly I would have to paste the mixing loop? I am super unsure (super new user) and have so far not been successful.
Many thx in advance!

Sure, sorry to be terse. The details are why these forums are so great. I will provide screenshots for my version of FC (3.4). Hopefully they are close enough to whatever version you are using.

First, navigate to your liquid classes and duplicate the class that you want to alter if it is read only or you want to preserve the original.

Next, navigate to the relevant arm and expand the Aspirate section. Then expand the Microscript section.

There are probably going to be a couple of conditionals that switch on the properties of the liquid class. I suggest inserting the mix step after the liquid level has been determined. With my liquid class and with cLLD enabled, that is right after step 044 here:

I’m no expert and there might be a better way to do this. One limitation here is that the number of mix cycles may have to be fixed if you don’t want to fiddle with passing a number through the attribute of a well into the microscript. There’s an example of that on the forums.

1 Like