jgruselius / tadm-plot

Python program to visualize TADM data generated by Hamilton's liquid handling robots

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TADM plot

This is a Python program I wrote to visualize TADM data generated by Hamilton's liquid handling robots.

TADM (Total Aspiration and Dispense Monitoring) is a feature of Hamilton's robots where the pressure signal of the pipetting channel is recorded during aspiration and dispensation. This allows one to detect undesired deviations in the pipetting such as air bubbles, clogging etc. both in real time and after the fact depending on the use mode.

This simple program can parse the database files that are saved after a run, connect it to the defined liquid classes and plot the pressure data within. Similar to what you can do in the Hamilton Liquid Editor program, but in a more portable manner that doesn't require you to install the Venus suite. What you do need though is an ODBC driver to read the Microsoft Access database format:

[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/odbc/libmdbodbc.so
Setup =
FileUsage =
CPTimeout =
CPReuse =

You also need to supply the liquid class definitions of those used in the recorded data: this is usually the ML_STARLiquids.mdb of the system that generated the TADM data. Simply copy the file HAMILTON\Config\ML_STARLiquids.mdb to the same folder as the main.py script.

There are versions with either command-line (CLI) or GUI available in different branches:

  • master: CLI
  • gui: GUI (Tkinter)
  • wxgui: alternative GUI (wxPython). Tkinter looks crap for me on Linux, this one is better but requires additional dependencies.
  • polars: alternative CLI using Polars. This is slightly faster and more memory efficient but probably not noticable unless data set is huge.

To summarize:

  1. Install Access DB driver (see above).
  2. Install dependencies: pip install requirements.txt.
  3. Copy ML_STARLiquids.mdb to script folder.
  4. Run the program:
    • CLI version can be used interactively by: python main.py -i <mdb_file>, for other modes such as bulk export of plots see full usage below.
    • For the GUI versions run python main.py.
usage: main.py [-h] [-l X | -i | -a | -P] [-p PLOT | -o DIR] [-n] [-v] [-L DB] infile

Plot TADM data from a .mdb file.

positional arguments:
  infile                The TADM file to parse

options:
  -h, --help            show this help message and exit
  -l X, --liquid X      The liquid class name to plot
  -i, --interactive     Select the available liquid classes from a menu
  -a, --all             Save plots of all liquid classes
  -P, --par             Save all plots using multiprocessing
  -p PLOT, --plot PLOT  Save the plot (png) to this file (full path, will overwrite)
  -o DIR, --outdir DIR  Save the plots (png) to this directory (full path, will overwrite)
  -n, --noshow          Don't show the plot window
  -v, --verbose         Print more details about what's going on
  -L DB, --lcdb DB      Use some other liquid class definition database

Created by Joel Gruselius (github.com/jgruselius)

About

Python program to visualize TADM data generated by Hamilton's liquid handling robots


Languages

Language:Python 100.0%