Bioinformatique - TP2 : recherche de cadres de lecture ouverts (ORF)
Jean-Baptiste Lamy /
Manipuler des s´equences biologiques en Python
Importation des modules n´ecessaires :
from Bio.Seq import *
from Bio.SeqIO import *
Les s´equences charg´ees avec BioPython peuvent ˆetre manipul´ee comme des chaˆınes de caract`ere Python, et poss`edent en
plus des fonctions sp´ecifiques aux s´equences (transcription, etc). Il existe deux mani`eres de traiter les s´equences en Python :
les s´equences anonymes (Seq) et les s´equences nomm´ees (SeqRecord, incluant le nom du g`ene, de l’esp`ece, etc, en plus de la
s´equence proprement dite).
Op´erations Code Python
Cr´eer une s´equence anonyme d’ADN, d’ARN ou une
s´equence prot´eique (d’acides amin´es)
adn = Seq("ATGC...", IUPAC.unambiguous_dna)
arn = Seq("AUGC...", IUPAC.unambiguous_rna)
prot = Seq("MLVA...", IUPAC.protein)
Charger `a partir d’un fichier FASTA une s´equence
(nomm´ee) d’ADN, d’ARN ou d’acides amin´es
adn = read("fichier.fasta", format="fasta")
arn = read("fichier.fasta", format="fasta")
prot = read("fichier.fasta", format="fasta")
Transformer une s´equence anonyme en s´equence nomm´ee
(ADN ou autre) SeqRecord(adn, name="nom")
Transformer une s´equence nomm´ee en s´equence anonyme adn.seq
Compter le nombre de paire de base / d’acide amin´e dans
une s´equence (ADN, ARN ou prot´eine) len(adn)
Afficher la totalit´e d’une s´equence str(adn) # S´equence anonyme (Seq)
str(adn.seq) # S´equence nomm´ee (SeqRecord)
Obtenir la base n°i d’une s´equence adn[i]
Extraire une partie d’une s´equence de la base i `a la base j adn[i : j]
Parcourir toutes les bases d’une s´equence for base in adn: print(base)
for i in range(len(adn)): print(adn[i])
Les op´erations suivantes sont disponibles uniquement sur les s´equences anonymes (sinon, remplacer adn par adn.seq)
Calcule le compl´ement d’une s´equence d’ADN ou d’ARN adn.complement()
Inverse une s´equence d’ADN, d’ARN ou d’AA et prend
son compl´ement adn.reverse_complement()
Transcrire une s´equence d’ADN (brin codant) en ARN
(transcription brute ne prenant pas en compte les sites
promoteurs)
adn.transcribe()
Traduire une s´equence d’ADN (brin codant) ou d’ARN en
AA (traduction brute ne prenant pas en compte les
codons start et stop, le cadre de lecture, etc)
adn.translate()
arn.translate()
Rechercher des motifs en Python
Importation des modules n´ecessaires :
import Bio.motifs as motifs
Cr´eer un motif `a partir d’une ou plusieurs
s´equences (ADN, ARN ou prot´eique) motif = motifs.create([adn1, adn2,...])
Recherche exacte (dans une s´equence anonyme
uniquement)
for position, sequence in motif.instances.search(adn):
print(position)
Recherche approximative (matrice PSSM, dans
une s´equence d’ADN anonyme uniquement)
for position, score in motif.pssm.search(adn):
print(position)
1