Xi'an Jiaotong University

Instructor

Yufeng Wu

ywu@engr.uconn.edu

Teaching assistant

Jiayin Wang

wangjiayin@mail.xjtu.edu.cn

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 an 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

assignments.

Programming assignment. Each 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.