Create ODTC Protocols from Venus

Hi everyone,

I was wondering if it is possible to (dynamically) create incubation protocols for the Inheco ODTC in Venus? We have a protocol that uses the ODTC to incubate our plates but there are times where the incubation step needs to be modified depending on the reagents we swap out. Creating another protocol within the ODTC Script Editor to call within Venus is not ideal, especially when handling hundreds of incubation protocols. Similar to how one would use the MLSTARLiquidClassLib library to modify liquid class on the fly, is there something similar for the Inheco ODTC library?

Any insights?

-Nat

Hi Nat,
I’ve never done this, but you could try fetching, modifying, and saving the xml file that contains the cycling protocols.
Of course, you would have to upload the file back to the ODTC before calling the cycling protocol.
Maybe someone else (e.g. the guys from Hamilton) has a more elegant suggestion. :sweat_smile:
Best,
Sorro

Hey @Nat are these protocols all saved in one file or are you talking about modifying temps on the go?

As you may know, one ODTC XML can have more than one program, you can use this fact to define your program and then go through and run based on the name of the protocol defined within the larger xml file containing multiple protocol definitions.

If you create an array with Venus, and then dynamically select the array index needed you can programmatically adjust which protocol is being run from one sent XML file to the ODTC.

If you’re looking to dynamically adjust the temperature within your method, that is a bit more tricky as the Communication protocol (SILA) only defines uploading entire protocols to the device before execution. If you need to have a full control over the heat cycle temps at all times I would evaluate different manufacturers of thermocyclers which use a parallel/serial connection protocol.

2 Likes

You could adjust the XML file and upload it before an execution of your protocol.

Make sure to to the download to ODTC → initialize temp → Execute protocol if you change something.

Never worked this way before, but should be possible in theory

Hi everyone,

Thank you for your feedback! What I am trying to do is dynamically adjust the temperature and cycles directly from Venus like @zachary.milot pointed out.

My initial thought was to execute a python script (converted to .exe) that takes these variables from Venus and then modify it onto a pre-existing XML file (or create a XML file in a similar format). Of course, the tricky part is how to upload/update the new XML file to the ODTC directly from Venus. Not to mention, there’s also the initialization step that also needs to be created and uploaded to the ODTC.

From what I can tell, creating an ODTC protocol (from scratch) directly in Venus is not possible as I hoped.

-Nat

@Nat the “download protocol” Venus controller step sends the XML at a specified file path.

Your thinking is definitely possible in the way you’re describing. I would use a .bat or .exe to execute command line commands to initiate a python script or powershell script, if you need the temps passed in you can use command line flags to pass input in and you can get your xml file output as your return variable using a shell command.

As this is pretty basic XML writing if you can write something in powershell it’s a little more universally available and compiles slightly quicker vs python/is easier to set flags as variables within your script using the command line in my opinion.

You can then use a script to pass output of where your xml file will be and then set the download protocol device controller step to get your dynamic protocol setup!

The initialization step should only be run once and if you need a ramp up temp you can set that using the same methodology.

The ODTC is a thermocycler so it can ramp up and down temps quite rapidly so I wouldn’t worry too much about a Hot Start (preheat).

I also suggest using temp files if you are in a non GXP environment as the amount of variances on your XML files seems large.

I am very curious to see what you come up with, let me know if you need any help with the input/output from the shell commands or if you can’t find the download protocol controller step!