Algorithms in Comparative Genomics (2V + 2Ü)

392189/92 Wittler Winter 2019/20 Th 09:00 - 10:15 (Ü), Th 10:15 - 11:45 (V) in U10-146


Many questions in molecular biology, phylogenetics, and biomedicine can be approached through comparison of two or more genomes. However, a global alignment of multiple large genomes is often infeasible or comes at great expense. It is more efficient to compare genomes on a higher level of abstraction, as given by the succession of single-copy genes or other kinds of unique genomic markers on the chromosomal sequences.

In this course, various models of higher level genome comparison are discussed. We start with the classical breakpoint distance, followed by other simple measures such as SC/J and DCJ. The reversal distance will be discussed, and a general genome rearrangement distance. We will also study methods for the reconstruction of ancestral genomes and gene clusters.

Algorithms discussed in this course are mostly combinatorial by nature, similar to the sequence analysis course.

This lecture can ideally be combined with the seminar "Applied Comparative Genomics" – a block seminar starting already on Sept. 16.

This course is taught in English.

Conditions for participation, prior knowledge

Required: Algorithms and Data Structures (or comparable)
Recommended: Sequence Analysis and Foundations of Genome Research


… is deposited in the Lernraum.


  1. Distance and Sorting
    • Breakpoint Distance
    • Double-Cut-and-Join
    • Signed Reversal Distance
    • Genome Halving
  2. Ancestral Reconstruction
    • DCJ Median
    • SCJ Small Parsimony I
    • SCJ Small Parsimony II
    • Ancestral/consistent gene clusters
  3. Gene Clusters
    • Common Intervals of Permutations
    • Common Intervals of Strings
    • Indeterminate Strings
  4. Pangenomics


Date Due Topic Exercises
17.10. 24.10. Introduction, Breakpoint distance Exercises 1
24.10. 31.10. Double Cut and Join Exercises 2
31.10. 07.11. Inversion Distance (via DCJ) Exercises 3
07.11. 14.11. Genome Halving (under DCJ) Exercises 4
14.11. 21.11. DCJ Median Exercises 5
21.11. 28.11. Small Parsimony under SCJ Exercises 6
28.11. 05.12. Small Parsimony under SCJ (cont'd) Exercises 7
05.12. 12.12. Consistency of gene clusters Exercises 8
12.12. 19.12. Generators for common intervals Exercises 9
19.12. 09.01. Generators, strong common intervals and PQ-trees Exercises 10
09.01. 16.01. Common intervals of strings Exercises 11
16.01. 23.01. Common intervals of indeterminate strings Exercises 12
23.01. 31.01. Pangenomics


Download PQTree.jar and run java -jar PQTree.jar -g n where n is the number of leaves for the initial PQ-Tree. Select the elements which shall appear consecutively by mouse click and Ctrl or shift in the list on the left side of the window. Then click Reduce to get the resulting tree. Use Reset to get the initial tree again. [Reference: J. Harris. A Graphical Java Implementation of PQ-Trees. (last visited 09/20/2006), April 2002. Carleton University. Debugged by Roland Wittler, Bielefeld University.]