Array out of bound only when first channel loop contains fewer than 8 elements

Hi all! I am writing a method in Venus 6 to dilute protein with the channels by reading the concentrations from a file, doing some math, and then adding different amounts of buffer to a 96-well plate.

I am getting a very weird error in regards to the aspiration and dispense of a volume of liquid in an array: “WARNING: The used array index ‘X’ from array ‘arr_Y’ is out of bound. Data from the last available array element (index ‘X-1’) are used instead; liquid volume will allways be set to ‘0’.”

The weird thing about this is that it happens only if the first pipette loop uses less than 8. And for only the last element in the array, regardless of what it is. This error goes away if the array contains more than 8 elements and it has to loop through with the channels more than once, regardless of the actual values.

Has anyone experienced this before? Is it something I am doing wrong or a bug or fixable? I would greatly appreciate any help.

It seems like you’ve got empty array indices where it’s expecting a value. For an asp/disp step, the instrument wants a volume value for all equipped channels. Do you run on an 8ch system/is your simulated environment configured as an 8ch system? Mine is set up as 12ch, so if I’m trying to use multiple array values as volumes (aka your varying buffer volumes), it prompts me to make sure the array has at least 12 values beyond the start index. That way, there’s an array value for each channel, even if the channel isn’t in use.
image

Huh. Interesting. I did not see that NOTE. So even if you tell it to only use the number of channels in the array, and only pick up that number of tips it will complain if there are not at least 8 array elements (or in your case 12)?

I really appreciate your quick answer and insight

The note may be version dependent, as I’m using venus 6—unsure off the top of my head if it exists in venus 4/5 method editor. That said, I looked at the help/chm file for the aspiration single step, and it lays it out more explicitly:
image

No problem, happy to help! I’m actually working on something similar, so thanks for finding this quirk before I ran into it myself lol

1 Like

This " issue" has been there since Venus 2 if I remember correct.

When you pass an array with volumes, the array should have the size of the number of channels. So if you have an 8 channel system, make sure your array has 8 indexes with information.

A great tool for this is - again - HSLExtentions with the Array Lib

Create your array based upon the number of channels (8)
The use the initialize function to set all values to 0.0
Now fill your array with the information.

In a picture (because we all love pictures)

Funny eh?

One consideration is that I don’t think that these errors actually do anything. It just complains in the logfile. I leave them in place because I like to keep anything that’s index-linked (like the dispense sequence and the volume array) at the same number of elements. That can be useful for sorting and tracing.

If I really want to get rid of them, I tack on a few 0.0 volume values right before pipetting.

@jhorsfall you are totally right, I checked the actual pipetted volumes. The warning doesn’t do anything to the volumes of the last element in my array, despite it literally saying that it will. Thank you so much for the answer.

1 Like