J'ai l'honneur de vous présenter ce mois ci un programme informatique (bien sûr écrit en Python), qui vise la génétique des populations, cette branche de la génétique qui, contrairement à la génétique classique, permet d'étudier la distribution d'un gène dans une population sous l'effet des pressions évolutives comme la sélection naturelle et les mutations. En médecine, elle de prédire l'apparition des maladies génétiques comme la phénylcétonurie. Elle est aussi très pratique dans l'étude de l'évolution des espèces. Sur ce, je vous présente mon programme!
# programme Python qui vérifie l'équilibre de Hardy-Weinberg
# by abdounasser202@gmail.com
def hw():
# message d'accueil
print('''*** Ce programme permet de vérifier l'équilibre de Hardy-Weinberg
pour 3 génotypes à 2 allèles. Ainsi, avec un risque de se tromper qui est
généralement de 5%, le khi deux de reférence sera 3,84. ***\n\n''')
try:
# l'utilisateur entre les effectifs qu'il a observé
HH = int(input('Nombre d\'homozygotes 1: '))
hh = int(input('Nombre d\'homozygotes 2: '))
Hh = int(input('Nombre d\'hétérozygotes: '))
# effectif total
N = HH + hh + Hh
# calcul des fréquences alléliques
p = (HH + 1/2 * Hh)/N
q = (hh + 1/2 * Hh)/N
# calcul des effectifs théoriques
GG = p**2 * N
gg = q**2 * N
Gg = 2 * p * q * N
# calcul du khi deux
k1 = (HH - GG)**2 / GG
k2 = (hh - gg)**2 / gg
k3 = (Hh - Gg)**2 / Gg
khi = k1 + k2 + k3
print('\n\nkhi deux calculé: ', khi)
if khi < 3.84:
print('''Cette population suit l'équilibre de Hardy-Weinberg:
il y'a équilibre!\n\n''')
else:
print('''Cette population ne suit pas l'équilibre de Hardy-Weinberg:
il n'y a pas équilibre!\n\n''')
except ValueError:
print('NON! Veuillez entrez un nombre réel s\'il vous plait!\n\n')
quitter = input('Voulez-vous quittez le programme?(o/n) ')
if quitter == 'o':
print('Fin du programme')
else:
return hw()
if __name__ == "__main__":
hw()
Si vous avez Python, copiez et collez ce code dans votre éditeur et voyez ce qui se passe!
J'attends vos critiques!