I have been developing software in Python for over 6 years now. I started first to automate the running of complex programs written in Fortran to simulate industrial processes. Later, out of frustration with LabView in the lab.
I’ve built many command-line tools to perform experiments, lowering the amount of involvement from the user. For example, I was acquiring spectra of particles over time. The routine was quite simple: refocus on a particle, trigger a spectrometer, move to another particle, repeat.
I have also built software for acquiring Cameras, monitoring optical tweezers and controlling devices through the network. Everything in Python.
My biggest struggle was with the lack of documentation of different manufacturers. For example, Hamamatsu camera’s have a common API called DCAM, but its documentation is nowhere to be found. The communication with the camera relies on a DLL that has some strange behavior. For instance, setting regions of interest is limited to even pixels, but it is not documented anywhere.
Anyways, I was wondering how do you use Python in your lab. Have you ever built software for controlling an experiment? With what kind of issues do you deal regularly?