Dynamic programming and how it applies to basic string comparison algorithms
Sequence alignment, including how to generalize dynamic programming algorithms to handle different cases
Hidden markov models
How to find the most likely sequence of events given a collection of outcomes and limited information
Machine learning in sequence alignment
If you look at two genes that serve the same purpose in two different species, how can you rigorously compare these genes in order to see how they have evolved away from each other?
In the first part of the course, part of the Algorithms and Data Structures MicroMasters program, we will see how the dynamic programming paradigm can be used to solve a variety of different questions related to pairwise and multiple string comparison in order to discover evolutionary histories.
In the second part of the course, we will see how a powerful machine learning approach, using a Hidden Markov Model, can dig deeper and find relationships between less obviously related sequences, such as areas of the rapidly mutating HIV genome.
Week 1: Pairwise Sequence Alignment
A review of dynamic programming, and applying it to basic string comparison algorithms.
Week 2: Advanced Sequence Alignment
Learn how to generalize your dynamic programming algorithm to handle a number of different cases, including the alignment of multiple strings.
Week 3: Introduction to Hidden Markov Models
Learn what a Hidden Markov model is and how to find the most likely sequence of events given a collection of outcomes and limited information.
Week 4: Machine Learning in Sequence Alignment
Formulate sequence alignment using a Hidden Markov model, and then generalize this model in order to obtain even more accurate alignments.
Basic knowledge of:
at least one programming language: loops, arrays, stacks, recursion.
mathematics: proof by induction, proof by contradiction.