Algoritmo di Smith-Waterman

Abbozzo bioinformatica
Questa voce sull'argomento bioinformatica è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento.

L'algoritmo di Smith–Waterman è un algoritmo di bioinformatica pensato per l'allineamento di sequenze, cioè la determinazione del grado di similarità (detta anche omologia) di sequenze nucleotidiche o proteiche.

Descrizione

L'algoritmo è stato proposto nel 1981 da Temple F. Smith e Michael S. Waterman[1]. L'algoritmo si basa sulla programmazione dinamica ed è una variazione dell'algoritmo di Needleman-Wunsch (proposto qualche anno prima).

L'algoritmo calcola la distanza di edit fra due sequenze nel caso di allineamento locale. Nel caso generale le operazioni disponibili sono:

  • corrispondenza (match) di due caratteri uguali
  • sostituzione (substitution) di un carattere in un carattere diverso
  • inserimento (insertion) di un carattere;
  • cancellazione (deletion) di un carattere;

Per calcolare la distanza di edit si deve fornire un opportuno schema di costi. Uno schema di costi diffuso è la distanza di Levenshtein (in cui le operazioni di sostituzione, inserimento e cancellazione hanno costo 1). Si può usare uno schema più generale fornendo una matrice dei costi delle sostituzioni e delle penalità per i gap (che sono la diretta conseguenza di inserimenti e cancellazioni).

L'algoritmo utilizza una matrice come struttura dati ed opera in due fasi. Nella prima fase si compila la matrice ottenendo il punteggio del migliore allineamento. Nella seconda fase si opera un backtracking per recuperare la trasformazione (edit string) che permette di fare l'allineamento.

L'algoritmo

La matrice H {\displaystyle H} si costruisce nel seguente modo:

H ( i , 0 ) = 0 , 0 i m {\displaystyle H(i,0)=0,\;0\leq i\leq m}

H ( 0 , j ) = 0 , 0 j n {\displaystyle H(0,j)=0,\;0\leq j\leq n}

 Se  a i = b j {\displaystyle {\text{ Se }}a_{i}=b_{j}} w ( a i , b j ) = w (Match) {\displaystyle w(a_{i},b_{j})=w{\text{(Match)}}}  o se  a i ! = b j {\displaystyle {\text{ o se }}a_{i}!=b_{j}} w ( a i , b j ) = w (Substitution) {\displaystyle w(a_{i},b_{j})=w{\text{(Substitution)}}}

H ( i , j ) = max { 0 H ( i 1 , j 1 ) +   w ( a i , b j ) Match/Substitution H ( i 1 , j ) +   w ( a i , ) Deletion H ( i , j 1 ) +   w ( , b j ) Insertion } , 1 i m , 1 j n {\displaystyle H(i,j)=\max {\begin{Bmatrix}0\\H(i-1,j-1)+\ w(a_{i},b_{j})&{\text{Match/Substitution}}\\H(i-1,j)+\ w(a_{i},-)&{\text{Deletion}}\\H(i,j-1)+\ w(-,b_{j})&{\text{Insertion}}\end{Bmatrix}},\;1\leq i\leq m,1\leq j\leq n}

Dove:

  • a , b {\displaystyle a,b} = Sono le due stringhe nell'alfabeto Σ {\displaystyle \Sigma }
  • m = length ( a ) {\displaystyle m={\text{length}}(a)}
  • n = length ( b ) {\displaystyle n={\text{length}}(b)}
  • H ( i , j ) {\displaystyle H(i,j)} - è il massimo punteggio di similarità fra il suffisso di a[1...i] e il suffisso di b[1...j]
  • w ( c , d ) , c , d Σ { } {\displaystyle w(c,d),\;c,d\in \Sigma \cup \{'-'\}} , '-' è lo schema delle penalità/punteggi dei gap

Note

  1. ^ Smith, Temple F.; and Waterman, Michael S., Identification of Common Molecular Subsequences (PDF), in Journal of Molecular Biology, vol. 147, 1981, pp. 195–197, DOI:10.1016/0022-2836(81)90087-5 (archiviato dall'url originale il 26 maggio 2011).

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su Algoritmo di Smith-Waterman
  Portale Biologia
  Portale Informatica