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!

1 Like

Hello @Nat ,

Did you have success with this? I’m trying to do an equivalent action with Tecan’s FluentControl. I’d be interested to hear how you did it.

Hi @Donald-BrokenStringBio

The project was dropped since my team was able to standardize the ODTC protocol. Therefore, unfortunately, I have no resources to provide. :sweat_smile:

1 Like

That is not what automation is for, suggest you optimize you ODTC PCR scripts offline, then setup the robot to run the same thing over and over again.

1 Like

Thanks for your opinion, @ParrotMan . With respect, I disagree. Automation can and should be dynamic and a major use case for automation is in optimising assay parameters, particularly if you’re having to iterate through many combinations of variables.

Anyway, I have solved it for my use case. I was only hoping to compare notes.

2 Likes

Did you use the XML library to modify the file? Just curious how you implemented this!

Ended up with a JSON command line arg to a python .exe

Used elementree to edit the xml. Fortunately no need for a checksum. A more elegant solution I think might be a vb.net script. But it does the job for now.

That is fair, I am biased towards production side and I forget the other side of letting the automation do the optimizing.

Glad you have it solved.

1 Like

I get where you’re coming from. I’m currently using automation in R&D. If I was in prod or manufacturing though, I wouldn’t want my team to change things on the fly either.