0% ont trouvé ce document utile (0 vote)
27 vues2 pages

Bioinformatique - TP2: Alignement de S Equences Avec Python

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
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 ?

Vous aimerez peut-être aussi