Bioinformatique - TP3 : alignement de séquences

Transcription

Bioinformatique - TP3 : alignement de séquences
Bioinformatique - TP3 : alignement de séquences avec Python,
construction d’arbres phylogénétiques
Jean-Baptiste Lamy /
Aligner deux séquences biologiques en Python
Importation des modules nécessaires :
from Bio.pairwise2 import *
from Bio.SubsMat.MatrixInfo import *
Opérations
Charger une matrice de substitution protéique (sont
disponibles BLOSUM30, 35, 40,..., 95, 100, et PAM30, 60,
90, 120, 180, 250, 300)
NB les matrices sont en fait des dictionnaires Python
Alignement global de 2 séquences adn1 et adn2, avec les
coûts suivants : identité +2, substitution -1, ouverture
d’un gap -3, extension d’un gap -2.
Alignement local de 2 séquences adn1 et adn2, avec les
mêmes coûts que ci-dessus.
Alignement global de 2 séquences prot1 et prot2, avec la
matrice PAM 250 et les coûts suivants : ouverture d’un
gap -3, extension d’un gap -2.
Alignement local de 2 séquences prot1 et prot2, avec les
mêmes conditions que ci-dessus.
Obtenir la première chaı̂ne de l’alignement
Obtenir la seconde chaı̂ne de l’alignement
Obtenir le score de l’alignement
Obtenir la position de début de l’alignement
Convertir l’alignement en un alignement multiple (souvent
utile pour visualiser l’alignement avec les fonctions des
alignements multiples)
Code Python
blosum50
blosum80
pam250
al = align.globalms(adn1, adn2, 2, -1, -3, -2,
one_alignment_only = True)[0]
al = align.localms(adn1, adn2, 2, -1, -3, -2,
one_alignment_only = True)[0]
al = align.globalds(prot1, prot2, pam250, -3,
-2, one_alignment_only = True)[0]
al = align.localds(prot1, prot2, pam250, -3, -2,
one_alignment_only = True)[0]
al[0]
al[1]
al[2]
al[3]
alm = MultipleSeqAlignment(al[0:2])
Aligner plus de deux séquences biologiques avec ClustalW en Python
Importation des modules nécessaires :
from
from
from
from
Bio.Align.Applications import *
Bio.Align.AlignInfo import *
Bio import AlignIO
Bio import Phylo
Opérations
Code Python
write([seq1, seq2,...], "fichier.fasta",
"fasta")
cline = ClustalwCommandline("./clustalw",
infile="fichier.fasta", clustering="UPGMA")
cline()
alm = AlignIO.read("fichier.aln", "clustal")
print(alm.format("fasta"))
print(alm.format("clustal"))
print(SummaryInfo(alm).gap_consensus(
ambiguous="?"))
arbre = Phylo.read("fichier.dnd", "newick")
Phylo.draw_ascii(tree)
Phylo.draw(tree)
Écrire les séquences dans un fichier FASTA
Exécuter ClustalW à partir de Python (avec la méthode
UPGMA)
Charger l’alignement multiple produit par ClustalW
Afficher l’alignement multiple au format FASTA
Afficher l’alignement multiple au format Clustal
Calculer et afficher une séquence consensus (avec des ? en
cas de différence)
Charger l’arbre phylogénique calculé par ClustalW
Afficher l’arbre (format ASCII)
Afficher l’arbre (format graphique)
1
Exercice 1 : alignements simples
L’objectif du TP est de rechercher des alignements entre protéines d’une même famille, les annexines.
1. Rechercher dans la base Uniprot les séquences protéiques de l’annexine A1, l’annexine A2, l’annexine A6 et du récepteur
à l’annexine A2, chez l’être humain. Récupérer les séquences au format FASTA et les enregistrer dans votre répertoire
personnel.
2. En Python, importer les différents modules.
3. Charger les séquences protéiques qui ont été téléchargées à la question 1 dans les variables p1, p2, p6 et pr (cf TP2).
4. Effectuer l’alignement global des séquences de l’annexine 1 et de l’annexine 2, avec la matrice BLOSUM 50 et un coût
d’insertion / délétion de -10 et de -3 pour l’allongement. Afficher le score de l’alignement et l’alignement au format
Clustal.
5. Refaire l’alignement avec la matrice BLOSUM 80. Que constatez-vous ? Le score a-t-il changé ? Et l’alignement ?
Pourquoi ?
6. Calculer le taux d’identité sur l’alignement précédemment réalisé. Astuce : pour cela, on comptera à l’aide d’une
boucle le nombre d’acide aminé identique dans les deux chaı̂nes de l’alignement, puis on divisera par la longueur de
la protéine p1.
7. Quelle matrice choisir entre BLOSUM 50 et BLOSUM 80 ?
8. Effectuer l’alignement global de l’annexine 1 et du recepteur à l’annexine. Qu’en pensez-vous ?
9. Effectuer l’alignement global de l’annexine 1 et de l’annexine 6. Qu’en pensez-vous ?
10. Même question en faisant un alignement local. Que constatez-vous ?
Exercice 2 : alignements multiples
1. Effectuer l’alignement multiple entre les séquences de l’annexine 1, l’annexine 2, l’annexine 6 et du récepteur. Visualiser
l’alignement au format Clustal
2. Calculer la séquence consensus.
3. Charger et afficher l’arbre phylogénétique.
4. Quels sont les deux protéines les plus proches ? Quelle est celle qui est la plus éloignée des autres ?
2