Using STAR MPH96 Tools multiple times in one run (Resolved)

Hello everyone, I know I recently created another post in this forum. It doesn’t help when I’m doing multiple things at a time. :sweat_smile:

For context, I am using the STAR MPH96 Tool library multiple times to pick up tips offset in one of my method. My method is divided into two protocols (protocol #1 and protocol #2), and each protocol is using the same library except with different tip and labware sequences. When I run each protocol individually (i.e. protocol #1 is enabled but protocol #2 is disabled), the library works perfectly. However, an error occurs when I run both of them together (i.e. protocol #1 and #2 are enabled).

When running both protocols together, protocol #1 runs smoothly and then protocol #2 starts to run smoothly before this error occurs when it comes to the last set of tips. Interestingly, when I flip the protocols in the order of run (i.e. protocol #2 runs first and protocol #1 runs second), the same behavior and error occurs. I tried multiple trouble-shootings, including moving my arrays around, but I am running out of ideas.

I’m not sure if the context I provided is enough to pinpoint the problem but I was wondering if anyone else had successfully used this library multiple times in one method and, thus, could give some feedback.

As always, any help or advice is greatly appreciated


1 Like


I can’t give you a complete answer but you can open up the library and go to the line of error specified to try and understand why the array referenced is out of bounds. That should help you troubleshoot.
From there you can have different options to make sure you are targeting an existing sequence.

If no one else respond I’ll get a look tomorrow at the library to try to give you a better answer.


1 Like

Hi @Nat ,

In both protocols are they using same sequence for the offset? Or do you have two different offset sequences?

1 Like

I strongly suspect its a variable scope issue for a sequence object you are iterating over. Somehow you are reusing the same sequence variable across methods/ protocols. This could be an issue inside the .smt method as well, as I believe submethods within an smt all share the same variable scope. If anyone knows better correct me if I’m wrong, but that is what I inferred from the line numbering incrementing across submethods within an smt.

1 Like

Hi @BrandonBare_Hamilton ,

Both protocols have different sequences (tip support, tips, and source/destination sequences), tip counter string, and variables for calculating number of rows for offset. I will note that I am using the same labwares in both protocols but have created different sequences respectively. Further looking into the problem, the error is occurring within the CleanUpTips submethod of the library. When I disabled the CleanUpTips function, both protocols ran smoothly. Of course, it is a necessity for using this function for my method. Any thoughts on this?

I recommend tracing your array of sequences and index before you get to that function and see what values you get. For me the most common mistake I do is inputting a wrong index value, or reference an array value that is not there.

Perhaps if you shared the method so that someone could reproduce the error themselves they could catch something that was overlooked

Hello everyone,

I want to thank all of you for your help and suggestion! @BrandonBare_Hamilton reached out to me via PM and the issue was resolved! The issue was less of an array/sequence error but more of where the CleanUpTips was placed in the method. Originally, the CleanUpTips step was within the loop with the other associated functions and steps (since I was stamping multiple plates at a time). The error stop occurring when the CleanUpTip step was placed outside the loop, after all of the steps. Although it’s intriguing how the placement of the CleanUpTips step does not matter when there’s only one loop but matters a lot when there’s multiple loops. :woman_shrugging: Either way, I am pleased with the results :slightly_smiling_face: