Starting from:

$30

CSCI3070-Minimum Edit DistanceSolved

Minimum       Edit       Distance       
       
Defini’on       of       Minimum       Edit       Distance       How       similar       are       two       strings?       
•    Spell       correc’on           •  Computa’onal       Biology       
•    The       user       typed       “graffe”           •  Align       two       sequences       of       nucleo’des       
    Which       is       closest?                  AGGCTATCACCTGACCTCCAGGCCGATGCCC 
•    graf           TAGCTATCACGACCGCGGTCGATTTGCCCGAC 
•    graB           •  Resul’ng       alignment:       
•    grail       
•    giraffe           -AGGCTATCACCTGACCTCCAGGCCGA--TGCCC--- 
TAG-CTATCAC--GACCGC--GGTCGATTTGCCCGAC 
Also       for       Machine       Transla’on,       Informa’on       Extrac’on,       Speech       Recogni’on       
Edit       Distance       
•    The       minimum       edit       distance       between       two       strings       
•    Is       the       minimum       number       of       edi’ng       opera’ons       
•    Inser’on       
•    Dele’on       
•    Subs’tu’on       
•    Needed       to       transform       one       into       the       other       
Minimum       Edit       Distance       
•    Two       strings       and       their       alignment:        
Minimum       Edit       Distance       
•    If       each       opera’on       has       cost       of       1       
•    Distance       between       these       is       5       
•    If       subs’tu’ons       cost       2       (Levenshtein)       
•    Distance       between       them       is       8       
Alignment       in       Computa9onal       Biology       
•    Given       a       sequence       of       bases       
AGGCTATCACCTGACCTCCAGGCCGATGCCC TAGCTATCACGACCGCGGTCGATTTGCCCGAC 
•    An       alignment:       
-AGGCTATCACCTGACCTCCAGGCCGA--TGCCC--- TAG-CTATCAC--GACCGC--GGTCGATTTGCCCGAC 
•    Given       two       sequences,       align       each       leXer       to       a       leXer       or       gap       
Other       uses       of       Edit       Distance       in       NLP       
•  Evalua’ng       Machine       Transla’on       and       speech       recogni’on       
R Spokesman confirms    senior government adviser was shot!
H Spokesman said    the senior            adviser was shot dead!
              S      I              D                        I!
•    Named       En’ty       Extrac’on       and       En’ty       Coreference       
•    IBM       Inc.       announced       today       
•    IBM       profits       
•    Stanford       President       John       Hennessy       announced       yesterday       
•    for       Stanford       University       President       John       Hennessy       
How       to       find       the       Min       Edit       Distance?       
•    Searching       for       a       path       (sequence       of       edits)       from       the       start       string       to       the       final       string:       
•    Ini9al       state:       the       word       we’re       transforming       
•    Operators:       insert,       delete,       subs’tute       
•    Goal       state:              the       word       we’re       trying       to       get       to       
•    Path       cost:       what       we       want       to       minimize:       the       number       of       edits       
Minimum       Edit       as       Search       
•    But       the       space       of       all       edit       sequences       is       huge!       
•    We       can’t       afford       to       navigate       naïvely       
•    Lots       of       dis’nct       paths       wind       up       at       the       same       state.       
•    We       don’t       have       to       keep       track       of       all       of       them       
•    Just       the       shortest       path       to       each       of       those       revisted       states.       
Defining       Min       Edit       Distance       
•    For       two       strings       
•    X       of       length       n              
•    Y       of       length       m       
•    We       define       D(i,j)       
•    the       edit       distance       between       X[1..i]       and       Y[1..j]              
•    i.e.,       the       first       i       characters       of       X       and       the       first       j       characters       of       Y       
•    The       edit       distance       between       X       and       Y       is       thus       D(n,m)       
 
Minimum       Edit       Distance       
       
Defini’on       of       Minimum       Edit       Distance       
       
Minimum       Edit       Distance       
       
Compu’ng       Minimum       
Edit       Distance       Dynamic       Programming       for       
Minimum       Edit       Distance       
•    Dynamic       programming:       A       tabular       computa’on       of       D(n,m)       
•    Solving       problems       by       combining       solu’ons       to       subproblems.       
•    BoXom-­‐up       
•    We       compute       D(i,j)       for       small       i,j              
•    And       compute       larger       D(i,j)       based       on       previously       computed       smaller       values       
•    i.e.,       compute       D(i,j)       for       all       i       (0       <       i       <       n)              and       j       (0       <       j       <       m)       
 
Defining       Min       Edit       Distance       (Levenshtein)       
Ini’aliza’on       
D(i,0) = i!
D(0,j) = j       
Recurrence       Rela’on:       
For each  i = 1…M!
!  For each  j = 1…N       
                       D(i-1,j) + 1!           D(i,j)= min  D(i,j-1) + 1!
                       D(i-1,j-1) +   2; if X(i) ≠ Y(j)   !                                       0; if X(i) = Y(j)!
Termina’on:       
D(N,M) is distance !
N     9                                     
O     8                                     
I     7                                     
T     6                                     
N     5                                     
E     4                                     
T     3                                     
N     2                                     
I     1                                     
#     0     1     2     3     4     5     6     7     8     9 
    #     E     X     E     C     U     T     I     O     N 
     The       Edit       Distance       Table        
 
N     9                                     
O     8                                     
I     7                                     
T     6                                     
N     5                                     
E     4                                     
T     3                                     
N     2                                     
I     1                                     
#     0     1     2     3     4     5     6     7     8     9 
    #     E     X     E     C     U     T     I     O     N 
     Edit       Distance          
     The       Edit       Distance       Table       
N     9     8     9     10     11     12     11     10     9     8 
O     8     7     8     9     10     11     10     9     8     9 
I     7     6     7     8     9     10     9     8     9     10 
T     6     5     6     7     8     9     8     9     10     11 
N     5     4     5     6     7     8     9     10     11     10 
E     4     3     4     5     6     7     8     9     10     9 
T     3     4     5     6     7     8     7     8     9     8 
N     2     3     4     5     6     7     8     7     8     7 
I     1     2     3     4     5     6     7     6     7     8 
#     0     1     2     3     4     5     6     7     8     9 
    #     E     X     E     C     U     T     I     O     N 
 
Minimum       Edit       Distance       
       
Compu’ng       Minimum       
Edit       Distance       
       
Minimum       Edit       Distance       
       
Backtrace       for       
Compu’ng       Alignments       Compu9ng       alignments       
•    Edit       distance       isn’t       sufficient       
•    We       oBen       need       to       align       each       character       of       the       two       strings       to       each       other       
•    We       do       this       by       keeping       a       “backtrace”       
•    Every       ’me       we       enter       a       cell,       remember       where       we       came       from       
•    When       we       reach       the       end,              
•    Trace       back       the       path       from       the       upper       right       corner       to       read       off       the       alignment       
 
N     9                                     
O     8                                     
I     7                                     
T     6                                     
N     5                                     
E     4                                     
T     3                                     
N     2                                     
I     1                                     
#     0     1     2     3     4     5     6     7     8     9 
    #     E     X     E     C     U     T     I     O     N 
     Edit       Distance          
 
Adding       Backtrace       to       Minimum       Edit       Distance       
Base       condi’ons:                                                                                                                                                                                                                                                                                                                                                                                                        Termina’on:       
D(i,0) = i         D(0,j) = j         D(N,M) is distance        
Recurrence       Rela’on:       
For each  i = 1…M!
! For each  j = 1…N       
                          D(i-1,j) + 1!    dele’on       
             D(i,j)= min  D(i,j-1) + 1!    inser’on       
 subs’tu’on       !
subs’tu’on       
                      D(i-1,j-1) +  2; if X(i) ≠ Y(j)                                      0; if X(i) = Y(j)!                      LEFT! inser’on                ptr(i,j)=   DOWN! dele’on                            DIAG!
!
 
Result       of       Backtrace       
•  Two       strings       and       their       alignment:        
Performance       
•    Time:       
                                     O(nm)       •  Space:       
                                         O(nm)       
•    Backtrace       
                                         O(n+m)       
 
Minimum       Edit       Distance       
       
Backtrace       for       
Compu’ng       Alignments       
       
Minimum       Edit       Distance       
       
Weighted       Minimum       Edit       Distance       Weighted       Edit       Distance       
•    Why       would       we       add       weights       to       the       computa’on?       
•    Spell       Correc’on:       some       leXers       are       more       likely       to       be       mistyped       than       others       
•    Biology:       certain       kinds       of       dele’ons       or       inser’ons       are       more       likely       than       others       
 
 
 
Weighted       Min       Edit       Distance       
•    Ini’aliza’on:       
D(0,0) = 0!
D(i,0) = D(i-1,0) + del[x(i)];    1 < i ≤ N!
D(0,j) = D(0,j-1) + ins[y(j)];    1 < j ≤ M       
•    Recurrence       Rela’on:       
             D(i-1,j)   + del[x(i)]! D(i,j)= min  D(i,j-1)   + ins[y(j)]!
             D(i-1,j-1) + sub[x(i),y(j)]!
•    Termina’on:       
D(N,M) is distance !
Where did the name, dynamic programming, come from?        
…The 1950s were not good years for mathematical research. [the] Secretary of Defense …had a pathological fear and hatred of the word, research… 
 
 I decided therefore to use the word, “programming”. 
 
 I wanted to get across the idea that this was dynamic, this was multistage… I thought, let’s … take a word that has an absolutely precise meaning, namely dynamic… it’s impossible to use the word, dynamic, in a pejorative sense. Try thinking of some combination that will possibly give it a pejorative meaning. It’s impossible.  
 
Thus, I thought dynamic programming was a good name. It was something not even a Congressman could object to.”   
 
          Richard Bellman, “Eye of the Hurricane: an autobiography” 1984.       
 
Minimum       Edit       Distance       
       
Weighted       Minimum       Edit       Distance       
       
Minimum       Edit       Distance       
       
Minimum       Edit       Distance       in       Computa’onal       Biology       Sequence       Alignment       
AGGCTATCACCTGACCTCCAGGCCGATGCCC TAGCTATCACGACCGCGGTCGATTTGCCCGAC 
-AGGCTATCACCTGACCTCCAGGCCGA--TGCCC--- TAG-CTATCAC--GACCGC--GGTCGATTTGCCCGAC 
 
Why       sequence       alignment?       
•    Comparing       genes       or       regions       from       different       species       
•    to       find       important       regions       
•    determine       func’on       
•    uncover       evolu’onary       forces       
•    Assembling       fragments       to       sequence       DNA       
•    Compare       individuals       to       looking       for       muta’ons       
Alignments       in       two       fields       
•    In       Natural       Language       Processing       
•    We       generally       talk       about       distance       (minimized)       
•    And       weights       
•    In       Computa’onal       Biology       
•    We       generally       talk       about       similarity       (maximized)       
•    And       scores       
The       Needleman-­‐Wunsch       Algorithm       
•    Ini’aliza’on:       
D(i,0) = -i * d! D(0,j) = -j * d       
•    Recurrence       Rela’on:       
             D(i-1,j)   - d! D(i,j)= min  D(i,j-1)   - d!
             D(i-1,j-1) + s[x(i),y(j)]!
•    Termina’on:       
D(N,M) is distance !
!
 
 
A       variant       of       the       basic       algorithm:       
•    Maybe       it       is       OK       to       have       an       unlimited       #       of       gaps       in       the       beginning       and       end:       
----------CTATCACCTGACCTCCAGGCCGATGCCCCTTCCGGC 
GCGAGTTCATCTATCAC--GACCGC--GGTCG-------------- 
•    If so, we don’t want to penalize gaps at the ends 
Slide       from       Serafim       Batzoglou       
Example: 
2 overlapping“reads” from a  sequencing project  
Example: 
Search for a mouse gene within a human chromosome 
 Slide       from       Serafim       Batzoglou       
Changes:       
       
1.    Ini’aliza’on       
       
2.    Termina’on       FOPT = max!
The       Local       Alignment       Problem       
Given       two       strings                          x       =       x1……xM,              
                                            y       =       y1……yN       
Find       substrings       x’,       y’       whose       similarity              
       (op’mal       global       alignment       value)       
       is       maximum       
x    =       aaaacccccggggXa       
y    =       Xcccgggaaccaacc           Slide       from       Serafim       Batzoglou       
The       Smith-­‐Waterman       algorithm       
Idea:       Ignore       badly       aligning       regions       
Modifica’ons       to       Needleman-­‐Wunsch:       
       F(0, j) = 0!
    !    !F(i, 0) = 0!
                                               
                                                                                                                                                                                    0    !!
Itera9on:                                                                             F(i, j) = max    F(i – 1, j) – d!
    !    !    !        F(i, j – 1) – d!
    !    !    !        F(i – 1, j – 1) + s(xi, yj)  !
Slide       from       Serafim       Batzoglou       
The       Smith-­‐Waterman       algorithm       
Termina9on:       
If       we       want       the       best       local       alignment…       
              
                                 FOPT       =       maxi,j       F(i,       j)       
              
       Find       FOPT       and       trace       back       
If       we       want       all       local       alignments       scoring             t              
       For       all       i,       j       find       F(i,       j)             t,       and       trace       back?       
    Complicated       by       overlapping       local       alignments           Slide       from       Serafim       Batzoglou       
       
        A!    T!    T!    A!    T!    C!
    0!    0!    0!    0!    0!    0!    0!
A!    0!                        
T!    0!                        
C!    0!                        
A!    0!                        
T!    0!                        
Local       alignment       example       
X = ATCAT! Y = ATTATC!
       m       =       1       (1       point       for       match)       
       d       =       1       (-­‐1       point       for       del/ins/sub)       
 
Local       alignment       example       
A!T!T!A!T!C!
X    = ATCAT!    0!0!0!0!0!0!0!
Y    = ATTATC!    A!0!1!0!0!1!0!0!
T!0!0!2!1!0!2!0!
C!0!0!1!1!0!1!3!
A!0!1!0!0!2!1!2!
Local       alignment       example       
A!T!T!A!T!C!
X    = ATCAT!    0!0!0!0!0!0!0!
Y    = ATTATC!    A!0!1!0!0!1!0!0!
T!0!0!2!1!0!2!0!
C!0!0!1!1!0!1!3!
A!0!1!0!0!2!1!2!
Local       alignment       example       
A!T!T!A!T!C! X =    ATCAT!    0!0!0!0!0!0!0!
Y = ATTATC!    A!0!1!0!0!1!0!0!
T!0!0!2!1!0!2!0!
C!0!0!1!1!0!1!3!
A!0!1!0!0!2!1!2!
 
Minimum       Edit       Distance       
       
Minimum       Edit       Distance       in       Computa’onal       Biology       
       

More products