All-Against-All Sequence Matching
Implementazione Mediante Suffix Array
e Analisi Prestazionale Comparata
Tesi di:
Dario Gelmini
Relatore:
Prof. Paolo Tiberio
Corelatori:
Dott. Federica Mandreoli
Ing. Riccardo Martoglia
Problema
Dati due insiemi di sequenze A e B
Confrontare
tutte le sotto-sequenze
Sequenza
A
Sequenza Bdi A
con tutte le sotto-sequenze di B
…Aindicandone
A A C T G T ilT grado
A … di Similitudine
…C T A G T A T A G…
CT
GT
TA
Sottosequenze Comuni
Come Procedere
• Scansione delle sequenze
Coppie di
Sottosequenze
Distanza
• Valutazione delle Coppie
e
Lunghezza
Minima
Edit Distance
A C T G T
A C T T T G T A
A C T
1
C0i-1,j-1
Ci,j =
T
T
G T
A
2
3
4
5
6 se 7lettera
8 uguale
A 1
0
1
2
3
4
5
6
7
C 2
1
0
1
2
3
4
5
6
T
2 1 0 ,1C 2 , C
3 4)
13 + Max(C
i-1,j-1
i-1,j
i,j-1
G 4
3
2
1
1
2
2
3
5altrimenti
4
T
4
3
2
1
1
2
2
3
5
[Baeza-Yates, Gonnet, 1999]
(Sequenze Genetiche)
Creazione Indice
sul DB delle Sequenze
A
C
T
0
1
2
3
A
1
0
1
2
C
2
1
0
1
Esplorazione Ricorsiva
dei due Indici
Calcolo della distanza
per ogni Coppia
DB
Sequenze
A
A
A
A
C
C
C
C
C
C
C
C
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
G
G
G
G
G :
G :
G :
G :
: C
: T
: T
: A
G C T T A
T T A
T A
A
T T A
T A
A
2
2
3
4
5
2
1
2
Filtro sulle Distanze
Suffix Tree
1 2 3 4 5 6 7 8
A C T T T G T A
C
1
$
A
C
1
8
2
T
/
T
T
G
3
2
G
A
5
7
6
G
3
4
T
A
C
T
$
T
Algoritmo [Baeza-Yates, Gonnet, 1999]
1
2 3
4
5
1
1
G
/
T
T
1 G
G
5
5
A
A
A
A
A
1
C 2
C 2
/
4
G C T T A
A C T T G
A
2 3
3
4
T
T
1 A
A
5
3
4
C
C
C
C
C
C
C
C
C
C
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
G
G
G
G
G
G
G
G
G
G
:
:
:
:
:
:
:
:
:
:
G C T T A
C T T A
T T A
T A
A
G C T T A
C T T A
T T A
T A
A
2
2
3
4
5
2
1
2
3
4
Implementazione
(Suffix Tree con Suffix Array)
1 2 3 4 5 6 7 8
Suffix Tree
C
1
$
A
C
C T T T G T A
1
T T T G T A
8
T T G T A
T G T A
2
T
/
T
T
G
3
2
G
A
5
7
6
Suffix Array
A C T T T G T A
G
3
4
G T A
T A
A
8
1
2
6
7
5
4
3
A C T T
C C
T T T
A
T T T G
C
T
T TT G
G
AT
G T A
T A
GG
T A
T
T A
T A
T G T
AT T G
T
T G T A
G
T AT A
T G
T AT A
G
A
A
T A
[Baeza-Yates, Gonnet] con Suffix Array
1
2
3
4
1
T T C C
4
3
2
1
C
C C
T C C
T T C C
2
3
4
T T G G
4
3
2
1
G
G G
T G G
T T G G
C
C
C
C
:
:
:
:
G
G G
T G G
T T G G
C
C
C
C
C
C
C
C
:
:
:
:
G
G G
T G G
T T G G
T
T
T
T
C
C
C
C
C
C
C
C
:
:
:
:
G
G G
T G G
T T G G
T
T
T
T
T
T
T
T
C
C
C
C
C
C
C
C
:
:
:
:
G
G G
T G G
T T G G
Applicazione dei Filtri
Massima Distanza = 1
1
1
2
2
3
4
1
A A A C
C C C A
1
2
2
3
4
T T T C
C C C T
Minima Lunghezza = 2
Lunghezza Minima
2
1
1
1
4
3
2
1
A
A C
A A C
A A A C
1
2
2
2
4
3
2
1
C
C T
C C T
C C C T
1
2
2
2
4
3
2
1
C
C A
C C A
C C C A
2
1
1
1
4
3
2
1
T
T C
T T C
T T T C
TT
C
CTCT
CT
0
11
22
3
A
1
11
222
3
C
2
21
12
2
[Mandreoli, Martoglia, Tiberio, 2002]
(Sequenze Testuali)
Filtri
Sub2Position
Sub2Count
DB
Sequenze
A
A
A
A
C
C
C
C
A
C
T
0
1
2
3
A
1
0
1
2
C
2
1
0
1
C
C
C
C
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
G
G
G
G
G :
G :
G :
G :
: C
: T
: T
: A
G C T T A
T T A
T A
A
T T A
T A
A
Impostazione Parametri
di minima Lunghezza e
di massima Distanza
dei filtri
Filtraggio delle sequenze
ed estrapolazione coppie
potenzialmente simili
2
2
3
4
5
2
1
2
Calcolo della distanza
per ogni coppia
Filtro sulle Distanze
Prestazioni (Analisi dei Risultati)
Filtro sulla Massima Distanza
Aumento Sopralineare dei tempi
all’aumentare della massima
distanza consentita
Conseguenza dell’applicazione della
funzione di Edit Distance a tutte le
coppie
Filtro sulla Minima Lunghezza
Diminuzione lineare dei tempi al
Aumentare della lunghezza minima
richiesta
Conseguenza dell’operazione di filtro
eseguita senza il calcolo della
distanza
Confronto [Baeza-Yates, Gonnet] - [Mandreoli, Martoglia, Tiberio]
Scarse Prestazioni su
sequenze Testuali
Prestazioni Interessanti
su sequenze Genetiche
Conclusioni
Implementazione
• Suffix Tree con Suffix Array (Modificato)
• Edit Distance con Corner (Modificato)
• Algoritmo di [Baeza-Yates, Gonnet] con Suffix Array
Analisi delle Prestazioni
• Discrete Prestazioni su Insiemi di Sequenze Genetiche
• Pessime Prestazioni su Insiemi di Sequenze Testuali
• Verifica di validita delle tecniche di Pre-Filtering
Scarica

Presentazione