Bioinformatic Algorithms, UNIL 2026

Instructors: Prof. Christophe Dessimoz (CD) & Prof. David Gfeller (DG)
Assistants: Dr. Stefano Pascarelli, Dana Moreno
Location: Amphipole 336 (except May 26: Amphipole 202)

19h lecture, 20h practical, 20h personal work (4 ECTS for MSc / 3 ECTS for PhD)

The course aims at improving the student’s programming skills by gaining a deep understanding of some of the key algorithms in bioinformatics, with a special emphasis on sequence and graph algorithms. Students will learn widely applicable concepts, such as asymptotic time complexity, binary search, suffix trees, dynamic programming, hashing, hidden Markov models, and neuronal networks.

Practicals and home assignments are essential parts of the course. The language of the course is Python, though the concepts covered in the course are applicable to all computer languages.

Assessment: 20 min oral examination

Prerequisites: The course assumes familiarity with basic programming concepts (variable and function declaration, arrays, for-loops, conditional statements, etc.). Algorithms are introduced from a practical angle so the mathematical formalism is kept at a minimum.

Moodle page (for Q&A, slides, worksheets, etc): https://moodle.unil.ch/course/view.php?id=30087

 
Date

Lecture
Amphipole 336

Lecturer

Practical
Amphipole 336

24 Feb 2026 9.00-12.00

Introduction. How computers work; fundamentals of algorithm and complexity theory.

CD

Worksheet 1: Setting up environment, basic algorithm.

3 Mar 2026 9.00-12.00

Exact sequence matching I: read mapping, indexing

CD

Answer questions, discuss solutions.

10 Mar 2026 9.00-12.00

Exact sequence matching II: hashing, edit distances.

CD

Worksheet 2: Binary search and exact string matching; genomic signatures

17 Mar 2026 9.00-12.00

Approximate sequence matching: dynamic programming

CD

Answer questions, discuss solutions.

24 Mar 2026 9.00-12.00

Alignment significance: permutation test, parameter estimation

CD

Worksheet 3: Sequence alignment with dynamic programming

31 Mar 2026 9.00-12.00

Networks I: Introduction to different types of networks. Graph representation and data structure. Graph and tree traversals.

DG

Answer questions, discuss solutions.

Easter break

14 Apr 2026 9.00-12.00

Networks II: Clustering.

DG

Worksheet 4: Networks, Dijkstra's algorithm, viewing networks with cytoscape

21 Apr 2026 9.00-12.00

Networks III: Neural networks.

DG

Answer questions, discuss solutions

28 Apr 2026 9.00-12.00

Network IV: Convolutional neural networks.

DG

Worksheet 5: Neuronal network to predict transmembrane residues in a protein

05 May 2026 9.00-12.00

Cross-validation, avoiding overfitting

DG

Answer questions, discuss solutions

12 May 2026 9.00-12.00

Hidden Markov models. Forward-backward algorithm.

CD

Worksheet 6: Hidden Markov Models

19 May 2026 9.00-12.00

Fast approximations: k-mer, minimizers and min-hashing

CD

Answer questions, discuss solutions

26 May 2026 9.00-12.00

Conclusion. Review key ideas, next steps, feedback.

CD

No practical