Chevalier Maxime (Groupe 1)
P0 =
Imax =
set.seed(42);
Que va-t-il se passer selon vous? Comment va évoluer la proportion de personnes ayant les yeux bleus? Je pense que la proportion de personne ayant les yeux bleus va se stabiliser au fur et à mesure des itérations (un peu comme dans la vie courante).
Je pense que sur des petites populations, les allèles bleus peuvent disparaitre. Nous devrions avoir des graphiques en dents de scie qui tendent vers l’abscence de bleu.
Je pense que dans ce cas, on a plus de chance d’avoir des individus aux yeux bleu d’une génération sur l’autre, et que ceux-ci permettrons de disceminer des allèles bleus dans la populations, ce qui augmentera la chance d’avoir des personnes aux yeux bleus, etc. La répartions de couleur des yeux va se stabiliser.
Je pense qu’on va se raprocher du comportement de la question 2.
P = 20;
Imax = 20;
N = 10;
MM =0;
MB =1;
BB =2;
set.seed(42);
P0 = function(nbMM,nbBB){
res = rep(4,P);
for (i in 1:nbMM) {
res[i] = MM;
}
for (i in (nbMM+1):(nbMM+nbBB)) {
res[i] = BB;
}
for (i in (nbMM+nbBB+1):P) {
res[i] = MB;
}
return(sample(res));
}
parentAlea = function(pPred){
return(sample(pPred,P,replace = T,prob = rep(1/P,P)));
}
pPlusUn = function(pPred){
#On Choisi des parents aleatoirement
parent_P = parentAlea(pPred);
parent_M = parentAlea(pPred);
#On calcul les alleles donnes par les parents
Enfant_P = ifelse(parent_P==0,0, ifelse(parent_P==1,sample(size = P, x=c(0,1), replace = T),1));
Enfant_M = ifelse(parent_M==0,0, ifelse(parent_M==1,sample(size = P, x=c(0,1), replace = T),1));
#On fait la somme des alleles des enfants et on la retourne
Enfant = Enfant_P+Enfant_M;
return(Enfant);
}
generation = function(nbBB,nbMM,ImaX,N,P)
{
plot(x = NULL, y = NULL,xlim = c(0,ImaX),ylim = c(0,1), xlab = "i", ylab = "BB(i) bleu - MM(i) Marron");
for (n in 1:N) {
X = rep(0,ImaX);
YB = rep(0,ImaX);
YMM = rep(0,ImaX);
#PremierPas
P0 = P0(nbMM,nbBB);
YB[1] = nbBB/P;
YMM[1] = nbMM/P;
X[1] = 0;
P1 = pPlusUn(P0);
#calcul Graphique indice 1
YB[2] = sum(P1==2)/P;
YMM[2] = sum(P1==0)/P;
X[2] = 1;
for (i in 2:(ImaX-1)) {
P1 = pPlusUn(P1);
#calcul Graphique
YB[i+1] = sum(P1==2)/P;
YMM[i+1] = sum(P1==0)/P;
X[i+1] = i+1;
}
lines(X,YB, type = "l",col = "blue");
lines(X,YMM, type = "l",col = "brown");
}
}
generation(4,12,10,10,20);
On voit ici que la population de personnes aux yeux bleus reste autour de 10% en moyenne. Il y a des générations où il n’y a pas d’individu aux yeux bleus, mais les générations suivante peuvent en avoir, car il y a des personnes aux yeux BM.
generation(12,4,10,10,20);
On remarque ici qu’avec beaucoups de personnes aux yeux bleus, il y a toujours au bout de la dixieme génération, des personnes aux yeux bleus. La proportion de personnes aux yeux bleus est cependant imprévisible, 5 itérations terminent au dessus de la population de départ, et 5 autres en dessous. On remarque également que la probabilité d’avoir les allèles MM a l’air de suivre la même loi que la probabilité d’avoir les allèles BB (cf coube bleu graphique précédent et courbe marron graphique courant)
generation(5,5,10,10,20);
Il est clair ici que p(BB) et p(MM) suivent la même loi.
P = 2000;
Imax = 100;
N= 10;
generation(400,1200,Imax,N,P);
Comme dans le cas précédent, la proba d’avoir les yeux bleus a l’air d’être 10%.
generation(1200,400,Imax,N,P);
On observe ici le même graphe que le précédent, mais avec les couleurs inversées.
generation(500,500,Imax,N,P);
On peut donc se dire que ces deux variables suivent la même loi de probabilité “avoir les allèles de la même couleur”, et que la proportion de personne ayant les mêmes allèles est stable dans le temps.
P = 20;
Imax = 2000;
N= 1;
generation(4,12,Imax,N,P);
generation(12,4,Imax,N,P);
generation(5,5,Imax,N,P);
#Redefinition de PplusUn
pPlusUn = function(pPred){
#On Choisi des parents aleatoirement
parent_P = parentAlea(pPred);
parent_M = parentAlea(pPred);
#On calcul les alleles donnes par les parents
Enfant_P = ifelse(parent_P==0,0, ifelse(parent_P==1,sample(size = P, x=c(0,1), replace = T),1));
Enfant_M = ifelse(parent_M==0,0, ifelse(parent_M==1,sample(size = P, x=c(0,1), replace = T),1));
#On fait la somme des alleles des enfants
Enfant = Enfant_P+Enfant_M;
ajoutMM = runif(1,min=1,max=P);
Enfant[ajoutMM] = MM;
ajoutBB = runif(1,min=1,max=P);
while (ajoutMM==ajoutBB) {
ajoutBB = runif(1,min=1,max=P);
}
Enfant[ajoutBB] = BB;
return(Enfant);
}
generation(4,12,Imax,N,P);
generation(12,4,Imax,N,P);
generation(5,5,Imax,N,P);
On voit clairement ici, que l’ajout de la préservation rend la génération complètement instable, mais plus proche d’une simulation sur un grand nombre d’individu que la question 1.
Au delà des aspects purement techniques de la chose que ce devoir a pu vous apprendre, le résultat de cette étude est-il conforme à votre intuition initiale?
Oui, je me doutais que ca allait rester stable, par contre je n’avais pas vu le fait que MM pouvait suivre la même loi que BB. Je ne m’attendais pas non plus à ce que la préservation ait un tel effet sur la simulation.
Pensez-vous à d’autres hypothèses que vous pourriez tester?
Si vous deviez modifier le modèle proposé, quelles seraient vos priorités?