7

Divide and conquer in alignment

instructor: Ross A. Lippert

http://www-math.mit.edu/~lippert/18.417/

Announcements:
  • read ch. 7


Computing the final score in O(n) space

Values on the previous column are all that are needed for the next

Final score is the max of the last column

What about reconstructing an optimal alignment?


Constructing the alignment

Any optimal path must go through one edge through the midpoint

The big idea:

graph cuts


Generalization: graph cuts

At the heart of this trick


Iterating

Total time: O(nm), Total space: O(n)


A "Block Alignment" grid

We divide the grid into blocks and only compute scores at the corners


Places where we compute scores


Solve the blocks, then knit the blocks together

If we solved the mini-alignments by DP we'd be back to O(nm).

Is there any advantage to solving the mini-alignments by DP?


Make a table of all possible mini-alignment blocks

If the block sizes are small enough, this is not too crazy an idea.

This is really nothing more than creating a product alphabet.

Another example of computation sharing


Allowing unrestricted entrance and exit


A more complicated lookup


What about more general alignment

After 23 years

Crochemore et al in 2003: A subquadratic sequence alignment algorithm for unrestricted scoring matrices.


Alignment mini-review

Global alignment

All these factors are nearly orthogonal (the last two might not be)

We've discussed each one in isolation

Great effort to code simultaneously (an opportunity for someone)