The Exelixis Lab

Enabling Research in Evolutionary Biology


Bioinformatics courses are taught by Alexis in Karlsruhe with the occasional help of his PostDocs and PhD students from the Heidelberg Institute for Theoretical Studies. See here for contact details.

Course Evaluation Results (Learning Quality Indices)

  • Winter 2012/13: 100 out of 100. PDF
  • Summer 2014: 97.9 out of 100. PDF
  • Winter 2014/15: 100 out of 100. PDF
  • Winter 2015/2016: 100 out of 100. PDF
  • Winter 2016/2017: 100 out of 100. PDF
  • Winter 2017/2018: 100 out of 100. PDF
  • Winter 2018/2019: 100 out of 100. PDF
  • Winter 2019/2020: 100 out of 100. PDF
  • Winter 2020/2021: 100 out of 100. PDF

Practical Evaluation results (Learning Quality Indices)

  • Summer 2015: 100 out of 100. PDF
  • Summer 2017: 100 out of 100. PDF

Seminar Evaluation results (Learning Quality Indices)

  • Summer 2018: 100 out of 100. PDF

Teaching Awards

  • Alexis and Michael Hamann (PhD student from the chair of Prof. Wagner at KIT) received a certificate for teaching excellence from the dean of the CS faculty at the Karlsruhe Institute of Technology for their programming practical "Hands-on Bioinformatics Practical" tought in summer 2017 based on the practical evaluation by the students. This practical also resulted in a peer-reviewed publication in the high quality journal Bioinformatics.
  • The three former students of the programming practical (Michael Hoff, Stefan Orf and Benedikt Riehm) will receive a prize from KIT on October 14, 2016, for research work conducted by students, since they published a peer-reviewed paper presenting the results of the practical.
  • Alexis and Tomas received a certificate for teaching excellence from the dean of the CS faculty at the Karlsruhe Institute of Technology for their programming practical "Hands-on Bioinformatics Practical" tought in summer 2015 based on the practical evaluation by the students.
  • Alexey, Alexis, Andre, Kassian, Mark Holder, and Tomas received a certificate for teaching excellence from the dean of the CS faculty at the Karlsruhe Institute of Technology for the course "Introduction to Bioinformatics for Computer Scientists" tought in winter 2014/15 based on the course evaluation by the students.

General Information

Course Slides

Please send Alexis an email to be added to the course mailing list and thereby obtain access to the course slides.

Lecture (Winter)

Knowledge Quiz Answers:

Reading List and on-line material

  • General books:
    • Carlos Setubal, Joao Meidanis: "Introduction to Computational Molecular Biology"
    • Fritz Wrba, Helmut Dolzing, Christine Mannhalter: "Genetik vesrtehen"
    • Volker Knoop, Kai Müller: "Gene und Stammbäume"
    • Andrzej Polanski, Marek Kimmel: "Bioinformatics"
    • Michael S. Waterman: "Introduction to Computational Biology"
  • Book on phylogenetics: Ziheng Yang: "Computational Molecular Evolution". This book is available as e-book at the KIT library. To access it via this link you will need to have an IP from the KIT network.
  • New: a very nice on-line course on genetics which my lab members (mostly CS people) have found very useful
  • Debunking the 100X GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU
  • a link to a tutorial and examples for gcc compiler intrinsics
  • a nice video lecture about 3rd generation (also called next-next generation sequencing)
  • A very nice and readable paper on assessing the quality/benchmarking of multiple sequence alignment methods
  • Two public outreach texts about evolution and what we need phylogenetic trees for
  • Link to the denormalized floating point number micro-benchmark


A 20 minute oral exam at the end of the semester, dates will be scheduled via doodle.

Course Mailing List

Write an email to Alexis such that he can add you to the course mailing list, very important!

Course beers

We will try to go for course beers with the entire course, the pandemic permitting. All drinks will be on Alexis.

Seminar: Bioinformatics (Summer)

You will need to select papers to present, give a presentation and write a report.

This main seminar allows students to understand and present the contents of current papers in Bioinformatics such as published for instance in the journals Bioinformatics, BMC Bioinformatics, Journal of Computational Biology etc. or at conferences such as ISMB or RECOMB.

We will provide a list of interesting papers but students can also propose papers they are interested in. Students may also chose to cover broader topics of more general interest such as multiple sequence alignment, Bayesian phylogenetic inference, read assembly etc.

Each student will be assigned an Exelixis lab member for help with understanding the article and preparing the slides as well as the report.

Students should give a 35 minute presentation on their topic of choice and write a report (Seminararbeit) comprising 8 pages!

Below you will find some general material for the Bioinformatics seminar:

Latex template for reports

We are going to use the Springer LNCS (Lecture Notes in Computer Science) Latex template available here.

Please make sure to download file:!

Here are some examples from well-written reports of previous years:

Here are some examples of nice slides from previous years:

Practical (Summer)

In the practical we will try to implement something "useful" as open source tool in C or C++.

Some notes about C programming

Here are some old slides by Alexis covering some aspects of C programming:

Code quality assessment

Make sure to use all tools/mechanisms at your disposal to produce high quality code, for instance:

  • Use as many assertions as you can.
  • Use the valgrind tool to detect and remove memory leaks, segmentation faults, etc.
  • Enable all compiler warning flags you can think of and fix all warnings! In my lab we typically activate the following flags:
    -Wall  -Wunused-parameter -Wredundant-decls  -Wreturn-type  -Wswitch-default -Wunused-value -Wimplicit  -Wimplicit-function-declaration  -Wimplicit-int -Wimport  -Wunused  -Wunused-function  -Wunused-label -Wno-int-to-pointer-cast -Wbad-function-cast  -Wmissing-declarations -Wmissing-prototypes  -Wnested-externs  -Wold-style-definition -Wstrict-prototypes -Wpointer-sign -Wextra -Wredundant-decls -Wunused -Wunused-function -Wunused-parameter -Wunused-value  -Wunused-variable -Wformat  -Wformat-nonliteral -Wparentheses -Wsequence-point -Wuninitialized -Wundef -Wbad-function-cast
  • use the clang compiler instead of gcc it generated and detects many more warnings.
  • Keep in mind that the argument for malloc is size_t and not an integer!
  • Play with the compiler optimization flags to see which ones generate the fastest code!
  • Use a version control management system like git for code development, in my lab we typically use github


The practical will be graded.

winter 2021/22 course

The lectures will either take place in the classrom or on-line. The exact schedule (i.e., classroom versus on-line lectures) will be announced via email but is also available and will be updated on this page here further below.

All lectures will also be available as pre-recorded videos on youtube.

Please register properly for the course via the KIT campus system, but also send an Email to to make sure to be added to the course mailing list.

When a lecture takes place on-line you are expected to watch the respective lecture on youtube before Thursday. During the lecture slot on Thursday and starting at 12:30, we will then hold a Question and Answer session via Zoom (instead of MS Teams) as Zoom has shown to be more stable. The Zoom meeting link is available in the "Detailinformationen" box of the class under "Organisatorisches" on the KIT campus system.

Lectures and slides will be provided beforehand (in general one week before the actual lecture slot), that is, before the actual course hours from 12:00-13:30 on Thursdays.

If the lecture does not take place in the class room, we will meet via Zoom at 12:30 to discuss the contents of the last lecture together for about 30 minutes. Please turn your video on to yield this more interactive. The last lecture (course wrap up and exam preparation) will be LIVE either in the class room or via Zoom.

The course material including links to the video lectures on youtube is available here.

Lecture plan, subject to change

  • Lecture 1 (Alexis CLASSROOM): Introduction Link to knowledge quiz
  • Lecture 2 (Alexis CLASSROOM): Basic Molecular Biology
  • Lecture 3 (Lukas CLASSROOM): Pair-wise Sequence Alignment
  • Lecture 4 (Alexey CLASSROOM): BLAST & Genome Assembly
  • Lecture 5 (Alexis CLASSROOM): Multiple Sequence Alignment
  • Lecture 6 (Alexis ON-LINE): Introduction to Phylogenetics
  • Lecture 7 (Alexis ON-LINE): Phylogenetic Search Algorithms
  • Lecture 8 (Alexis ON-LINE): Markov Chains
  • Lecture 9 (Alexis ON-LINE): Statistical Models of Evolution I
  • Lecture 10 (Alexis ON-LINE): Statistical Models of Evolution II
  • Lecture 11 (Benoit TBA): Discrete Operations on Trees
  • Lecture 12 (Alexis TBA): Bayesian Phylogenetic Inference
  • Lecture 13 (Alexis TBA): Advanced Bayesian Inference
  • Lecture 14 (Alexis TBA): Population Genetics
  • Lecture 15 (Alexis CLASSROOM or LIVE zoom conference): Course wrap-up and exam preparation