Introduction to Bioinformatics Algorithms -
Xi'an Jiaotong University
This course covers important algorithmic results in bioinformatics
and computational biology. I will focus on the following topics:
exact string matching, sequence alignment, hidden Markov models
and sequencing data analysis.
This course is lecture-based. Homeworks will be assigned on major
subjects covered in the class. There will be a final exam.
We will also assign programming tasks to let students practice
what are covered in class.
In particular, the planned subjects are:
1) Exact string matching, including new developments in Suffix Trees
and Arrays, and other state of the art subjects.
We will review the basics of suffix trees and arrays, and
then look at some recent work that use suffix arrays and
their use in bioinformatics.
Time: 6 hours
2) Hidden markov models: concepts and algorithms.
Time: 4 hours.
3) Sequence analysis. This includes pairwise alignment and how to
alignment in a space-efficient
way. Multiple sequence
Time: 4 hours
4) Selected topics in high throughput sequencing data analysis.
We plan to cover the computational problem of genome assembly
from short reads.
Time: 2 hours
Prerequisites. As for background,
essentially no biology is assumed.
The most relevant background is a course on algorithms, but a smart,
mature student who has had no algorithm background, should be able to
follow the course.
No textbook required.
We will provide (or post) lecture notes and reading materials.
The following book is useful to this course.
Algorithms on Strings, Trees and Sequences: Computer
Science and Computational Biology
by Dan Gusfield, Cambridge Univ. press, 1997. This is an
excellent introduction on string algorithms
and bioinformatics for people from computer science background.
We will assign both written homework. There will be two or three
Programming assignment. Each student will need to write a
program to implement
one algorithm discussed in class. You can choose any programming
The assignment is due at the last day of class. So we suggest you to
pick an algorithm
covered earlier in the lectures.
There will be a final exam at the end of the course. The current plan
is that the final exam
will be given during the last lecture of the course (6/9).
Grading. The grade will be
by based on homework, programming assignment
and the final exam.