Szelekció - egy lokusz két allél
Az előadáson levezetett egyenlet megadja, hogy mi lesz az allélok gyakorisága a következő generációban. Tehát követhetjük is az allélgyakoriság változását. Az előadáson csak az egyensúlyi pontokat mutattam be, azaz, hogy végtelen idő múlva hol köt ki a populáció. Itt most láthatjuk az időbeli lefolyását a folyamatoknak.
Alkalmazzuk azt helölést, amiben az A1A1 genotípus rátermettsége w11=1, az A1A2-é w12=1-hs, míg az A2A2 genotípusé w22=1-s. Valamint 0<s<1
Domináns előny
A domináns fenotípus előnyt élvez. h=0, s=0,5
Recesszív előny
A recesszív fenotípus előnyt élvez. h=1, s=0,5. Figyeljük meg, hogy a domináns kevésbé rátermett fenotípus kiszelektálása gyorsabb, mint az előző esetben vizsgált recesszív fenotípus esetében!
Heterozigóta hátrány
Az A1A2 heterozigóta rátermettsége kisebb, mint a két homozigótáé. h=1,5, s=0,5. Ebben az esetben a végkimenet a kezdeti gyakoriságoktól függ. Két példát mutatok, egyikben az A1 másikban az A2 terjed el.
Heterozigóta előny
Az A1A2 heterozigóta rátermettsége nagyobb, mint a két homozigótáé. h=-1,5, s=0,5. Mindkét allél megmarad a populációban, védett polimorfizmus alakul ki. Három különböző gyakoriságból kiindulva mutatom, meg, hogy mindig beáll az egyensúly.
A Python program
############################################################# import matplotlib.pyplot as plt; Generations = 30; #Kezdeti gyakoriság itt változtatható A1_gyakorisag = [0.5]; A2_gyakorisag = [1-A1_gyakorisag[0]]; ### w11 = 1 ### w12 = 1-hs ### w22 = 1-s SzelekciosKoefficiens = 0.5; #s HeterozigotaHatas = 1; #h Figures, Grafok = plt.subplots(2, sharex=False) for tt in range(Generations): A1_gyakorisag.append((A1_gyakorisag[-1]*A1_gyakorisag[-1]+A1_gyakorisag[-1]*A2_gyakorisag[-1]*(1-SzelekciosKoefficiens*HeterozigotaHatas))/(A1_gyakorisag[-1]*A1_gyakorisag[-1]+2*A1_gyakorisag[-1]*A2_gyakorisag[-1]*(1-SzelekciosKoefficiens*HeterozigotaHatas)+A2_gyakorisag[-1]*A2_gyakorisag[-1]*(1-SzelekciosKoefficiens))); #A gyakoriságának meghatározása A2_gyakorisag.append(1-A1_gyakorisag[-1]) Grafok[1].plot(range(Generations+1),A1_gyakorisag, label=r'$p_{\mathsf{A}1}$', linewidth=2.0); Grafok[1].plot(range(Generations+1),A2_gyakorisag, label=r'$p_{\mathsf{A}2}$', linewidth=2.0); #A fitness értékeket bemutató grafikon Grafok[0].bar([1,2,3],[1,1-SzelekciosKoefficiens*HeterozigotaHatas,1-SzelekciosKoefficiens],0.5,color='b'); Grafok[0].set_xticks([1.25,2.25,3.25]) Grafok[0].set_xticklabels((r'$\mathsf{A}_1\mathsf{A}_1$',r'$\mathsf{A}_1\mathsf{A}_2$',r'$\mathsf{A}_2\mathsf{A}_2$'), fontsize=14) Grafok[0].set_ylim([0.0,max(1.05,1-SzelekciosKoefficiens*HeterozigotaHatas+0.05)]); Grafok[0].set_xlim([0.75,3.75]); Grafok[0].set_xlabel('Genotípus',fontsize=18) Grafok[0].set_ylabel('Rátermettség',fontsize=18) Figures.subplots_adjust(hspace = 0.35) #Mindenféle beállítása a grafikonnak Grafok[1].legend(bbox_to_anchor=(0., 1.02, 1., .102), ncol=2, mode="expand", loc=3, borderaxespad=0.) # #Grafok[1].legend(loc=9, borderaxespad=0.) Grafok[1].set_ylim([0.0,1.0]); Grafok[1].set_xlabel('Generációk',fontsize=18) Grafok[1].set_ylabel('Allélgyakoriság',fontsize=18) plt.show(); #############################################################