Advanced Tip Management Library (ATML) - Overview and Download

Hello all,

This library has been mentioned in a few threads, but I realized it hasn’t been shared! It has since been uploaded to the repository we set up under Hamilton Libraries.

Please see this link for the folder containing the latest version of ATML.

The purpose of the ATML is to support tip management (updating the tip counter, tip loading dialog, etc.) on our larger pipetting platforms. This is a consolidated and updated implementation of tip handling logic, merging functionalities previously found across multiple separate VENUS libraries. For example, it includes support for stacked tip racks.

See below for the main Tip Edit dialog:

The library was developed and is maintained by our internal software development team. It has been in use in the field for some time and has gone through several revisions based on feedback from the Hamilton Applications team and our customers. We are in the process of incorporating it into our VENUS software training courses.

The installer for the library installs the library along with a demo method that shows several use cases (demo method can be found under Hamilton\Methods\Library Demo Methods\Tip Management Library). The library has a help file that expands upon its features and lists its limitations. As it is intended to be comprehensive, it is more complex, so there is a bit of a learning curve. So, in some cases, it may be more straightforward to use the default Tip Counting library. See below for a quick comparison of existing libraries and supported features and a compatibility list:

Support for: HSL Tip Counter Visual NTR STAR MPH96 Tools STAR Tip Tools ATML
FTR Yes Yes Yes Yes Yes
NTR Management Yes Yes
SkyFrame Management Yes
Tip Box Management Yes
Optimized Tip Pickups Yes Yes
Tip Defrag Yes Yes
MPH Shifted Tip Pickup Yes Yes
Integrated Tracing Yes Yes Yes Yes

Compatiblity

Support for all tip rack types:

  • FTR (Framed Tip Rack)
  • NTR (Nested Tip Rack)
  • Tip Boxes
  • SkyFrames

Supported Instruments:

  • STAR
  • STAR V
  • VANTAGE

Pipetting Hardware:

  • 1000µL Channels
  • 5mL Channels
  • MPH96

VENUS:

  • VENUS 6 and up.

While it’s intended to be comprehensive, there are still pending features and likely use cases we have not encountered. We can provide any feedback directly to the development teams for consideration in future updates.

I hope you find this library helpful!

Eric

12 Likes

Thank you so much @EricSindelar_Hamilton is there any major difference/ feature between V3.0.2 and V3.0.1?

Some bug fixes. See below for what was addressed in 3.0.2.

Bug fixes:

  • Corrected an incorrect enum for ‘Tip pickup with bottom side of mph’ in the documentation.

  • The issue of duplicate NTR transport occurring under certain circumstances has been resolved.

  • The issue of tip counters changing, which resulted in an endless error loop, has been fixed.

  • The accumulating shift in the x-direction is now working correctly

  • The issue of the eight columns resulting in a full MPH96 tip pickup sequence has been fixed.

1 Like

Thank you so much Eric! I love the ATML, even the tipedit dialog loading screen is so awesome!

1 Like

Thanks for sharing Eric. I have used this library for a couple of months now and it truly is a huge step forward compared to what we used to have. I have stumbled upon a situation I cannot seem to solve: If I am using two (or more) different tip types and want to use the 96 head (and reuse tips) it seems to not work as I hoped it would. Placing tips back in the rack and then picking it up later is not working if the system should also use another tip type in between. I understand that this is one of the extreme cases and I managed to solve it using a second tip rack adapter and place the tips that should be reused in this one. That seems to do the trick but then the ATML is not used. Overall I LOVE it. Keep up the fantastic work!

Best regards

Thomas

1 Like

Thanks for the feedback! Yes, that would be a challenging use case for the ATML and one that has been relayed to the development team. I checked with a colleague who reported it - their recommendation would be to use the granular commands in the TipManagementLibraryComInterface to get the pickup sequence, reuse as needed, and then update when done. So, something like this:

The downside is that the ATML error handling isn’t in place for those tip pickup steps.

Thanks Eric! I did come across an edge case and I am wondering if I am doing something wrong with the ATML.

I use the GetTipPickUpSequenceWithControlSequence but I believe that since it only had a few tips left in the layer, it overrode the channel pattern with “1000000” even if my control sequence had a lot more positions left.

The issue is that it proceeded with pipetting the subsequent steps before cleaning the NTR layer and picking up more tips, which led to a mismatch with my sequence/array handling downstream and a method abort. Note that re-running the simulation right after didn’t result in an error because it had enough tips in the layer to proceed accordingly.

Is there a way to program the method to mitigate that risk? Would turning off optimization mode work here or it would simply be a matter of a stronger coupling between the tip pickup and the sequence/array handling so I don’t get the mismatch?

We’ll need more info to determine what’s going on.

If you can please export and share your method, then we can investigate further!

You can upload to this link. Password is Hamilton2025

Hi Eric,

You mentioned there are still pending features for this library. Is adding MPH384 pipetting capabilities in the works for the near future? Otherwise, is there anything preventing someone from adding MPH384 capabilities to the library sub-method?

Thanks in advance.

That has been requested, but there isn’t a timeframe for when it would get added.

There isn’t anything preventing someone from modifying the library as needed as far as I’m aware!

2 Likes

@EricSindelar_Hamilton I’d like to report a small bug in the TipManagementLibraryComInterface.hsl library that is the backbone for the Advanced Tip Library Management smt.

For the function “GetMph96TipPickUpRowsSequence”, if there is an error, the trace file reads “Could not get pick up tip sequences for columns!” when it should read ““Could not get pick up tip sequences for rows!””. This is line 2380 when I open it in the HSL editor.

Also, I have a question on the Transport Helper submethod library (particularly the NtrTransport/NtrTransportPortrait submethods). If the transport of the NTR tip rack is NOT to waste, then the Get plate step will pull in relevant grip parameters(grip height, grip width, grip opening width, grip force) from the TransportDefinition.hsl library depending on if its a STAR or VANTAGE (even though the only parameter that differs is grip height).

If the NTR tip rack transfer is to waste, then its hardcoded to use Vantage specific grip parameters. Why is using the Vantage specific grip height ok in this situation for the STAR line? Thanks!

1 Like

Thanks for the feedback. We’ll check if they are still present with the latest version and if so, report the issues to the ATML development team!

New Release - ATML V3.1.0

A new version of ATML has been uploaded to the repository here. The main new feature is a function called GetTipPickUpSequence for the MH96 head. This function is intended as a substitute for all other MPH functions, whether you wish to pick up rows/columns or complete racks. You can also use it to optimize your MPH methods and save customers’ tips by picking up incomplete rows or columns.

You may notice some redundant input parameters (i_intMphPatternMode vs. i_intMphPickUpSide). These were introduced in preparation for future modifications to the function to ensure compatibility.

New features

  • You can now create sequences for incomplete rows and columns to perform your tip pick-up with the MPH96 by using the GetTipPickUpSequence function. This function can also be used to create all other sequences (rows, columns and full racks).

Bug fixes

  • The IPG parking command bug has been fixed

  • Fixed an issue with an error derived from a missing container path/file on the deck.

  • SkyFrames: Fixed a bug where an empty sequence was delivered in a multilayer edge case.

  • Fixed a bug where an undefined labware property error was thrown during tip transport of 96 tips directly from the rack.

  • Tip counters in the Tip Edit dialog are now in a deterministic order.

  • Adjustment in the ATML demo method error handling.

Known issues

  • UCM2: ATML is not compatible with UCM2 middleware ≤ V1.01. However, if ATML is installed before the UCM2 middleware installation (V1.0.1 or higher), both are compatible.

  • Tip counters covering partial racks: If you use a tip counter on part of a rack instead of the full rack, an error will appear during defragmentation.

  • GetTipPickUpSequence: If fewer tips than complete rows/columns are requested in the last unit on the tip support, the return code NotEnoughTipsOnSupportPosition can be thrown.

6 Likes

Thank You Eric, great summary.

Could you please provide a short guide / best practice for updating the ATML software without breaking software dependencies or methods?

2 Likes

I second Wictor’s point above about how to ensure a smooth update for the ATML. I was initially on ATML 3.0.2, but I had to import a method that was built with the 3.1.0 version and contained the new GetTipPickUpSequence function. I naturally had syntax error since that was an undeclared identifier.

I uninstalled the ATML 3.0.2 through the control panel then installed 3.1.0 with the installer above. When opening the method, it first flagged that the a specific file needed to be repaired (“C:\Program Files (x86)\Hamilton\Library\Tip Management Library\TipManagementLibrary.hs_”) but it was exactly in the expected path. And now it is throwing a different syntax error about TIPMANAGEMENTLIBRARYCONTROLLER::StartLogging & TIPMANAGEMENTLIBRARYCONTROLLER::StopLogging being undeclared identifiers

Am I missing a component?

EDIT: It seems the issue was that I was missing the TipManagementLibraryController Library. Unsure if it is supposed to normally be added during the install of the ATML but I was able to resolve my syntax errors by copying over the relevant files from the library (smt, stp, hsi, hs_) from a different system we have.

Hi all,

Sorry for the delay, as I’ve been traveling. See below for some general guidance on installing and setting up new versions of the ATML:

  • Run the latest ATML installer. Unless otherwise specified, there is no need to uninstall the existing library.
  • Open the methods and submethod libraries that have ATML commands. If there are any syntax errors, the affected commands will be highlighted. Open each affected command and resolve the conflict(s). Save the changes.
  • Run the methods in simulator and perform water runs to fully vet the update prior to conducting any reagent or sample testing.

Syntax errors occur when functions get additional or modified parameters. The errors that are generated when you open a method/smt library post-upgrade essentially highlight the conflicts so you can then identify and resolve them.

Please let me know if that provides enough clarification or if more specifics are needed! We’ll try and highlight these changes better in future updates!

Thank you,

Eric

3 Likes

@EricSindelar_Hamilton is there any way to use the ATML for non tip sequences (e.g. selection of a sequence at runtime for wells in 24-well plates to feed).

I’ve used the HSLTipCountingLib for this successfully in the past, but I am running into an issue with visibility of the proper labware when multiple types exist virtually on top of the same deck position (e.g. 96-wp, 96-DWP, 24-DWP etc. each on their own deck layer). The overlapping labware types exist because the method gives flexibility for the user to select which type they would like to work with.

I find I’m still physically able to select the correct sequence (e.g. if the user selected 24-well plates, the sequence associated with that labware is the only one the Edit2 step of HSLTipCountLib will affect), however without the visibility, it is difficult to click on and select specific wells that you can’t see (click-and-drag selection for entire plates still works fine since the precision isn’t necessarily needed when someone would click/drag). All layers are visible in the deck layout. Is there a difference between setting “Visible by default” to Yes vs. No?

I was thinking “No” would hide everything except the active sequence (like when pipetting), but that doesn’t seem to be the case here.

This led me to the ATML and I was hoping it may be able to address this issue?

The ATML is for tip labware only, not for plate labware.

The “Visible by default” refers to labware, not layers. So, if “No” is enabled, then the labware will only appear visible when it is loaded or accessed during runtime. Many users prefer to set this to “Yes” so that all labware appears in the run control viewer from the get go.

I see the issue you’re referring to with the Edit2 step. There isn’t an option to select and view a specific layer, unfortunately. It will show all the labware which makes for a cluttered view, but as you indicated, it will only allow you to select the positions for the sequence for the labware you specified in the step.

One possible approach could be to remove and re-add labware so the view is clearer during this step.

2 Likes