When I started programming a couple of years back, I realized that it can be quite tricky to select the "best" programming language to start with. Similar questions arise when you think about software. What is the best software to do this job? Which software solutions are other laboratories using? Therefore, I decided that I will give a brief overview of the software and programming languages we are actively using in the laboratory. If you want, go and try them out, they are all free software.


I started to learn Python as I wanted to know more about image processing. However, Python is also a great tool to perform data analysis and to run robots. Python is commonly used in machine learning projects and is one of the fastest growing programming languages. For my group Python has turned out to be extremly versatile and made itself indispensable.


CellProfiler is our main workhorse for image analysis. You can find more information about CellProfiler here: CellProfiler
We had issues installing CellProfiler on Ubuntu 22.04 and wrote some instructions on how you can overcome them: Instructions

Jupyter Notebook

Jupyter Notebook allows you to easily combine normal text with code sections. We use this for all of our data analysis scripts as we can easily include sections which describe individual steps and background information. With this Jupyter Notebook has replaced the old school laboratory notebook for us.


Do you experience a build up of files with different text versions in your manuscript folder? Git is a good solution to keep this folder tidy, whilst being able to go back to various states of the manuscript drafting. You can easily back it up on a server as well. In fact, Git is more famous for enabling collaborative development of software tools. Individuals can introduce changes into a local version of the code and then combine it with others in an online repository. Most often this is GitHub. We are using GitLab for this purpose which is similar to GitHub but running on a server owned by the University. This webpage is maintained with Git as well, enabling testing of different versions and easy upload of multiple files to the server.