Upload
felicita-gatto
View
216
Download
1
Tags:
Embed Size (px)
Citation preview
All-Against-All Sequence All-Against-All Sequence MatchingMatching
Implementazione Mediante Suffix Array Implementazione Mediante Suffix Array
e Analisi Prestazionale Comparatae Analisi Prestazionale Comparata
Corelatori:Corelatori:
Dott. Federica MandreoliDott. Federica Mandreoli
Ing. Riccardo MartogliaIng. Riccardo Martoglia
Relatore:Relatore:
Prof. Paolo TiberioProf. Paolo TiberioTesi di:Tesi di:
Dario GelminiDario Gelmini
Dati due insiemi di sequenze A e B Dati due insiemi di sequenze A e B
Confrontare tutte le sotto-sequenze di A Confrontare tutte le sotto-sequenze di A
con tutte le sotto-sequenze di Bcon tutte le sotto-sequenze di B
indicandone il grado di Similitudineindicandone il grado di Similitudine
ProblemaProblema
… …A A A C T G T T A …A A A C T G T T A … … …C T A G T A T A G…C T A G T A T A G…
Sequenza ASequenza A Sequenza BSequenza B
CTCT
GTGT
TATA
Sottosequenze ComuniSottosequenze Comuni
Come ProcedereCome Procedere
• Scansione delle sequenzeScansione delle sequenze
• Valutazione delle CoppieValutazione delle Coppie
Coppie diCoppie diSottosequenzeSottosequenze
DistanzaDistanzaee
LunghezzaLunghezzaMinimaMinima
Edit DistanceEdit Distance
A C T G TA C T G T A C T T T G T AA C T T T G T A
A C T T T G T A
0 1 2 3 4 5 6 7 8
A 1 0 1 2 3 4 5 6 7
C 2 1 0 1 2 3 4 5 6
T 3 2 1 0 1 2 3 4 5
G 4 3 2 1 1 2 2 3 4
T 5 4 3 2 1 1 2 2 3
CCi-1,j-1i-1,j-1 se lettera se lettera
ugualeuguale
CCi,ji,j = =
1 + Max(C1 + Max(Ci-1,j-1i-1,j-1, C, Ci-1,ji-1,j, C, Ci,j-1i,j-1) ) altrimentialtrimenti
D B D B
SequenzeSequenze
A C T
0 1 2 3
A 1 0 1 2
C 2 1 0 1
A C T T G A C T T G :: G C T T A G C T T A
A C T T G A C T T G :: T T A T T A
A C T T G A C T T G :: T A T A
A C T T G A C T T G :: A A
C T T G C T T G :: C T T A C T T A
C T T G C T T G :: T T A T T A
C T T G C T T G :: T A T A
C T T G C T T G :: A A
22
22
33
44
55
22
11
22
Creazione IndiceCreazione Indice
sul DB delle Sequenzesul DB delle Sequenze
Esplorazione RicorsivaEsplorazione Ricorsiva
dei due Indicidei due Indici
Calcolo della distanzaCalcolo della distanza
per ogni Coppiaper ogni Coppia
Filtro sulle DistanzeFiltro sulle Distanze
[Baeza-Yates, Gonnet, 1999][Baeza-Yates, Gonnet, 1999](Sequenze Genetiche)(Sequenze Genetiche)
Suffix TreeSuffix Tree
A C T T T G T AA C T T T G T A
1 2 3 4 5 6 7 81 2 3 4 5 6 7 8
11
88
22
66
33
44
55
77
AA
AA
GG
TT
TT
TT
CC
GG
GG
CC
$$11
22
33//AA
CC
$$TT TT TT
AlgoritmoAlgoritmo [Baeza-Yates, Gonnet, 1999][Baeza-Yates, Gonnet, 1999]
11
22
55
33
44
AA
TTTT
CC
GGGG11
//
11
22
55
33
44
GG
TTTT
CC
AAAA11
//
A C T T GA C T T G G C T T AG C T T A 1 2 3 4 51 2 3 4 5 1 2 3 4 51 2 3 4 5
A C T T G A C T T G :: G C T T A G C T T A
A C T T G A C T T G :: C T T A C T T A
A C T T G A C T T G :: T T A T T A
A C T T G A C T T G :: T A T A
A C T T G A C T T G :: A A
C T T G C T T G :: G C T T A G C T T A
C T T G C T T G :: C T T A C T T A
C T T G C T T G :: T T A T T A
C T T G C T T G :: T A T A
C T T G C T T G :: A A
22
22
33
44
55
22
11
22
33
44
A C T T T G T AA C T T T G T A
C T T T G T AC T T T G T A
T T T G T AT T T G T A
T T G T AT T G T A
T G T AT G T A
G T AG T A
T AT A
AA
AA
A C T T T G T AA C T T T G T A
C T T T G T AC T T T G T A
G T AG T A
T AT A
T G T AT G T A
T T G T AT T G T A
T T T G T AT T T G T A
88
11
22
66
77
55
44
33
ImplementazioneImplementazione(Suffix Tree con Suffix Array)(Suffix Tree con Suffix Array)
11
88
22
66
33
44
55
77
AA
AA
GG
TT
TT
TT
CC
GG
GG
CC
$$11
22
33//
A C T T T G T AA C T T T G T A 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8
C T T T G T AC T T T G T A
T T T G T AT T T G T A
T T G T AT T G T A
T G T AT G T A
G T AG T A
T AT A
AA
Suffix TreeSuffix Tree Suffix ArraySuffix Array
[Baeza-Yates, Gonnet][Baeza-Yates, Gonnet] concon Suffix ArraySuffix Array
T T C CT T C C1 2 3 41 2 3 4
CC
C CC C
T T C C C C
T T C C T T C C
44
33
22
11
C C :: G G
C C :: G G G G
C C :: T G G T G G
C C :: T T G G T T G G
C C C C :: G G
C C C C :: G G G G
C C C C :: T G G T G G
C C C C :: T T G G T T G G
T C C T C C :: G G
T C C T C C :: G G G G
T C C T C C :: T G G T G G
T C C T C C :: T T G G T T G G
T T C C T T C C :: G G
T T C C T T C C :: G G G G
T T C C T T C C :: T G G T G G
T T C C T T C C :: T T G G T T G G
T T G GT T G G1 2 3 41 2 3 4
GG
G GG G
T T G G G G
T T G G T T G G
44
33
22
11
T T 2 2 22 2 2CC 2 2 12 2 1C C 2 22 2T T 2 22 2T T 2 2 22 2 2C C 2 2 12 2 1
Applicazione dei FiltriApplicazione dei Filtri
A A A CA A A C
C C C AC C C A
1 2 3 41 2 3 4
AA
A CA C
A A CA A C
A A A C A A A C
44
33
22
11
T T T CT T T C
C C C C T C C T
1 2 3 41 2 3 4
CC
C TC T
C C C T C T
C C C T C C C T
44
33
22
11
CC
C AC A
C C AC C A
C C C A C C C A
44
33
22
11
TT
T T C C
T T T C T C
T T T C T T T C
44
33
22
11
Massima Distanza = 1Massima Distanza = 1
11
22
22
22
22
11
11
11
22
11
11
11
11
22
22
22
11
22
11
22
AA
0 10 1
C C 1 11 1
AA
0 10 1
T T 1 11 1
C C 2 22 2
A CA C
0 1 20 1 2
C C 1 1 11 1 1T T 2 22 2
T T 3 3 23 3 2C C 3 3 23 3 2
A CA C
0 1 20 1 2
T T 1 1 1 1 2 2
Minima Lunghezza = 2Minima Lunghezza = 2
Lunghezza MinimaLunghezza Minima
[Mandreoli, Martoglia, Tiberio, 2002][Mandreoli, Martoglia, Tiberio, 2002](Sequenze Testuali)(Sequenze Testuali)
D B D B
SequenzeSequenze
A C T
0 1 2 3
A 1 0 1 2
C 2 1 0 1
A C T T G A C T T G :: G C T T A G C T T A
A C T T G A C T T G :: T T A T T A
A C T T G A C T T G :: T A T A
A C T T G A C T T G :: A A
C T T G C T T G :: C T T A C T T A
C T T G C T T G :: T T A T T A
C T T G C T T G :: T A T A
C T T G C T T G :: A A
22
22
33
44
55
22
11
22
Impostazione ParametriImpostazione Parametri
di minima Lunghezza edi minima Lunghezza e
di massima Distanzadi massima Distanza
dei filtridei filtri
Filtraggio delle sequenzeFiltraggio delle sequenze
ed estrapolazione coppieed estrapolazione coppie
potenzialmente similipotenzialmente simili
Calcolo della distanzaCalcolo della distanza
per ogni coppiaper ogni coppia
Filtro sulle DistanzeFiltro sulle Distanze
SubSub22Position Position
SubSub22CountCount
FiltriFiltri
PrestazioniPrestazioni (Analisi dei Risultati)(Analisi dei Risultati) Filtro sulla Massima DistanzaFiltro sulla Massima Distanza
Aumento Sopralineare dei tempiAumento Sopralineare dei tempi
all’aumentare della massima all’aumentare della massima
distanza consentitadistanza consentita
Conseguenza dell’applicazione dellaConseguenza dell’applicazione della
funzione di Edit Distance a tutte lefunzione di Edit Distance a tutte le
coppiecoppie
Filtro sulla Minima LunghezzaFiltro sulla Minima Lunghezza
Diminuzione lineare dei tempi al Diminuzione lineare dei tempi al
Aumentare della lunghezza minimaAumentare della lunghezza minima
richiestarichiesta
Conseguenza dell’operazione di filtroConseguenza dell’operazione di filtro
eseguita senza il calcolo della eseguita senza il calcolo della
distanzadistanza
ConfrontoConfronto [Baeza-Yates, Gonnet] - [Mandreoli, Martoglia, [Baeza-Yates, Gonnet] - [Mandreoli, Martoglia, Tiberio]Tiberio]
Scarse Prestazioni suScarse Prestazioni su
sequenze Testualisequenze Testuali
Prestazioni InteressantiPrestazioni Interessanti
su sequenze Genetichesu sequenze Genetiche
ConclusioniConclusioni
ImplementazioneImplementazione• Suffix Tree con Suffix Array Suffix Tree con Suffix Array (Modificato)(Modificato)• Edit Distance con Corner Edit Distance con Corner (Modificato)(Modificato)• Algoritmo di [Baeza-Yates, Gonnet] con Suffix ArrayAlgoritmo di [Baeza-Yates, Gonnet] con Suffix Array
Analisi delle Prestazioni Analisi delle Prestazioni • Discrete Prestazioni su Insiemi di Sequenze GeneticheDiscrete Prestazioni su Insiemi di Sequenze Genetiche• Pessime Prestazioni su Insiemi di Sequenze TestualiPessime Prestazioni su Insiemi di Sequenze Testuali
• Verifica di validita delle tecniche di Pre-FilteringVerifica di validita delle tecniche di Pre-Filtering