Académique Documents
Professionnel Documents
Culture Documents
Cours TD5
Cours TD5
bioinformartique
Simple manipulation de sequences
●
.seq → la sequence
●
.id → l’identifiant de la sequence (du > au premier espace non inclus)
●
.description → description (pour un humain) de la sequence
●
.dbxrefs → liste de liens vers les bases de donnees contenant la
sequence
●
.name
●
.letter_annotations
●
.annotations
●
.features
Liste des formats de sequences lues
●
biopython.org/wiki/SeqIO et biopython.org/wiki/AlignIO
– 29 types de sequences lues
– Fasta, Fastq, Genbank ...
– 12 types d’alignements lus
– clustal, phylip, ...
Les objets de Seq sont des chaines de caracteres
...
my_seq = Seq("GATCG", IUPAC.unambiguous_dna)
for index, letter in enumerate(my_seq):
print("%i %s" % (index, letter))
0 G
1 A
2 T
print(len(my_seq))
5
Exemple de fonctionnalite pour les sequences
●
Calcul du GC%
● from Bio.Seq import Seq
● from Bio.Alphabet import IUPAC
● from Bio.SeqUtils import GC
● my_seq = Seq("GATCGATGGGCCTATATAGGATCGAAAATCGC",
IUPAC.unambiguous_dna)
● GC(my_seq) → 46.875
Transcription d’une sequence d’ADN
●
La fonction a change tous les T → U
●
Elle change aussi l’alphabet de la sequence
Traduction d’une sequence
●
On peut traduire l’ARN mais aussi l’ADN comme avec cet exemple :
from Bio.Seq import Seq
coding_dna.translate()
→ Seq('MAIVMGR*KG*', HasStopCodon(IUPACProtein(), '*'))
●
La traduction est base sur les tables du NCBI. Par defaut, biopython
utilise le code genetic standard, mais il est possible d’utiliser d’autre
code genetique
coding_dna.translate(table="Vertebrate Mitochondrial")
→ Seq('MAIVMGRWKR*', HasStopCodon(IUPACProtein(), '*'))
Affichage du code genetique standard
rec1 = SeqRecord(Seq("MMYQQGCFAGGTVLRLAKDLAENHLDSMVGQAL" \
+"SSAC", generic_protein),
id="gi|14150838|gb|AAK54648.1|AF376133_1",
id="gi|13919613|gb|AAK33142.1|",
rec1 = SeqRecord(Seq("MMYQQGCFAGGTVLRLAKDLAENHLDSMVGQAL" \
+"SSAC", generic_protein),
id="gi|14150838|gb|AAK54648.1|AF376133_1",
id="gi|13919613|gb|AAK33142.1|",
rec1 = SeqRecord(Seq("MMYQQGCFAGGTVLRLAKDLAENHLDSMVGQAL" \
+"SSAC", generic_protein),
id="gi|13919613|gb|AAK33142.1|",
●
Conversion d’une sequence au format genbank en format fasta
● from Bio import SeqIO
● count = SeqIO.convert("orchid.gbk", "genbank",
"example.fasta", "fasta")
Alignement des sequences
●
Un alignement global est realise par defaut.
Parametres de l’alignement
Quelques parametres de l’alignement
●
match score
●
mismatch score
●
target open gap score
●
target extend gap score
●
query open gap score
●
query extend gap score
●
mode: local / global
●
aligner.algorithm Ex : 'Smith-Waterman'
●
...
●
En fonction des parametres des gaps, le PairwiseAligner de biopython
choisit le meilleur algorithme d’alignement
Exemple de lecture des fichiers de BLAST (1)
●
La sortie du fichier Blast doit etre en XML
blastx -query t.fa -db nr -out BLASTp.xml -outfmt 5
●
La sortie du fichier Blast doit etre en XML
blastx -query t.fa -db nr -out BLASTp.xml -outfmt 5
Target: nr
# # HSP ID + description
●
Resultat de blast_hsp1
Query: sp|Q5PP28|NAC3_ARATH
●
Resultat de blast_hsp2
Query: sp|Q5PP28|NAC3_ARATH NAC domain-containing protein 3 OS=Arabidop...
Query - METPVGLRFCPTDEEIVVDYLWPKNSDRDTSHVDRFINTVPVCRLDPWELPCQSRIKLK~~~SISRT
Hit - LENTVGFRFRPTDEEFVDDYLRPKNLKLDTSHVDRVISTLTISSFDPWELPSQSRIKLK~~~PISRT
Exemple de lecture des fichiers de BLAST (3)
from Bio.Blast import NCBIXML
blast_record = NCBIXML.read(result_handle)
E_VALUE_THRESH = 0.01
blast_record = NCBIXML.read(result_handle)
E_VALUE_THRESH = 0.01
● ________________________|
● | |________________________ B
● ________________________|
● | | ________________________ C
● | |________________________|
● _| |________________________ D
● |
● | ________________________ E
● | |
● |________________________|________________________ F
● |
● |________________________ G
Connection a des base de donnees distantes
●
Telecharger et/ou parser les donnees de NCBI
– Genome ou sequence au format Fasta ou Genbank
– Obtenir la taxonomie d’une sequence
●
Telecharger les citations de Pubmed
●
Telecharger et/ou parser les donnees de Swiss-Prot, PDB ..
Exercice
●
Refaites avec biopython l’exercice d’extraction du 10eme
alignement de BLAST