210 likes | 474 Views
Allineamento. Metodo bioinformatico che date due o più sequenze ne mette in evidenza similarità/diversità, supponendo che le sequenze analizzate abbiano una storia evolutiva comune Quindi, per allineare due o più sequenze si “simulano” i processi evolutivi:
E N D
Allineamento • Metodo bioinformatico che date due o più sequenze ne mette in evidenza similarità/diversità, supponendo che le sequenze analizzate abbiano una storia evolutiva comune • Quindi, per allineare due o più sequenze si “simulano” i processi evolutivi: • Le sostituzioni non sono tutte uguali: alcune sono evolutivamente più “tollerate” dall’evoluzione di altre • E’ meglio che inserzioni/cancellazioni (gap nell’allineamento) appaiano consecutivamente • Sono stati definiti opportuni parametri di allineamento -> matrici di sostituzione PAM/BLOSUM • Ad ogni allineamento di due sequenze si associa un punteggio, dato dalla somma dei punteggi di ciascuna colonna
Allineamento • L’allineamento, così come lo abbiamo visto finora, è “globale” • Ovvero, cerca di mettere in relazione evolutiva due sequenze dall’inizio alla fine • Ovvero, suppone che per ogni a.a. o nucleotide di una sequenza ci sia un legame evolutivo con un elemento dell’altra • In realtà, quando si confrontano sequenze molto “divergenti” (grande distanza evolutiva...)
Allineamento La similarità tra due sequenze può essere limitata solo ad alcune regioni (i domini) mentre per il resto non si osserva alcuna conservazione --> nessun evidente legame evolutivo L’allineamento “globale” spesso non riesce ad allineare correttamente le due regioni effettivamente simili, perché limita inserzioni e cancellazioni
L’allineamento “locale” • Posso fare un’altra cosa: chiedere al programma che sto utilizzando “cerca all’interno di queste due sequenze due regioni che si assomigliano tra loro” • Quindi, eseguo un allineamento locale: voglio che il programma estragga solo le regioni delle sequenze che sono effettivamente simili tra loro, e allinei soltanto quelle • Ovvero, gli algoritmi di allineamento locale estraggono dalle due sequenze le due regioni che allineate producono l’allineamento dal punteggio massimo (data una matrice dei punteggi come PAM o BLOSUM) • D’altra parte, anche BLAT eseguiva un allineamento locale tra trascritti e genoma!
Globale vs locale L’allineamento “globale” probabilmente non riuscirebbe ad allineare correttamente le due regioni effettivamente simili L’allineamento locale di solito se ne accorge!
Globale vs locale • L’allineamento globale cerca legami evolutivi per le intere sequenze, dall’inizio alla fine, e produce un allineamento per tutte le basi delle sequenze • L’allineamento locale cerca regioni simili tra loro all’interno delle sequenze, e allinea soltanto quelle (nell’esempio precedente allineerebbe solo quelle in blu) - almeno una coppia, ma se ce ne sono di più, può allineare più coppie di regioni (allineate le prime due, vede se nel resto delle sequenze esistono altre coppie di regioni che producono un “buon” allineamento • Quando due sequenze sono altamente conservate, allineamento globale e locale coincidono
Globale vs locale A bit of sugar please Un peu de sucre s’il vous plait A bit of sugarplease Un peu de sucre s’il vous plait sugar- suc-re plea-se pl-ait- Allineamenti: “sugar” con “sucre” e “please” con “plait” - il resto delle sequenze viene ignorato
Ricerca per similarità • A oggi sono note milioni di sequenze di vario tipo (DNA, RNA, proteine, ecc. ecc.) • Problema: ho sviluppato un metodo per confrontare le sequenze, ma come faccio a scegliere le sequenze da allineare? • Idealmente, potrei chiedermi: data una sequenza di partenza, esistono sequenze note che le “assomigliano” • Oppure: fammi una classifica delle sequenze note sulla base della similarità ad una sequenza data
Ricerca per similarità • Esempio: ho appena sequenziato qualcosa, vorrei sapere se esiste (è già stato sequenziato) oppure no • Esempio: so che quello che ho sequenziato è nuovo. Vorrei sapere quale potrebbe essere una funzione. Cerco sequenze che assomiglino alla mia sequenza, con il principio “più le assomigliano, più è probabile che abbiano la stessa funzione” • Esempio: sto studiando un gene (es. umano). Voglio ricostruirne la storia evolutiva, vedendo se/quanti ortologhi o paraloghi ha, se/dove è conservato in altre specie, ecc. ecc.
Ricerca per similarità • Le sequenze biologiche sono solitamente depositate in banche date ad accesso pubblico o gratuito • Tre le principali: NCBI (USA), EBI (Europa), DDBJ (Giappone) • Vengono “sincronizzate” tutti i giorni: ovvero le sequenze contenute sono le stesse in tutte e tre le banche dati • Abbiamo visto il sito e le banche dati curate dall’NCBI • Idea: posso confrontare una sequenza data con tutte le sequenze contenute in una banca dati, e fare una “classifica” per similarità?
Ricerca per similarità • Oggi tutte le banche dati di sequenze permettono agli utenti di effettuare ricerche per similarità • L’utente fornisce una sequenza di “input”, che viene confrontata con tutte le sequenze dello stesso tipo contenute nella banca dati • Le sequenze della banca dati vengono allineate una per una con la sequenza di input “query”, tramite allineamento locale • All’utente viene riportata la classifica di similarità rispetto alla query, sulla base del punteggio dell’allineamento risultante con anche un’indicazione se la similarità riscontrata dall’allineamento è significativa oppure no
BLAST • BLAST (che sta per Basic Local Alignment Search Tool) è lo standard “de facto” per ricerche di questo tipo • Normalmente, ogni banca dati ha “incorporata” una ricerca per similarità tramite BLAST • … e, in effetti BLAT (Blast-Like Alignment Tool) è una versione semplificata e specializzata per allineare una sequenza ad un genoma • Noi utilizzeremo il BLAST associato alla banca dati “principale” (l’NCBI)
BLAST • Quello che fa BLAST (sommariamente): • Prende una sequenza (nucleotidica o proteica) “query” • La confronta con tutte le sequenze dello stesso tipo presenti nella banca dati • Poiché devono essere eseguiti milioni di allineamenti, utilizza una versione “velocizzata” dell’algoritmo di allineamento locale • Utilizza un “indice” delle sequenze della banca dati • Esclude a priori le sequenze della banca dati che hanno poche “speranze” di produrre un buon allineamento con la sequenza query • Calcola il punteggio di ciascun allineamento, e ordina le sequenze del database sulla base del punteggio: la prima sarà quella con punteggio più alto, e quindi la più simile • Valuta la “significatività” degli allineamenti ottenuti, ovvero se l’allineamento/punteggio ottenuto può essere indicativo di effettivo legame evolutivo, oppure può essere frutto del caso • BLAST viene quindi utilizzato solitamente per: • Scoprire se una sequenza “esiste già” • Scoprirne ortologhe/paraloghe per fare ipotesi sulla funzione o sulla storia evolutiva del gene che stiamo studiando
“Significatività” statistica • Quando viene eseguito un “BLAST”, la sequenza data viene confrontata solitamente con milioni di altre sequenze • Quando si trova un allineamento con un certo punteggio, è anche opportuno chiedersi se sia il risultato del fatto che - avendo così tante sequenze - prima o poi è “normale” che se ne trovi una che produca quell’allineamento
“Significatività” statistica • Si cerca di valutare quanto sia “probabile” che l’allineamento sia dovuto al caso • Principio che non si applica solo agli allineamenti: è spesso necessario chiedersi se ciò che si osserva sia dovuto al caso, oppure no • Il “caso” dipende da: • Com’è fatta la vostra sequenza • Quante sequenze ci sono in banca dati • Quale matrice di confronto usate
BLAST L’utilizzo è semplice: si inserisce la sequenza, e si sceglie “contro” quale insieme di sequenze allinearla. Normalmente, gli altri parametri sono impostati automaticamente
“Significatività” statistica • BLAST associa a ciascun allineamento un “E-value” (Expected Value - tradotto in italiano - “valore atteso”) • Il significato dell’E-value è Il numero atteso di sequenze della banca dati che mi aspetto per caso produrre un allineamento con lo stesso punteggio
BLAST E-value • Quando l’E-value è 1, allora vuol dire “c’è una sequenza della banca dati che mi aspetto produca per caso un allineamento con questo punteggio” -> NON significativo - le sequenze non sono abbastanza simili per essere “sospettate” di essere omologhe • Quando l’E-value è 0, allora vuol dire “ci sono zero sequenze della banca dati che mi aspetto producano per caso un allineamento con questo punteggio” -> SIGNIFICATIVO - ipotizzo le sequenze siano omologhe • E-value tra zero e 1: più è vicino allo zero più è affidabile l’ipotesi di omologia • Regola a spanne: scarto le sequenze con E-value in cui non compare la “e”!