All-Against-All Sequence Matching Implementazione Mediante Suffix Array e Analisi Prestazionale...

Post on 01-May-2015

216 views 1 download

Tags:

Transcript of All-Against-All Sequence Matching Implementazione Mediante Suffix Array e Analisi Prestazionale...

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