Overcoming Challenges in Porting Venus method: Hidden Commands

Hello everyone,

Doing my first steps in automation (do have software engineering and data science background - talk Python to me :-). I would like to share some challenges and peculiarities I encountered while attempting to run a program on Venus. The program “Normalizing DNA,” was shared with me by my colleague.

The Normalizing DNA method utilizes a command called “CO-RE 96 Head Tip Pick Up (Single Step) on ML_STAR,” which is a standard command in Venus, similar to a regular aspirate function. The code was validated on Hamilton STAR, and it used in our company on a regular basis (it’s kinda ‘hello world’ of automation - simply normalize DNA with buffer, according to an input excel file with DNA concentrations).

Unexpectedly, it did not port properly to another computer. Instead, it generated an “Error of method not installed.”

After spending several hours trying to resolve the issue, I discovered that the command was hidden and only accessible in Venus by navigating to Tools → System Configuration Editor. It doesn’t make any sense to me that the “hidden” command is treated as disabled, and the error is “not installed” - sending me to try to improve the installation of VENUS.

Furthermore, one of my attempts to fix the issue involved importing some Hamilton libraries, assuming the code for the command was missing from the method and needed to be imported. This attempt actually made things worse ! Not only that the error continued, but also once I disabled the command, VENUS threw a new error - just because the libraries were installed. I needed to uninstall those libraries. It doesn’t make any sense to me to see errors just because another library is installed.

There are two odd aspects to this:

  1. The wrong error message sent me to install, instead of simply enabling.
  2. Once I enabled it to resolve the issue - a new error appeared.
  3. That library error occurred at the beginning of the run, while the hidden command issue surfaced in the middle. I would have expected the library error to manifest at the start of the run, even on the first attempt. Why does it appear in the middle if there is an error at the beginning?

Has anyone else encountered similar issues, or does anyone have any insights on this?

Thank you
Ofer

Welcome to the life of somebody that designs, write and test Venus methods

Sometimes your errormessages are not the cause of a true message. Sorry to burst a bubble here. Sometimes a sequence will run to 0 and the errormessage is that your stepreturn can’t be read.

When you are migrating a method from a system to the next, you should always set the correct system configuration as the source system. That means channels, head, TADM, database etc. Otherwise you’ll run into errors.

But to assure you, if venus prompts an error…it’s always you that made the mistake. And 9 out of 10 it’s a relative easy thing that will be an " Oh, why did I do it this way" mistake.

Python is nice to have, but personally I never touched anything programming before Hamilton…and I work with the systems for the past 6 years with Hamilton and now a year at UDX. :slight_smile: You will love it!

Happy to help out!

3 Likes

Totally agreed with Pascal. You get to “feel” what the error is by reading between the lines sometimes.

In terms of the enabling steps part, I’d just set all the steps to visible and then you never have a problem :wink:

In terms of the libraries, if you are importing a package (.pkg) file that has been generated by exporting from Venus, that should bring along any dependencies. This is both bad and good - good because you don’t have to worry about importing libraries (although you will have needed to run some installers for a few) but bad because it can overwrite existing library files that are used in other methods. There is no versioning or package management or virtual environment system.

The library error would be at the beginning because the method would have been “analysed” and any non-existing/broken imports/includes would have shown up before it got to initializing Phoenix etc.Maybe the hidden command issue is an edge case because its a default command? Not sure.

The other thing is as Pascal said, make sure your Venus setups are comparable before importing. In particular Version numbers etc. It helps to have a standard install.

3 Likes