Bonsoir, j'aurais besoin d'aide pour mon DM en nsi.

Une séquence d'ADN est une suite constituée de lettres dans l'ensemble [A, T, G, C].

Écrire une fonction nucleotide() qui renvoie le nucléotide (la lettre) le plus présent. Si c'est le cas de plusieurs, renvoyer celle qui vient en premier dans l'ordre alphabétique.


Sagot :

CAYLUS

Réponse :

Bonjour,

Explications :

Analyse:

  • 4 lettres différentes triées: A C G T
  • une séquence d'adn de longueur N.

Il existe une fonction en python qui compte le nombre d'occurrence d'un élément dans une liste: count..
exemple d'utilisation :
sequence_adn=list("ABCDA")

print ( sequence_adn.count("A") )

qui affiche 2.

Comme en statistiques, on va utiliser une tableau de paires [lettre,répétition] pour les 4 lettres de nucléotides. puis on calcule leur occurrence  dans la chaîne d'adn.


tableau=[ ["A",0],["C",0],["G",0],["T",0]]

for i in range(4):

___tableau[i][1]=sequence_adn.count(tableau[i][1])

Il suffira de trouver la lettre ayant la plus grande répétition (le mode).

soit par une boucle

nucleo=tableau[0][0]

maxi=tableau[0][1]

for i in tableau:

__ if i[1] > maxi :

___ ___ maxi=i[1]

___ ___ nucleo=i[0]

Je te laisse le soin de mettre tout cela en musique.

Si tu veux approfondir la maitrise du Python,

je t'invite à consulter https://nosdevoirs.fr/devoir/5216210.