Aller au contenu principal
Peef

← Articles

Vérifier l'équilibre de Hardy-Weinberg pour trois génotypes

· Programmation

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!



Articles liés

Newsletter

Chaque mois : un cas réel de migration, d'intégration ou de production Odoo. Ce que j'ai fait, ce qui a cassé, et pourquoi.

Aucun spam. Désinscription en un clic.

À propos de l'auteur

Je suis Nasser, développeur Odoo depuis 2016. Je travaille sur les intégrations et les migrations Odoo, avec le stock et la production. Certifié Odoo, membre de l'OCA, basé en Allemagne.

Ici, pas de théorie : les articles et les vidéos sortent de missions réelles, avec le code, les erreurs et ce que je ferais autrement la prochaine fois.

Voir la chaîne YouTube →