SlideShare une entreprise Scribd logo
PCSI	 TP	5	 Informatique	2016-2017	
	
TP	5	:	ANALYSE	D'UNE	SEQUENCE	D'ADN	
	
OBJECTIF	 :	 On	 souhaite,	 en	 s'appuyant	 sur	 des	 séquences	 d'ADN,	 se	 familiariser	 avec	 les	 chaînes	 de	
caractères	 :	 création	 d'une	 chaîne,	 accès	 à	 un	 caractère,	 concaténation	 de	 deux	 chaînes,	 parcours	 et	
recherche	dans	une	chaîne	de	caractères	seront	notamment	abordés	dans	ce	TP.	
	
CONSIGNES	:	
» Commencez	 par	 sauvegarder	 le	 fichier	 dans	 votre	 dossier	 Informatique	 (par	 exemple	 sous	 le	 nom	
"Nom_TP5.py").	Avant	d’écrire	un	programme	sur	la	machine,	vous	réfléchirez	sur	feuille	!	
» N'oubliez	pas	de	commenter	votre	programme,	de	documenter	vos	fonctions	et	d’utiliser	des	noms	de	
variables	explicites.	
	
I	-	MANIPULATION	DE	CHAÎNES	DE	CARACTÈRES	EN	PYTHON	
Une	 chaîne	 de	 caractères	 n’est	 autre	 qu’un	 texte,	 vu	 comme	 une	 suite	 finie	 de	 caractères	 consécutifs,	
qu’on	note	entre	apostrophes,	entre	guillemets	ou	entre	triplets	de	guillemets.	Par	exemple,	’Coucou’,	
"Bonjour"	et	"""Salut !"""	sont	des	chaînes	de	caractères.	
	
Opérations	 Exemples	
Création	d’une	chaîne	de	caractères	
>>> mot = 'Coucou'
>>> mot
'Coucou'
Concaténation	(=	On	accole	deux	chaînes)	
Chaine1 + Chaine2 (ne	modifie	pas	Chaine1	mais	
renvoie	le	résultat)
>>> phrase = mot + "et au revoir !"
>>> phrase
'Coucou et au revoir !'
Longueur	
>>> len(mot)
6
Obtenir	un	élément	d'une	chaîne	:	Chaine[i]	
La	numérotation	commence	à	0	
>>> mot[1]
'o'
Obtenir	une	partie	d’une	chaîne	:	Chaine[n:m]	de	
l'indice	𝑛	à	𝑚 − 1	
La	numérotation	commence	à	0	
>>> mot[1:3]
'ou'
Mise	en	forme	
• Chaine.lower( )	renvoie	la	chaîne	en	minuscules	
• Chaine.upper( )	renvoie	la	chaîne	en	majuscules	
• Chaine.capitalize( )	renvoie	la	chaîne	avec	la	1ère	
lettre	en	majuscule	
• Chaine.center(n)	renvoie	la	chaîne	centrée	dans	un	
espace	de	n	caractères	
>>> mot.lower( )
'coucou'
>>> mot.upper( )
'COUCOU'
>>> mot.capitalize( )
'Coucou'
>>> mot.center(20)
' Coucou '
	
Remarques	:	
» Les	chaînes	de	caractères	sont	«	immuables	»	:	on	ne	peut	pas	modifier	un	élément	d’une	chaîne	de	
caractères	par	une	commande	de	la	forme	chaine[i]=...		.	
» Les	 méthodes	 de	 chaîne,	 comme	 lower,	 upper, capitalize,	 center,	 etc...	 ne	 modifient	 pas	 la	
chaîne	de	caractères	d'origine,	mais	renvoient	une	chaîne	modifiée.	
» Les	données	saisies	par	l’utilisateur	après	la	commande	input(...)		sont	des	chaînes	de	caractères.
PCSI	 TP	5	 Informatique	2016-2017	
	
Introduction	au	TP	:	On	sait	depuis	le	début	des	années	1950	que	l’information	génétique	d’un	organisme	
vivant	est	mémorisée	dans	la	molécule	d’ADN	de	ses	chromosomes.	Cette	molécule,	constituée	de	deux	
brins	complémentaires,	est	un	long	enchaînement	de	nucléotides	de	quatre	types	différents	(distingués	par	
leur	base	azotée	:	adénine,	thymine,	cytosine	et	guanine)	désignés	par	les	lettres	A,	T,	C	et	G.	Séquencer	le	
génome	d’un	organisme,	c’est	établir	l’enchaînement	de	ces	nucléotides.	
La	taille	du	génome	peut	varier	de	quelques	milliers	de	nucléotides	chez	les	virus	à	plusieurs	milliards	de	
nucléotides	(3,4	milliards	pour	l’homme	par	exemple).	La	molécule	d’ADN	apparaît	ainsi	comme	un	très	
long	texte	écrit	avec	les	quatre	lettres	A,	T,	C	et	G.	À	titre	de	comparaison	un	livre	de	poche	de	1	000	pages	
comporte	environ	deux	millions	de	caractères.	
D’autre	part,	seules	certaines	parties	de	cet	enchaînement,	appelées	régions	codantes	et	correspondant	
aux	 gènes,	 ont	 un	 sens.	 Aujourd’hui	 séquencer	 le	 génome	 d’un	 organisme	 ne	 pose	 plus	 de	 problème	
technique.	Les	difficultés	commencent	avec	l’interprétation	de	ce	très	long	texte	sans	espace,	ni	point,	ni	
virgule.	
	
II	-	GÉNÉRATION	D'UNE	SÉQUENCE	D'ADN	
	
Pour	 les	 besoins	 de	 ce	 TP,	 nous	 aurons	 besoin	 d’avoir	 des	 séquences	 d’ADN	 à	 notre	 disposition.	 Une	
séquence	d’ADN	sera	représentée	par	une	chaîne	de	caractères	comportant	uniquement	les	caractères	A,	
T,	C	et	G.	
	
Travail	à	faire	:	
1.	Écrire	une	fonction	sequenceADN(n)	ayant	pour	paramètre	d’entrée	un	entier	naturel	𝑛	et	renvoyant	
une	 séquence	 d’ADN	 aléatoire	 de	 longueur	𝑛.	 On	 pourra	 utiliser	 la	 fonction	 choice(range(4))	 de	 la	
bibliothèque	random		pour	obtenir	un	nombre	aléatoire	entre	0	et	3	avec	la	correspondance	
0	 1	 2	 3	
A	 T	 C	 G	
	
... ...
" " " Fonction sequenceADN, paramètre = un entier naturel n
renvoie : une séquence d'ADN aléatoire (A, C, T, G) de longueur n" " "
... ...
PCSI	 TP	5	 Informatique	2016-2017	
	
2.	Générer	une	séquence	d’ADN,	ADN1,	de	longueur	200	et	l’afficher.	
	
Nous	disposons	alors	d’une	séquence	d’ADN	de	longueur	200.	Nous	utiliserons	également	une	séquence	
fixe	:	ADN2 = ’ATCTCATGCTCGGTAATATGTCATAGCCGATGCTACGATGACCTAC’	
La	générer	et	l'afficher.	
	
	
III	-	RECHERCHE	DE	RÉGIONS	CODANTES	
	
Une	région	codante	est	une	succession	de	codons	(triplet	de	nucléotides)	non-chevauchants	qui	commence	
par	un	triplet	ATG	(appelé	codon	start)	et	s’achève	par	l’un	des	trois	triplets	TAA,	TAG	ou	TGA	(appelés	
codons	stop).	
	
Exemple	avec	la	séquence	ADN2	:	
ATCTC	 ATG	 CTC	 GGT	 AAT	 ATG	 TCA	 TAG	 CCG	 ATG	 CTA	 CGA	 TGA	 CCTAC	
non	
codant	
Start	 	 	 	 *	 	 Stop	 non	
codant	
Start	 	 	 Stop	 non	
codant	Région	codante	 Région	codante	
	
Il	y	a	deux	régions	codantes.	Dans	la	première,	le	deuxième	codon	ATG	(*)	n’est	pas	un	codon	start	car	il	
n’est	pas	précédé	d’un	codon	stop.	
Une	région	codante	est	composée	d’un	nombre	entier	de	codons.	
	
1. Recherche	d'un	codon	start	
	
Travail	à	faire	:	
3.	Écrire	une	fonction	codon_start(ADN)	prenant	en	entrée	une	séquence	d’ADN	(chaîne	de	caractères)	
et	renvoyant	une	liste	contenant	la	place	de	tous	les	codons	start	ATG	trouvés	(on	donnera	la	place	du	A).	
Si	aucun	codon	ATG	n’est	trouvé,	la	fonction	doit	renvoyer	une	liste	vide.	
	
... ...
" " "Fonction codon_start, parametre = ADN, séquence d'ADN, chaîne de A, T, C, G
renvoie : liste contenant la place de tous les codons start ATG, en indiquant la
position de chaque A" " "
... ...
PCSI	 TP	5	 Informatique	2016-2017	
	
4.	Tester	avec	les	séquences	ADN1	et	ADN2.	
	
Réponse	attendue	pour	la	séquence	fixe	:	codon_start(ADN2) = [5, 17, 29, 37]	
	
2. Recherche	d'un	codon	stop	en	phase	
	
Travail	à	faire	:	
5.	Écrire	une	fonction	codon_stop(ADN, i)	prenant	en	entrée	une	séquence	d’ADN	et	l’indice	i	du	début	
d’un	 codon	 start	 et	 renvoyant	 l’indice	 du	 premier	 codon	 stop	 (TAA,	 TAG	 ou	 TGA)	 suivant	 celui-ci.	 Les	
codons	start	et	stop	doivent	être	en	phase,	c’est-à-dire	séparés	par	un	nombre	de	nucléotides	multiple	
de	3.	Si	aucun	codon	stop	n’est	trouvé,	la	fonction	doit	renvoyer	le	booléen	False.	
	
6.	Tester	avec	les	séquences	ADN1	et	ADN2.	
	
... ...
" " "Fonction codon_stop
parametre 1 (str)= ADN, une séquence d'ADN qui est une chaine de A, T, C, G
parametre 2 (int)= i, l'indice du début d'un codon start
renvoie : l'indice du premier codon stop (TAA, TAG ou TGA) suivant
codons start et stop en phase (séparés par un multiple de 3)
si pas de codon stop, renvoie False." " "
... ...
PCSI	 TP	5	 Informatique	2016-2017	
	
Réponses	attendues	pour	la	séquence	fixe	:	
codon_stop(ADN2, 5) = 23. codon_stop(ADN2, 17) = 23.
codon_stop(ADN2, 29) = 38. codon_stop(ADN2, 37) = False.
	
3. Affichage	des	régions	codantes	
	
Travail	à	faire	:	
7.	Écrire	une	fonction	regions_codantes(ADN)	prenant	en	entrée	une	séquence	d’ADN	et	renvoyant	la	
liste	 des	 emplacements	 des	 régions	 codantes	 de	 cette	 séquence.	 Les	 emplacements	 seront	 de	 la	 forme	
[a, b]	où	a	est	l’indice	du	début	du	codon	start	et	b	est	l’indice	du	début	du	codon	stop	correspondant.	On	
fera	 attention	 à	 ne	 pas	 renvoyer	 de	 régions	 codantes	 chevauchantes.	 Si	 aucune	 région	 codante	 n’est	
trouvée,	la	fonction	doit	renvoyer	la	liste	vide.	
	
On	testera	avec	les	séquences	ADN1	et	ADN2.	
	
Réponse	attendue	pour	la	séquence	fixe	:	regions_codantes(ADN2) = [ [5,23] , [29,38] ].
	
8.	Écrire	une	fonction	regions_codantes_aff(ADN)	prenant	en	entrée	une	séquence	d’ADN	et	renvoyant	
la	liste	des	régions	codantes	de	cette	séquence.	Chaque	région	codante	sera	donnée	sous	la	forme	d’une	
chaîne	de	caractères	et	chaque	codon	sera	séparé	par	le	caractère	|	(Sous	Windows	:	Alt	Gr	+	6	;	sous	Mac	:	
Alt	+	Maj	+	L).	
Si	aucune	région	codante	n’est	trouvée,	la	fonction	doit	renvoyer	la	liste	vide.	
... ...
" " "Fonction regions_codantes
parametre (str) = ADN, une séquence d'ADN qui est une chaine de A, T, C, G
renvoie : une liste des emplacements des régions codantes, sous la forme
[a,b] avec a l'indice du début du codon start et b l'indice du début du codon stop
si pas de region codante, revoie une liste vide" " "
... ...
PCSI	 TP	5	 Informatique	2016-2017	
	
	
On	testera	avec	les	séquences	ADN1	et	ADN2.	
	
Réponse	attendue	pour	la	séquence	fixe	:	
regions_codantes_aff(ADN2) = [’|ATG|CTC|GGT|AAT|ATG|TCA|TAG|’,’|ATG|CTA|CGA|TGA|’].
... ...
" " "Fonction regions_codantes_aff
parametre(str) = ADN, une séquence d'ADN qui est une chaine de A, T, C, G
renvoie = une liste de régions codantes. Chaque région codante est une
chaîne de caractères, correspondant à chaque codon séparé par le caractère | " " "
... ...

Contenu connexe

Tendances

Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Emeric Tapachès
 
Résumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementRésumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementborhen boukthir
 
Améliorations dans Java depuis la version 5
Améliorations dans Java depuis la version 5Améliorations dans Java depuis la version 5
Améliorations dans Java depuis la version 5Mamadou Oury Ba
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 

Tendances (7)

Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
 
Résumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrementRésumer sur les fichier et les enregistrement
Résumer sur les fichier et les enregistrement
 
Améliorations dans Java depuis la version 5
Améliorations dans Java depuis la version 5Améliorations dans Java depuis la version 5
Améliorations dans Java depuis la version 5
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Td pascal tdD
Td pascal tdDTd pascal tdD
Td pascal tdD
 

Similaire à Tp5 chaines

Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018salah fenni
 
cour informatique niveau3 programmation en Python.pdf
cour informatique niveau3 programmation en  Python.pdfcour informatique niveau3 programmation en  Python.pdf
cour informatique niveau3 programmation en Python.pdfNanchi6
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresECAM Brussels Engineering School
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R SumAmy Isleb
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap IIIInes Ouaz
 
INF120 - Algo DUT SRC1 - Cours 3
INF120 - Algo DUT SRC1 - Cours 3INF120 - Algo DUT SRC1 - Cours 3
INF120 - Algo DUT SRC1 - Cours 3PGambette
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojurelolopetit
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeInforMatica34
 
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Jean-Michel Doudoux
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023Jean-Michel Doudoux
 

Similaire à Tp5 chaines (17)

Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
cour informatique niveau3 programmation en Python.pdf
cour informatique niveau3 programmation en  Python.pdfcour informatique niveau3 programmation en  Python.pdf
cour informatique niveau3 programmation en Python.pdf
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R Sum
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Formation python 3
Formation python 3Formation python 3
Formation python 3
 
Algorithme & structures de données Chap III
Algorithme & structures de données Chap IIIAlgorithme & structures de données Chap III
Algorithme & structures de données Chap III
 
INF120 - Algo DUT SRC1 - Cours 3
INF120 - Algo DUT SRC1 - Cours 3INF120 - Algo DUT SRC1 - Cours 3
INF120 - Algo DUT SRC1 - Cours 3
 
TAD (1).pptx
TAD (1).pptxTAD (1).pptx
TAD (1).pptx
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojure
 
Généralités sur la notion d’Algorithme
Généralités sur la notion d’AlgorithmeGénéralités sur la notion d’Algorithme
Généralités sur la notion d’Algorithme
 
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
Les nouveautés de Java 19, 20 et 21 - RivieraDev 2023
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Langage Perl
Langage PerlLangage Perl
Langage Perl
 
En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023En route vers Java 21 - Javaday Paris 2023
En route vers Java 21 - Javaday Paris 2023
 

Tp5 chaines

  • 1. PCSI TP 5 Informatique 2016-2017 TP 5 : ANALYSE D'UNE SEQUENCE D'ADN OBJECTIF : On souhaite, en s'appuyant sur des séquences d'ADN, se familiariser avec les chaînes de caractères : création d'une chaîne, accès à un caractère, concaténation de deux chaînes, parcours et recherche dans une chaîne de caractères seront notamment abordés dans ce TP. CONSIGNES : » Commencez par sauvegarder le fichier dans votre dossier Informatique (par exemple sous le nom "Nom_TP5.py"). Avant d’écrire un programme sur la machine, vous réfléchirez sur feuille ! » N'oubliez pas de commenter votre programme, de documenter vos fonctions et d’utiliser des noms de variables explicites. I - MANIPULATION DE CHAÎNES DE CARACTÈRES EN PYTHON Une chaîne de caractères n’est autre qu’un texte, vu comme une suite finie de caractères consécutifs, qu’on note entre apostrophes, entre guillemets ou entre triplets de guillemets. Par exemple, ’Coucou’, "Bonjour" et """Salut !""" sont des chaînes de caractères. Opérations Exemples Création d’une chaîne de caractères >>> mot = 'Coucou' >>> mot 'Coucou' Concaténation (= On accole deux chaînes) Chaine1 + Chaine2 (ne modifie pas Chaine1 mais renvoie le résultat) >>> phrase = mot + "et au revoir !" >>> phrase 'Coucou et au revoir !' Longueur >>> len(mot) 6 Obtenir un élément d'une chaîne : Chaine[i] La numérotation commence à 0 >>> mot[1] 'o' Obtenir une partie d’une chaîne : Chaine[n:m] de l'indice 𝑛 à 𝑚 − 1 La numérotation commence à 0 >>> mot[1:3] 'ou' Mise en forme • Chaine.lower( ) renvoie la chaîne en minuscules • Chaine.upper( ) renvoie la chaîne en majuscules • Chaine.capitalize( ) renvoie la chaîne avec la 1ère lettre en majuscule • Chaine.center(n) renvoie la chaîne centrée dans un espace de n caractères >>> mot.lower( ) 'coucou' >>> mot.upper( ) 'COUCOU' >>> mot.capitalize( ) 'Coucou' >>> mot.center(20) ' Coucou ' Remarques : » Les chaînes de caractères sont « immuables » : on ne peut pas modifier un élément d’une chaîne de caractères par une commande de la forme chaine[i]=... . » Les méthodes de chaîne, comme lower, upper, capitalize, center, etc... ne modifient pas la chaîne de caractères d'origine, mais renvoient une chaîne modifiée. » Les données saisies par l’utilisateur après la commande input(...) sont des chaînes de caractères.
  • 2. PCSI TP 5 Informatique 2016-2017 Introduction au TP : On sait depuis le début des années 1950 que l’information génétique d’un organisme vivant est mémorisée dans la molécule d’ADN de ses chromosomes. Cette molécule, constituée de deux brins complémentaires, est un long enchaînement de nucléotides de quatre types différents (distingués par leur base azotée : adénine, thymine, cytosine et guanine) désignés par les lettres A, T, C et G. Séquencer le génome d’un organisme, c’est établir l’enchaînement de ces nucléotides. La taille du génome peut varier de quelques milliers de nucléotides chez les virus à plusieurs milliards de nucléotides (3,4 milliards pour l’homme par exemple). La molécule d’ADN apparaît ainsi comme un très long texte écrit avec les quatre lettres A, T, C et G. À titre de comparaison un livre de poche de 1 000 pages comporte environ deux millions de caractères. D’autre part, seules certaines parties de cet enchaînement, appelées régions codantes et correspondant aux gènes, ont un sens. Aujourd’hui séquencer le génome d’un organisme ne pose plus de problème technique. Les difficultés commencent avec l’interprétation de ce très long texte sans espace, ni point, ni virgule. II - GÉNÉRATION D'UNE SÉQUENCE D'ADN Pour les besoins de ce TP, nous aurons besoin d’avoir des séquences d’ADN à notre disposition. Une séquence d’ADN sera représentée par une chaîne de caractères comportant uniquement les caractères A, T, C et G. Travail à faire : 1. Écrire une fonction sequenceADN(n) ayant pour paramètre d’entrée un entier naturel 𝑛 et renvoyant une séquence d’ADN aléatoire de longueur 𝑛. On pourra utiliser la fonction choice(range(4)) de la bibliothèque random pour obtenir un nombre aléatoire entre 0 et 3 avec la correspondance 0 1 2 3 A T C G ... ... " " " Fonction sequenceADN, paramètre = un entier naturel n renvoie : une séquence d'ADN aléatoire (A, C, T, G) de longueur n" " " ... ...
  • 3. PCSI TP 5 Informatique 2016-2017 2. Générer une séquence d’ADN, ADN1, de longueur 200 et l’afficher. Nous disposons alors d’une séquence d’ADN de longueur 200. Nous utiliserons également une séquence fixe : ADN2 = ’ATCTCATGCTCGGTAATATGTCATAGCCGATGCTACGATGACCTAC’ La générer et l'afficher. III - RECHERCHE DE RÉGIONS CODANTES Une région codante est une succession de codons (triplet de nucléotides) non-chevauchants qui commence par un triplet ATG (appelé codon start) et s’achève par l’un des trois triplets TAA, TAG ou TGA (appelés codons stop). Exemple avec la séquence ADN2 : ATCTC ATG CTC GGT AAT ATG TCA TAG CCG ATG CTA CGA TGA CCTAC non codant Start * Stop non codant Start Stop non codant Région codante Région codante Il y a deux régions codantes. Dans la première, le deuxième codon ATG (*) n’est pas un codon start car il n’est pas précédé d’un codon stop. Une région codante est composée d’un nombre entier de codons. 1. Recherche d'un codon start Travail à faire : 3. Écrire une fonction codon_start(ADN) prenant en entrée une séquence d’ADN (chaîne de caractères) et renvoyant une liste contenant la place de tous les codons start ATG trouvés (on donnera la place du A). Si aucun codon ATG n’est trouvé, la fonction doit renvoyer une liste vide. ... ... " " "Fonction codon_start, parametre = ADN, séquence d'ADN, chaîne de A, T, C, G renvoie : liste contenant la place de tous les codons start ATG, en indiquant la position de chaque A" " " ... ...
  • 4. PCSI TP 5 Informatique 2016-2017 4. Tester avec les séquences ADN1 et ADN2. Réponse attendue pour la séquence fixe : codon_start(ADN2) = [5, 17, 29, 37] 2. Recherche d'un codon stop en phase Travail à faire : 5. Écrire une fonction codon_stop(ADN, i) prenant en entrée une séquence d’ADN et l’indice i du début d’un codon start et renvoyant l’indice du premier codon stop (TAA, TAG ou TGA) suivant celui-ci. Les codons start et stop doivent être en phase, c’est-à-dire séparés par un nombre de nucléotides multiple de 3. Si aucun codon stop n’est trouvé, la fonction doit renvoyer le booléen False. 6. Tester avec les séquences ADN1 et ADN2. ... ... " " "Fonction codon_stop parametre 1 (str)= ADN, une séquence d'ADN qui est une chaine de A, T, C, G parametre 2 (int)= i, l'indice du début d'un codon start renvoie : l'indice du premier codon stop (TAA, TAG ou TGA) suivant codons start et stop en phase (séparés par un multiple de 3) si pas de codon stop, renvoie False." " " ... ...
  • 5. PCSI TP 5 Informatique 2016-2017 Réponses attendues pour la séquence fixe : codon_stop(ADN2, 5) = 23. codon_stop(ADN2, 17) = 23. codon_stop(ADN2, 29) = 38. codon_stop(ADN2, 37) = False. 3. Affichage des régions codantes Travail à faire : 7. Écrire une fonction regions_codantes(ADN) prenant en entrée une séquence d’ADN et renvoyant la liste des emplacements des régions codantes de cette séquence. Les emplacements seront de la forme [a, b] où a est l’indice du début du codon start et b est l’indice du début du codon stop correspondant. On fera attention à ne pas renvoyer de régions codantes chevauchantes. Si aucune région codante n’est trouvée, la fonction doit renvoyer la liste vide. On testera avec les séquences ADN1 et ADN2. Réponse attendue pour la séquence fixe : regions_codantes(ADN2) = [ [5,23] , [29,38] ]. 8. Écrire une fonction regions_codantes_aff(ADN) prenant en entrée une séquence d’ADN et renvoyant la liste des régions codantes de cette séquence. Chaque région codante sera donnée sous la forme d’une chaîne de caractères et chaque codon sera séparé par le caractère | (Sous Windows : Alt Gr + 6 ; sous Mac : Alt + Maj + L). Si aucune région codante n’est trouvée, la fonction doit renvoyer la liste vide. ... ... " " "Fonction regions_codantes parametre (str) = ADN, une séquence d'ADN qui est une chaine de A, T, C, G renvoie : une liste des emplacements des régions codantes, sous la forme [a,b] avec a l'indice du début du codon start et b l'indice du début du codon stop si pas de region codante, revoie une liste vide" " " ... ...
  • 6. PCSI TP 5 Informatique 2016-2017 On testera avec les séquences ADN1 et ADN2. Réponse attendue pour la séquence fixe : regions_codantes_aff(ADN2) = [’|ATG|CTC|GGT|AAT|ATG|TCA|TAG|’,’|ATG|CTA|CGA|TGA|’]. ... ... " " "Fonction regions_codantes_aff parametre(str) = ADN, une séquence d'ADN qui est une chaine de A, T, C, G renvoie = une liste de régions codantes. Chaque région codante est une chaîne de caractères, correspondant à chaque codon séparé par le caractère | " " " ... ...