Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with TecanFluent? #14

Closed
kosonocky opened this issue Jun 14, 2022 · 6 comments
Closed

Compatibility with TecanFluent? #14

kosonocky opened this issue Jun 14, 2022 · 6 comments
Labels
enhancement New feature or request

Comments

@kosonocky
Copy link
Contributor

Hi, I am graduate student at UT Austin working on developing liquid handling protocols to validate our deep learning models for protein engineering (https://mutcompute.com). We have a TecanFreedom and a TecanFluent that are being underutilized, and I want to get these up and running. I am currently looking for a Python library that can control the machines, and came across yours by recommendation of Sandor (said he's a former colleague of yours).

I am wondering if you guys know if this software will work out of the box for the TecanFluent (I already know it works for the Freedom). If it doesn't, do you know what/where changes I would need to make to adapt/extend this library to work on a TecanFluent?

I would be more than happy to fork the repo, implement the necessary changes, and PR them back. I would greatly appreciate if you guys can provide some initial guidance to get me started. (Just found the repo and am looking through it now).

Thanks,
Clay Kosonocky

@michaelosthege
Copy link
Member

Hi Clay!
Yes, extending robotools towards Tecan Fluent flavored worklists is definitely within the scope!*
As far as I know the Fluent supports the same Gemini Worklist (*.gwl) file format plus maybe some extra commands that are not supported by the Freedom EVOware.
So the first step could actually be to write a simple worklist and see if the Fluent likes it**!

*That's one reason why we chose the AGPLv3 license, by the way :)

**I implemented also DiTi handling, but this part is not heavily tested in practices, because we typically use fixed tips.

To extend the feature set of robotools.Worklist, I would propose the following:

  1. Creating a new submodule /robotools/fluent.py
  2. In there, do a from evotools import Worklist
  3. Then implement a class FluentWorklist(Worklist) that extends the Freedom EVOware Worklist command set with additional commands that are Fluent-exclusive

This should, of course, be accompanied by tests for the new implementations.

Side note: robotools.evotools which is currently a folder with one __init__.py should actually be just one evotools.py submodule.

Also cc @LarsHalle

best
Michael

@michaelosthege michaelosthege added the enhancement New feature or request label Jun 14, 2022
@kosonocky
Copy link
Contributor Author

Hey @michaelosthege, thanks for the quick response!

Great, those first steps sound good. My initial plan moving forwards will be to read through the code & documentation, test out some simple worklists, then get back to you with updates on how that goes.

Also some quick background: I spent the past year working with a Hamilton liquid handler, specifically controlling it w/ the PyHamilton package & building my own method compiler & GUI for casual users to operate the robot. I'm very familiar with general concepts involved with operating liquid handlers, but am new to the specifics of Tecans (as well as Tecan Fluents vs FreedomEVO).

What is your method for feeding the worklist to the Tecan? Do you manually select it while in the commercial software GUI, or are you using the API to start the runs via an external application / terminal? I came across a few pieces of information on MAPlinx SDK & API, and am wondering if those are worth pursuing.

Best,
Clay

@kosonocky kosonocky reopened this Jun 14, 2022
@michaelosthege
Copy link
Member

Sounds good!
We're typically writing the EVOware scripts (*.esc files) manually. There's a command "Worklist" which you can put in the script once to import a *.gwl file and once to execute that worklist.
So you don't need programmatic remote control of the liquid handler to use worklists/robotools.

If you're looking at more sophisticated setups where the liquid handler GUI software is no longer in charge, the EVOware has a "remote mode" through which one can programmatically turn it on, initialize, load a script from a file and execute that script.
I don't know how different this will be for the Fluent, but I'd expect that there exists something similar.
The MAPlinx thing seems to target other manufacturers building custom-branded all-in-one devices from Tecan OEM parts. As an academic researcher you're probably not the target audience.

@kosonocky
Copy link
Contributor Author

Testing for CLA agreement...

@michaelosthege
Copy link
Member

michaelosthege commented Jan 15, 2024

Looks like the GitHub action was triggered, but it didn't do anything.

The simplest workaround would be to open a PR.
Maybe do a small PR to add "or Tecan Fluent" into this sentence of the README? https://github.com/JuBiotech/robotools/blob/master/README.md?plain=1#L9

@michaelosthege
Copy link
Member

There's now FluentWorklist().transfer, so I'm going to close this. More Fluent-specific methods will follow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants