Best way to sort a worklist?

Right now my method is set-up to create a sequence from the worklist the user uploads, as well as a volume array and a barcode array. However, the problem is that if the worklist is sorted by row instead of by column, the dispense is quite slow.

I know there are libraries that can sort sequences, or even sequences + 2 arrays. However, I anticipate that at some point I will have more than 2 arrays that I need to sort with the sequence, so this could be very limiting. Is there another way to sort a worklist by well, such that it is tabular?

I should mention that I am working with Venus 4, on the Hamilton STAR

2 Likes

Hi @Lriegel and welcome to the forum!

If you wouldn’t mind sharing a little more context regarding the data you anticipate managing against the sorted sequence positions, I could provide some thoughts.

Thanks.

-Nick

1 Like

Hi Nick,

Sorry for my delayed reply.
I anticipate having a worklist containing a source plate and destination plate using the following fields: position, labware ID, volume, barcode, and compound number.
The sequence + array sorting in STAR channel tools has also been giving me issues because of the way it truncates the arrays to be equal to the channel number

Thank you for your help,
Logan

There are a few libs that make it possible to sort your sequence

SequenceSortV3
HSLExtentions → Sequence

1 Like

Hi Pascal,

Thank you for your reply. I checked the HSL Extension > Sequence, but I’m having trouble finding the sort function.
Is SequenceSortV3 a different library? I can’t seem to find that one either.

Thanks again,
Logan

There are a few posts on the forum about sorting sequences. Check out one of the original posts below:

1 Like

Hi Eric,

Thanks for your reply. I have some follow-up questions about the seq sorting, but I can post them to that original thread.
However, I’m not looking to sort the sequence, ideally I’d like to sort the entire worklist within Venus, that way the user does not need to open up a separate program beforehand in order to sort the worklist. It would be easy enough to create something like that in python, but from what I could tell, there’s not a way to nest python scripts within a Venus method, even with Pyhamilton

Thanks,
Logan

Have you considered using a SQL statement for sorting your worklist? There are posts and examples you can find on the forum.

2 Likes

Hi @Lriegel ,

Just so that I have context. Are you looking to sort the whole file so that you can write an output with the extra values you also want to sort? Or are they being used for something down the line? I have a couple of ideas on how this could be done using STAR Tools sorting, but it depends on what the other values within the file are needed for.

At base for pipetting, the Source position, Target position and Volume are the only parts that are needed which even if the file has these in row format, STAR Tools would sort the sequences and volumes to be in the fastest way.

Now the easiest way to sort a worklist in a way that would useable for pipetting would be to read the whole file and use the Alpha Numeric Conversion library (comes with STAR Tools) to convert the position id from alpha numeric to numeric. I would read the input file and write a local copy of it with one extra column being the converted numeric value. I typically write these local copies to the log folder. So, it would look something like this:

Creation of the well index:

From there, you can open your temp file and sort by SOURCE_PLATE ASC, WELL_INDEX ASC and that should sort the worklist in labware and column order.

3 Likes

Hi Brandon,

Thank you so much for your answer! This is exactly what I wanted to do, but I was not sure how to do it! :smiley:
I appreciate your detailed response, and the screenshots are a huge help.

Thanks again,
Logan

2 Likes

Thank you for your answer, I’ll take a look!

1 Like