We often cross paths with scientists who aren't sure whether or not to use a custom programming application to automate data acquisition from experiments. Here are some key considerations for picking the right tool.
Questions to ask first
Before evaluating tools for data acquisition, keep these questions in mind during your search:
- What kind of data do I want?
- Will I want to access data remotely?
- Do I have dedicated resources for this tool?
Advantages of custom programming languages for data acquisition
A few of the commonly used custom programming applications found in the lab are LabVIEW from National Instruments (NI), Matlab from Mathworks, and Python. The typical argument for implementing these tools is the flexibility and customization they afford.
If you decide to go this route, you get to build your data acquisition tool from scratch. That means you have the ability to design it to whatever configuration you can dream up. You can create unique data file types for specific analytical software tools, or program for inline analysis of data. If you think creating a custom user interface adds value, you can do that as well.
Disadvantages of custom programming languages for data acquisition
The flexibility and customizability you get with programming languages can be a double-edged sword, and there are hidden costs associated. Be mindful of the resources at your disposal as you consider some of the challenges below.
Difficulty of coding:
There are common misconceptions about the ease of coding a custom program. Unfortunately that means many labs end up writing code that is simply unsupportable. And because the program you developed isn't standardized, your team is at the mercy of whomever wrote the code. That person could very well leave the company, and their tacit knowledge goes out the door with them.
Without hiring an expert, it's also common that labs end up writing bad code for custom programs which is famously known as "Spaghetti code".
Spaghetti code is a pejorative phrase for source code that has a complex and tangled control structure, especially one using many GOTO statements, exceptions, threads, or other "unstructured" branching constructs. It is named such because program flow is conceptually like a bowl of spaghetti, i.e. twisted and tangled.
Spaghetti code in LabVIEW
Spaghetti code can also be a result of having too many cooks in the kitchen. When anyone can add features to your program, the likelihood of bad or incomplete code increases. The code becomes almost impossible to debug and very hard to modify and scale as your needs change and grow.
There are associated costs you will need to account for outside of the custom application itself.
For each instance of the application, you will need a dedicated, on-site workstation.
When you reach a certain level of complexity, you will need to hire an expert. They are hard to find, difficult to evaluate, and expensive ($200/hr).
It's also common for hardware or operating system upgrades to crash the system. This leads to loss of time, but potentially could take down a whole project.
Next gen solutions for data acquisition
There's a new option for data acquisition that is quickly building traction in labs. This new breed of data acquisition tool is cloud-based and "out of the box" - which is to say, you don't have to build it. TetraScience applies the benefits of modern SaaS (software as a service) solutions to the long-neglected frustrations of custom programming languages for data acquisition.
For most labs, a custom program is overkill for their data acquisition needs. Until now, they just haven't had the option of using a standardized solution built specifically for life sciences. TetraScience collects and presents your data so you can spend your time analyzing it, drawing conclusions, and acting on it - not wasting time trying to collect it or troubleshoot code. Instead of a raw data dump into excel, you also have the option to export directly to your ELN.
Other advantages to cloud solutions:
You get remote access to your data, so there's no need to come into the lab just to check on an experiment.
Cloud solutions aren't PC or OS dependent, so you have the flexibility to use any device (or number of devices) to view and access your dashboard.
There's no down time and you don't lose data if there's a power hiccup at your facility.
SaaS solutions are scalable to different needs whether you downsize, change direction, or grow exponentially.
Technical support is included.
Ultimately the decision is up to you. Does the customization of a programming language outweigh the challenges it presents? Could a modern cloud solution meet your data needs while freeing up time and resources?
Have thoughts on this topic? Leave them below!