Dynamic Programming: Applications In Machine Learning and Genomics

Learn how dynamic programming and Hidden Markov Models can be used to compare genetic strings and uncover evolution.
Dynamic Programming: Applications In Machine Learning and Genomics

There is one session available:

After a course session ends, it will be archived.
8,529 already enrolled!
Estimated 4 weeks
8–10 hours per week
Progress at your own speed

About this course

Skip About this course

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.

At a glance

  • Institution: UCSanDiegoX
  • Subject: Computer Science
  • Level: Intermediate
  • Prerequisites:

    Basic knowledge of:

    • at least one programming language: loops, arrays, stacks, recursion.
    • mathematics: proof by induction, proof by contradiction.

What you'll learn

Skip What you'll learn
  • 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

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.

Learner testimonials

Skip Learner testimonials
“This is an extraordinary course. It requires commitment and a fair amount of time, but this is what implies the approach of guiding students step-by-step to implement themselves the algorithms. In my opinion, this is the best way to fully understand how algorithms work.”
-- Previous Student

About the instructors

Who can take this course?

Unfortunately, learners from one or more of the following countries or regions will not be able to register for this course: Iran, Cuba and the Crimea region of Ukraine. While edX has sought licenses from the U.S. Office of Foreign Assets Control (OFAC) to offer our courses to learners in these countries and regions, the licenses we have received are not broad enough to allow us to offer this course in all locations. edX truly regrets that U.S. sanctions prevent us from offering all of our courses to everyone, no matter where they live.