Lezione 6 Lo string matching String matching Date due stringhe (sequenze di caratteri) vogliamo stabilire se sono ”uguali” Nel caso dello string matching, due stringhe sono uguali se ... sono uguali (”DNA” e ”RNA” non sono uguali) Noi tratteremo string matching approssimato (”DNA” è omologo a ”RNA”) Alfabeti L'alfabeto nucleotidico (standard IUPAC): A: Adenina C: Citosina T: Timina G: Guanina A=T C=G L'Uracile (U) sostituisce la T nell'RNA (non la useremo). IUPAC è l'acronimo di International Union of Pure and Applied Chemistry (Unione Internazionale di Chimica Pura ed Applicata) Alfabeti Alfabeto aminoacidico (standard IUPAC) A D F H K M P R T W Alanina Acido aspartico Fenilalanina Istidina Lisina Metionina Prolina Arginina Treonina Triptofano C E G I L N Q S V Y Cisteina Acido glutammico Glicina Isoleucina Leucina Asparagina Glutammina Serina Valina Tirosina String matching tctgtagaaggctcctaacgatg tctcctgtaggaggctcctgatg String matching tctgtagaaggctcctaacgatg ||| | ||| || |||| tctcctgtaggaggctcctgatg String matching tct---gtagaaggctcctaacgatg ||| |||| |||||||| |||| tctcctgtaggaggctcct---gatg Metrica Vogliamo avere una misura della differenza (distanza) fra due stringe studio strutturale/funzionale/evoluzionistico di stringhe biologiche confronto con database di sequenze note in ambito non biologico: correzione degli errori ortografici Esistono diversi modi per formalizzare la distanza fra due stringhe, noi ci concentreremo sulla EDIT DISTANCE che si focalizza sulla trasformazione di singoli caratteri Edit distance Le operazioni permesse sono: I: insert (inserimento, inserzione) D: delete (cancellazione, delezione, rimozione) R: replacement (substition, sostituzione) M: match (corrispondenza, accoppiamento, uguaglianza) v-intnerRIMDMDMMI wri-t-ers Esempio tct---gtagaaggctcctaacgatg MMMIIIMMMMRMMMMMMMMDDDMMMM tctcctgtaggaggctcct---gatg Edit transcript Definizione Una stringa su un alfabeto {I,D,R,M} che descrive una trasformazione da una stringa ad un'altra e' detta ”edit transcript” (trascrizione) delle due stringhe. Date due stringhe A e B, sia T la trascrizione da A a B. Se in T sostituiamo le I con D e contemporaneamente le D con le I otteniamo una trascrizione T' da B ad A. Esempio di commutatività A T B T' A v-intnerRIMDMDMMI wri-t-ers RDMIMIMMD v-intner- Edit distance Definizione La edit distance fra due stringhe e' definita come il minimo numero di operazione di edit (inserzioni, delezioni e sostituzioni) necessarie a trasformare una stringa nell'altra. NOTA BENE: i match non sono contati! La edit distance e' conosciuta anche come Levenshtein distance Edit distance problem L'edit distance problem e' computare la edit distance fra due stringhe date, in modo che l'edit transcript sia ottimale Traduzione: trovare il trascritto che minimizza la distanza. Molto spesso si usa come sinonimo ”problema dell'allineamento (globale)” Problemi le sequenze di interesse possono variare da poche basi (~700pb, reads di un Whole Genome Shotgun Project) fino a milioni di basi (un cromosoma) si vuole sapere se una sequenza e' gia' stata scoperta e caratterizzata (o una sua omologa) dalla comunita' scientifica (NCBI, National Center for Biotechnology Information) si vuole sapere se una sequenza e' parte di un'altra sequenza ... Soluzioni gia' pronte BLAST (Basic Local Alignment Search Tool) linea di comando (blastall) http://www.ncbi.nlm.nih.gov/BLAST/ Dotter programma visuale http://www.cgb.ki.se/cgb/groups/sonnhammer/Dotter.html Input per BLAST BLAST può prendere in input una o più sequenze nucleotidiche o aminoacidiche Bisogna specificare un database di confronto che può essere nucleotidico o aminoacidico Quando si confrontano gli alfabeti nucleotidici con quelli aminoacidici bisogna traslare le sequenze nucleotidiche nei sei diversi modi (frame di lettura) e convertire i codoni Codoni A GCT, GCC, GCA, GCG L TTA, TTG, CTT, CTC, CTA, CTG R CGT, CGC, CGA, CGG, AGA, AGG K AAA, AAG N AAT, AAC M ATG D GAT, GAC F TTT, TTC C TGT, TGC P CCT, CCC, CCA, CCG Q CAA, CAG S TCT, TCC, TCA, TCG, AGT, AGC E GAA, GAG T ACT, ACC, ACA, ACG G GGT, GGC, GGA, GGG W TGG H CAT, CAC Y TAT, TAC I ATT, ATC, ATA V GTT, GTC, GTA, GTG start ATG, GTG stop TAG, TGA, TAA Open Reading Frame (ORF) BLAST Query Sequence Database type Algorithm for comparison nucleotide nucleotide blastn nucleotide (translated) protein blastx protein nucleotide (translated) tblastn nucleotide (translated) nucleotide (translated) tblastx protein protein blastp MEGABLAST Esiste una versione ”greedy” di BLAST Serve per cercare piccole differenze fra sequenze nucleotidiche (es. differenze derivante da errori di sequenziamento) E' 10 volte più veloce di BLAST PSI-BLAST e PHI-BLAST PSI-BLAST cerca membri di una famiglia di proteine oppure costruisce una matrice di costi specifica PHI-BLAST cerca similarità con la proteina di riferimento usando un pattern specificato Query Database Informazioni generali Distribuzione Riassunto E-Value L'E-Value (Expect Value) è un parametro che descrive il numero di ”hits” con punteggio uguale o migliore di quello osservato che ci si aspetta di vedere in un database della stessa dimensione di quello in esame. Descresce esponenzialmente rispetto allo Score Per esempio, E=1 si può interpretare come il fatto che ci si può aspettare di vedere 1 match con punteggio uguale o superiore Più il valore è vicino a zero e più l'hit è significativo L'allineamento migliore Allineamento con gaps BLASTX (TBLASTN) BLASTP TBLASTN BL2SEQ Serve per fare l'allineamento fra due sequenze particolari invece che fra una sequenza e un database Dotter Dotter è un programma ”dotplot” per la comparazione grafica di due (o più) sequenze. Ogni base di una sequenza è comparata con ogni base delle altre sequenze. il valore di una determinata base dipende anche dalle basi che gli stanno attorno (è un valore locale) viene usata una finestra di lettura che scorre fra le due sequenze da allineare Dotter Genera una matrice, ogni punto della matrice rappresenta il valore dell'omologia per la coppia di basi con quelle coordinate Le regioni omologhe si riconoscono da linee diagonali Se si compara una sequenza contro se stessa la diagonale principale avrà un allineamento del 100% Esempio Esempio con una sliding window di 3 Matrice dei costi: DNA+5/-4 a a t g t c a c t 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 t 0 0 64 0 0 0 64 0 g 0 0 0 96 0 64 0 0 t 0 0 0 0 64 0 64 0 a 0 0 0 0 0 64 0 0 a 0 0 0 64 0 0 0 0 c 0 0 0 0 64 0 64 0 BLOSUM62 A R N D C Q E G H I L K M F P S T W Y V B Z X * A 4 -1 -2 -2 0 -1 -1 0 -2 -1 -1 -1 -1 -2 -1 1 0 -3 -2 0 -2 -1 -1 -4 R -1 5 0 -2 -3 1 0 -2 0 -3 -2 2 -1 -3 -2 -1 -1 -3 -2 -3 -1 0 -1 -4 N -2 0 6 1 -3 0 0 0 1 -3 -3 0 -2 -3 -2 1 0 -4 -2 -3 3 0 -1 -4 D -2 -2 1 6 -3 0 2 -1 -1 -3 -4 -1 -3 -3 -1 0 -1 -4 -3 -3 4 1 -1 -4 C 0 -3 -3 -3 9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -1 -4 Q -1 1 0 0 -3 5 2 -2 0 -3 -2 1 0 -3 -1 0 -1 -2 -1 -2 0 3 -1 -4 E -1 0 0 2 -4 2 5 -2 0 -3 -3 1 -2 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 G 0 -2 0 -1 -3 -2 -2 6 -2 -4 -4 -2 -3 -3 -2 0 -2 -2 -3 -3 -1 -2 -1 -4 H -2 0 1 -1 -3 0 0 -2 8 -3 -3 -1 -2 -1 -2 -1 -2 -2 2 -3 0 0 -1 -4 I -1 -3 -3 -3 -1 -3 -3 -4 -3 4 2 -3 1 0 -3 -2 -1 -3 -1 3 -3 -3 -1 -4 L -1 -2 -3 -4 -1 -2 -3 -4 -3 2 4 -2 2 0 -3 -2 -1 -2 -1 1 -4 -3 -1 -4 K -1 2 0 -1 -3 1 1 -2 -1 -3 -2 5 -1 -3 -1 0 -1 -3 -2 -2 0 1 -1 -4 M -1 -1 -2 -3 -1 0 -2 -3 -2 1 2 -1 5 0 -2 -1 -1 -1 -1 1 -3 -1 -1 -4 F -2 -3 -3 -3 -2 -3 -3 -3 -1 0 0 -3 0 6 -4 -2 -2 1 3 -1 -3 -3 -1 -4 P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4 7 -1 -1 -4 -3 -2 -2 -1 -1 -4 S 1 -1 1 0 -1 0 0 0 -1 -2 -2 0 -1 -2 -1 4 1 -3 -2 -2 0 0 -1 -4 T 0 -1 0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1 1 5 -2 -2 0 -1 -1 -1 -4 W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1 1 -4 -3 -2 11 2 -3 -4 -3 -1 -4 Y -2 -2 -2 -3 -2 -1 -2 -3 2 -1 -1 -2 -1 3 -3 -2 -2 2 7 -1 -3 -2 -1 -4 V 0 -3 -3 -3 -1 -2 -2 -3 -3 3 1 -2 1 -1 -2 -2 0 -3 -1 4 -3 -2 -1 -4 B -2 -1 3 4 -3 0 1 -1 0 -3 -4 0 -3 -3 -2 0 -1 -4 -3 -3 4 1 -1 -4 Z -1 0 0 1 -3 3 4 -2 0 -3 -3 1 -1 -3 -1 0 -1 -3 -2 -2 1 4 -1 -4 X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -4 * -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 1 A cosa serve DOTTER? ”vedere” l'omologia fra regioni diverse es. riconoscere se una regione di un sequenza è presente in una regione di un'altra sequenza riconoscere e identificare regioni ripetute in una singola sequenza ricerca delle LTR (Long Terminal Repeat) e delle TIR (Terminal Inverted Repeat) di elementi trasponibili Come si ”legge” Dotter? Dotter e Edit trascript M R I D Grayramp Grayramp Grayramp Zoom Tandem Repeats Match sullo strand opposto Piu' sequenze Proteine Dotter puo' fare l'allinemaneto fra sequenze aminoacidiche Non si puo' fare nucleotidi vs aminoacidi e viceversa Strand unico Viene utilizzata una matrice di costi (BLOSUM62) per calcolare l'omologia BLAST pro: è disponibile online e non richiede risorse di calcolo locali è di facile lettura e interpretazione da linea di comando è facilmente automatizzabile contro: non è interattivo si vedono solo le omologie migliori (scelte da lui) non è lo strumento adeguato per cercare sequenze ripetute DOTTER pro: è disponibile per diverse architetture è visuale e interattivo si può osservare tutto l'allineamento utilissimo per cercare sequenze ripetute contro: richiede risorse di calcolo locali si possono osservare poche sequenze alla volta non è automatizzabile BLAST vs DOTTER Si usa BLAST per cercare omologie con proteine o sequenze note in grandi database Si usa Dotter per cercare le zone ripetute o per cercare omologie con altre sequenze (poche)