BioSB course: Machine Learning for Bioinformatics and Systems Biology

2021 edition

View the Project on GitHub pdmoerland/BioSB-MachineLearning-2021

Machine Learning for Bioinformatics & Systems Biology

A yearly course, part of the BioSB Research School


Course coordinator:

For more information about the course programme, please contact Perry Moerland; for more information about registration or logistics, please contact Femke Francissen.

Learning objectives

After having followed this course, the student has a good understanding of a wide range of machine learning techniques and is able to recognize what method is most applicable to data analysis problems (s)he encounters in bioinformatics and systems biology applications.

Target audience

The course is aimed at PhD students with a background in bioinformatics, systems biology, computer science or a related field, and life sciences. Participants from the private sector are also welcome. A working knowledge of basic statistics and linear algebra is assumed. Preparation material on statistics and linear algebra will be distributed before the course, to be studied by students missing the required background.


Modern biology is a data-rich science, driven by our ability to measure the detailed molecular characteristics of cells, organs, and individuals at many different levels. Interpretation of these large-scale biological data requires the detection of statistical dependencies and patterns in order to establish useful models of complex biological systems. Techniques from machine learning are key in this endeavour. Typical examples are the visualization of single-cell RNA-seq data using dimensionality reduction methods, base calling for nanopore sequencing data using hidden Markov models and (recurrent) neural networks, and classification of high-throughput microscopy image data using convolutional neural networks.

In this one-week course, the foundations of machine learning will be laid out and commonly used methods for unsupervised (clustering, dimensionality reduction, visualization) and supervised (mainly classification) learning will be explained in detail. Methods will be illustrated using recent examples from the fields of systems biology and bioinformatics. Methods discussed in the morning lectures will be put into practice during the afternoon computer lab sessions. The course has to be completed afterwards with a 5-10 page report describing the analysis of a biological dataset using some of the methods taught in the course.


You can register for this course by filling out the BioSB enrolment form. The maximum number of participants is 25, so register soon to be sure of a course seat! Update: we reached the maximum number of participants for the 2021 edition. Registration is closed. If you would like to be put on the reserve list, please send an email to Femke Francissen. If you are interested in the 2022 edition of the course please fill out the pre-registration form.

The course fee includes all course material. Lecture slides, a computer lab manual and software required for the computer labs (MATLAB toolboxes) will be made available online.

Course material

All course materials are available below and include the handouts of the slides, a computer lab manual and the required data and Matlab toolboxes.

Have a look at the following documents before the start of the course:

To use the code and data, download the ZIP file, unpack everything in the same directory and run prstartup from the Matlab command prompt. If you do not have access to a Matlab campus license, install the 30-day free trial. When indicating toolboxes to install, you should at least select the Deep Learning toolbox and the Statistics and Machine Learning toolbox.


Participants requiring a certificate of successful completion (3 ECTS) should make a final assignment. The student will analyse a biological dataset (preferably one from his/her own practice) using the tools provided in the course, and write a small report (5-10 pages) on the results. If the student has no dataset available, one will be provided. The report will have to be mailed to Perry Moerland no later than three weeks after the course has finished (November 5, 2021). We will strictly adhere to this deadline; if you require extension, you should contact us well in advance. The proposal will be graded "fail" or "pass", with one possible resubmission. Those who choose not to make the final assignment will receive a certificate of participation (1.5 ECTS).


The course will run in the week of October 11-15 2021.

Each course day will have the following schedule:

Note that the course material is still going to change before and during ;-) the course week.

Monday (October 11) - Introduction
Lecturer Marcel Reinders
Subjects Introduction to machine learning: measurements, features, classification. Supervised vs. unsupervised learning, relation to regression. Bayesian framework: risk, cost; evaluation: ROCs, cross-validation. Density estimation: histograms, nearest neighbour, Parzen, Gaussian Bayesian classification.

Tuesday (October 12) - Classifiers
Lecturer Perry Moerland
Subjects Parametric classifiers: (D)LDA, (D)QDA. Nonparametric classifiers: k-NN, Parzen. Discriminant analysis: LDA, logistic regression. Decision trees and random forests.

Wednesday (October 13) - Feature selection and extraction
Lecturer Lodewyk Wessels
Subjects Feature selection: criteria, search algorithms (forward, backward, branch & bound). Sparse classifiers: Ridge, LASSO. Feature extraction: PCA, Fisher. Embeddings: MDS.

Thursday (October 14) - Clustering and HMMs
Lecturer Perry Moerland
Subjects Hierarchical clustering. Agglomerative clustering. Model-based clustering: mixtures-of-Gaussians, Expectation-Maximization. Hidden Markov models.

Friday (October 15) - Selected advanced topics
Lecturer Marcel Reinders
Subjects Artificial neural networks. Support vector machines. Classifier ensembles. Complexity and regularisation. Deep learning.


Additional tools (not required for the course, but perhaps interesting):

Some good material for further reading: