ALLINEAMENTO DI SEQUENZE
|
|
- Lazzaro Pisani
- 6 anni fa
- Visualizzazioni
Transcript
1 ALLINEAMENTO DI SEQUENZE Gli obiettivi degli algoritmi di allineamento di sequenze di acidi nucleici o proteine sono molteplici. Possiamo ricordare la ricerca di similarità nelle banche dati, la costruzione di alberi filogenetici e l identificazione di motivi funzionali. Un applicazione tipica è quella di scoprire geni simili ad un gene di cui si conosce la funzione, ad esempio in questo modo è stata verificata la somiglianza tra geni oncogeni e geni deputati alla crescita cellulare. Da un punto di vista biologico è importante notare che gli algoritmi di allineamento individuano una similarità tra sequenze, cioè una somiglianza di tipo algoritmico indipendente dalle cause che la generano. Il concetto di similarità è differente da quello biologico di omologia, che indica una similarità dovuta ad una comune origine filogenetica. La similarità può esistere anche in assenza di omologia, per caso o per l effetto di fenomeni di convergenza adattativa. Per convergenza adattativa si indica la somiglianza tra strutture dovuta alla pressione evolutiva. Ad esempio a livello macroscopico i coccodrilli e gli alligatori pur essendo simili morfologicamente hanno una origine comune filogenetica remota, mentre la somiglianza è dovuta all evoluzione parallela guidata da ambienti molto simili. La stessa cosa può avvenire a livello molecolare. Gli algoritmi bioinformatici comunque possono fornire solo misure di similarità, mentre la natura delle cause della similarità deve essere indagata a livello biologico. In generale una sequenza A sarà definita come una stringa formata da N simboli, dove i simboli apparterranno ad un certo alfabeto. Quindi: A = (a 1, a 2, a 3,..a N ) Con a i ε (A,T,C,G) nel caso di sequenze di acidi nucleici e a i ε (A,R,N,D,C,Q,E,G,H,I,L,K,M,F,P,S,T,W,Y,V) nel caso di sequenze proteiche. Notiamo che il concetto è applicabile a qualsiasi segnale digitale. Ad esempio un segnale s(nt) è una stringa formata da simboli appartenenti ad un alfabeto dipendente dalla quantizzazione (ad esempio un alfabeto di 2 8 simboli nel caso di segnali ad 8 bit. Date due sequenze A e B descritte da due stringhe formate da N ed M simboli rispettivamente, allineare le due sequenze vuol dire trovare la sequenza f(b) tale che la distanza tra A e C=f(B) sia la minima possibile (oppure che la similarità sia massima). f() è una qualche trasformazione che può essere applicata alla sequenza, ad esempio un semplice shift di n caratteri. Formalizzando, l operazione di allineamento consiste in tre passi fondamentali: 1. Scelta di una metrica di allineamento (distance). 2. Definizione delle possibili trasformazioni f() che s possono applicare (search space).
2 3. Definizione di un algoritmo che trovi il minimo (o il massimo) della metrica nel search space (algoritmo di ottimizzazione). Una buona distanza sarà sempre non negativa e simmetrica (cioè d(a,b)=d(b,a)). La distanza sarà uguale a zero se le sequenze sono perfettamente allineate. Il modello più semplice di distanza definito in bioinformatica è la distanza di Hamming, definita come il numero di posizioni in cui due stringhe differiscono tra loro. La distanza di Hamming si calcola confrontando le coppie (ai,bi) e contando le coppie differenti. Analogamente, la similarità di Hamming si computa contando le coppie uguali. Notiamo che le metriche di Hamming dipendono dalla lunghezza delle sequenze, quindi può essere opportuno usare delle versioni normalizzate alla lunghezza delle sequenze stesse. Supponiamo di utilizzare la distanza di Hamming e che f() sia un operazione di shift delle due sequenze. Siano ad esempio: A = A A K K Q W B = A A K Q W La ricerca dell allineamento consiste nel considerare le posizioni: A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W A A K K Q W A A K Q W Per ognuna delle possibili posizioni dobbiamo valutare il numero di simboli che si appaiano esattamente, ovvero la similarità di Hamming. In questo caso l allineamento ottimo risulta quello della quinta casella con punteggio 4 (shift = +1). In questo caso il search space ha dimensione 10= N+M-1 che sono i possibili valori dello shift. Per trovare lo shift ottimo abbiamo enumerato tutti i possibili valori di shift e preso alla fine quello che massimizza la metrica scelta. Questo approccio è detto ricerca esaustiva o brute force. Una alternativa grafica alla ricerca esaustiva è la computazione della cosiddetta dot matrix. In questo tipo di rappresentazione, viene costruita una matrice NxM, e gli elementi della matrice vengono posti ad uno in caso di corrispondenza tra i simboli delle due sequenze. Nel caso di due sequenze identiche, la dot-matrix sarà formata da una diagonale continua con del rumore, costituito dagli allineamenti casuali. In generale, un indice di similarità alto tra due sequenze corrisponderà ad una diagonale marcata. Il rumore casuale può essere ridotto con opportuni algoritmi di filtraggio.
3 L approccio brute force è applicabile solo per problemi semplici. Supponiamo ad esempio di volere allineare tre sequenze di lunghezza N, definendo la similarità come il numero di coincidenze nelle tre sequenze (quindi S=0,1,2 per ogni locazione). Il numero di casi da computare è ora (2N-1) 2. Se le sequenze sono K, il numero diventa (2N-1) K-1. Si vede come per N e K anche piccoli il numero di casi diventi estremamente grande. Più precisamente si dirà che la complessità computazionale dell algoritmo brute force è troppo grande. In generale per risolvere problemi di allineamento di interesse pratico è quindi necessario utilizzare algoritmi di ottimizzazione più efficienti (cioè con complessità computazionale minore) della semplice ricerca esaustiva. E quindi opportuno introdurre il concetto di complessità computazionale che è di fondamentale importanza nello studio degli algoritmi in bioinformatica. EDIT DISTANCE Questo approccio ha alcuni evidenti svantaggi. Innanzitutto non introduce nessuna considerazione di tipo biologico, per cui tutti i tipi di allineamenti sono considerati equiprobabili. Inoltre introduce un errore sistematico rispetto alla lunghezza delle sequenze. Consideriamo infatti due sequenze di lunghezza N di acidi nucleici, e sia K la lunghezza della parte sovrapposta durante i vari tentativi di allineamento. In media avremo K/4 coincidenze tra simboli per puri motivi statistici. Questo indice di similarità quindi favorisce le posizioni dove K è più grande. Infine non tiene conto della possibilità di inserzione di un gap. In bioinformatica, il problema dell allineamento di due sequenze deve essere considerare la possibilità che il migliore allineamento comporti l inserimento di gap nelle sequenze. Il significato biologico di un gap è nel fatto che nel corso dei processi evolutivi possono avvenire fenomeni di inserzione e/o delezione che comportano lunghezze diverse per sequenze omologhe di DNA o proteine. Consideriamo ad esempio le due sequenze di aminoacidi: IPLMTRWDQEQESDFGHKLPIYTREWCTRG CHKIPLMTRWDQQESDFGHKLPVIYTREW
4 Possono essere allineate con score 10. Se però inseriamo due gap abbiamo un allineamento molto migliore (score 25). IPLMTRWDQEQESDFGHKLP-IYTREWCTRG CHKIPLMTRWDQ-QESDFGHKLPVIYTREW Il primo gap ad esempio può corrispondere all inserzione di E nella prima sequenza o alla delezione di un simbolo non noto nella seconda sequenza. Chiaramente, rappresentando un gap una modificazione di tipo biologico l inserzione dello stesso andrà penalizzata a livello di punteggio di allineamento. Una definizione alternativa di similarità che consente di inserire il concetto di gap è l inverso della edit distance, introdotta da Levenshtein. La edit distance tra due stringhe è il numero minimo di operazioni di editing necessarie per trasformare una stringa nell altra. Le possibili operazioni di editing sono l inserzione, la cancellazione e la sostituzione di un simbolo con un altro. L edit distance è equivalente alla distanza di Hamming se non si considerano le operazioni di inserzione e cancellazione. Tenendo conto delle operazioni di inserzione e cancellazione si ottiene un modello di distanza più adeguato alla realtà biologica. Evidentemente esistono infinite combinazioni di operazioni di inserzione, cancellazione e sostituzione che trasformano una stringa in un altra. Ad esempio, consideriamo le stringhe: S1: TGCATAT S2: ATCCGAT E possibile trasformare S1 in S2 con 5 operazioni: TGCATAT Cancellare l ultima T TGCATA Cancellare l ultima A TGCAT Aggiungere A all inizio ATGCAT sostituzione di G con C ATCCAT Inserire una G ATCCAT Sembrerebbe quindi che la edit distance sia 5. In realtà è possibile trasformare S1 in S2 con sole 4 operazioni: TGCATAT Inserimento di A in prima posizione ATGCATAT cancellazione di T alla posizione 6 ATGCAAT sostituzione di A con G
5 ATGCGAT ATCCGAT sostituzione di G con C La edit distance tra le stringhe è quindi 4. Il problema del calcolo della edit distance tra due sequenze è quindi quello di trovare tra tutte le possibili trasformazioni quella che richiede il numero minimo di operazioni. E facile verificare che la possibilità di inserire spazi (gap) nelle due sequenze aumenta in modo esponenziale la complessità degli algoritmi brute-force di allineamento. Limitandoci ad un solo gap, l inserzione dello stesso in una sequenza di N simboli crea N nuove sequenze, ognuna delle quali andrebbe allineata con la seconda sequenza ottenendo una complessità O(n 3 ). Aumentando il numero di gap, la complessità diviene O(n n ). Diviene quindi impossibile utilizzare algoritmi esaustivi (o brute-force) ma bisogna passare ad algoritmi più efficienti, quali quelli di programmazione dinamica. Il problema del calcolo della edit distance può essere formalizzato nel modo seguente: Definiamo allineamento di due stringhe v (di n caratteri) e w (di m caratteri) una matrice con due righe, ognuna delle quali contiene i caratteri di v e w nell ordine in cui compaiono in v e w, eventualmente con degli spazi bianchi (carattere nullo) tra di essi. Ad esempio la matrice seguente è un allineamento delle stringhe S1 e S2 definite prima: Si può supporre che non ci siano colonne composte solo da spazi, perché questo comporterebbe un aumento inutile del numero di inserzioni. Sotto questa ipotesi, il numero massimo di colonne della matrice di allineamento è n+m. Le colonne che contengono lo stesso simbolo si dicono matches, quelle con simboli diversi mismatches. Le colonne con uno spazio si dicono indels, divise in insertions (spazio nella colonna superiore) e deletions (spazio nella colonna inferiore). Ovviamente vista l arbitrarietà della scelta dell ordine delle sequenze i concetti di inserzione e delezione sono interscambiabili. Nell esempio abbiamo 5 matches, 0 mismatches, 2 insertions e 2 deletions. Dal punto di vista dell edit distance, l allineamento in figura equivale alle operazioni: ATGTTAT ATCGTTAT ATCGTTATC ATCGTATC ATCGTAC
6 Quindi ad un numero di trasformazioni 4. In generale il numero di indels in un allineamento senza mismatch è equivalente al numero di trasformazioni del calcolo della edit distance. Il calcolo della edit distance è quindi equivalente al calcolo della matrice di allineamento ottima. La matrice di allineamento può anche essere scritta come il numero di simboli delle stringhe presenti ad un specifica posizione: partendo da (0,0), nella prima colonna abbiamo un simbolo per ciascuna stringa (1,1), poi (2,2), poi abbiamo uno spazio e quindi (2,3), etc. Questa rappresentazione corrisponde ad un percorso diagonale in una matrice. In generale ogni percorso diagonale nella matrice corrisponde ad un possibile allineamento. Ogni segmento che congiunge due nodi di un percorso è equivalente ad una colonna dell allineamento. Segmenti verticali ed orizzontali corrispondono all inserimento di uno spazio. A questo punto abbiamo individuato una corrispondenza tra il problema dell allineamento di due sequenze ed il problema di trovare un percorso ottimo in una matrice formata dalle due sequenze in esame. Tutti i problemi di allineamento di sequenze possono essere ricondotti quindi ad un problema di tipo matriciale, risolvibile con algoritmi di tipo dynamic programming. Nell esempio, non essendoci mismatch trovare il percorso ottimo equivale a trovare il percorso a lunghezza minima evitando il più possibile le deviazioni rappresentate dagli indels. In generale per risolvere il problema del percorso ottimo, dobbiamo in qualche modo pesare i vari nodi della matrice introducendo una qualche metrica.
7 Nel caso della edit distance, mismatch, inserzioni e delezioni vengono pesate tutte con valore -1. In generale, una misura di similarità che tenga conto dell inserimento di gap dovrà tener conto del numero di gap inseriti e della loro lunghezza. Formalizzando avremo l espressione: score = L i= 1 G s( a, b ) δ i i [ γ + ( len( j) 1) ] j= 1 Dove L è la lunghezza dell allineamento che stiamo considerando, cioè della parte in cui le due sequenze si sovrappongono. s(a,b) è lo score dell appaiamento di due residui, nei casi finora illustrati avremmo s(a,b)=1 se a=b, 0 altrimenti. G è il numero di gap inseriti. γ è la penalità per l inserzione di un gap, mentre δ è la penalità per l allungamento di un gap esistente. len rappresenta la lunghezza del gap. Problema della ricerca della maggiore sottosequenza comune (Longest Common Subsequences, LCS) Per capire come funziona l approccio dynamic programming consideriamo un problema abbastanza semplice, cioè il problema LCS. Definiamo una sottosequenza v come una stringa di simboli, anche non consecutivi, estratta ordinatamente da una sequenza A. Ad esempio se A=ATTGCTA, sottosequenze sono AGCA e ATTA, mentre TGTT non è una sottosequenza. Una sottosequenza comune a due sequenze A e B è una sottosequenza presente in ambedue le sequenze. Ad esempio TCTA è una sottosequenza comune di
8 ATCTGAT e TGCATA. Il problema LCS consiste nel trovare la sottosequenza comune più lunga. Se s(a,b) è la lunghezza della più lunga sottosequenza comune, la edit distance tra A e B considerando possibili solo le operazioni di inserzione e di delezione sarà: d(a,b)=n+m-s(a,b). Il problema LCS corrisponde a considerare l ipotesi più semplice possibile per la definizione dello score di allineamento: S i,j = 1 se il residuo i della sequenza #1 è lo stesso del residuo j della sequenza #2 (match score, punteggio di appaiamento); altrimenti scegliamo: S i,j = 0 (mismatch score, punteggio per il mancato appaiamento) w = 0 (cioè γ=0 e δ=0) (gap penalty, penalità per il gap) Consideriamo ora le due sequenze: G A A T T C A G T T A G G A T C G A (sequenza #1, lunghezza M=11) (sequenza #2, lunghezza N=7) Vogliamo risolvere il problema LCS per queste sequenze. Il problema LCS può essere risolto attraverso un algoritmo di dynamic programming, che comprende tre passi fondamentali: 1. Inizializzazione 2. Riempimento della matrice 3. Traceback (tracciamento all indietro, recupero del percorso ottimo. Inizializzazione Il primo passo è creare una matrice vuota con M+1 colonne ed N+1 righe (o viceversa, naturalmente). Ogni riga e colonna hanno come etichetta uno dei residui delle due sequenze. Notiamo che un percorso sulla matrice corrisponde ad un possibile allineamento, ad esempio se consideriamo la diagonale (in rosso) abbiamo l allineamento corrispondente: G A A T T C A G T T A G G A T C G A Il percorso in verde corrisponde all allineamento: G A A T T C A G T T A G G A T C G A
9 Il percorso in blu corrisponde ad un allineamento con gap : G A A T T C A G T T A G G A T C G A In pratica un salto in orizzontale corrisponde ad un gap inserito nella seconda sequenza, un salto in verticale ad un gap inserito nella prima sequenza. Poiché un residuo in una sequenza può appaiarsi con un solo residuo nell altra sequenza, i percorsi possibili nella matrice, quelli cioè corrispondenti a possibili allineamenti, devono rispettare le regole: 1. Da una casella ci si può muovere solo da destra verso sinistra, dall alto verso il basso o lungo la diagonale discendente. 2. Su ogni riga ci può essere un solo punto del percorso. 3. Su ogni colonna ci può essere un solo punto del percorso. Passiamo ora all inizializzazione della matrice. Possiamo riempire con 0 la prima riga e la prima colonna della matrice. Riempimento della matrice Partiamo dall angolo superiore sinistro della matrice e riempiamo la matrice stessa, riempiendo via via tutte le caselle con il Massimo punteggio di allineamento possibile M i,j. Per trovare M i,j per ogni i,j è
10 necessario conoscere lo score delle caselle sinistra, destra e diagonale ascendente rispetto a i, j. In altre parole, è necessario conoscere M i-1,j, M i,j-1 and M i-1, j-1. M i,j sarà definito dalla formula: M i,j = MAX[ M i-1, j-1 + S i,j (match/mismatch sulla diagonale), M i,j-1 + w (gap nella sequenza #1), M i-1,j + w (gap nella sequenza #2)] Nell esempio, M i-1,j-1 è in rosso, M i,j-1 è in verde e M i-1,j è in blu. Di conseguenza, possiamo calcolare lo score nel punto 1,1 nella matrice. Visto che il primo residuo nelle due sequenze è G, S 1,1 = 1, e, per le ipotesi fatte inizialmente, w = 0. Allora, M 1,1 = MAX[M 0,0 + 1, M 1, 0 + 0, M 0,1 + 0] = MAX [1, 0, 0] = 1. Dovremo quindi inserire il valore 1 nella posizione 1,1 della matrice. Avendo posto a 0 la penalità per il gap, la riga e la colonna 1 possono essere riempite con 1. Prendiamo come esempio la riga 1. Alla colonna 2, il valore da inserire è il massimo tra 0 (per il mancato allineamento), 0 (per un gap verticale) e 1 (gap orizzontale). Il resto della riga 1 viene riempito nello stesso modo fino alla colonna 8. In questo punto, abbiamo una G in ambedue le sequenze (azzurro). Quindi, il valore della cella alla riga 1 e colonna 8 sarà il massimo tra 1 (congruenza tra i residui), 0 (gap verticale) e 1 (gap orizzontale). Avremo nuovamente il valore 1. Il resto della riga 1 e della colonna 1 saranno analogamente riempiti con 1.
11 Passiamo ora alla colonna 2. La posizione alla riga 2 assumerà il valore 1 (massimo tra 1 (mismatch), 1(gap orizzontale) or 1 (gap verticale)). Alla posizione (3,2 colonna=2, riga=3), abbiamo il residuo A in ambedue le sequenze. Quindi, il valore sarà il massimo tra 2(match), 1 (gap orizzontale), e 1 (gap verticale), quindi 2. La posizione (4,2) assumerà il valore 2 (massimo tra 1 (mismatch), 1 (gap orizzontale), 2 (gap verticale).si prosegue così fino all ultima riga, dove abbiamo il massimo tra 2 (match), 1 (gap orizzontale) and 2 (gap verticale). Con la stessa tecnica si riempie la colonna 3. Ed infine tutta la matrice: Ricostruzione del percorso ottimo Una volta riempita la matrice, il punteggio massimo ottenuto sull ultima riga è 6, corrispondente all angolo inferiore sinistro. Esiste quindi un allineamento, con o senza gap, che con le condizioni
12 imposte produce tale score. La ricostruzione del percorso ottimo (traceback step) consente di ricostruite tale allineamento. In generale gli allineamenti ottimi potranno essere più di uno. La ricostruzione del percorso ottimo inizia dalla casella con il massimo score, nel nostro caso la (8,11). Il processo di ricostruzione verifica per ogni casella quali siano le possibili caselle predecessori. Le possibilità sono tre: la casella sinistra (gap nella sequenza #2), la diagonale sinistra/alto (match/mismatch), e la cella superiore (gap nella sequenza #1). Nel nostro caso, I possibili predecessori della casella (8,11) sono indicate in rosso e sono tutti uguali a 5. Poiché la cella corrente ha valore 6, l unico predecessore possibile è quello in diagonale. Se esiste più di un predecessore, è possibile sceglierne uno in modo arbitrario. La prima coppia di residui è quindi: (Seq #1) (Seq #2) A A Consideriamo ora la casella (7,10) con il valore 5 e consideriamo i possibili predecessori. In questo caso, abbiamo la cella con il 5 in rosso. Il movimento in orizzontale agginge un gap alla sequenza 2, quindi abbiamo: (Seq #1) (Seq #2) T A _ A
13 Proseguendo, dobbiamo inserire un altro gap nella sequenza 2: Con Il relativo allineamento: (Seq #1) (Seq #2) T T A A Continuando il procedimento, arriviamo alla casella (1,1) con il percorso: Ottenendo l allineamento : G A A T T C A G T T A G G A T C G A Quindi la sottosequenza comune più lunga è GATCGA Notiamo che quando sono presenti più celle sulla stessa riga abbiamo dovuto selezionare un sono accoppiamento scegliendo la posizione del gap in modo da massimizzare lo score complessivo. Esistono anche delle soluzioni alternative, come:
14 G A A T T C A G T T A G G A T C G A Con lo stesso punteggio complessivo di allineamento e la sottosequenza comune GATCGA. Di solito gli algoritmi di allineamento non daranno tutte le possibili soluzioni a parità di punteggio massimo, ma solo una delle soluzioni possibili per minimizzare i tempi di calcolo. Il problema dell allineamento globale di due sequenze Il problema generale dell allineamento di due sequenze può essere risolto in modo analogo al problema LCS, cambiando opportunamente i valori di M i,j. In generale, aggiungendo il simbolo del gap - all alfabeto dei simboli, possiamo definire una matrice di scoring di dimensione (k+1)x(k+1), con k=4 per le sequenze di nucleotidi e K=21 per le sequenze proteiche. Il problema diviene quindi quello di trovare l allineamento di due sequenze avendo come input anche la matrice di scoring. Il problema LCS diviene un caso particolare del problema dell allineamento globale. Pensiamo ora di applicare questo schema di punteggio: S i,j = 2 se il residuo i della sequenza #1 è lo stesso del residuo j della sequenza #2 (match score, punteggio di appaiamento) altrimenti S i,j = -1 (mismatch score). Per l inserzione di un gap introduciamo un penalità w = -2 (gap penalty). La matrice iniziale è la medesima: Nel riempimento della matrice adottiamo la tecnica vista in precedenza. La casella (1,1) andrà riempita con il massimo tra [2,-2,-2], cioè M 1,1 = MAX[M 0,0 + 2, M 1,0-2, M 0,1-2] = MAX[2, -2, -2] = 2.
15 Possiamo mantenere memoria del percorso scelto (cioè del precursore della cella (1,1)) per semplificare l operazione di traceback (freccia nera). Passando alla cella (2,1), abbiamo M 1,2 = MAX[M 0,1 + 2, M 1,1-2, M 0,2-2] = MAX[0 + 2, 2-2, 0-2] = MAX[2, 0, -2]=2. Inseriamo un freccia nera verso M[0,1] che punta al Massimo score. Proseguendo con la cella (3,1), abbiamo M 1,3 = MAX[M 0,2-1, M 1,2-2, M 0,3-2] = MAX[0-1, 2-2, 0-2] = MAX[-1, 0, -2]=0. In questo modo è possibile riempire tutta la matrice. Consideriamo la cella (2,3), dove abbiamo S 3,2 = -1 e M 3,2 = MAX[ M 2,1-1, M 3,1-2, M 2,2-2] = MAX[0-1, -1-2, 1-2] = MAX[-1, -3, -1] = -1. Possiamo quindi avere anche punteggi negativi. Qui abbiamo due vie possibili che producono il medesimo score (-1). Dobbiamo tenere traccia dei due possibili percorsi (due frecce nere).
16 La matrice completa dovrebbe essere a meno di errori: Consideriamo le due celle con punteggio (4) sull ultima riga. Attraverso i puntatori inseriti abbiamo semplificato l algoritmo di traceback, a spese di una maggiore complessità dell algoritmo di riempimento della matrice.
17 Un percorso possibile è quello in verde, che corrisponde all allineamento: G A A T T C A G T T A G G A T C G A Abbiamo quindi due residui appaiati senza gap. Il secondo percorso possibile risulta quello in rosso, corrispondente a: G A A T T C A G T T A G G A T C G A Qui abbiamo invece 5 appaiamenti con due gap. Rispetto al caso precedente è facile notare come l inserimento di una penalità sul gap abbia introdotto notevoli differenze negli allineamenti trovati. Notiamo come allo stesso punteggio possano corrispondere allineamenti diversi. E anche possibile che il cammino da seguire per ottenere un determinato punteggio non sia univoco, cioè che in una casella si possano seguire due diversi percorsi. Ad esempio il percorso in rosso ha una possibile alternativa indicata in blu.
18 Il percorso ottimo è quello che da come risultato (5) nell ultima riga, e cioè: Anche qui abbiamo diversi percorsi possibili che producono il massimo punteggio: Un percorso possibile è quello in rosso, che corrisponde all allineamento: G A A T T C A G T T A G G A T C G A Abbiamo quindi 4 residui appaiati senza gap e tre mancati appaiamenti, quindi uno score di 4*2+3*(-1) = 5. Oppure abbiamo il percorso in blu: G A A T T C A G T T A G G A T C G A Che comprende 5 appaiamenti, 1 mancato appaiamento, e due gap, quindi: 5*2 + (-1) + 2*(-2) = 5 L algoritmo illustrato per l allineamento globale di sequenze è noto come algoritmo di Needleman e Wunsch. Matrici di sostituzione PAM e BLOSUM Da un punto di vista biologico, può non essere corretto assegnare lo stesso score all allineamento di due simboli in modo indipendente dal valore dei simboli stessi. Ad esempio, nel caso di allineamento di sequenze di aminoacidi bisogna tener conto del fatto che gli aminoacidi possono essere più o meno simili tra loro. L acido aspartico (D) e l acido glutamminico (E) sono molto simili, per cui nei processi evolutivi possono prendere l uno il posto dell altro in proteine omologhe, senza che la funzione delle proteine cambi sensibilmente. Invece il triptofano (W) è profondamente diverso da D e E, e quindi l allineamento
19 tra D e E dovrebbe essere valutato diversamente rispetto all allineamento tra W e D. Inoltre, alcuni aminoacidi come la cisteina (C) sono più caratterizzanti della funzionalità proteica rispetto ad altri, e quindi tendono ad essere maggiormente conservati nel corso dell evoluzione. Queste considerazioni si esprimono attraverso le cosiddette matrici di sostituzione degli aminoacidi, cioè matrici 20x20 dove sono indicati gli score per gli appaiamenti tra i vari tipi di aminoacidi. Una matrice di sostituzione appare quindi come: La X indica un aminoacido non identificato nella sequenzializzazione della sequenza proteica. * è lo scoring del gap. Come si vede, l allineamento C-C ha uno score elevato, mentre l allineamento A-A ha uno score basso. Come si vede alcuni allineamenti tra aminoacidi diversi vengono premiati con uno score positivo, che premia la somiglianza con altri aminoacidi.
20 Esistono sostanzialmente due tipi di matrici di sostituzione, le matrici PAM e le matrici BLOSUM. Matrici PAM Per costruire le matrici PAM (Percent accepted mutation), si è partiti da sequenze proteiche molto simili tra loro, ad esempio quelle trovate in specie molto vicine dal punto di vista evolutivo come l uomo e lo scimpanzè. Queste sequenze hanno un valore medio di mutazione degli aminoacidi pari all 1%. Essendo estremamente simili, è possibile allinearle con algoritmi semplici che non richiedono l uso di matrici di sostituzione. Date le sequenze allineate e definiti due aminoacidi i e j, definiamo f(i,j) come il numero di volte che gli aminoacidi sono allineati nei due set di sequenze diviso il numero totale di allineamenti (frequenza dell allineamento i,j). Definiamo poi g(i,j)=f(i,j)/f(i) dove f(i) è la frequenza di i nel set di dati. g(i,j) definisce la probabilità che un aminoacido i muti in un aminoacido j in un tempo pari alla distanza filogenetica tra i due set di sequenze. Tale distanza filogenetica, pari a quella in cui si verifica l 1% di mutazioni, è detta PAM 1. La matrice PAM N è ottenuta dalla PAM1 applicando la matrice PAM1 N volte, quindi l elemento della matrice PAM N sarà g n (i,j). Le matrici PAM viste finora sono dette matrici PAM di probabilità e hanno come elementi numeri reali minori o uguali ad 1. Un elemento vicino all unità indica una coppia di aminoacidi più stabile rispetto a un elemento prossimo allo zero. Quando le matrici PAM sono usate come matrici di scoring, si preferisce avere matrici con elementi interi. Gli elementi di una PAM di scoring saranno definiti come: n g δ ( i, j) = 10log f ( i, j) ( j) L uso dei logaritmi è motivato dalla possibilità di ottenere i punteggi complessivi di allineamento sommando gli elementi della matrici invece che moltiplicandoli. I valori delle matrici PAM correntemente utilizzate sono poi ottenuti moltiplicando per 10 e calcolando la parte intera per ottenere dei valori come quelli in figura. In una matrice scoring PAM, valori pari a 0 indicano che la probabilità di appaiamento di due aminoacidi è pari a quella casuale, rappresentata dal prodotto f(i)f(j) al denominatore; valori negativi che è minore e valori positivi che è maggiore. Le matrici PAM utilizzate sono comprese tra al PAM10 e la PAM240. La scelta della matrice da utilizzare dipende da quanto le sequenze da confrontare sono filogeneticamente vicine, maggiore è la distanza ipotizzata maggiore sarà l indice della matrice PAM. Matrici BLOSUM Le matrici BLOSUM sono state calcolate per via sperimentale sulla base della banca dati BLOCKS, che contiene una serie di allineamenti multipli tra sequenze senza gap. Ogni serie di allineamenti contiene sequenze che contengono aminoacidi identici con una certa percentuale P. Da ognuno di questi blocchi è possibile quindi calcolare direttamente una matrice BLOSUM corrispondente alla probabilità del blocco.
21 Anche qui gli elementi della matrice sono calcolati come il logaritmo della probabilità di sostituzione misurata diviso la probabilità di sostituzione casuale. Nelle matrici BLOSUM, l indice è quello della percentuale di identità P del blocco, quindi al contrario delle PAM indici alti indicano matrici vicine alla matrice identità. La differenza fondamentale tra matrici PAM e BLOSUM è che le prime derivano da un modello di sostituzione, mentre le seconde da dati sperimentali. Sostanzialmente le due classi di matrici sono abbastanza simili, con la differenza che le matrici PAM basandosi su di un modello derivante da una serie di mutazioni indipendenti tra loro non tengono conto di mutazioni di tipo più complesso. Allineamento locale di sequenze In molte applicazioni bioinformatiche è importante poter determinare non solo allineamenti globali tra sequenze ma anche allineamenti di tipo locale, cioè limitati a dei sottoinsiemi delle sequenze esaminate. Infatti da un punto di vista biologico è sensato cercare sequenze DNA che risultino altamente simili tra loro in una regione limitata (corrispondente ad esempio ad un particolare gene) anche se differiscono nel loro complesso. In figura è illustrato un esempio di come due sequenze possano presentare un fortissimo allineamento locale che non viene catturato da un algoritmo di allineamento globale. Il motivo risiede nel fatto che comunque la corrispondenza tra basi è abbastanza frequente anche in sequenze non correlate (25%).
22 L algoritmo per l allineamento locale delle sequenze fu sviluppato da Smith e Waterman nel 1981 ed è abbastanza simile all algoritmo per l allineamento globale. Mentre nell allineamento globale l obiettivo è cercare un percorso dall angolo superiore sinistro all ultima riga della griglia, nell algoritmo di programmazione dinamica l obiettivo è trovare un percorso tra due punti qualsiasi della griglia stessa. Consideriamo un esempio di allineamento tra due sequenze: 0 T T A A A F K S T L A R F K L A R R La matrice è stata riempita utilizzando i punteggi di +1 per il match, -1 per il mismatch e -1 per l inserimento di un gap. Rispetto al caso dell allineamento globale, è stata inserita una soglia inferiore 0 per il punteggio di una casella. In altri termini, il punteggio da scrivere in una casella (i,j) sarà: s( i 1, j 1) + M ( i, j) s( i, j 1) W s( i, j) = MAX s( i 1, j) w T Dove W è la penalità per il gap (W=-1 nel nostro caso), T è la soglia (T=0), M(i,j) è lo scoring della coppia i,j (+1/-1). Una volta riempita la tabella si sceglie il valore massimo sull intera tabella e si traccia il percorso ottimo fermandosi quando si va a finire in una casella con punteggio 0 (elementi in verde). In generale potranno esistere più percorsi locali con lo stesso punteggio o con punteggi simili. Notiamo che per T=-Inf la tabella viene riempita come nell algoritmo di allineamento locale. Per questo motivo, i programmi di allineamento disponibili (FASTA e BLAST) sono programmi di allineamento locale che possono essere adattati ad eseguire allineamenti globali alla bisogna. Risorse computazionali (Libro Jones/Pevzner pag. 230) La complessità di un algoritmo dynamic programming per l allineamento di due sequenze è uguale alla complessità del processo di riempimento della matrice,ed è di ordine O(N 2 ) dove N è la lunghezza delle
23 due sequenze (nell ipotesi di sequenze della stessa lunghezza). Si tratta di una complessità polinomiale molto bassa. Il problema sostanziale di questi algoritmi, infatti, non sono i tempi di calcolo ma le risorse di memoria. L occupazione di memoria richiesta è anch essa dell ordine N 2. Il grafico mostra l occupazione di memoria in GB al crescere di N, nell ipotesi benevola in cui la tabella sia codificata in elementi a 8 bit (char). In MATLAB, che usa il tipo double (64 bit), avremmo una occupazione di memoria 8 volte superiore. Si vede come per sequenze di lunghezza di poche migliaia di caratteri (molto comuni in bioinformatica) le risorse di memoria divengano eccessive. Si tenga conto che molti sistemi operativi primitivi (ad esempio windows XP e Vista home) non gestiscono più di 2 GB di RAM. Una possibile soluzione al problema è stata proposta da Hirschberg (1977) per il problema dell allineamento globale. Supponiamo di essere interessati non all allineamento in se stesso, ma solo allo score dell allineamento. Allora possiamo notare che per il calcolo dello score nella colonna j sono necessari solo i valori nella colonna j-1. Quindi una volta calcolata la colonna j possiamo cancellare i dati della colonna j-1 e delle precedenti. In questo modo l occupazione di memoria diventerebbe 2N, cioè dell ordine O(N). Resta il problema di trovare il percorso ottimo che conduce al massimo score, cosa che può essere risolta con un approccio divide and conquer. Il percorso di lunghezza massima nella matrice partirà da (0,0) ed arriverà in (N,M), se N ed M sono le lunghezze delle due sequenze. Tale percorso attraverserà la colonna m/2 in una certa riga mid che non conosciamo. Il cuore dell algoritmo consiste nel trovare tale riga (quindi il middle point) senza conoscere il percorso ottimo. Supponiamo di avere il vertice (i,m/2) (vedi figura) e che L(i) sia la lunghezza del percorso ottimo che da (0,0) va a (N,M) passando per (i,m/2). In altre parole, tra tutti i possibili percorsi che uniscono (0,0) con (N,M) e passano per (i,m/2) scegliamo quello con score migliore. Visto che (mid,m/2) è sul percorso ottimo in senso assoluto, avremo che:
24 L(mid) = max L(i) i=0,.n Il vertice (i,m/2) divide un percorso (in generale non ottimo) in due parti, il prefix da (0,0) a (i,m/2) con lunghezza P(i) ed il suffix da (i, m/2) a (n,m) con lunghezza S(i). La lunghezza totale del percorso è L(i)=P(i)+S(i). P(i) si trova cercando il percorso ottimo nella sottomatrice (0,0) (i,m/2), mentre S(i) si trova come percorso ottimo nella sottomatrice (i,m/2), (n,m) partendo da (i,m/2), che si può trovare trasponendo la sottomatrice ed adoperando il solito algoritmo di backtracing. Come abbiamo visto prima, S(i), P(i), e quindi L(i), che sono degli score, si possono calcolare con una occupazione di memoria limitata. Calcolando in questo modo le L(i) per tutte le i si trova L(mid). Il tempo richiesto per questo calcolo è pari alla somma delle due aree in figura (in alto). La memoria richiesta è di ordine O(N), perché abbiamo solo trovato degli score e non dei percorsi. A questo punto, noto (mid, m/2), il problema è partizionato in due sotto problemi (figura in mezzo), che si risolvono come prima, individuando due nuove ascisse (m/4 e 3m/4). Il tempo del secondo step sarà proporzionale all area dei rettangoli, nel caso peggiore rettangoli di lato n/2, m/2. Iterando il
25 procedimento, si ottiene una serie di sottoproblemi (figura in basso) sempre più piccoli, risolvendo i quali si trova la lista di punti che descrive il percorso ottimo. Il tempo complessivo di calcolo è dell ordine A+A/2+A/4+ <2A, dove A è l area totale della matrice pari ad nm. Quindi la complessità computazionale del problema resta immutata, anche se il tempo di calcolo vero e proprio raddoppia, mentre l occupazione di memoria è lineare in N.
Lezione 2 (10/03/2010): Allineamento di sequenze (parte 1) Antonella Meloni:
Lezione 2 (10/03/2010): Allineamento di sequenze (parte 1) Antonella Meloni: antonella.meloni@ifc.cnr.it Sequenza A= stringa formata da N simboli, dove i simboli apparterranno ad un certo alfabeto. A
DettagliAlgoritmi di Allineamento
Algoritmi di Allineamento CORSO DI BIOINFORMATICA Corso di Laurea in Biotecnologie Università Magna Graecia Catanzaro Outline Similarità Allineamento Omologia Allineamento di Coppie di Sequenze Allineamento
DettagliALLINEAMENTO DI SEQUENZE
ALLINEAMENTO DI SEQUENZE Procedura per comparare due o piu sequenze, volta a stabilire un insieme di relazioni biunivoche tra coppie di residui delle sequenze considerate che massimizzino la similarita
DettagliQuarta lezione. 1. Ricerca di omologhe in banche dati. 2. Programmi per la ricerca: FASTA BLAST
Quarta lezione 1. Ricerca di omologhe in banche dati. 2. Programmi per la ricerca: FASTA BLAST Ricerca di omologhe in banche dati Proteina vs. proteine Gene (traduzione in aa) vs. proteine Gene vs. geni
DettagliFASTA. Lezione del
FASTA Lezione del 10.03.2016 Omologia vs Similarità Quando si confrontano due sequenze o strutture si usano spesso indifferentemente i termini somiglianza o omologia per indicare che esiste un rapporto
Dettaglila edit distance tra X e Y è la distanza relativa all allineamento (o agli allineamenti) che minimizza tale distanza.
Algoritmica 14/15 EDIT DISTANCE Il problema della edit distance (distanza di edizione, in una versione in italiano scarsamente usata) è alla base dei problemi di confronto fra sequenze perché il meccanismo
DettagliBLAST. W = word size T = threshold X = elongation S = HSP threshold
BLAST Blast (Basic Local Aligment Search Tool) è un programma che cerca similarità locali utilizzando l algoritmo di Altschul et al. Anche Blast, come FASTA, funziona: 1. scomponendo la sequenza query
DettagliProgrammazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
DettagliLEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g
LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere
DettagliPROGRAMMAZIONE DINAMICA. Prof. Reho Gabriella Olimpiadi di Informatica
PROGRAMMAZIONE DINAMICA Quando si usa P.D.? La programmazione dinamica si usa nei casi in cui esista una definizione ricorsiva del problema, ma la trasformazione diretta di tale definizione in un algoritmo
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
DettagliAppunti di matematica per le Scienze Sociali Parte 1
Appunti di matematica per le Scienze Sociali Parte 1 1 Equazioni 1.1 Definizioni preliminari 1.1.1 Monomi Si definisce monomio ogni prodotto indicato di fattori qualsiasi, cioè uguali o diseguali, numerici
DettagliMoltiplicazione. Divisione. Multipli e divisori
Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini
DettagliEsercizi svolti. delle matrici
Esercizi svolti. astratti. Si dica se l insieme delle coppie reali (x, y) soddisfacenti alla relazione x + y è un sottospazio vettoriale di R La risposta è sì, perchè l unica coppia reale che soddisfa
Dettagli2.6 Calcolo degli equilibri di Nash
92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito
DettagliBioinformatics more basic notions
Bioinformatics more basic notions Alcune slides provengono dal materiale rilasciato da: Dr Sergio Marin Vargas - Verona Prof. Riccardo Percudari - Parma Bioinformatics Bio-inspired Computer science Gli
Dettagliq xi Modelli probabilis-ci Lanciando un dado abbiamo sei parametri p i >0;
Modelli probabilis-ci Lanciando un dado abbiamo sei parametri p1 p6 p i >0; 6! i=1 p i =1 Sequenza di dna/proteine x con probabilita q x Probabilita dell intera sequenza n " i!1 q xi Massima verosimiglianza
DettagliLezione 6 Richiami di Geometria Analitica
1 Piano cartesiano Lezione 6 Richiami di Geometria Analitica Consideriamo nel piano due rette perpendicolari che si intersecano in un punto O Consideriamo ciascuna di queste rette come retta orientata
DettagliSistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara
Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)
DettagliLEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.
LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b
DettagliProgrammazione Lineare: problema del trasporto Ing. Valerio Lacagnina
Problemi di trasporto Consideriamo un problema di programmazione lineare con una struttura matematica particolare. Si può utilizzare, per risolverlo, il metodo del simplesso ma è possibile realizzare una
DettagliAppunti su Indipendenza Lineare di Vettori
Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo
DettagliESERCIZI SULLE MATRICI
ESERCIZI SULLE MATRICI Consideriamo il sistema lineare a, x + a, x + + a,n x n = b a, x + a, x + + a,n x n = b a m, x + a m, x + + a m,n x n = b m di m equazioni in n incognite che ha a, a,n A = a m, a
DettagliLe sequenze consenso
Le sequenze consenso Si definisce sequenza consenso una sequenza derivata da un multiallineamento che presenta solo i residui più conservati per ogni posizione riassume un multiallineamento. non è identica
DettagliSi consideri il sistema a coefficienti reali di m equazioni lineari in n incognite
3 Sistemi lineari 3 Generalità Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite ovvero, in forma matriciale, a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n x
DettagliEsercitazione di Analisi Matematica II
Esercitazione di Analisi Matematica II Barbara Balossi 06/04/2017 Esercizi di ripasso Esercizio 1 Sia data l applicazione lineare f : R 3 R 3 definita come f(x, y, z) = ( 2x + y z, x 2y + z, x y). a) Calcolare
DettagliPossibile applicazione
p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile
DettagliAllineamenti di sequenze: concetti e algoritmi
Allineamenti di sequenze: concetti e algoritmi 1 globine: a- b- mioglobina Precoce esempio di allineamento di sequenza: globine (1961) H.C. Watson and J.C. Kendrew, Comparison Between the Amino-Acid Sequences
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 8 gennaio 8 Il problema è simile all esercizio 5.6 del libro di testo di algoritmi (Introduzione agli algoritmi e strutture dati, T.
DettagliElementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari
Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari Antonio Lanteri e Cristina Turrini UNIMI - 2016/2017 Antonio Lanteri e Cristina Turrini (UNIMI - 2016/2017 Elementi di Algebra Lineare
DettagliFASTA: Lipman & Pearson (1985) BLAST: Altshul (1990) Algoritmi EURISTICI di allineamento
Algoritmi EURISTICI di allineamento Sono nati insieme alle banche dati, con lo scopo di permettere una ricerca per similarità rapida anche se meno accurata contro le migliaia di sequenze depositate. Attualmente
DettagliAlgoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
DettagliLuigi Piroddi
Automazione industriale dispense del corso (a.a. 2008/2009) 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul
DettagliSISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI
SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI Appunti presi dalle lezioni del prof. Nedo Checcaglini Liceo Scientifico di Castiglion Fiorentino (Classe 4B) January 17, 005 1 SISTEMI LINEARI Se a ik, b i R,
Dettagli= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con
Definizione di matrice Una matrice (di numeri reali) è una tabella di m x n numeri disposti su m righe e n colonne. I numeri che compaiono nella tabella si dicono elementi della matrice. La loro individuazione
DettagliA W T V A S A V R T S I A Y T V A A A V R T S I A Y T V A A A V L T S I
COME CALCOLARE IL PUNTEIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi che, però, sono le due facce di una stessa medaglia al
DettagliFUNZIONI. }, oppure la
FUNZIONI 1. Definizioni e prime proprietà Il concetto di funzione è di uso comune per esprimere la seguente situazione: due grandezze variano l una al variare dell altra secondo una certa legge. Ad esempio,
Dettagli1) Hamming bound, coset, codici equivalenti
Argomenti della Lezione ) Hamming bound, coset, codici equivalenti 2) Esercizi sui codici lineari a blocchi Osservazione () Per effettuare la decodifica a rivelazione di errore si può seguire una delle
DettagliUNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento
UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa Esercizi sul problema dell assegnamento Richiami di Teoria Ricordiamo che, dato un grafo G=(N,A),
Dettagli3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI
3.3 FORMULAZIONE DEL MODELLO E CONDIZIONI DI ESISTENZA DI UN PUNTO DI OTTIMO VINCOLATO Il problema di ottimizzazione vincolata introdotto nel paragrafo precedente può essere formulato nel modo seguente:
DettagliMetodo di Quine- McCluskey
Metodo di Quine- McCluskey Maurizio Palesi Maurizio Palesi Definizioni Date due funzioni f(x,x 2,,x n ) e g(x,x 2,,x n ) si dice che f copre g (oppure g implica f) e si scrive f g se f(x,x 2,,x n )= quando
DettagliFUNZIONI BOOLEANE. Vero Falso
FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono
DettagliDistanza di Edit. Speaker: Antinisca Di Marco Data:
Distanza di Edit Speaker: Antinisca Di Marco Data: 14-04-2016 Confronto di sequenze Il confronto tra sequenze in biologia computazionale è la base per: misurare la similarità tra le sequenze allineamento
DettagliAlgoritmi e Strutture Dati Geometria Computazionale. Daniele Loiacono
Algoritmi e Strutture Dati Geometria Computazionale Riferimenti 2 T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Introduction to Algorithms, Second Edition Queste trasparenze sono disponibili su http://dei.polimi.it/upload/loiacono
DettagliMetodo di Quine- McCluskey
Metodo di Quine- McCluskey Maurizio Palesi Maurizio Palesi 1 Definizioni Date due funzioni f(x 1,x 2,,x n ) e g(x 1,x 2,,x n ) si dice che f copre g (oppure g implica f) e si scrive f g se f(x 1,x 2,,x
DettagliEdit distance. v intner RIMDMDMMI wri t ers
L'allineamento Edit distance Le operazioni permesse sono: I: insert (inserimento, inserzione) D: delete (cancellazione, delezione, rimozione) R: replacement (substition, sostituzione) M: match (corrispondenza,
DettagliLa Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi
La Retta Ogni funzione di primo grado rappresenta, graficamente, una retta. L equazione della retta può essere scritta in due modi Forma implicita Forma esplicita a x b y c 0 y m x q a c y x b b Esempio
Dettagli1 se k = r i. 0 altrimenti. = E ij (c)
Facoltà di Scienze Statistiche, Algebra Lineare A, G.Parmeggiani LEZIONE 5 Matrici elementari e loro inverse Si fissi m un numero naturale. Per ogni i, j m con i j siano E ij (c) (ove c è uno scalare )
DettagliProdotto scalare, covarianza e controvarianza, tensore metrico
Prodotto scalare, covarianza e controvarianza, tensore metrico Marco Bonvini 29 settembre 2005 1 Prodotto scalare Sia V spazio lineare su R; dati u, v V il loro prodotto scalare, indicato con (u, v), è:
DettagliUnità Didattica N 9 : La parabola
0 Matematica Liceo \ Unità Didattica N 9 La parabola Unità Didattica N 9 : La parabola ) La parabola ad asse verticale ) La parabola ad asse orizzontale 5) Intersezione di una parabola con una retta 6)
DettagliFogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari
Fogli Elettronici Idoneità Informatica Prof. Mauro Gaspari Cosa è un foglio elettronico. Strumento per raccogliere dati organizzati in tabelle e farci delle operazioni: Le celle contengono numeri o altri
DettagliRiassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.
Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo
DettagliCertificati dei problemi in NP
Certificati dei problemi in NP La stringa y viene in genere denominata un certificato Un Certificato è una informazione ausiliaria che può essere utilizzata per verificare in tempo polinomiale nella dimensione
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
DettagliSISTEMI DI EQUAZIONI LINEARI
SISTEMI DI EQUAZIONI LINEARI Date le rette di equazioni ax + by + c = 0 e a x + b y + c = 0 quanti punti hanno in comune? Per rispondere devo risolvere il sistema ax + by + c = 0 ቊ a x + b y + c = 0 e
DettagliMatematica per Analisi dei Dati,
Matematica per Analisi dei Dati, 230209 1 Spazio vettoriale R n Sia n un intero positivo fissato Lo spazio vettoriale R n e l insieme delle n ple ordinate di numeri reali, che rappresenteremo sempre come
Dettagli2. Coordinate omogenee e trasformazioni del piano
. Coordinate omogenee e trasformazioni del piano Nella prima sezione si è visto come la composizione di applicazioni lineari e di traslazioni porta ad una scomoda combinazione di prodotti matriciali e
DettagliLa Rappresentazione dell Informazione
La Rappresentazione dell Informazione Maurizio Palesi Sommario In questo documento sarà trattato il modo in cui, in un calcolatore, vengono rappresentati i vari generi di informazione (testi, numeri interi,
DettagliL A B C di R. Stefano Leonardi c Dipartimento di Scienze Ambientali Università di Parma Parma, 9 febbraio 2010
L A B C di R 0 20 40 60 80 100 2 3 4 5 6 7 8 Stefano Leonardi c Dipartimento di Scienze Ambientali Università di Parma Parma, 9 febbraio 2010 La scelta del test statistico giusto La scelta della analisi
DettagliInformatica Generale Homework di Recupero 2016
Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola
Dettagli2. ALGORITMO DEL SIMPLESSO
. ALGORITMO DEL SIMPLESSO R. Tadei Una piccola introduzione R. Tadei SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione
DettagliEquazioni Polinomiali II Parabola
Equazioni Polinomiali II Parabola - 0 Equazioni Polinomiali del secondo grado (Polinomi II) Forma Canonica e considerazioni La forma canonica dell equazione polinomiale di grado secondo è la seguente:
DettagliRegistro Lezioni di Algebra lineare del 15 e 16 novembre 2016.
Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016 Di seguito si riporta il riassunto degli argomenti svolti; i riferimenti sono a parti del Cap8 Elementi di geometria e algebra lineare Par5
DettagliCap. 2 - Rappresentazione in base 2 dei numeri interi
Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:
DettagliDerivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)
Derivazione numerica Introduzione al calcolo numerico Il calcolo della derivata di una funzione in un punto implica un processo al limite che può solo essere approssimato da un calcolatore. Supponiamo
Dettagli1 Prodotto cartesiano di due insiemi 1. 5 Soluzioni degli esercizi 6
1 PRODOTTO CARTESIANO DI DUE INSIEMI 1 I-4 R 2 ed R 3 Piano e spazio cartesiani Indice 1 Prodotto cartesiano di due insiemi 1 2 Rappresentazione di R 2 sul piano cartesiano 2 3 Sottoinsiemi di R 2 e regioni
DettagliBREVE RIEPILOGO SULLE FRAZIONI
BREVE RIEPILOGO SULLE FRAZIONI ---> Numeratore = numero di parti uguali considerate Linea di frazione Denominatore = numero di parti uguali in cui è diviso l'intero la frazione si
DettagliSCHEDA DIDATTICA N 7
FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA CIVILE CORSO DI IDROLOGIA PROF. PASQUALE VERSACE SCHEDA DIDATTICA N 7 LA DISTRIBUZIONE NORMALE A.A. 01-13 La distribuzione NORMALE Uno dei più importanti
DettagliKangourou Italia Gara del 28 marzo 2008 Categoria Student Per studenti di quarta o quinta della secondaria di secondo grado
Testi_08.qxp 9-0-008 :6 Pagina 8 Kangourou Italia Gara del 8 marzo 008 ategoria Per studenti di quarta o quinta della secondaria di secondo grado I quesiti dal N. al N. 0 valgono punti ciascuno. Nelle
DettagliGara Matematica. Dipartimento di Matematica Ulisse Dini. Viale Morgagni 67/a Firenze. Soluzioni edizione 2011
Gara Matematica Dipartimento di Matematica Ulisse Dini Viale Morgagni 67/a - 50134 Firenze Soluzioni edizione 011 Esercizio 1. Determinare tutti gli interi positivi non nulli n che sono uguali alla somma
DettagliR. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010
1 11. Data link layer: codici di rilevazione di errore, gestione degli errori La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere al ricevente di determinare se vi sono
DettagliSISTEMI LINEARI MATRICI E SISTEMI 1
MATRICI E SISTEMI SISTEMI LINEARI Sistemi lineari e forma matriciale (definizioni e risoluzione). Teorema di Rouché-Capelli. Sistemi lineari parametrici. Esercizio Risolvere il sistema omogeneo la cui
DettagliDetermina il terzo vertice A di un triangolo di cui. l ortocentro
La Retta Esercizi Esercizio 6. Determina il terzo vertice A di un triangolo di cui sono noti due vertici ; 1, 1; e l ortocentro ;. Soluzione 1 Analizziamo il problema ragionando, per semplicità, su un
DettagliIl Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.
Il Branch & Bound Il metodo Branch & Bound è una tecnica che permette di risolvere all ottimo un generico problema di Programmazione Lineare Intera. Tale metodo si basa su due concetti cardine: quello
Dettagli7 2 =7 2=3,5. Casi particolari. Definizione. propria se < impropria se > e non è multiplo di b. apparente se è un multiplo di. Esempi.
NUMERI RAZIONALI Q Nell insieme dei numeri naturali e nell insieme dei numeri interi relativi non è sempre possibile effettuare l operazione di divisione. Infatti, eseguendo la divisione 7 2 si ottiene
DettagliProdotto scalare e prodotto vettoriale. Elisabetta Colombo
Corso di Approfondimenti di Matematica Biotecnologie, Anno Accademico 2010-2011, http://users.mat.unimi.it/users/colombo/programmabio.html Vettori Vettori 1 2 3 4 di di Ricordiamo il in R n Dati a = (a
DettagliCorso di Intelligenza Artificiale A.A. 2016/2017
Università degli Studi di Cagliari Corsi di Laurea Magistrale in Ing. Elettronica Corso di Intelligenza rtificiale.. 26/27 Esercizi sui metodi di apprendimento automatico. Si consideri la funzione ooleana
DettagliBLAND-ALTMAN PLOT. + X 2i 2 la differenza ( d ) tra le due misure per ognuno degli n campioni; d i. X i. = X 1i. X 2i
BLAND-ALTMAN PLOT Il metodo di J. M. Bland e D. G. Altman è finalizzato alla verifica se due tecniche di misura sono comparabili. Resta da comprendere cosa si intenda con il termine metodi comparabili
DettagliUn ripasso di aritmetica: Conversione dalla base 10 alla base 2
Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre
DettagliPIANO CARTESIANO. NB: attenzione ai punti con una coordinata nulla: si trovano sugli assi
PIANO CARTESIANO Il piano cartesiano è individuato da due rette perpendicolari (ortogonali) che si incontrano in un punto O detto origine del piano cartesiano. Si fissa sulla retta orizzontale il verso
DettagliElementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n
Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica
DettagliApplicazioni eliminazione di Gauss
Applicazioni eliminazione di Gauss. Premessa Nel seguito supporremo sempre di applicare il metodo di eliminazione di Gauss allo scopo di trasformare la matrice del sistema Ax = b in una matrice triangolare
DettagliRappresentazione dell Informazione
Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
DettagliLunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27
Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza vale sse D l i = p i.. p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza
DettagliKangourou della Matematica 2010 Coppa a squadre Kangourou Semifinale turno A Mirabilandia, 8 maggio Quesiti
Kangourou della Matematica 2010 Coppa a squadre Kangourou Semifinale turno A Mirabilandia, 8 maggio 2010 Quesiti 1. Sei cifre per due numeri Avete a disposizione le cifre 1, 3, 4, 7, 8, 9 per formare due
DettagliCondizione di allineamento di tre punti
LA RETTA L equazione lineare in x e y L equazione: 0 con,,, e non contemporaneamente nulli, si dice equazione lineare nelle due variabili e. Ogni coppia ; tale che: 0 si dice soluzione dell equazione.
DettagliCammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
DettagliUn ripasso di aritmetica: Conversione dalla base 10 alla base 2
Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre
DettagliL errore percentuale di una misura è l errore relativo moltiplicato per 100 ed espresso in percentuale. Si indica con e p e risulta: e ( e 100)%
UNITÀ L ELBORZIONE DEI DTI IN FISIC 1. Gli errori di misura.. Errori di sensibilità, errori casuali, errori sistematici. 3. La stima dell errore. 4. La media, la semidispersione e lo scarto quadratico
DettagliConcetti fondamentali
Concetti fondamentali elemento insieme sequenza tutto si riconduce a questi insieme: esempi {,3,5,7,9} insieme dei numeri dispari positivi minori di dieci {Antonio, Beatrice, Carlo, Daria} insieme dei
DettagliCOME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI
COME CALCOLARE LA COMBINAZIONE DI MINIMO COSTO DEI FATTORI In questa Appendice, mostreremo come un impresa possa individuare la sua combinazione di minimo costo dei fattori produttivi attraverso il calcolo
DettagliNote per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
DettagliCOME CALCOLARE IL PUNTEGGIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi
COME CALCOLARE IL PUNTEGGIO DI UN ALLINEAMENTO? Il problema del calcolo del punteggio di un allineamento può essere considerato in due modi diversi che, però, sono le due facce di una stessa medaglia al
DettagliFoglio Elettronico Lezione 1
- Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in
DettagliCodifica binaria. Rappresentazioni medianti basi diverse
Codifica binaria Rappresentazione di numeri Notazione di tipo posizionale (come la notazione decimale). Ogni numero è rappresentato da una sequenza di simboli Il valore del numero dipende non solo dalla
DettagliDef. 1. Si chiamano operazioni elementari sulle righe di A le tre seguenti operazioni:
Facoltà di Scienze Statistiche, Algebra Lineare 1 A, G.Parmeggiani LEZIONE 5 Operazioni elementari sulle righe di una matrice Sia A una matrice m n. Def. 1. Si chiamano operazioni elementari sulle righe
DettagliRETI LINEARI R 3 I 3 R 2 I 4
RETI LINERI 1 Leggi di Kirchoff. Metodo delle correnti di maglia R 1 R 3 I 1 I 3 E 1 J 1 J 2 J 3 I 2 I 4 R 4 I 5 R 5 I 6 R 6 J 4 R 7 Il calcolo delle correnti e delle differenze di potenziale in un circuito
DettagliEQUAZIONE DELLA RETTA
EQUAZIONE DELLA RETTA EQUAZIONE DEGLI ASSI L equazione dell asse x è 0. L equazione dell asse y è 0. EQUAZIONE DELLE RETTE PARALLELE AGLI ASSI L equazione di una retta r parallela all asse x è cioè è uguale
DettagliQuadrato Magico. Fondamenti di Programmazione
Quadrato Magico Si richiede lo sviluppo di un programma che permette all utente l inserimento di una matrice quadrata di numeri interi positivi e verifica se si tratta di un quadrato magico Una matrice
Dettagli5.4.5 Struttura dell algoritmo ed esempi
CAPITOLO 5. IL METODO DEL SIMPLESSO 6 5.4.5 Struttura dell algoritmo ed esempi Come abbiamo già ampiamente osservato, la fase II del metodo del simplesso, a partire da una soluzione di base ammissibile,
Dettagli