Some Open Source Projects Worth Checking

Get inspiration from some of the best resources available online

In a previous post we discussed if it was worth moving projects to the open source community and we concluded that both institutions and individuals can benefit from a growing community of developers. Therefore we believe in the importance of showing some of the available projects to give users an idea of what can be achieved. Not all projects are equally mature, but they are all a great starting point for further development.

Storm Control - Zhuang Lab

Storm Control is a platform for controlling a microscope to acquire Storm Images. It is built on Python and Qt5, the core technologies we use for the developments of Uetke. We suggest you to look into this project, even if you do not work with super-resolution in your lab, because it provides a lot of drivers for common devices such as cameras, stages, etc. The software section of Zhuang's lab website provides a lot of tools not only for acquiring data but also for analyzing it. They even provide some files for 3D printing parts to improve commercial microscopes. It is, overall, a very good example on how a lab can move to open source.

Instrumental - Mabuchi Lab

Instrumental is a package aimed at simplifying the automatization of experiments. According to their own description:

Instrumental’s goal is to make common tasks simple to perform, while still providing the flexibility to perform complex tasks with relative ease.

The repository is a great place to look for drivers and understand how different things can be achieved. For example, they have built a low-level network driver that allows triggering actions on devices remotely. They also have developed drivers and good examples on which base further development.

Odemis - Delmic

Odemis stands for Open Delmic Microscopy Software. Delmic is a company that develops hardware for correlative electron and optical microscopy and has made the software freely available. It is a very good example that shows how professionally developed software looks like. It is very well designed and has a lot of functionalities hard to find in other programs. For example, the backend and the frontend are detached, therefore it is very flexible for implementing extensions. Odemis is also a very good example of how a company can distribute its software openly, while maintaining its focus on their core business: hardware development.

Qudi - University of Ulm

Qudi started small and grew over the years to a complete package for controlling devices. Their own description says:

Qudi is a suite of tools for operating multi-instrument and multi-computer laboratory experiments. Originally built around a confocal fluorescence microscope experiments, it has grown to be a generally applicable framework for controlling experiments.

The code is fairly complex to follow, but they have many GUI resources to kickstart your own development; both compiled python and designer files are available.

Lantz

We have discussed about Lantz in our previous post How to Write a Driver with Lantz. Lantz is a development similar to Instrumental, also brought to life by researchers. Its main difference is that it is a collaborative effort and therefore it is not directly associated with a single university. On the downside, the development has been stalled for the last several months.

One of the main advantages of Lantz is that it documents very clearly how to write your own drivers and the Features and Actions are incredibly handy when developing. If the efforts of Lantz and Instrumental were combined, the project would take a very interesting turn.

Micro Manager

In the microscopy world, you can never forget about Micro Manager. It is a complete microscopy package, available online, and it is open source. The documentation is very complete, including video tutorials. Micro Manager, however, is very complex and therefore it is most suitable for plug-and-play. It is the kind of software that you install and it either works or it doesn't. Expanding it or learning from its code requires a lot of expertise in this particular program.

Other Software

These are a mix of resources that may be worth checking, depending on your applications.

  • OpenCV: supports a lot of algorithms related to Computer Vision and Machine Learning and it is expanding day-by-day.
  • AndorSDK2: Object-oriented, high-level interface for Andor cameras.
  • PyQtGraph: Scientific Graphics and GUI Library for Python.
  • Smart Scan: control confocal microscopes and automate repetitive tasks.
  • PyMeasure: makes scientific measurements easy to set up and run.
  • PyQLab: A python library for instrument control and superconducting QIP experiments.

Header photo by Samuel Zeller on Unsplash

Support us
If you like the content of this website, consider buying a copy of the book Python For The Lab

Other interesting articles for you

Should Labs Move to Open Source?

We can agree that researchers exchange published papers as a currency, and its value is the number of citations each has. Accessing conferences, faculty positions and grants is to a great extent achieved on the basis of researchers' success history. However, publishing software is not counted towards a scientist's productivity …

read more

Uetke's website is on Github

At Uetke we seek to build simple, clear, modular and extensible codes that can be easily maintained and repurposed by developers other than their creators. Therefore we decided to make all the under-the-hood code freely available for others to read, learn, and improve. The code is hosted on Github in …

read more

Is it worth for companies to switch to Python?

It is a very fair question that has popped up several times while explaining what Uetke is trying to achieve. Is it worth switching to Python when most instrumentation is done with LabView? To address this question, there are several things to consider, such as who is actually building the …

read more

Agile Development for Science

Managing research projects and teams can benefit from the methodologies and processes developed in other fields of management. In recent decades, software development became a major industry that needed to establish its own set of rules and procedures. People working in the software industry and young scientists such as Ph …

read more

The MVC Pattern for Lab Projects

When you develop applications for the lab, probably you want to be able to re-use parts of the code and allow other scientists to build on your work. This problem has been discussed at length around other applications, such as building web services. And in a certain way, developing a …

read more
Subscribe

Get all the information directly to your inbox

Get relevant information, unsubscribe at any time.

© Copyright 2018 Uetke | Contact Us | RSS feed | Privacy Policy | Cookies