Library not executing on first run

Hi everyone,

I am developing a method that utilizes the STAR Channel Tools library to sort my sequences. There is some kind of bug(???) where one of my steps (out of many steps that uses the CHAN_ACCESS_Sort2Sequences function) is not performing when doing the first run (simulation or not).

Basically, what I mean is that when I open Control Run and start the first run, the pipetting step is not executed despise being enables and the traces show that my sequences are there. This is what the TRC file shows:

2024-05-16 13:38:20> USER : Trace - complete; ===========================================================================
2024-05-16 13:38:20> USER : Trace - complete; CHAN_ACCESS_Sort2Sequences - START
2024-05-16 13:38:20> USER : Trace - complete; 
2024-05-16 13:38:20> Microlab® STARplus : Firmware Command (Single Step) - start;
2024-05-16 13:38:20> Microlab® STARplus : Firmware Command (Single Step) - complete;  > RU: er00/00ru01000 12250 01400 13375
2024-05-16 13:38:20> SYSTEM : Pipette - start; 
2024-05-16 13:38:20> SYSTEM : Pipette - complete; 
2024-05-16 13:38:20> SYSTEM : Execute method - complete; 
2024-05-16 13:38:20> SYSTEM : End method - start; 

Interestingly, if I rerun the method again without exiting out of Control Run, then the steps are performed as expected. It’s almost as if the library is not connecting through on the first try.

What is also interesting is that I am not experiencing this problem with other steps within the same method utilizing this function nor with old/new methods using this tool. It’s only this step and I cannot figure out why.

I tried troubleshooting such as using different variable and sequence names, resetting the computer, reinstalling the library, etc, but to no avail.

Has anyone else experienced this or have any thoughts on this?


Hi @Nat ,

The CHAN_ACCESS_SortSequences functions will remove sequence positions as they are used. This is what allows the library to sort and come back to any position that a channel cannot reach. The result is the sequence being used will be empty. So, the first time you reference the sequence it will work as intended, but the second time it will pipette nothing because the sequence has been drained.

There is an easy work around for this, however. Placing your pipetting steps that use the sort logic within a submethod allows you to pass the sequence in which will create a copy. This will maintain the original sequence for future use. See below:

Note that the direction needs to be set to Input not Input/Output.

Another option would be to make your own copy prior to pipetting using the SeqCopySequence function.

1 Like

Hi @BrandonBare_Hamilton

Thank you for the in-depth explanation of how the sort function works! I did try the latter solution but then I realized that the error was still occurring because I did not set the current position of each input sequence to 1 prior to calling the sort function. :woman_facepalming:

I suppose the reason why I was thrown into a loop was because this error occurred after I updated the STAR Tool Library, which the method was running fine before the update. Unless I deleted the “Sequence: Set Current Position” without realizing.

Regardless, I very much appreciate your help! :grin: