String Algorithms
Course Number: 02-414
Provides an in-depth look at modern algorithms used to process string data, particularly those relevant to genomics. The course will cover the design and analysis of efficient algorithms for processing enormous amounts of collections of strings. Topics will include string search; inexact matching; string compression; string data structures such as suffix trees, suffix arrays, and searchable compressed indices; and the Borrows-Wheeler transform. Applications of these techniques in genomics will be presented, including genome assembly, transcript assembly, whole-genome alignment, gene expression quantification, read mapping, and search of large sequence databases.
Key Topics:
- string search
- inexact matching
- string compression
- string data structures such as suffix trees, suffix arrays, and searchable compressed indices
- the Burrows-Wheeler transform
- locality sensitive hashing
- de Brujin Graphs
Units: 12
Prerequisite(s): (15351 or 15650 or 02613 or 15210) and (15151 or 21127)
Learning Objectives
- Learn various algorithmic techniques and data structures for efficient processing of string data, including suffix trees,suffix arrays, Borrows-Wheeler transforms.
- Understand the why these algorithms and data structures work.
- Learn to apply and extend these algorithms and data
structures. - Learn about the practical application of these techniques,
especially in genomics - At the end of this class, you should be familiar with much of the state-of-the-art in algorithms for strings, have familiarity with their use in practice, and have experience applying them to new problems.
Assessment Structure:
- Homework assignments (35%)
- 2 Midterm exams (15% each)
- Final exam (25%)
- Class participation and quizzes (10%)
