Introduction to Bioinformatics Algorithms - Summer 2011
Xi'an Jiaotong University

Yufeng Wu

Teaching assistant
Jiayin Wang

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 perform
alignment in
a space-efficient way. Multiple sequence alignment.
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, mathematically
mature student who has had no algorithm background, should be able to follow the course.

Textbook: 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 a
n excellent introduction on string algorithms
and bioinformatics for people from computer science background.

Homework. We will assign both written homework. There will be two or three homework

Programming assignmentEach student will need to write a program to implement
one algorithm discussed in class. You can choose any programming language.
The assignment is due at the last day of class. So we suggest you to pick an algorithm
covered earlier in the lectures.

Exams. 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 assigned by based on homework, programming assignment
and the final exam.