Get labware names, files, xyz coordinates from deck layout file


I am working on parsing the xyz coordinates and labware names from the deck layout file, and I was able to have a script get that into a results file. I’m having trouble figuring out if I could get the labware file name/location information via running the Venus method and generating a results file. Is there a way to do this? The purpose of this project is to keep track of the xyz coordinates in our methods across instruments.

Maybe the PyLabRobot implementation is helpful:

Thanks! I’ll take a look.

@bowlineknot - Yes, you can parse out labware definition files as well as deck coordinates from deck layouts using VENUS commands. Linked below are a couple posts that provide more context:

Retrieving deck coordinates via labware ID:

Retrieving labware definition file path via labware ID:

By whatever programmatic preference, you would compile the labware IDs of the deck positions you are interested in, and use the above tools to retrieve the relevant data which could then be written to a file.



Thanks Nick! That was very helpful. Is there a easy way to retrieve the position of the labware within the carrier?
I’m looking at using this

or this

and this together.

@bowlineknot can you confirm what you mean by “position of the labware within the carrier”?

If you’re referring to the carrier (template) Site ID, then the Labware Access library @NickHealy_Hamilton linked is your best bet. It contains the following command, which will perform exactly that:


I suggest downloading, installing, and taking a look through. The Labware Access library does a good job of simplifying a lot of the processes from the HSLDevLib, and is a great tool when doing any sort of Deck Layout modification or information gathering at run time.

Thank you,


Thanks Dan for the suggestion! What I mean by the position of the labware within the carrier is: i.e. the position of a rack of tips (labware) on a tip carrier is returned by the script to be Position 1 of 5 Pos Tip Carrier 1. Hope that makes sense, I think we are on the same page.

I haven’t used the Labware Access library much compared to the DevLib. Hamilton Venus has a lot of libraries!
Once again thanks for pointing me in the right direction!

Thanks for the help everyone! @DanHartman_Hamilton @NickHealy_Hamilton @rickwierenga Some late in the evening scripting got me this. (a sample)


Sorry for bumping an old thread, but what’s the best way to get a list of labware IDs and sequence IDs? Most of the functions in HSLDev, HSLLabwrAccess, LPQ need either one of them…

If the answer is to use GetLabwareIDsAndTemplateSiteIDsForTemplateID and then GetDefaultSequenceForLabwareID, then how do you get a list of template IDs…

Hi Gareth,

Is your intent to collect all template IDs from a deck? Or simply to identify the parent template ID for a rack that is bound to one of it’s sites?



I’m essentially wanting to replicate what bowlineknot did. I’ve got all the labware given an array of template ids, and I can get sequences given the labware, but at the moment the array of template ids is hard-coded…

Is your array of template IDs supposed to represent all the templates used for the deck layout?

I am unclear if the request is to get the coordinates of all racks in the layout, or a specified subset.



The aim is to get an array of labware IDs for all labware in the deck layout.

This works, but I’d like the arrLabwareIds to be dynamic (or use another way of getting all labware ids):

I’d also like to get an array of all sequences in a deck layout (not just default sequences).

Hi Gareth, Give this one a try: :: Hamilton

It´s an .smt with one function that will return all labware IDs and Sequence Names.

Then you can use HSLDev > DevGetSequence to get a copy of the deck sequence from a given name.



Thank you Alvaro! Really appreciate it.

The HSL is interesting to me. Is there any documentation about the IEditDeckLayout5 and HXPARAMSLib.HxPars objects? It seems the HxPars is a dict-like object?

Unfortunately there´s no external documentation available. The HxPars is a propietary type of dictionary used in the VENUS code base and it´s not a friendly format.

We have other custom libraries that offer dictionary functions:

  1. Install this ASW Standard :: Hamilton
  2. Then install :: Hamilton

#2 provides an extended framework (\Library\HSLExtensions) including a Dictionary library, and uses libraries installed by #1 (\Library\ASWStandard)

1 Like

Ah ok, that’s a shame.

I knew about the dictionary libraries - but am interested in the objects like you used to get more information about the method/deck!