The BiA-PoL blog


The blog of the Bio-image Analysis Technology Development group at the DFG Cluster of Excellence "Physics of Life", TU Dresden

The BiA-PoL blog

Most of us study and work at the Bio-image Analysis Technology Development group at the DFG Cluster of Excellence “Physics of Life” at the TU Dresden. We blog about image data science, knowledge exchange and research data management in the life sciences. The contents of this blog are licensed by the respective authors under CC-BY 4.0 license unless a different license is specified.

Mini-Sabbatical Experience at Bia-PoL Friederike Kessel, February 28th, 2022

This is a blog post about the personal experience of Rike, a post-doc who had just finished her PhD at the University Clinic in Dresden. She spent a two weeks training period at BiA-PoL working with image analysis.

Getting started with Python and Anaconda Johannes Müller, January 26th, 2022

This post will help you to get started with using Python. More specifically, it will help you set up Anaconda environments which can be used to control installed packages effectively.

GUIs: Creating graphical user interfaces with/for Python, Part IV Marcelo Zoccoler, Johannes Müller, December 15th, 2021

Last part of this series, this post will teach you how to turn your napari GUI/widget into a napari plugin and publish it on Pypi, so everyone can access it, install it and benefit from your contribution.

GUIs: Creating graphical user interfaces with/for Python, Part III Marcelo Zoccoler, November 29th, 2021

After learning how to create GUIs, one may want to integrate them into a pre-existing software. This third part will teach you a few ways design GUIs and embbed them into the popular python image viewer napari, either with the help of the Designer or straight from python functions using magicgui.

Automated package documentation with Sphinx Johannes Müller, Novemmber 24th, 2021

Good documentation can be a major obstacle towards getting a tool the visibility and usability it needs to make an impact. This blog entry shows how to autocreate documentation pages from function docstrings using Sphinx and how to have the result hosted on Github pages.

GUIs: Creating graphical user interfaces with/for Python, Part II Johannes Müller, October 18th, 2021

Sometimes, graphical user interfaces (GUIs) become too complex to be handled in pure code. This blog will show ways to create more complex graphical user interfaces using the Qt Designer, which allows to create and configure advanced GUIs in a visual interface and create Python-readable configuration files.

GUIs: Creating graphical user interfaces with/for Python, Part I Johannes Müller, October 18th, 2021

Graphical user interfaces - GUIs - can make using scripts and code much easier, as they allow to access functions in ways that are more intuitive than writing pure code. In this blog entry, you will be introduced on how to create basic GUIs for simple jobs in Python and how to connect elements of your GUI with Pyhton functions.

Jamovi: statistical analysis made visual and easy (powered with R) Marcelo Zoccoler, October 7th, 2021

Jamovi is a fairly new, free and open statistical software. It has a very friendly GUI that serves as a welcome door to anyone who wants to perform statistical tests on their data. It was developed with R, one of the best open programming languages for statistical computing and graphics. This blog post introduces you to this program by performing some statistical tests onto data extracted from a sample image.

Installing Microsoft buildtools on Windows Robert Haase, July 9th, 2021

Installing python libraries on Windows can be tricky. When using pip install on a Windows computer that is not regularily visited by a hardcore programmer, a typical error message is “error: Microsoft Visual C++ 14.0 or greater is required.”. This blog post shows how to deal with it and also hints how to avoid installing software that is not necessary.

Principal Feature Analysis Ryan Savill, July 8th, 2021

Principal feature analysis (PFA) is a method for selecting a subset of features that describe most of the variability in the dataset based on Y. Lu et al. published in ACM, 2007. This sounds oddly similar to principal component analysis (PCA), which is no coincidence as the methodologies are intertwined. PCA also does a similar thing but instead of choosing features that describe the variability to a certain threshold we choose a subset of principal components. …

Background Subtraction Ryan Savill, June 25th, 2021

We will now take a more in depth look at how background subtraction works by showing the top-hat filter and Difference of Gaussian (DoG) filter, which both can achieve background subtraction. In general, we want to use background subtraction if there is a sharp signal we want to isolate from moderate signal that is evenly distributed in the background. Some simple functions allow us to find the background image and subtract it from our original image, only leaving the signals we want to isolate.

Introduction to Image Analysis Basics in Python with Scikit Image Ryan Savill, June 25th, 2021

Now that we have a grasp of the basics of python it’s time to get started with some proper image analysis! For the purpose of trying out image analysis I have a picture of a tribolium embryo with stained nuclei. It previously was a 3D image but we are working with a maximum projection to keep it simple.

Using StarDist in napari with GPU-support in Windows Robert Haase, June 19th, 2021

3D segmentation using deep learning is computationally costly, it might be necessary from a practical perspective to do it on computers with powerful graphics processing units (GPUs). One option is to do this in the cloud via Google Colab and therefore it is recommended to take a look at ZeroCostDeepLearning4Microscopy. If you are greedy, as I am, and want to run everything on your own Windows computer, you can follow the instructions provided here.

Introduction to Using Python for Image Analysis Ryan Savill, June 17th, 2021

To get started using python the first step is the installation and there are several ways you can do it. To make it easier for your future self it’s a good idea to set up a virtual environment.

GPU-accelerated image processing using cupy and cucim Robert Haase, June 6th, 2021

Processing large images with python can take time. In order to accelerate processing, graphics processing units (GPUs) can be exploited, for example using NVidia CUDA. For processing images with CUDA, there are a couple of libraries available. We will take a closer look at cupy, which brings more general computing capabilities for CUDA compatible GPUs, and cucim, a library of image processing specific operations using CUDA. Both together can serve as GPU-surrogate for scikit-image.

Browsing the Open Microscopy Image Data Resource with Python Robert Haase, June 6th, 2021

For downloading images from the image data resource (IDR), you only need a link, e.g. for requesting the data in tif format. You can then use scikit-image to open the image. In this blog post we show how to browse the IDR programmatically in Python.

GPU-accelerated image processing in the cloud using Google Colab and clEsperanto Robert Haase, June 5th, 2021

Not every computer has a powerful graphics processing unit (GPU) and thus, it might make sense to use cloud computing, e.g. provided by Google. In this blog post I give a short intro into Google Colab and how to enable GPU-accelerated image processing in the cloud using clEsperanto

Why we blogRobert Haase, May 30th, 2021

Bio-image analysis is an emerging field. New technological developments in the middle ground between microscopy and data science emerge rapidly and new ways for processing image data change the way how we do research in biology and biophysics. As it is challenging to keep track of all the new developments…


We acknowledge the support by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence Physics of Life of TU Dresden.