Recherche en Bioinformatique - Alignement


Alignement par paires (Pairwise Sequence Alignment)

 Définition - Problème d'alignement par paires
Soient deux séquences S1 et S2, une matrice de score w. Le problème d'alignement par paires consiste à déterminer un alignment de coût optimal selon w.

  Enumération exhaustive
Ainsi que nous l'avons vu précédemment, on cherche à obtenir un alignement de coût optimal. La méthode de recherche la plus simple et qui vient tout de suite à l'esprit consiste à réaliser une énumération de tous les alignments possibles et à retenir ceux de coût optimal. Malheureusement le nombre d'alignements différents de deux séquences de même longueur n est donné par la formule :


Il n'est donc pas envisageable de se lancer dans une énumération exhaustive des différents alignements.

  Programmation dynamique
La Programmation Dynamique est la méthode la plus intéressante pour l'alignement de deux séquences car sa complexité temporelle et spatiale est en O(n2).

La Programmation Dynamique est appliquée à des problèmes d'optimisation pour lesquels un choix doit être fait entre plusieurs solutions possibles afin d'aboutir à une solution optimale. Le terme Programmation fait ici référence à une méthode basée sur le calcul de tableaux de valeurs.
Exemple d'application  

L'algorithme d'alignement global basé sur la programmation dynamique a été mis au point par Needleman et Wunsch en 1970 [1]. Une version pour l'alignement local fut ensuite introduite par Smith et Waterman en 1981 [2].

Soient deux séquences S = { x1, x2, ... , xN } et T = { y1, y2, ... , yM } à aligner. L'algorithme d'alignement utilise deux matrices de dimensions (N+1) x (M+1) :

L'algorithme se déroule en 2 étapes :

Remarque : la matrice des directions n'est pas essentielle car elle peut être déduite de la matrice des scores optimaux d'alignement, mais pour des raisons de simplicité d'écriture des algorithmes on utilise généralement cette matrice.

Remarque finale : le problème d'alignement est un problème difficile car on ne sait pas définir en terme qualitatif ce qu'est un bon alignement. L'alignement concerne la séquence primaire or pour juger de la qualité d'un alignement il faudrait pouvoir disposer d'informations supplémentaires concernant la structure secondaire (voire tertiaire) des séquences afin d'aligner des structures de même type (on peut penser qu'il est plus judicieux d'aligner une hélice alpha avec une autre hélice alpha et non pas avec un feuillet béta).

Sommaire


Jean-Michel Richer, 2004