Lezione 5

Transcript

Lezione 5
Programmazione dinamica
• Fornisce l’allineamento ottimale tra due
sequenze
• semplici variazioni dell’algoritmo producono
allineamenti globali o locali
• l’allineamento calcolato dipende dalla scelta
di alcuni parametri
• Sfrutta la ricorsione ….. ogni risultato parziale
dipende dal risultato del calcolo precedente
del punteggio di allineamento registrato in
una tabella. Quest’ultima è utilizzata alla fine
per ricostruire il percorso ottimale.
Needleman & Wunsch (1970)
• Allineamento globale
• Punteggio (odds score) di un allineamento
sequenza 1
sequenza 2
punteggio
M - N A L S D R T
M G S D R T T E T
6-12 1 0-3 1 0-1 3 = -5
1
Pairwise Sequence Alignment
• Esempio
HEAGAWGHEE
PAWHEAE
HEAGAWGHE-E
HEAGAWGHE-E
P-A--W-HEAE
--P-AW-HEAE
• Qual è il migliore ?
Esempio
A
E
G
H
W
A
5
-1
0
-2
-3
E
-1
6
-3
0
-3
H
-2
0
-2
10
-3
P
-1
-1
-2
-2
-4
W
-3
-3
-3
-3
15
• Gap penalty: -8
HEAGAWGHE-E
--P-AW-HEAE
(-8) + (-8) + (-1) + (-8) + 5 + 15 + (-8)
+ 10 + 6 + (-8) + 6 = 1
HEAGAWGHE-E
Esercizio: Calcolate per ..
P-A--W-HEAE
La risposta è
(-2)+(-8)+5+(-8)+(-8)+15+(-8)+10+6+(-8)+6 = 0
2
Global Alignment
• Notazione
– xi – i-esimo elemento della sequenza x
– yj – j-esimo elemento della sequenza y
– x1..i – Prefisso di x da 1 a i
– F – matrice di score ottimali
• F(i,j) rappresenta l’allineamento ottimale x1..i con
y1..j
– d – penalità
– s – scoring matrix
Global Alignment
• Costruiamo F
• Inizializzo: F(0,0) = 0, F(i,0) = id, F(0,j)=jd
• Riempio da alto-sinistra verso il basso-destra
usando la relazione ricorsiva
 F (i − 1, j − 1) + s ( xi , y j )

F (i, j ) = max 
F (i − 1, j ) − d

F (i, j − 1) − d

3
Global Alignment
yj allineata ad un gap
F(i-1,j-1)
Muoviti avanti
su entrambe
F(i,j-1)
s(xi,yj)
d
F(i-1,j)
F(i,j)
d
xi allineata ad un
gap
Mentre si costruisce la tabella, si può tenere
traccia del percorso ovvero quale direzione si
prende (frecce di direzione inversa)
H
E
A
G
A
W
G
H
E
E
P
-2
-1
-1
-2
-1
-4
-2
-2
-1
-1
A
-2
-1
5
0
5
-3
0
-2
-1
-1
W
-3
-3
-3
-3
-3
15
-3
-3
-3
-3
H
10
0
-2
-2
-2
-3
-2
10
0
0
E
0
6
-1
-3
-1
-3
-3
0
6
6
A
-2
-1
5
0
5
-3
0
-2
-1
-1
E
0
6
-1
-3
-1
-3
-3
0
6
6
Matrice dei
punteggi secondo
BLOSUM50 degli
appaiamenti tra AA
Esempio
Il primo step è quello di riempire i
valori della tabella considerando una
matrice di sostituzione (BLOSUM50 in
questo caso) di appaiamento degli AA
nella griglia)
H
E
A
G
A
W
G
H
E
E
0
-8
-16
-24
-32
-40
-48
-56
-64
-72
-80
P
-8
-2
-9
-17
-25
-33
-42
-49
-57
-65
-73
A
-16
W
-24
H
-32
E
-40
A
-48
E
-56
GAP
D = -8
Il secondo step
prevede il
riempimento
della tabella
ricorsivamente
4
P
H
E
A
G
A
W
G
H
E
E
-2
-1
-1
-2
-1
-4
-2
-2
-1
-1
A
-2
-1
5
0
5
-3
0
-2
-1
-1
W
-3
-3
-3
-3
-3
15
-3
-3
-3
-3
H
10
0
-2
-2
-2
-3
-2
10
0
0
E
0
6
-1
-3
-1
-3
-3
0
6
6
A
-2
-1
5
0
5
-3
0
-2
-1
-1
E
0
6
-1
-3
-1
-3
-3
0
6
6
Matrice dei
punteggi secondo
BLOSUM50 degli
appaiamenti tra AA
Tavola completata
H
E
A
G
A
W
G
H
E
E
0
-8
-16
-24
-32
-40
-48
-56
-64
-72
-80
P
-8
-2
-9
-17
-25
-33
-42
-49
-57
-65
-73
A
-16
-10
-3
-4
-12
-20
-28
-36
-44
-52
-60
W
-24
-18
-11
-6
-7
-15
-5
-13
-21
-29
-37
H
-32
-14
-18
-13
-8
-9
-13
-7
-3
-11
-19
E
-40
-22
-8
-16
-16
-9
-12
-15
-7
3
-5
A
-48
-30
-16
-3
-11
-11
-12
-12
-15
-5
2
E
-56
-38
-24
-11
-6
-12
-14
-15
-12
-9
1
GAP
D = -8
Traceback
H
E
A
G
A
W
G
H
E
E
0
-8
-16
-24
-32
-40
-48
-56
-64
-72
-80
P
-8
-2
-9
-17
-25
-33
-42
-49
-57
-65
-73
A
-16
-10
-3
-4
-12
-20
-28
-36
-44
-52
-60
W
-24
-18
-11
-6
-7
-15
-5
-13
-21
-29
-37
H
-32
-14
-18
-13
-8
-9
-13
-7
-3
-11
-19
E
-40
-22
-8
-16
-16
-9
-12
-15
-7
3
-5
A
-48
-30
-16
-3
-11
-11
-12
-12
-15
-5
2
E
-56
-38
-24
-11
-6
-12
-14
-15
-12
-9
1
Percorso a ritroso
seguendo le frecce:
Il percorso parte
sempre dall’ultima
casella
Per definizione fino
allo 0
Spostamenti:
• Diagonale – entrambi
• Su – gap in alto
• Sx – gap in basso
HEAGAWGHE-E
--P-AW-HEAE
5
Sommario
• Inizializzazione valori tabella (-jd e –id)
• Uso della ricorsione per riempire le caselle
intermedie della tabella (programmazione
dinamica)
• Traceback dall’ultima casella (i,j)
• Uso di O(nm) spazio e tempo
– O(n2) algoritmo
– Possibile per piccole sequenze ma non per
interi genomi
Local Alignment
• Smith-Waterman (1981)
• Altra soluzione di programmazione dinamica
molto simile ad allineamento globale nella
costruzione tabella
• In questo caso viene introdotto lo “0” nel calcolo
del punteggio delle caselle …. Non si hanno mai
valori negativi
0

 F (i − 1, j − 1) + s ( x , y )
i
j

F (i, j ) = max 
F (i − 1, j ) − d

F (i, j − 1) − d


6
Esempio
H
E
A
G
A
W
G
H
E
E
0
0
0
0
0
0
0
0
0
0
0
P
0
0
0
0
0
0
0
0
0
0
0
A
0
0
0
5
0
5
0
0
0
0
0
W
0
0
0
0
2
0
20
12
4
0
0
H
0
10
2
0
0
0
12
18
22
14
6
E
0
2
16
8
0
0
4
10
18
28
20
A
0
0
8
21
13
5
0
4
10
20
27
E
0
0
6
13
18
12
4
0
4
16
26
Traceback
H
E
A
G
A
W
G
H
E
E
0
0
0
0
0
0
0
0
0
0
0
P
0
0
0
0
0
0
0
0
0
0
0
A
0
0
0
5
0
5
0
0
0
0
0
W
0
0
0
0
2
0
20
12
4
0
0
H
0
10
2
0
0
0
12
18
22
14
6
E
0
2
16
8
0
0
4
10
18
28
20
A
0
0
8
21
13
5
0
4
10
20
27
E
0
0
6
13
18
12
4
0
4
16
26
Inizia dal punteggio più
alto trovato nella tabella
e ripercorre a ritroso da
quella casella fino al
primo 0
AWGHE
AW-HE
7
SOLUZIONI ALTERNATIVE
Possono capitare soluzioni alternative nel caso di
punteggio uguale in certe posizioni della tabella
ALTRO TIPO DI ALLINEAMENTO
Il Freeshift o “glocal”
Si utilizza quando ci si aspetta che una
sequenza sia completamente contenuta in
un’altra oppure abbia un overlap.
Quello che si vuole è un tipo di allineamento
globale in cui non vengano penalizzati gli
overhang terminali
8
Sequenza contenuta dentro un’altra
sequenza e con delle zone di overhang
DLGPSSKSTGKGSIMRIWDNGM
DI TKSAGKGAIMRLEM
OVERLAP ZONE
OVERHANG ZONE
Il problema si traduce nel partire dal punteggio massimo della matrice
sull’ultima colonna o riga e ripercorrere a ritroso fino alla fine (o prima
riga o prima colonna)
L’inizializzazione della matrice è con il punteggio 0 come nel caso
dell’allineamento “locale”
Il riempimento della matrice avviene, invece, con la regola
dell’allineamento “globale”
H
E
A
G
A
W
G
H
E
E
0
0
0
0
0
0
0
0
0
0
0
P
0
0
0
0
-1
0
0
0
0
0
0
A
0
0
0
5
0
5
0
0
0
0
0
W
0
0
0
0
2
0
20
12
4
0
0
H
0
10
2
0
0
0
12
18
22
14
6
E
0
2
16
8
0
0
4
10
18
28
20
A
0
0
8
21
13
5
0
4
10
20
27
E
0
0
6
13
18
12
4
0
4
16
26
Da qui il nome di
allineamento “g-local”
HEAGAWGHEE
PAW-HEAE
9
Per esercitarsi:
http://www.dina.dk/~sestoft/bsa/graphalign.html
La ricerca di similarità in banche dati
Uno dei problemi più comunemente affrontati con metodi bioinformatici è quello di trovare omologie di
sequenza interrogando una banca dati.
L’idea di base è che proteine omologhe derivano da un progenitore comune e, quindi,
condividono ampie regioni simili.
Comparando la similarità tra la nostra sequenza (query) e tutte quelle contenute in una banca dati possiamo
stimare la percentuale di similarità e da questa inferire una eventuale omologia (attenzione ai termini !!).
10
La ricerca di similarità in banche dati
Quando le sequenze sono molto simili è “ovvio” assumere che sono anche omologhe,
ma, nella maggior parte dei casi questo non si verifica quando bisogna confrontarsi con
bassi livelli di similarità. In molti casi, tuttavia veri omologhi funzionali hanno bassi
livelli di similarità e non è affatto facile discriminare falsi omologhi da veri omologhi.
In mancanza di elementi funzionali la discriminazione tra veri e falsi omologhi si fonda
su considerazioni statistiche. In sintesi sulla base della percentuale di similarità si
assegna un punteggio ad ogni singolo appaiamento di sequenze e si valuta la probabilità
di avere lo stesso punteggio per caso. Tanto più bassi sono i valori di probabilità tanto
più significativo risulta l’allineamento.
Ci sono due grossi problemi da risolvere: Lo sviluppo di algoritmi capaci di
identificare sequenze simili alla sequenza query tra milioni di sequenze target e la scelta
di metodi statistisci a cui affidare la decisione di quali siano le sequenze significative.
I principali programmi di interrogazione di banche dati, come FASTA, BLAST e
SSEARCH si caratterizzano essenzialmente per l’approccio a questi problemi.
La ricerca di similarità: accuratezza
TP
FP
TN
FN
=
=
=
=
positivi veri (il metodo dice che è omologa e in effetti corrisponde al vero)
falsi positivi (il metodo dice che è omologa quando invece non lo è)
negativi veri (il metodo dice che non è omologa e in effetti corrisponde al vero)
falsi negativi (il metodo dice che non è omologa quando invece lo è)
(TP+FN) = effettivi positivi nella banca dati
(TP+FP) = positivi predetti dal metodo falsi e veri
Predetta come omologa ?
Sì
No
Sì
TP
FN
No
FP
TN
È omologa ?
11
La ricerca di similarità: accuratezza
Sensibilità = TP / (TP + FN)
è la percentuale di esempi predetti correttamente dal metodo sulla
totalità di quelli che sono realmente presenti in banca dati.
Selettività = TP / (TP + FP)
è la percentuale di volte in cui la predizione positiva si rivela corretta.
Specificità = TN / (TN + FP)
è la percentuale di esempi predetti come negativi sul totale di quelli
effettivamente negativi
Risultati:
Esempio:
Predizione:
Omologia reale tra
proteine:
A
B
C
D
E
F
G
H
(A, B, C),
(D, E),
(F, G, H)
B, C
C
A, E
B
B
A, H
F
F, G
TP =
FP =
FN =
TN =
8
4
6
5+5+4+5+5+4+5+5
-> 38
Sens = 8 / (8+6) = 0.57
Sel = 8 / (8+4) = 0.66
Spec = 38 / (38+4) = 0.90
La ricerca di similarità: accuratezza
Sel. = TP / (TP + FP)
Sens.= TP / (TP + FN)
In genere ad ogni predizione è affiancata una stima di affidabilità. I valori di
sensibilità e selettività si calcolano soltanto per quelle predizioni che superano un
valore minimo di affidabilità (threshold, soglia).
La scelta della soglia e’ fatta su basi statistiche ed e’ determinante. In generale i
metodi cercano un compromesso per cui:
Alta sensibilità bassa selettività e viceversa…
In base alla soglia scelta si possono ottenere valori di sensibilità e selettività molto
diversi tra di loro. Per questo entrambi i valori vanno riferiti allo stesso valore di
soglia per poter essere paragonati.
Esempio:
Omologia reale tra
proteine:
(A, B, C),
(D, E),
(F, G, H)
A
B
C
D
E
F
G
H
B, C
C
A, E
B
B
A,H
F
F, G
10
5
10
5
5
15
5
15
Soglia >= 5:
TP =
8
FP =
4
FN =
6
Soglia >= 10:
TP =
6
FP =
2
FN =
8
Soglia >= 15:
TP =
3
FP =
1
FN =
11
Sens = 0.57
Sel = 0.66
Sens = 0.42
Sel = 0.75
Sens = 0.21
Sel = 0.75
12
La ricerca di similarità: accuratezza
Alternativa:
ROC
(receiver operator characteristic)
Grafico che rappresenta l’andamento della sensibilità in base alla selettività, basato su
soglia “mobile”. Permette di visualizzare tutte le combinazioni contemporaneamente.
Intuitivamente, il metodo A funziona meglio di quello B se ha una curva con valori
sempre maggiori dell’altro.
In termini matematici si può calcolare l’area sotto la curva (valore AUC = area under
curve) per quantificare la performance dei metodi.
13