Lezione 6
Lo string matching
String matching



Date due stringhe (sequenze di caratteri)
vogliamo stabilire se sono ”uguali”
Nel caso dello string matching, due stringhe
sono uguali se ... sono uguali
(”DNA” e ”RNA” non sono uguali)
Noi tratteremo string matching approssimato
(”DNA” è omologo a ”RNA”)
Alfabeti

L'alfabeto nucleotidico (standard IUPAC):







A: Adenina
C: Citosina
T: Timina
G: Guanina
A=T
C=G
L'Uracile (U) sostituisce la T nell'RNA (non la
useremo).
IUPAC è l'acronimo di International Union of
Pure and Applied Chemistry (Unione
Internazionale di Chimica Pura ed Applicata)
Alfabeti

Alfabeto aminoacidico (standard IUPAC)










A
D
F
H
K
M
P
R
T
W
Alanina
Acido aspartico
Fenilalanina
Istidina
Lisina
Metionina
Prolina
Arginina
Treonina
Triptofano
C
E
G
I
L
N
Q
S
V
Y
Cisteina
Acido glutammico
Glicina
Isoleucina
Leucina
Asparagina
Glutammina
Serina
Valina
Tirosina
String matching
tctgtagaaggctcctaacgatg
tctcctgtaggaggctcctgatg
String matching
tctgtagaaggctcctaacgatg
|||
| |||
||
||||
tctcctgtaggaggctcctgatg
String matching
tct---gtagaaggctcctaacgatg
|||
|||| ||||||||
||||
tctcctgtaggaggctcct---gatg
Metrica

Vogliamo avere una misura della differenza
(distanza) fra due stringe




studio strutturale/funzionale/evoluzionistico di
stringhe biologiche
confronto con database di sequenze note
in ambito non biologico: correzione degli errori
ortografici
Esistono diversi modi per formalizzare la
distanza fra due stringhe, noi ci concentreremo
sulla EDIT DISTANCE che si focalizza sulla
trasformazione di singoli caratteri
Edit distance

Le operazioni permesse sono:

I: insert (inserimento, inserzione)

D: delete (cancellazione, delezione, rimozione)

R: replacement (substition, sostituzione)

M: match (corrispondenza, accoppiamento,
uguaglianza)
v-intnerRIMDMDMMI
wri-t-ers
Esempio
tct---gtagaaggctcctaacgatg
MMMIIIMMMMRMMMMMMMMDDDMMMM
tctcctgtaggaggctcct---gatg
Edit transcript


Definizione
Una stringa su un alfabeto {I,D,R,M} che
descrive una trasformazione da una stringa ad
un'altra e' detta ”edit transcript” (trascrizione)
delle due stringhe.
Date due stringhe A e B, sia T la trascrizione
da A a B. Se in T sostituiamo le I con D e
contemporaneamente le D con le I otteniamo
una trascrizione T' da B ad A.
Esempio di commutatività
A
T
B
T'
A
v-intnerRIMDMDMMI
wri-t-ers
RDMIMIMMD
v-intner-
Edit distance



Definizione
La edit distance fra due stringhe e' definita
come il minimo numero di operazione di edit
(inserzioni, delezioni e sostituzioni) necessarie
a trasformare una stringa nell'altra.
NOTA BENE: i match non sono contati!
La edit distance e' conosciuta anche come
Levenshtein distance
Edit distance problem



L'edit distance problem e' computare la edit
distance fra due stringhe date, in modo che
l'edit transcript sia ottimale
Traduzione: trovare il trascritto che minimizza la
distanza.
Molto spesso si usa come sinonimo ”problema
dell'allineamento (globale)”
Problemi




le sequenze di interesse possono variare da
poche basi (~700pb, reads di un Whole
Genome Shotgun Project) fino a milioni di basi
(un cromosoma)
si vuole sapere se una sequenza e' gia' stata
scoperta e caratterizzata (o una sua omologa)
dalla comunita' scientifica (NCBI, National
Center for Biotechnology Information)
si vuole sapere se una sequenza e' parte di
un'altra sequenza
...
Soluzioni gia' pronte


BLAST (Basic Local Alignment Search Tool)

linea di comando (blastall)

http://www.ncbi.nlm.nih.gov/BLAST/
Dotter

programma visuale

http://www.cgb.ki.se/cgb/groups/sonnhammer/Dotter.html
Input per BLAST



BLAST può prendere in input una o più
sequenze nucleotidiche o aminoacidiche
Bisogna specificare un database di confronto
che può essere nucleotidico o aminoacidico
Quando si confrontano gli alfabeti nucleotidici
con quelli aminoacidici bisogna traslare le
sequenze nucleotidiche nei sei diversi modi
(frame di lettura) e convertire i codoni
Codoni
A
GCT, GCC, GCA, GCG
L
TTA, TTG, CTT, CTC, CTA, CTG
R
CGT, CGC, CGA, CGG, AGA, AGG
K
AAA, AAG
N
AAT, AAC
M
ATG
D
GAT, GAC
F
TTT, TTC
C
TGT, TGC
P
CCT, CCC, CCA, CCG
Q
CAA, CAG
S
TCT, TCC, TCA, TCG, AGT, AGC
E
GAA, GAG
T
ACT, ACC, ACA, ACG
G
GGT, GGC, GGA, GGG
W
TGG
H
CAT, CAC
Y
TAT, TAC
I
ATT, ATC, ATA
V
GTT, GTC, GTA, GTG
start ATG, GTG
stop TAG, TGA, TAA
Open Reading Frame (ORF)
BLAST
Query Sequence
Database type
Algorithm for
comparison
nucleotide
nucleotide
blastn
nucleotide (translated)
protein
blastx
protein
nucleotide (translated)
tblastn
nucleotide (translated) nucleotide (translated)
tblastx
protein
protein
blastp
MEGABLAST



Esiste una versione ”greedy” di BLAST
Serve per cercare piccole differenze fra
sequenze nucleotidiche (es. differenze
derivante da errori di sequenziamento)
E' 10 volte più veloce di BLAST
PSI-BLAST e PHI-BLAST


PSI-BLAST cerca membri di una famiglia di
proteine oppure costruisce una matrice di costi
specifica
PHI-BLAST cerca similarità con la proteina di
riferimento usando un pattern specificato
Query
Database
Informazioni generali
Distribuzione
Riassunto
E-Value




L'E-Value (Expect Value) è un parametro che
descrive il numero di ”hits” con punteggio uguale o
migliore di quello osservato che ci si aspetta di
vedere in un database della stessa dimensione di
quello in esame.
Descresce esponenzialmente rispetto allo Score
Per esempio, E=1 si può interpretare come il fatto
che ci si può aspettare di vedere 1 match con
punteggio uguale o superiore
Più il valore è vicino a zero e più l'hit è
significativo
L'allineamento migliore
Allineamento con gaps
BLASTX (TBLASTN)
BLASTP
TBLASTN
BL2SEQ

Serve per fare l'allineamento fra due sequenze
particolari invece che fra una sequenza e un
database
Dotter


Dotter è un programma ”dotplot” per la
comparazione grafica di due (o più) sequenze.
Ogni base di una sequenza è comparata con
ogni base delle altre sequenze.


il valore di una determinata base dipende anche
dalle basi che gli stanno attorno (è un valore locale)
viene usata una finestra di lettura che scorre fra le
due sequenze da allineare
Dotter


Genera una matrice, ogni punto della matrice
rappresenta il valore dell'omologia per la coppia
di basi con quelle coordinate
Le regioni omologhe si riconoscono da linee
diagonali

Se si compara una sequenza contro se stessa la
diagonale principale avrà un allineamento del 100%
Esempio

Esempio con una sliding window di 3

Matrice dei costi: DNA+5/-4
a
a
t
g
t
c
a
c
t
0
0
0
0
0
0
0
0
c
0
0
0
0
0
0
0
0
t
0
0
64
0
0
0
64
0
g
0
0
0
96
0
64
0
0
t
0
0
0
0
64
0
64
0
a
0
0
0
0
0
64
0
0
a
0
0
0
64
0
0
0
0
c
0
0
0
0
64
0
64
0
BLOSUM62
A R N D C Q E G H I
L K M F P S T W Y V B Z X *
A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 -1 -4
R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 0 -1 -4
N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 3 0 -1 -4
D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 1 -1 -4
C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -1 -4
Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 3 -1 -4
E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4
G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -4
H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 0 -1 -4
I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 -3 -1 -4
L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 -3 -1 -4
K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 1 -1 -4
M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 -1 -1 -4
F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 -3 -1 -4
P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -1 -1 -4
S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 0 -1 -4
T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 -1 -4
W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -3 -1 -4
Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -2 -1 -4
V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 -2 -1 -4
B -2 -1 3 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 1 -1 -4
Z -1 0 0 1 -3 3 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -4
* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1
A cosa serve DOTTER?

”vedere” l'omologia fra regioni diverse


es. riconoscere se una regione di un sequenza è
presente in una regione di un'altra sequenza
riconoscere e identificare regioni ripetute in una
singola sequenza

ricerca delle LTR (Long Terminal Repeat) e delle
TIR (Terminal Inverted Repeat) di elementi
trasponibili
Come si ”legge” Dotter?
Dotter e Edit trascript
M
R
I
D
Grayramp
Grayramp
Grayramp
Zoom
Tandem Repeats
Match sullo strand opposto
Piu' sequenze
Proteine




Dotter puo' fare l'allinemaneto fra sequenze
aminoacidiche
Non si puo' fare nucleotidi vs aminoacidi e
viceversa
Strand unico
Viene utilizzata una matrice di costi
(BLOSUM62) per calcolare l'omologia
BLAST

pro:


è disponibile online e non richiede risorse di calcolo
locali

è di facile lettura e interpretazione

da linea di comando è facilmente automatizzabile
contro:

non è interattivo

si vedono solo le omologie migliori (scelte da lui)

non è lo strumento adeguato per cercare sequenze
ripetute
DOTTER


pro:

è disponibile per diverse architetture

è visuale e interattivo

si può osservare tutto l'allineamento

utilissimo per cercare sequenze ripetute
contro:

richiede risorse di calcolo locali

si possono osservare poche sequenze alla volta

non è automatizzabile
BLAST vs DOTTER


Si usa BLAST per cercare omologie con
proteine o sequenze note in grandi database
Si usa Dotter per cercare le zone ripetute o per
cercare omologie con altre sequenze (poche)