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