Question 0 : Mes intuitions sur ce sujet sont biaisées car j’ai déjà fait le même genre de simulation au lycée lorsque j’ai étudié la dérive génétique. Il en ressortait qu’au fur et à mesure des générations, la proportion de chaque allèle varie au grès des recombinaisons aléatoires lors de la méiose.

De plus lorsqu’un allèle n’est plus porté par aucun individu de la population il disparaît définitivement et donc la dérive génétique réduit la diversité génétique d’une population. Les allèles qui sont le moins présents dans la population initiale ont le plus de chance de disparaître (il suffit de prendre la cas extrême d’un allèle porté par un seul individu pour s’en convaincre : si cet individu n’a pas de descendance, l’allèle disparaît définitivement à la génération suivante)

Le caractère dominant ou récessif d’un allèle n’influe pas sur sa transmission entre générations (à moins que le caractère associé à cet allèle confère un avantage évolutif ce qui n’est pas le cas dans notre simulation).

La dérive génétique est plus marquée sur une population de petite taille. Une population comportant peu d’individus est donc plus fragile génétiquement.

Simulation

A chaque individu est associé une variable aléatoire qui compte le nombre d’allèles codant pour la caractère “yeux bleus”. Ainsi 0 représente deux allèles bleus, 1 représente un allèle bleu et un marron, et 2 représente 2 allèles marron.

On donne le code de la simulation. La fonction genere_P0(P,BB0,MM0) génère une population initiale de P individus dont BB0 individus avec deux allèle bleus et MM0 individus avec deux allèles marron.

La fonction genere_pop_suivante(N, pop_initiale, preservation) génère une population de N individus à partir d’une population pop_initiale après une génération en choisissant ou non la préservation (valeur booléenne).

La fonction simuler_evolution(I, pop_initiale, preservation) permet de tracer un diagramme représentant l’évolution de la proportion des individus BB et MM au cours de I année (avec préservation ou non).

genere_P0 = function(P, BB0, MM0){
  set.seed(42);
  return(c(rep(0,MM0),rep(1,P-BB0-MM0),rep(2,BB0)))
}
genere_pop_suivante = function(N, pop_initiale, preservation){
  peres = sample(size=N, x = pop_initiale, replace = T)
  meres = sample(size=N, x = pop_initiale, replace = T)
  enfants_p = ifelse(peres==0,0,ifelse(peres==1,sample(size = N,x=c(0,1),replace = T),1));
  enfants_m = ifelse(meres==0,0,ifelse(meres==1,sample(size = N,x=c(0,1),replace = T),1));
  enfants = enfants_m + enfants_p;
  if (preservation){
  enfants[1]=0;
  enfants[2]=2;
  }
  return(enfants)
}
simuler_evolution = function(I, pop_initiale, preservation){
  frequences_BB = rep(0,I);
  frequences_MM = rep(0,I);
  P = pop_initiale
  frequences_BB[1]=sum(ifelse(P==2,1,0));
  frequences_MM[1]=sum(ifelse(P==0,1,0));
  for (i in (1:I)){
    P = genere_pop_suivante(length(P),P,preservation);
    frequences_BB[i+1]=sum(ifelse(P==2,1,0));
    frequences_MM[i+1]=sum(ifelse(P==0,1,0));
  }
  temps=0:I;
  plot(temps,frequences_MM, type = "l", col = "brown", ylim=c(0,length(P)));
  lines(temps,frequences_BB, type="l", col = "blue");
}

Question 1

Sur chaque graphique, la courbe marron représente le nombre d’individus MM au cours du temps et la courbe bleu le nombre d’individus BB.

simuler_evolution(20,genere_P0(20,4,12),FALSE);

Sur ce premier graphique on a 4 individus BB dans la population de départ. La proportion de BB et MM fluctue au cours du temps mais les variations ne sont si importantes et au bout de 20 ans les proportions restent relativement proches des proportions initiales.

simuler_evolution(20,genere_P0(20,12,4),FALSE);

Cette fois les changements au cours des génération sont plus importants, les MM deviennent plus nombreux que les BB au bout d’une douzaine d’année.

simuler_evolution(20,genere_P0(20,5,5),FALSE);

Les BB et MM sont en nombre égal dans la population initiale, au bout de quelques année les MM deviennent plus nombreux. La proportion de BM dans la population reste relativement stable.

simuler_evolution(50,genere_P0(20,5,5),FALSE);

Avec un horizon plus éloigné, on observe la disparition de l’allèle marron, en effet plus le temps est long plus le nombre d’un allèle donnée a de chances de passer par 0 qui est un point de non retour.

simuler_evolution(50,genere_P0(20,16,2),FALSE);

Avec seulement 2 BB dans la population initiale contre 16 MM, les BB disparaissent rapidement.

simuler_evolution(50,genere_P0(20,2,16),FALSE);

Mais il arrive parfois qu’un allèle qui partait perdant renverse la situation.

Les résultats des simulation précédentes et de simulation complémentaire en changeant la valeur de la graine m’ont permi d’observer que la répartition des allèles change considérablement au cours du temps : ni les marrons ni les blancs ne prennent systématiquement l’avantage, cependant les allèles qui commencent le moins nombreux ont plus de chances de disparaître. Plus l’horizon est long et plus les chances que tous les allèles perdurent sont minces.

Question 2

simuler_evolution(100,genere_P0(2000,400,1200),FALSE);

simuler_evolution(100,genere_P0(2000,1200,400),FALSE);

simuler_evolution(100,genere_P0(2000,500,500),FALSE);

Avec une population multipliée par 100 et un horizon multiplié par 5, le rapport taille_pop/horizon est augmenté considérablement. Les graphiques changent d’apparence : les proportions des différents allèles restent stables malgré de petites fluctuations.

simuler_evolution(5000,genere_P0(2000,500,500),FALSE);

Toutefois, si l’on augmente considérablement l’horizon, on retrouve des fluctuation importantes et la disparition d’allèles.

Au vu de ces observation, il semble que l’importance de la dérive génétique (l’amplitude des fluctuations dans les proportions d’allèles) soit directement liée au ratio taille_population/horizon. Plus ce ratio est grands moins perceptibles sont les fluctuations.

Question 3

simuler_evolution(2000,genere_P0(20,12,4),TRUE);

simuler_evolution(2000,genere_P0(20,4,12),TRUE);

simuler_evolution(2000,genere_P0(20,5,5),TRUE);

Dans cette simulation, aucun des allèles ne peut disparaître et quelle que soit leur proportion dans la population initiale la graphique obtenu semble être toujours du même type : une fluctuation des différentes proportions d’allèles très intense au cours du temps. Un allèle donnée devient tantôt prédominant tantôt presque disparu et alterne ces deux état rapidement (à l’échelle des 2000 ans). En ce sens je dirais que le système est très instable. De surcroît le point de stabilité trouvé dans le système précédent (à savoir la disparition d’un allèle) et maintenant inatteignable. Je ne vois pas de zone particulièrement attractive.

Question 4

Les résultats de ces simulations sont conformes à mes “intuitions”. Ce modèle est intéressant car on retrouve des phénomène observés réellement dans la nature. Il pourrait être enrichi en prenant en compte la possibilité d’avoir plus de deux allèles pour un gène mais on observerait pas tellement de phénomène nouveau. Ce serait également passionnant d’ajouter dans le modèle la répartition géographique des allèles ou de prendre en compte le fait que certains allèles conférant un avantage évolutif mais le modèle deviendrait bien sur bien plus complexe.