--> Dérive génétique Le programme suivant modélise un exemple de dérive génétique : à partir de la fréquence initiale f d'un allèle dans une population de taille constante p on donne la fréquence de cet allèle après n générations.

from random import * def derive(f,p,n): freq = f for i in range(1,n+1): a = 0.0 for j in range(0,p): if random() < freq: a = a+1 freq = a/p return freq print( derive(0.5,100,10) )

Un exemple avec un graphique pour visualiser l'évolution allélique.

Xmin = -1 Xmax = 10.1 Ymin = -0.1 Ymax = 1.1 function derive(f,p,n){ F = []; freq = f; for(i = 0; i < n; i++){ a = 0 for(var j = 0; j < p; j++){ if(Math.random() < freq){ a = a+1; } } freq = a/p F.push(freq) } return F } function traceEvol(F, coul){ n = F.length; pas = 10/n; couleur = coul for(var i = 0; i < n-1; i++){ segment([pas*i,F[i]],[pas*(i+1),F[i+1]]) } } couleur = noir; AxeX = true AxeY = true f = 0.5 p = 100 n = 200 traceEvol(derive(f,p,n),"rgb(255,0,0)"); traceEvol(derive(f,p,n),"rgb(0,255,0)"); traceEvol(derive(f,p,n),"rgb(0,0,255)");