Algorithme de traduction d’une séquence ARN et sa programmation en Python

Le but de cet article est de proposer un algorithme de traduction d’une séquence ARN et sa programmation en Python afin de répondre aux attentes du programme de Première dans l’enseignement de spécialité.

Avertissement : ce n’est pas une séquence pédagogique qui est proposée ici, mais une explication sur la manière de présenter la traduction de l’ARN sous la forme d’un algorithme. Il est souhaitable d’avoir quelques bases en algorithmique et en python pour pouvoir comprendre les programmes présentés.


 Liaison avec le programme et place dans la progression
 Notions, Savoir-faire, Compétences
 Outils numériques et ressources

 Proposition d’un algorithme de traduction d’une séquence ARN
 Proposition d’un programme en Python de traduction d’une séquence ARN
 Programmer la réplication et la transcription d’une séquence ADN
 Ressources complémentaires


Professeur

LIAISON AVEC LE PROGRAMME
Niveau concerné Première : enseignement de spécialité
Partie du programme : La Terre, la vie et l’organisation du vivant
Transmission, variation et expression du patrimoine génétique
PLACE DANS LA PROGRESSION
Dans le thème « La Terre, la vie et l’organisation du vivant », dans le point « Transmission, variation et expression du patrimoine génétique », dans la partie sur « L’expression du patrimoine génétique », lors de l’explication de la traduction de l’ARN messager en protéines, il est demandé de concevoir un algorithme de traduction d’une séquence d’ARN et éventuellement de le programmer dans un langage informatique (par exemple Python).
Cadre de référence des compétences numériques (CRCN)
Communication et collaboration
  • S’insérer dans le monde numérique
Création de contenus
  • Programmer
Environnement numérique
  • Évoluer dans un environnement numérique
Informations et données
  • Traiter des données

NOTIONS, SAVOIR-FAIRE, COMPETENCES
NOTIONS Extraits du Bulletin officiel spécial n° 1 du 22 janvier 2019
Chez les eucaryotes, la transcription a lieu dans le noyau et certains des ARN formés, après maturation éventuelle, sont exportés dans le cytoplasme. Parmi ceux-ci se trouvent les ARN messagers qui dirigent la synthèse de protéines lors d’un processus dénommé traduction.
Le code génétique est un système de correspondance, universel à l’ensemble du monde vivant, qui permet la traduction de l’ARN messager en protéines. L’information portée par une molécule d’ARN messager (le message génétique) est ainsi convertie en une information fonctionnelle (la séquence des acides aminés de la protéine).
SAVOIR-FAIRE Concevoir un algorithme de traduction d’une séquence d’ARN et éventuellement le programmer dans un langage informatique (par exemple Python).
COMPETENCES
  • Concevoir, créer, réaliser.
  • Communiquer et utiliser le numérique.

Outils numériques et ressources
Si on souhaite faire fonctionner le programme Python, il faut un environnement pour faire fonctionner Python.
3 solutions sont envisageables :

  • Solution conseillée : installer un package : EduPython (fréquent dans l’enseignement secondaire en France, par contre pour fonctionner sous MacOS ou Ubuntu, nécessite Wine) ou Anaconda (très utilisé dans le monde professionnel - puis utiliser Spyder dans Anaconda).
  • Solution la plus rapide : directement en ligne : exemple.
  • Solution la plus personnalisable : installer un éditeur de texte (ex. : Visual Studio Code) et l’interpréteur de Python.

Proposition d’un algorithme de traduction d’une séquence ARN

Dans un premier temps, on considère une séquence ARN qui commence directement avec un codon initiateur et qui se termine avec un codon STOP.
Dans ce cas simplifié, il suffit de faire une boucle (en algorithme et en programmation, une boucle permet de répéter plusieurs fois un bloc d’instructions). Dans cette boucle, on regarde à chaque itération 3 nucléotides de la séquence ARN afin d’identifier l’acide aminé correspondant. Ainsi, il est possible d’écrire un algorithme comme celui-ci :

On considère maintenant une séquence ARN qui ne commence pas nécessairement par un codon initiateur et qui ne finit pas forcément par un codon STOP. Il faut alors faire une première boucle pour déterminer le codon initiateur. Puis, il faut faire une deuxième boucle similaire à celle vue dans le cas précédent, sauf qu’en plus il faudra arrêter la boucle si l’acide aminé identifié est un codon STOP. Ainsi, il est possible d’écrire un algorithme comme celui-ci présenté dans le document ci-dessous.

Proposition d’un algorithme de traduction d’une séquence ARN

Proposition d’un programme en Python de traduction d’une séquence ARN

Il est possible de programmer en Python l’algorithme précédent.
Afin de pouvoir bien comprendre le code proposé ici, il serait préférable de connaitre les notions suivantes en Python :

  • les types de données int, string et list,
  • la structure conditionnelle if et elif,
  • la boucle while
  • et les fonctions print() et len().

Il aurait été possible de programmer cet algorithme de manière plus élégante, mais cela aurait été plus technique (utilisation du type de données dictionnaire par exemple).
Le programme ci-dessous peut s’ouvrir dans n’importe quel éditeur de texte. Pour le faire fonctionner voir la section Outils numériques et ressources.

Programme en Python de traduction d’une séquence ARN

Lecture commentée du programme (mettre en plein écran) :

Programmer la réplication et la transcription d’une séquence ADN

Même si ce n’est pas demandé par le programme de SVT de Première, si on fait la programmation de la traduction en Python, il peut être intéressant de faire également la réplication et la transcription.
En effet, programmer la réplication est plus facile que la traduction, il pourrait peut-être même être intéressant de commencer par programmer la réplication avant de faire la traduction. Enfin, la programmation de la transcription revient au même que la programmation de la réplication. Voici, par exemple un algorithme de réplication de l’ADN :

Ci-dessous 2 propositions de programme en Python de réplication et de transcription d’une séquence ADN. Dans un cas avec des boucles While comme dans l’algorithme ci-dessus et dans l’autre cas avec des boucles For qui se prêtent particulièrement bien à parcourir une séquence.

Programme en Python de réplication et transcription d’une séquence ADN avec des boucles while
Programme en Python de réplication et transcription d’une séquence ADN avec des boucles for

Il est aussi possible de combiner dans un seul programme, la réplication, la transcription et la traduction.

Programme en Python de réplication, transcription et traduction

Ressources complémentaires

Partager

Imprimer cette page (impression du contenu de la page)