- Research: Genomics in the Bioinformatics Group at the Max-Planck-Institute for Evolutionary Biology
- Teaching: Bioinformatics at the Institute of Neuro- and Biocomputing of Lübeck University
When using a word-processor, it is often necessary to search for a word or a phrase in the text we have written so far. Such a search usually takes time proportional to the length of the text. This makes intuitive sense. If we wanted to find all occurrences of, say, “Voldemort” in J. K. Rowling’s Harry Potter, we’d need to scan all seven volumes.
Or would we? We might be reading an annotated edition that includes an exhaustive index. In that case it would only take time proportional to the length of “Voldemort” to find all of his appearances in Harry Potter.
A suffix tree is a data structure for finding patterns, such as
“Voldemort”, in a text, such as Harry Potter, in time proportional
to the length of the pattern. For example, we can convert the text
madamimadam to its suffix tree here.
If you now read the string adam starting at the root, you end on a
branch with leaves labeled 8 and 2. These are the starting positions
of adam in madamimadam. Try it, if you like.
In the past, we have used suffix trees to estimate evolutionary distances, detect recombination, and find genetic markers.
Currently, we are particularly interested in finding the genome sequences necessary for finding genetic markers. This work is based on the distribution of genomes on the taxonomy of sequenced life, which we visualize with our web browser Vitax.
Together with Lars Bertram and Beatriz Vieira Mourato I teach a course Molecular Bioinformatics on methods in genomics at Lübeck University. The course consists of lectures and practicals. The practicals are centered on sequence analysis on the Unix command line, as detailed in the text book /Biofinformatics for Evolutionary Biologists/.