UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi e Strutture Dati
Il problema del minimo albero ricoprente in un grafo non cooperativo
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
UNIVERSITA DI MILANO-BICOCCA CdL IN INFORMATICA Corso di Algoritmi e Ricerca Operativa Prof. Giancarlo Mauri LEZIONE 2.
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
esponente del radicando
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Cammini minimi con sorgente singola
The Knuth-Morris-Pratt Algorithm
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 22/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Flusso Massimo Applicazione di algoritmi
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e strutture dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Heap binari e HeapSort.
Bioinformatica Andrea G. B. Tettamanzi.
Intelligenza Artificiale
Algoritmi di String Matching
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
Prof. Cerulli – Dott.ssa Gentili
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Cammini minimi da un sorgente
Bando Pittori e Scultori in Piemonte alla metà del ‘700
1 PerfectFit06 Sistema di personalizzazione dei contenuti per gli scavi archeologici di Ercolano Candidato: Vincenzo Scognamiglio Relatore: Prof. Ernesto.
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 11 Distanza genomica.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 6 Alberi di suffissi

Sommario Ricerca di stringhe Breve Storia degli Alberi dei Suffissi (ST) Definizioni Un esempio Algoritmo di Ukkonen Applicazioni degli Alberi dei Suffissi Bibliografia

Il problema: ricerca di stringhe Ricerca delle occorrenze di una stringa P (di lunghezza m) all’interno di un testo T (di lunghezza n) xyabcxabcxabcdeqfeg T P abcxabcde

Il problema: ricerca di stringhe Ricerca delle occorrenze di una stringa P (di lunghezza m) all’interno di un testo T (di lunghezza n) xyabcxabcxabcdeqfeg T xyabcxabcxabcdeqfeg P abcxabcde Risolvibile in tempo O(n+m) (O(m) per il preprocessing di P e O(n) per la ricerca delle occorrenze di P in T) tramite: algoritmo di Boyer-Moore algoritmo di Knuth-Morris-Pratt

La soluzione con alberi di suffissi Si impiega: un tempo O(n) per la costruzione dell’albero dei suffissi (Suffix Tree, ST) di T un tempo O(m) per la ricerca delle occorrenze di P in T È possibile costruire il ST per il testo T una sola volta e poi cercare più stringhe P in tempo proporzionale alla lunghezza di ciascuna stringa

Breve storia degli alberi dei suffissi 1973: Weiner inventa il primo algoritmo per la costruzione di un albero dei suffissi (Position Tree) in tempo lineare 1976: McCreight inventa un algoritmo più efficiente 1995: Ukkonen introduce un nuovo algoritmo in tempo lineare più semplice dei precedenti

Definizione L’ Albero dei Suffissi  per una stringa T di n caratteri è un albero radicato e orientato con n foglie numerate da 1 a n tale che: Ogni nodo interno ha almeno due figli e ogni arco è etichettato con una sottostringa non nulla di T Due archi uscenti dallo stesso nodo non possono avere etichette che iniziano con lo stesso carattere Per ogni foglia i, la concatenazione delle etichette relative al percorso dalla radice alla foglia i è il suffisso di T che inizia alla posizione i e cioè T[i,m]

Esempio di albero dei suffissi T: xabxac b x a c 3 6 5 2 4 1 u w R Il percorso con etichetta xabx termina in mezzo ad un arco L’etichetta del percorso <R,w,1> è xabxac L’arco (R,w) ha etichetta xa u e w sono nodi interni La string-depth di w è 2

Proprietà di un ST L’etichetta di un percorso dalla radice a un nodo è la concatenazione nell’ordine delle sottostringhe che etichettano gli archi che costituiscono il percorso L’etichetta di percorso di un nodo è l’etichetta del percorso dalla radice a quel nodo La profondità di un nodo v è il numero di caratteri nell’etichetta di v Un percorso che termina nel mezzo di un arco (u,v) divide l’etichetta di (u,v) in un punto prestabilito. L’etichetta di questo percorso è l’etichetta di u concatenata con i caratteri sull’arco (u,v) fino al punto di divisione.

Ricerca di una stringa mediante un albero dei suffissi Per cercare le occorrenze di P in T: Creare l’albero dei suffissi  di T in tempo O(n) Cercare in  il percorso etichettato P Se si raggiunge una foglia di  prima della fine di P o si incontra sul percorso un carattere non contenuto in P allora non vi sono occorrenze di P in T Altrimenti tutte le foglie del sottoalbero del percorso avente P come etichetta sono i punti di T in cui vi è un’occorrenza di P in T

Esempio (1) T: xabxac P: xa R Occorrenze alle posizioni 1 e 4 a x w b 3 6 5 2 4 1 u R Occorrenze alle posizioni 1 e 4

Esempio (2) T: xabxac P: ad d? R Non vi sono occorrenze di P in T a x w b c 3 6 5 2 4 1 u R d? Non vi sono occorrenze di P in T

Esempio (3) T: xabxac P: xacd d? R Non vi sono occorrenze di P in T a w b c 3 6 5 2 4 1 u R d? Non vi sono occorrenze di P in T

Carattere di fine stringa ($) La definizione di albero dei suffissi non garantisce l’esistenza di un ST per ogni stringa T Se un suffisso di T è uguale al prefisso di un altro suffisso di T, tale suffisso non potrà terminare in una foglia Soluzione Basta aggiungere alla fine di T un carattere che non compare mai in T ($ ad esempio)

Algoritmo di Ukkonen Esempio per T=xabxa Costruisce l’albero dei suffissi implicito per la stringa T L’albero implicito dei suffissi è ottenuto rimuovendo tutte le occorrenze del carattere di terminazione $ e di conseguenza tutti gli archi che rimangono senza etichetta e tutti i nodi con un solo figlio Esempio per T=xabxa a b $ x 3 6 5 2 4 1 R a b x 3 2 1 R

Algoritmo di Ukkonen Algoritmo di Ukkonen naive Per i che va 1 a m-1 Costruisci l’albero I1 Per i che va 1 a m-1 Per j che va da 1 a i+1 Trova il punto in cui termina il percorso (dalla radice) etichettato con T[j..i] nell’albero corrente Ii. Se necessario, estendi questo percorso aggiungendo il carattere T(i+1), assicurandoti così che la stringa T[j..i+1] stia nell’albero Ii+1 Fase i+1 Estensione j NB: Ii è il ST implicito per il prefisso T[1,i]

Algoritmo di Ukkonen Esempio di estensione b Albero per la stringa axabxb b a x 1 3 2 4 5 R bxb Albero per la stringa axabx b a x 1 3 2 4 R axabxb xabxb abxb xb

Algoritmo di Ukkonen L’algoritmo naïve di Ukkonen genera in tempo O(n3) un ST per un testo T lungo n È possibile utilizzare alcuni accorgimenti: Utilizzo di Suffix Links Per ogni nodo interno v con etichetta di percorso x (dove  è una stringa e x un singolo carattere) esiste un nodo s(v) con etichetta di percorso . Un Suffix Link collega v a s(v)). I Suffix Link, semplificando la ricerca dei suffissi durante le fasi dell’algoritmo, consentono di raggiungere un tempo O(n2) Le etichette di ciascun arco vengono rappresentate come una coppia di indici (u,s) che indicano una sottostringa P[u,s] di P. Questo consente di rappresentare l’albero dei suffissi con un’occupazione di memoria pari a O(n)

L’algoritmo di Ukkonen costruisce un albero dei suffissi in tempo O(n) Altri accorgimenti consentono di evitare di considerare più volte gli stessi caratteri della stringa T e di raggiungere quindi il limite O(n). L’aggiunta del carattere $ di fine stringa e la trasformazione dell’albero dei suffissi implicito in un albero dei suffissi reale può essere effettuata in tempo O(n) L’algoritmo di Ukkonen costruisce un albero dei suffissi in tempo O(n)

Applicazioni degli alberi dei suffissi

Ricerca esatta di stringhe Ricerca di stringhe Dato un testo T e un pattern P si vogliono ricercare tutte le occorrenze di P nel testo T Ricerca di un set di pattern Dato un testo T e un insieme di pattern P={P1,…,Ps} si vogliono ricercare tutte le occorrenze di uno qualsiasi dei pattern Pi nel testo T Una volta costruito l’albero dei suffissi di T, la ricerca di una qualsiasi stringa P di lunghezza n richiede un tempo O(n)

Ricerca di un set di pattern Ricerca da librerie di pattern di sequenze di DNA Sequence-Tagged Sites (STSs) e Expressed Sequence Tags (ESTs) STS: è intuitivamente una sequenza di 200-300 nucleotidi le cui code a dx e sx compaiono una sola volta nell’intero genoma. Pertanto un STS compare una sola volta. Obiettivo originale del HGP (Human Genome Project) era quello di identificare un insieme di STS tale che ogni sottostringa del genoma di lunghezza maggiore o uguale a 100.000 contenesse almeno uno di questi STS EST: STS che compaiono in geni Una sequenza di DNA anonima può essere mappata sul genoma ricercando gli STS contenuti in essa

Alberi di Suffissi generalizzati (1) Ricerca di una stringa in un database di stringhe (ad es. ricerca di una sequenza di DNA in un database di sequenze genomiche) Ricerca della sottostringa di lunghezza massima comune a due stringhe Ricerca di DNA contaminato Si costruisce una stringa concatenando le sequenze di DNA che possono aver contaminato la sequenza di DNA sotto analisi […]

Alberi di Suffissi generalizzati (2) Ricerca di DNA contaminato (continua) Si estende l’approccio basato su ST generalizzati per la ricerca di sottostringhe comuni alle due stringhe di partenza Si registrano le occorrenze di sottostringhe comuni di lunghezza superiore ad una soglia L. La presenza di queste stringhe nella sequenza in esame può derivare da una contaminazione avvenuta durante la procedura di estrazione e sequenziazione del DNA.

Ricerca di sequenze ripetitive Estremamente comuni nell’analisi di DNA, RNA e proteine “Families of reiterated sequences account for about one third of the human genome” [E. McConkey, 1993] Complemented palindromes Nested complemented palindromes Geni che codificano molecole di RNA che devono essere prodotte in grandi quantità Restriction enzyme cutting sites Tandem arrays

Ricerca di Maximal Pair Un Maximal Repeat in una stringa T è una coppia di sottostringhe identiche  e  tali che estendendo  e  in qualsiasi direzione si distruggerebbe la loro uguaglianza Sia  l’albero dei suffissi per la stringa S. Se una stringa  è un Maximal Repeat in S allora  è l’etichetta del percorso di uno dei nodi di .

Alberi di Suffissi nella ricerca Arabidopsis Thaliana (Michigan State Univ., Univ. of Minnesota) Creazione della mappa degli EST del genoma dell’Arabidopsis. ST utilizzati per la ricerca di contaminazioni e per la ricerca di pattern biologicamente significativi Saccharomyces Cerevisiae (Max-Plank Institute) ST utilizzati per la ricerca di sottostringhe nei database di sequenze Borrelia Burgdorferi (Brookhaven National Laboratory) Sviluppo di metodi, basati su ST, per il riassemblamento dei frammenti di DNA sequenziati

Bibliografia D. Gusfield. Algorithms on strings, trees, and sequences. Cambridge University Press, 1997 P. Weiner. Linear pattern matching algorithms. Proc. Of the 14th IEEE Symp. On Switching and Automata Theory, 1-11, 1973 E. M. McCreight. A space-economical suffix tree contruction algorithm. J. ACM, 23:262-72, 1976 E. Ukkonen. On-line construction of suffix-trees. Algorithmica, 14:249-60, 1995