TP2 : Dot Plot et Programmation dynamique

Ce TP issu d'un TP de Jean-Stéphane Varré (LIFL, Lille).

I. Introduction

Les logiciels que nous allons utiliser sont majoritairement issus de la suite EMBOSS (EMBOSS homepage). Ils sont disponible à plusieurs endroits :

Ces logiciels peuvent présenter 2 interfaces différentes, l'une basée sur Pise comme à l'institut Pasteur, l'autre basée sur EMBOSS Explorer comme au centre de bioinformatique de Wageningen. Dans les deux cas, vous devez saisir :

Dans les interfaces basées sur Pise, en cliquant sur le nom du programme (en haut à gauche) vous aurez des informations sur ce qu'il fait et sur les paramètres. Dans celles basées sur EMBOSS Explorer, vous obtenez l'aide en suivant le lien read 'the manual'.

Pour chacun des logiciels, il existe deux interfaces, l'une simple, l'autre dite avancée. Dans la version simple, seuls quelques paramètres peuvent être modifiés, les autres étant choisis par défaut. Nous utiliserons systématiquement la version avancée.

Vous devrez stocker des séquences et des résultats dans des fichiers. Pour ce faire, vous aurez simplement à enregistrer ces fichiers grâce aux menus de votre navigateur.

Flèche vers le haut

II. Recherches avec le dotplot et les outils d'alignement

II-1. Premiers tests

Nous allons principalement utiliser tout au long de ce TP les 4 logiciels suivants : dotpath, dotmatcher, stretcher et matcher. Nous vous conseillons d'ouvrir un logiciel par onglet de votre navigateur et ne les fermer qu'à la fin du TP.

Nous allons utiliser deux logiciels pour effectuer les dotplots :

  • dotpath qui permet de dessiner un dotplot avec une taille de fenêtre fixée (param.=windowsize) ;
  • dotmatcher qui permet de filtrer les fenêtres avec un seuil (param.=threshold).

Et les deux autres pour les alignements :

  • stretcher pour l'alignement global ;
  • matcher pour l'alignement local.

Choississez le serveur sur lequel vous allez utiliser ces logiciels.
Regardez les différentes interfaces.
Où sont les informations sur chaque logiciel ?
En quelle langue ?
Comment passer du mode simple au mode avancé ?
Quelles sont les options qu'on peut modifier ?
Préparer votre navigateur pour l'utilisation de ces 4 logiciels.
Flèche vers le haut

II-2. Introns / exons

Sauvegarder sur votre disque les séquences nucléiques xl-actin-DNA.fa et xl-actin-mRNA.fa, elles sont au format FASTA (comme l'indique leur extension).
Essayer le logiciel dotpath avec la taille de fenêtre par défaut et en sélectionnant l'option 'Display the overlapping matches'. Essayer avec d'autres tailles de fenêtre.
En déselectionnant l'option 'Display the overlapping matches', vous demandez au logiciel de ne conserver que les fenêtres non chevauchantes. Observez le résultat avec 4 comme taille de fenêtre.
Que constatez-vous ?
En fait, la première séquence est l'ADN d'un gène de l'actine chez Xenopus laevis et la seconde l'ADNc de ce même gène.
Combien le gène compte-t-il d'exons ?
Essayer le logiciel dotmatcher avec les paramètres par défaut. Faites varier le paramètre de seuil jusqu'à retrouver le résultat obtenu avec dotpath.
Les matrices disponibles dans EMBOSS se trouvent ici.
Jouez sur le paramètre de la matrice de score et observez le résultat.
Le seuil, ou threshold, en paramètre de dotmatcher correspond au score d'alignement au delà duquel la fenêtre est affichée. C'est pour cela qu'en faisant varier les matrices on obtient des dotplots différents.
Pour repérer exactement les sites d'épissage, faites un alignement global de ces deux séquences avec stretcher. Testez ce logiciel en fixant comme pénalité d'ouverture de gap 12 et comme pénalité d'extension de gap 1.
Que retrouvez-vous ?
À quelles positions se trouvent les introns et les exons ?
Cela est-il cohérent avec les données contenues dans EMBL ?
Flèche vers le haut

II-3. Séquence nucléique / séquence protéique

Nous allonst maintenant aborder un exemple chez l'homme et la souris : les séquences nucléiques et protéiques des gènes pl6.
Récupérez les quatre séquences pl6_human.adn, pl6_mouse.adn, pl6_human.seq et pl6_mouse.seq.
Construisez le dotplot des séquences ADN puis le dotplot des séquences protéiques avec dotmatcher.
Sur quel type de séquence la similarité est-elle la plus visible ?
Comparez maintenant les séquences avec l'algorithme d'alignement global stretcher en utilisant les paramètres par défaut.
Notez les pourcentage de similarité dans chaque cas.
Sur quel type de séquence la similarité est-elle la plus visible ?
Conclusion ?
Flèche vers le haut

II-4. Conservation de domaine

Vous allez maintenant comparer deux autres séquences: ce sont deux facteurs de transcription krox 24 et sp1, contenus dans les fichiers krox24.seq et sp1.seq.
Construisez un dotplot avec dotmatcher de ces deux séquences.
Vous devez observer une similitude locale : c'est un motif doigt de zinc, impliqué dans la liaison à l'ADN.
Comparez ensuite les deux séquences avec un alignement local en utilisant matcher. Retrouver le résultat précédent.
Retrouvez dans les banques de données les fiches de ces deux séquences et vérifiez les bornes exactes des motifs doigt de zinc dans chacune d'elle.
Flèche vers le haut

II-5. Analyse d'une séquence

Le dotplot peut également être utilisé pour étudier les régularités structurelles d'une séquence. Vous allez tester cette approche sur les deux exemples suivants.

1. Localisation de répétitions :

Analysez avec dotpath la séquence de rétrotransposon de tabac contenue dans le fichier ben2.seqn (activez l'option 'Display the overlapping matches').
En jouant sur le paramètre de taille de fenêtre, identifiez le nombre de répétitions significatives ?
Coupez votre séquence en deux tel que chaque moitié contienne une répétition. Faite un alignement local avec matcher de ces 2 moitiés pour identifiez plus précisément le motif répété.
En vous aidant de la littérature présente dans la fiche EMBL de cette séquence, pouvez-vous suggérer quel est ce motif répété ?

2. Faible complexité :

Pour illustrer la présence de régions de faible complexité, nous allons étudier la séquence contenue dans le fichier falciparum.seq avec dotmatcher. En faisant varier les paramètres, vous devez observer quatre tâches.
À quoi cela correspond-il ?
Flèche vers le haut

II-6. Programmation dynamique live

Vous pouvez jeter un coup d'oeil sur ce site web. Il permet de réaliser un calcul d'alignement local, de visualiser la matrice de programmation dynamique et le backtracking.
Changez les séquences et les paramètres, par exemple reprenez les données de l'exercice 2 du TD1.
Flèche vers le haut

III. Significativité des scores

Le logiciel prss permet de tester la significativité entre deux séquences. Il crée une séquence aléatoire de même composition que la seconde séquence fournie et effectue un algorithme d'alignement. Il répète cela plusieurs fois.

Vous pouvez utiliser ce logiciel sur un des deux serveurs suivants :

Allez chercher dans une banque deux séquences protéiques de longueurs similaires et qui n'ont a priori rien à voir. Testez prss avec ces deux séquences.
Pour lire le résultat, il faut trouver le score d'alignement entre les 2 séquences, généralement en dessous de s-w (pour smith-waterman) et le nombre attendu de fois où le score d'alignement avec une séquence mélangée dépasse ce score, généralement pas loin, en dessous de E(nombre).
Lorsqu'on a la distribution graphique des scores, on peut voir si le score s-w de nos 2 séquences se situe dans le coeur de cette distribution ou pas.
Le résultat est-il celui attendu ?
Refaites le même test mais avec deux séquences proches (par exemple avec les séquences protéiques d'homme et de souris de l'exercice II-3).
Flèche vers le haut

IV. Enzymes TPP (Thiamine Phosphate dependent enzymes)

Copier les séquences des deux protéines ILV1_TOBAC et ILVB_ARATH.
Afin d'avoir une idée de la ressemblance entre ces séquences, effectuez un dotplot avec dotpath.

IV-1. Pénalités associées aux gaps

Effectuez un alignement global avec le logiciel stretcher en prenant comme paramètres : pénalité d'ouverture de gap = 2, pénalité d'extension de gap = 2, matrice de scores = EPAM60.
Enregistrez le fichier résultat et retenez la valeur du score et du % d'identité (ou plus simplement laissez cet onglet ouvert et effectuez la prochaine recherche dans un autre onglet). Observez le scénario évolutif qui serait nécessaire pour que cet alignement soit le bon.
L'alignement obtenu est spécifique aux valeurs de paramètres, en particulier au fait que nous sommes dans le cadre d'une fonction de gap linéaire.
Effectuez maintenant un alignement global avec le logiciel stretcher en prenant comme paramètres : pénalité d'ouverture de gap = 12, pénalité d'extension de gap = 2, matrice de scores = pam60. Comparez le résultat avec l'alignement précédent.
Quelles différences remarquez-vous ?
Quelle est celui des deux alignements qui vous paraît le plus pertinent ?
Nous voyons ici l'effet des fonctions de gaps. D'autre part, cela met en évidence qu'un alignement de meilleur score n'est pas forcément le meilleur alignement entre deux séquences.
Flèche vers le haut

IV-2. Matrices de score

Copier la protéine PDC1_MAIZE.
Les séquences précédentes (ILV1_TOBAC et ILVB_ARATH) sont de la famille des enzymes Thiamine Pyrophosphate (TPP). PDC1 est également de cette famille mais plus éloignée.
Effectuez un alignement global entre ILVB_ARATH et PDC1_MAIZE avec stretcher avec comme paramètres : matrice=EBLOSUM62, ouverture de gap=12, extension de gap=2.
Remarquez combien le score de cet alignement et le pourcentage d'identité sont faibles.
Pensez-vous que ce soit un bon alignement ?
Pensez-vous que la matrice BLOSUM62 soit adéquat dans ce cadre ?
Quelle matrice pourrait être meilleure ? Pourquoi ?
Refaites cet alignement avec une matrice que vous pensez être meilleure. (Les matrices disponibles dans EMBOSS se trouvent ici)
Qu'en pensez-vous ?
Essayons avec les matrices PAM.
Construisez les alignements avec EPAM30 et EPAM350.
Quel est le meilleur alignement ?
Était-ce prévisible ?

En confrontant les résultats de l'alignement avec les structures secondaires, on dispose d'un critère de décision supplémentaire pour juger de la validité d'un alignement.

Il faut retenir que les matrices de scores affectent les résultats d'un alignement et qu'il est difficile de juger de la qualité d'un alignement de deux séquences. Le choix de la matrice dépend de la divergence qu'on les deux séquences étudiées, les meilleurs résultats étant obtenus lorsque on utilise la matrice la plus sensible par rapport au niveau de divergence réel des séquences.

Flèche vers le haut

IV-3. Alignement local (facultatif)

Les alignements locaux sont souvent plus utiles que les alignements globaux. Les séquences proches partagent le plus souvent des régions similaires et non leur totalité.
Nous allons tenter d'identifier si un fragment inconnu de protéine est relatif aux trois protéines précédentes ILVB_ARATH, ILV1_TOBAC et DPC1_MAIZE.
Récupérer la séquence inconnue suivante: fragment_inconnu.
Effectuez un alignement global avec stretcher entre ce peptide et ILV1_TOBAC avec comme paramètres la matrice de score EBLOSUM45 et le jeu de pénalités de gaps 12/2.
Que pensez-vous de cet alignement ?
Comment expliquez-vous ce résultat ?
Faites maintenant un alignement local avec matcher avec les mêmes paramètres. Choisissez de voir les 10 meilleurs alignements locaux (paramètre 'Number of alternative matches').
Afin de vérifier si ces alignements locaux sont pertinents, nous allons utiliser la base de données BLOCKS (http://blocks.fhcrc.org). Cette base contient des fragments similaires à certaines protéines. C'est à partir de ceux-ci que les matrices BLOSUM sont construites.
Surfez un peu sur le site de BLOCKS.
Recherchez si il y a un bloc correspondant aux séquences que nous traitons (pensez à regarder leur numéro d'accession).
Normalement vous devez trouver 2 blocs référencés IPB011766 et IPB000399.
Recherchez si il y a des fragments correspondants aux alignements locaux trouvés plus haut dans IPB000399.