La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "UNIVERSITA DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 6 Alberi di suffissi."— Transcript della presentazione:

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

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

3 3 xyabcxabcxabcdeqfegT P abcxabcde Il problema: ricerca di stringhe Ricerca delle occorrenze di una stringa P (di lunghezza m) allinterno di un testo T (di lunghezza n)

4 4 xyabcxabcxabcdeqfegT Pabcxabcde xyabcxabcxabcdeqfeg 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: 4 algoritmo di Boyer-Moore 4 algoritmo di Knuth-Morris-Pratt Il problema: ricerca di stringhe Ricerca delle occorrenze di una stringa P (di lunghezza m) allinterno di un testo T (di lunghezza n)

5 5 La soluzione con alberi di suffissi Si impiega: un tempo O(n) per la costruzione dellalbero 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

6 6 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

7 7 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]

8 8 T: xabxac b x a c c a c ax x a c b x a c c u w b R u e w sono nodi interni Larco (R,w) ha etichetta xa La string-depth di w è 2 Letichetta del percorso è xabxac Letichetta del percorso è xabxac Il percorso con etichetta xabx termina in mezzo ad un arco Il percorso con etichetta xabx termina in mezzo ad un arco Esempio di albero dei suffissi

9 9 Proprietà di un ST Letichetta di un percorso dalla radice a un nodo è la concatenazione nellordine delle sottostringhe che etichettano gli archi che costituiscono il percorso Letichetta di percorso di un nodo è letichetta del percorso dalla radice a quel nodo La profondità di un nodo v è il numero di caratteri nelletichetta di v Un percorso che termina nel mezzo di un arco (u,v) divide letichetta di (u,v) in un punto prestabilito. Letichetta di questo percorso è letichetta di u concatenata con i caratteri sullarco (u,v) fino al punto di divisione.

10 10 Ricerca di una stringa mediante un albero dei suffissi Per cercare le occorrenze di P in T: Creare lalbero 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 è unoccorrenza di P in T

11 11 T: xabxac P: xa axw b x a c c a c x a c b x a c c u b R Occorrenze alle posizioni 1 e 4 Esempio (1)

12 12 d? T: xabxac P: ad axw b x a c c a c x a c b x a c c u b R Non vi sono occorrenze di P in T Esempio (2)

13 13 d? T: xabxac P: xacd axw b x a c c a c x a c b x a c c u b R Non vi sono occorrenze di P in T Esempio (3)

14 14 La definizione di albero dei suffissi non garantisce lesistenza 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 Basta aggiungere alla fine di T un carattere che non compare mai in T ($ ad esempio) Soluzione Carattere di fine stringa ($)

15 15 Costruisce lalbero dei suffissi implicito per la stringa T ê Lalbero 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 a $ a $ x a $ $ x b x b x a $ $ R a b a a x a x b x b x a R Algoritmo di Ukkonen

16 16 Costruisci l albero I 1 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 I i. Se necessario, estendi questo percorso aggiungendo il carattere T(i+1), assicurandoti cos ì che la stringa T[j..i+1] stia nell albero I i+1 Algoritmo di Ukkonen naive Fase i+1 Estensione j NB: I i è il ST implicito per il prefisso T[1,i] Algoritmo di Ukkonen

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

18 18 Lalgoritmo naïve di Ukkonen genera in tempo O(n 3 ) un ST per un testo T lungo n È possibile utilizzare alcuni accorgimenti: 4 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 dellalgoritmo, consentono di raggiungere un tempo O(n 2 ) 4 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 lalbero dei suffissi con unoccupazione di memoria pari a O(n) Algoritmo di Ukkonen

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

20 Applicazioni degli alberi dei suffissi

21 21 Una volta costruito lalbero dei suffissi di T, la ricerca di una qualsiasi stringa P di lunghezza n richiede un tempo O(n) Una volta costruito lalbero dei suffissi di T, la ricerca di una qualsiasi stringa P di lunghezza n richiede un tempo O(n) 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={P 1,…,P s } si vogliono ricercare tutte le occorrenze di uno qualsiasi dei pattern P i nel testo T

22 22 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 nucleotidi le cui code a dx e sx compaiono una sola volta nellintero 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 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

23 23 […] 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

24 24 Alberi di Suffissi generalizzati (2) Ricerca di DNA contaminato (continua) Si estende lapproccio 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.

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

26 26 Sia lalbero dei suffissi per la stringa S. Se una stringa è un Maximal Repeat in S allora è letichetta del percorso di uno dei nodi di. 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

27 27 Alberi di Suffissi nella ricerca Arabidopsis Thaliana (Michigan State Univ., Univ. of Minnesota) Creazione della mappa degli EST del genoma dellArabidopsis. 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

28 28 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


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

Presentazioni simili


Annunci Google