Librairie contenant un ensemble d'objets et de fonctions dédiés à la manipulation des données de biologie moléculaire
Lecture et écriturede fichiers (fasta/q, genbank…)Interrogationdirecte desbases de données(NCBI…)Lancementsimplifiéd'outilsusuels (Blast, Clustal…)
Importer les objets Biopython :
from Bio.Seq import Seq, SeqRecord # Objets Séquence
from Bio import SeqIO # Entrée Sortie Séquence
from Bio import AlignIO # Entrée/Sortie Alignements
Séquences#
Objet Seq : séquence (suite de bases) + alphabet
L'alphabet définit le type de la séquence : ADN, Protéine, ARN...
from Bio import Seq
ma_sequence = Seq("ATTGCGCGAG")

Parfois utile de spécifier l'alphabet :
DNAAlphabet(), ProteinAlphabet(), RNAAlphabet()
from Bio.Seq import Seq
from Bio.Alphabet import ProteinAlphabet
ma_sequence = Seq("ACGHA", ProteinAlphabet())
L'object Seq se comporte comme une chaîne de caractères (= liste non modifiable)
-
Ajout avec
+
ma_sequence = ma_sequence + "TATATA" -
Test d'appartenance avec
inAu début et à la finif "ATG" in ma_sequenceif ma_sequence.startswith("ATG") if ma_sequence.endswith("TAA") -
Accès aux bases avec [ ] (index à partir de 0 !)
print(ma_sequence[0]) -
Longueur
len(ma_sequence) -
Position d'une sous-chaîne
pos = ma_sequence.find("ATG") -
Nombre d'occurrences d'un élément (sans superpositions)
nombre_a = ma_sequence.count("A")
Seq fournit aussi des fonctions spécifiques :
-
Complément inverse
rev_compl = ma_sequence.reverse_complement() -
Traduction
ma_proteine = ma_seq.translate()
SeqRecord#
Objet SeqRecord : Seq + identifiants + description + informations optionnelles (annotations et features)
from Bio.SeqRecord import SeqRecord
Attributs :
.seq: objetSeq.id: identifiant.name: nom commun, par ex. accession.description: la description.letter_annotations: dictionnaire des annotations par lettre (qualités…).annotations: dictionnaire des annotations (keywords, comments…).features: liste de SeqFeature.dbxrefs: cross-références aux bases de données
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
mon_record = SeqRecord(Seq("ATAGC"), id="mySeq", description="test")
mon_record.name = "maSeq"
SeqIO#
SeqIO : Ensemble de fonctions pour la lecture et écriture de séquences sous différents formats (fasta/q, GenBank, EMBL…)
from Bio import SeqIO
Les fonctions de SeqIO retournent des objets SeqRecord
Lecture#
-
Lire un fichier avec UNE séquence :
SeqIO.read(chemin/objet fichier, format)from Bio import SeqIO mon_record = SeqIO.read("seq.fasta", "fasta")Renvoie un
SeqRecord -
Lire un fichier avec PLUSIEURS séquences :
SeqIO.parse(chemin/objet fichier, format)Renvoie un itérateur de
SeqRecordfrom Bio import SeqIO records = SeqIO.parse(chemin/objet fichier, format) for mon_record in records: print(mon_record.id)Warning
attention : on ne peut parcourir l'itérateur qu'une seule fois
Récupérer toutes les séquences dans une liste :
liste_records = list(SeqIO.parse(chemin, format)Récupérer toutes les séquences dans un dictionnaire dont les clés sont les id des SeqRecord :
dico_records = SeqIO.to_dict(SeqIO.parse(chemin, format))
Ecriture#
Obtenir une séquence dans un format choisi à partir d'un SeqRecord :
record.format(format)
Écrire un SeqRecord dans un fichier :
fd.write(record.format("fasta"))
Écrire un ensemble de SeqRecord dans un fichier :
SeqIO.write(liste_seqrecords, chemin, format)
Conversion#
Convertir des séquences d'un format à un autre directement
SeqIO.convert(chemin_in, format_in, chemin_out, format_out)
(Renvoie le nombre de séquences converties)
Pratique 8#
On va travailler sur le fichier GenBank sequence.gb
Exercice A#
Créer un programme python exo8_a.py qui prend en argument (paramètre) le fichier de séquences au format Genbank et qui crée un nouveau fichier avec les séquences converties au format fasta.
Exercice B#
Créer un programme python exo8_b.py qui prend en argument (paramètre) le fichier de séquences au format Genbank et qui donne la longueur de chaque séquence en écrivant à l'écran pour chaque séquence : "La séquence ... a pour longueur ... "
Exercice C#
Créer un programme python exo8_c.py qui prend en argument (paramètre) le fichier de séquences au format Genbank et qui crée deux nouveaux fichiers, un avec le complément inverse des séquences au format fasta et un avec les séquences traduites en séquences protéiques au format fasta.