Téléchargez comme PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 2
Bioinformatique - TP2 : alignement de séquences avec Python
Jean-Baptiste Lamy /
Manipuler des séquences biologiques en Python
Importation des modules nécessaires : from Bio.Seq import * from Bio.SeqIO import * Les séquences chargées avec BioPython peuvent être manipulées comme des chaı̂nes de caractères, et possèdent en plus des fonctions spécifiques aux séquences.
Opérations Code Python
adn = read("fichier.fasta", format="fasta") Charger à partir d’un fichier FASTA une séquence arn = read("fichier.fasta", format="fasta") (nommée) d’ADN, d’ARN ou d’acides aminés prot = read("fichier.fasta", format="fasta") Transformer une séquence anonyme en séquence nommée SeqRecord(adn, name="nom") (ADN ou autre) Transformer une séquence nommée en séquence anonyme adn.seq Compter le nombre de paire de base / d’acide aminé dans len(adn) une séquence (ADN, ARN ou protéine) str(adn) # Séquence anonyme (Seq) Afficher la totalité d’une séquence str(adn.seq) # Séquence nommée (SeqRecord)
Aligner deux séquences biologiques en Python
Importation des modules nécessaires : from Bio.pairwise2 import * from Bio.SubsMat.MatrixInfo import * Opérations Code Python Charger une matrice de substitution protéique (sont blosum50 disponibles BLOSUM30, 35, 40,..., 95, 100, et PAM30, 60, blosum80 90, 120, 180, 250, 300) pam250
Alignement global de 2 séquences adn1 et adn2, avec les
al = align.globalms(adn1.seq, adn2.seq, 2, -1, coûts suivants : identité +2, substitution -1, ouverture -3, -2, one_alignment_only = True)[0] d’un gap -3, extension d’un gap -2. Alignement local de 2 séquences adn1 et adn2, avec les al = align.localms(adn1.seq, adn2.seq, 2, -1, mêmes coûts que ci-dessus. -3, -2, one_alignment_only = True)[0] Alignement global de 2 séquences prot1 et prot2, avec la al = align.globalds(prot1.seq, prot2.seq, matrice PAM 250 et les coûts suivants : ouverture d’un pam250, -3, -2, one_alignment_only = True)[0] gap -3, extension d’un gap -2. Alignement local de 2 séquences prot1 et prot2, avec les al = align.localds(prot1.seq, prot2.seq, pam250, mêmes conditions que ci-dessus. -3, -2, one_alignment_only = True)[0]
Obtenir la première chaı̂ne de l’alignement al[0]
Obtenir la seconde chaı̂ne de l’alignement al[1] Obtenir le score de l’alignement al[2] Obtenir la position de début de l’alignement al[3] Convertir l’alignement en un alignement multiple (pour le alm = MultipleSeqAlignment([ visualiser avec .format) SeqRecord(Seq(al[0])), SeqRecord(Seq(al[1])) ])
Aligner plus de deux séquences biologiques avec ClustalW en Python
Importation des modules nécessaires : from Bio.Align.Applications import * from Bio.Align.AlignInfo import * from Bio import AlignIO from Bio import Phylo Opérations Code Python write([seq1, seq2,...], "fichier.fasta", Écrire les séquences dans un fichier FASTA "fasta") cline = ClustalwCommandline("./clustalw", Exécuter ClustalW à partir de Python (avec la méthode infile="fichier.fasta") UPGMA) cline() Charger l’alignement multiple produit par ClustalW alm = AlignIO.read("fichier.aln", "clustal") Afficher l’alignement multiple au format FASTA print(alm.format("fasta")) Afficher l’alignement multiple au format Clustal print(alm.format("clustal")) Calculer et afficher une séquence consensus (avec des ? en print(SummaryInfo(alm).gap_consensus( cas de différence) ambiguous="?")) Charger l’arbre phylogénique calculé par ClustalW arbre = Phylo.read("fichier.dnd", "newick") Afficher l’arbre (format ASCII) Phylo.draw_ascii(arbre) Afficher l’arbre (format graphique) Phylo.draw(arbre)
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. 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 Fasta et Clustal, et calculer la séquence consensus. Quel format est le plus lisible ? 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 ? 5. Refaire l’arbre en ajoutant les séquences des annexines A1 et A2 de la souris. Que constatez-vous ?