Aller au contenu

Algorithme de Smith-Waterman

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 16 mars 2014 à 08:59 et modifiée en dernier par Fdardel (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

L'algorithme de Smith-Waterman est un algorithme d'alignement de séquences utilisé notamment en bioinformatique. Il est par exemple utilisé pour aligner des séquences de nucléotides. Cet algorithme a été inventé par Temple F. Smith et Michael Waterman en 1981[1].

Principe et comparaison avec les autres algorithmes

Comme l'algorithme de Needleman-Wunsch auquel il est apparenté, il utilise la programmation dynamique. Contrairement à l'algorithme BLAST (Basic Local Alignment Search Tool) plus rapide, l'algorithme de Smith-Waterman garantit l'optimalité de la solution. La différence avec l'algorithme de Needleman-Wunsch est qu'alors que ce dernier recherche des alignements de séquence globaux (impliquant toute la longueur des deux séquences à aligner), l'algoritmee de Smith-Waterman recherche aussi des alignements locaux, n'impliquant que des régions ou segments des deux séquences analysées. Il permet donc par exemple de repérer des protéines qui possèdent un domaine en commun parmi d'autres domaines différents.

Comme toutes les méthodes reposant sur la programmation dynamique, l'algorithme Smith-Waterman construit la solution du problème complet sur celles de problèmes de taille plus petite. Par exemple, si on doit aligner deux séquences A et B de longueurs respectives l et n, la méthode consiste à s'appuyer sur les alignements des séquences de longueurs plus courtes. La méthode de Smith et Waterman détermine ainsi tous les meilleurs scores possibles pour les alignements des i premiers acides aminés (ou nucléotides) de A et des j premiers acides aminés (ou nucléotides) de B, pour toutes les valeurs 1 ≤ il et toutes les valeurs 1 ≤ jn. On construit progressivement ainsi une table l x n des scores de tous les sous-alignements possibles. L'analyse de la table permet ensuite de trouver un alignement donnant le score optimal.

L'algorithme

La recherche de l'alignement optimal entre deux séquences A et B de longueurs respectives l et n se fait en deux phases distinctes :

  • Le calcul de la matrice M des scores d'alignement partiel. C'est une matrice l x n, dont chaque coefficient M(i,j) donne le score de l'alignement des i premiers acides aminés (ou nucléotides) de A avec les j premiers acides aminés de B. Ce calcul se fait itérativement, à partir des scores des alignements partiels plus courts. Une fois la matrice remplie, le coefficient du coin inférieur droit de la matrice, M(l,n), donne le score de l'alignement optimal complet entre A et B.
  • La construction de l'alignement à partir de la matrice M. En partant du coin inférieur droit, on remonte dans la matrice pour déterminer par quel chemin on a obtenu le score optimal. Ce chemin correspond à l'alignement optimal.

Ces deux phases sont décrites ci-dessous.

Calcul de la matrice des scores

Construction de l'alignement

Exemple

Améliorations

Notes et références

  1. (en) Smith, Temple F.; and Waterman, Michael S., « Identification of Common Molecular Subsequences », Journal of Molecular Biology, vol. 147,‎ , p. 195–197 (PMID 7265238, DOI 10.1016/0022-2836(81)90087-5, lire en ligne)