Algoritm Smith-Waterman
Algoritmul Smith-Waterman este un algoritm bioinformatic conceput pentru alinierea secvenței , adică determinarea gradului de asemănare (numit și omologie) a secvențelor de nucleotide sau proteine .
Descriere
Algoritmul a fost propus în 1981 de Temple F. Smith și Michael S. Waterman [1] . Algoritmul se bazează pe programare dinamică și este o variantă a algoritmului Needleman-Wunsch (propus cu câțiva ani mai devreme).
Algoritmul calculează distanța de editare între două secvențe în cazul alinierii locale . În cazul general, operațiunile disponibile sunt:
- potrivire ( potrivire ) a două caractere egale
- substituirea unui personaj într-un personaj diferit
- inserarea (inserarea) unui caracter;
- ștergerea unui personaj;
Pentru a calcula distanța de editare, trebuie prevăzută o schemă de cost adecvată. O schemă de cost comun este distanța Levenshtein (unde operațiunile de înlocuire, inserare și ștergere costă 1). O schemă mai generală poate fi utilizată furnizând o matrice a costurilor înlocuirilor și penalizărilor pentru lacune (care sunt consecința directă a inserțiilor și ștergerilor).
Algoritmul folosește o matrice ca structură de date și operează în două faze. În prima fază, se completează matricea și se obține scorul celei mai bune alinieri. În cea de-a doua fază se efectuează un backtracking pentru a recupera transformarea ( editarea șirului ) care permite efectuarea alinierii.
Algoritmul
Matricea este construit după cum urmează:
Unde este:
- = Sunt cele două șiruri din alfabet
- - este scorul de similaritate maxim între sufixul lui a [1 ... i] și sufixul lui b [1 ... j]
- , '-' este schema de scoruri de penalizare / decalaj
Notă
- ^ Smith, Templul F.; și Waterman, Michael S., Identification of Common Molecular Subsequences ( PDF ), în Journal of Molecular Biology , vol. 147, 1981, pp. 195–197, DOI : 10.1016 / 0022-2836 (81) 90087-5 (arhivat din original la 26 mai 2011) .
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe algoritmul Smith-Waterman