La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Esercizio 1 Implementare lalgoritmo di Needleman-Wunsch per lallineamento globale di due sequenze A=a 1 a 2 …a n e B=b 1 b 2 …b m di lunghezza n e m rispettivamente.

Presentazioni simili


Presentazione sul tema: "Esercizio 1 Implementare lalgoritmo di Needleman-Wunsch per lallineamento globale di due sequenze A=a 1 a 2 …a n e B=b 1 b 2 …b m di lunghezza n e m rispettivamente."— Transcript della presentazione:

1 Esercizio 1 Implementare lalgoritmo di Needleman-Wunsch per lallineamento globale di due sequenze A=a 1 a 2 …a n e B=b 1 b 2 …b m di lunghezza n e m rispettivamente. Si scelga a piacere la funzione dei pesi w: U {-} -> R + ( è lalfabeto su cui sono definite A e B). Si riscostruisca anche uno dei possibili allineamenti ottimi (come nellesempio seguente). Ricorrenza generale per il riempimento della matrice C dei costi di dimensione (n+1)*(m+1): C(0,j) = j * w(-,b j )0 <= j <= m C(i,0) = i * w(a i,-)0 <= i <= n C(i-1,j) + w(a i,-) C(i,j) = MINC(i,j-1) + w(-,b j ) C(i-1,j-1) + w(a i,b j )

2 Pseudocodice per la ricostruzione di un allineamento ottimo Build-alignment(A,B,C,w) #A e B sono array di caratteri (il primo carattere ha posizione 0) begin Inizializzo la lista vuota A_Align Inizializzo la lista vuota B_Align i := length(A) j := length(B) while(i > 0 and j > 0)do if(C(i,j) == C(i-1,j-1)+w(A[i-1],B[j-1])) then aggiungo A[i-1] in testa a A_Align aggiungo B[j-1] in testo a B_Align i := i-1 j := j-1 elseif(C(i,j) == C(i-1,j)+w(A[i-1),-)) then aggiungo A[i-1] in testa a A_Align aggiungo - in testa a B_Align i := i-1 else aggiungo - in testa a A_Align aggiungo B[j-1] in testa a B_Align j := j-1 endwhile …

3 while(i > 0) do aggiungo A[i-1] in testa a A_Align aggiungo - in testa a B_Align i := i-1 endiwhile while(j > 0) do aggiungo - in testa a A_Align aggiungo B[j-1] in testa a B_Align j := j-1 endwhile end


Scaricare ppt "Esercizio 1 Implementare lalgoritmo di Needleman-Wunsch per lallineamento globale di due sequenze A=a 1 a 2 …a n e B=b 1 b 2 …b m di lunghezza n e m rispettivamente."

Presentazioni simili


Annunci Google