Bioimage Analysis in Python Course

This course contains materials for a week-long python for bioimage analysis course which we delivered in December 2019. The materials in the course should be self-explanatory so that students can work through the materials in their own time and at their own rate. Feel free to download the materials and work your way through the course; you can download the whole course from here.


The aim of this week-long course is to develop motivated students/staff toward becoming independent BioImage Analysts in a facility or research role. Students will be taught theory and algorithms relating to bioimage analysis using Python as a coding language.

Target Audience

Cell Biologists, Biophysicists, BioImage Analysts with some experience of basic microscopy image analysis. In addition, this course may be of interest to physical scientists looking to develop their knowledge of Python coding in the context of image analysis. This course is appropriate for researchers who are relatively proficient with computers but maybe not had the time or resources available to become programmers. Some prior experience of scripting or modifying scripts would be useful. We ask that all attendees complete a basic Python coding course before the course begins. Details of this will be sent to attendees which apply.

Learning Outcomes

This course will give candidates knowledge of image analysis theory and algorithms:

  • It will consolidate and extend their Python coding skills to cover topics relevant to bioimage analysis (see content below).
  • It will give them practise coding algorithms.
  • It will develop their confidence as independent BioImage Analysts, able to understand new algorithms and implement them.
  • Candidates will experience developing pipelines which start with raw data and result in publication quality figures and will be able to apply this process in the future.


Lectures will focus on Image Analysis theory and application. Topics to be covered include: Image Analysis and image processing, Python and Jupyter notebooks, Visualisation, Fiji to Python, Segmentation, Omero and Python, Image Registration, Colocalisation, Time-series analysis, Tracking, Machine Learning, Applied Machine Learning. The bulk of the practical work will focus on Python and how to code algorithms and handle data using Python. Fiji will be used as a tool to facilitate image analysis. Omero will be described and used for some interactive coding challenges. Research spotlight talks will demonstrate research of instructors/scientists using taught techniques in the wild.


  • Basic awareness of Fiji/ImageJ. You should be able to open images and do basic analysis, basic macro writing is advantageous.
  • Python introductory course
    • If you’ve not done much Python in the past, you should work your way through the pre-requisite course (approx. 12-15 hr); however, those comfortable in Python may choose to skips components they are confident about.

Organisers and Contributors (alphabetical)

Teaching Yourself (60 hours)

During the original course, many of the lectures were recorded and we have made these available (links available in the repository). In general, these materials should be easy to follow and work through on your own as many of the session use stand alone notebooks that should provide you with all the information needed to complete the course.

In order to aid working through the course, we hope to develop these on-line materials further in the future. We have also created a tag for - if you ask a question on and tag it #bapython then one of the contributors will try and answer your question as quickly as they can.

Installation instructions are available in the repository - any issues just ask.

In-Person Course (1 week)

We hope to run this course again in the future. If you’re interested in taking the course in-person, keep an eye on my coming my list of upcoming in-person courses.