top of page
N10.jpg

Rによる遺伝的浮動+自然選択シミュレーション

遺伝的浮動は、次の世代に遺伝子が引き継がれる時、ランダムに遺伝子が選ばれることによって起こります。この過程は、コンピューターによってシミュレーションをすることができます。また、自然選択が働く場合、確率的にランダムより特定の遺伝子が選ばれる可能性が高まります。

RのダウンロードはRによる遺伝的浮動シミュレーションのページを参照してください。

RをインストールしたらRを立ち上げます。

左上の”ファイル”メニューから新規文書を選びます。
 

表示された"名称未設定"のファイルに以下のように打ち込みます。

  drift <- function(N,iFreq,Gen,Rep,s){

    Frequency01<-numeric(Gen+1)

    Frequency02<-numeric(Gen+1)

    Frequency03<-numeric(Gen+1)

    

    Num01<-numeric(Gen+1)

    Num02<-numeric(Gen+1)

    Num03<-numeric(Gen+1)

    Generation<-numeric(Gen)

    par(new=F)

    for(j in 1:Rep){

    

        Frequency01[1]<-iFreq

        Frequency02[1]<-iFreq

        Frequency03[1]<-iFreq

    

        for(i in 1:Gen){

            Generation[i]<-i

            if(Frequency02[i]+s>1){Frequency02[i]<-1}else{Frequency02[i]<-Frequency02[i]+s}

            if(Frequency03[i]-s<0){Frequency03[i]<-0}else{Frequency03[i]<-Frequency03[i]-s}

            Num01[i]<-rbinom(1,N,Frequency01[i])    

            Num02[i]<-rbinom(1,N,Frequency02[i])    

            Num03[i]<-rbinom(1,N,Frequency03[i])    

            Frequency01[i+1]<-Num01[i]/N

            Frequency02[i+1]<-Num02[i]/N

            Frequency03[i+1]<-Num03[i]/N

        }

        Generation[i+1]<-i+1

 

        plot(Generation,Frequency01,ylim=c(0,1),xlim=c(1,Gen),type="l",col="red",lty=1)

        par(new=T)

        plot(Generation,Frequency02,ylim=c(0,1),xlim=c(1,Gen),type="l",col="green",lty=1)

        par(new=T)

        plot(Generation,Frequency03,ylim=c(0,1),xlim=c(1,Gen),type="l",col="blue",lty=1)

        par(new=T)

    }

  }

この文書に”dirftS.R”という名前をつけて保存します。


次に、メニューバーの”その他”から”作業ディレクトリーの変更”を選択し、driftS.Rを保存した場所を指定します。  (Windows版の場合は ファイルメニューから作業ディレクトリーの変更を選択し、drift.Rが保存している場所を指定します)

最初のRコンソールにもどってください。

画面の下に>のマークがあります。そこにカーソルを移動し、以下を入力します。

  > source("driftS.R")

 


最初のRコンソールにもどってください。

ここまでが終了したら、準備が完成です。

まず、個体数が10個体、初期の遺伝子頻度が0.5で50世代目までの遺伝子頻度の変化をシミュレートします。

以下のように入力し、リターンを押します。
 

  > drift(100,0.5,50,100,0.05)

これは、左端の数字100が個体数、2番目の0.5が最初の遺伝子頻度、3番目の50が世代数です。4番目の100は、繰り返す回数です。最後の0.05は選択係数です。この場合選択係数は、ランダムに遺伝子が選ばれるより、5%多い確率で一方の対立遺伝子が次の世代に選ばれることを意味します。このシミュレーションでは、2つの対立遺伝子を想定しています(たとえばaとb)。aがbより選ばれる確率が高い場合と、bがaより高い確率で選ばれる場合と両方を想定しています。

 

横軸が世代、縦軸が遺伝子頻度(aとbの対立遺伝子があり、aの頻度が縦軸)です。上を実行するたびに異なる遺伝子頻度の変動がみられます。赤い線は、遺伝的浮動のみで遺伝子頻度が変化している場合、緑は、対立遺伝子aが5%有利な場合、青は対立遺伝子bが有利な場合です。
 

次に個体数を10にします。

 

  > drift(10,0.5,50,100,0.05)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

個体数が10の場合は、自然選択が働いているにもかかわらず、個体数が小さく、遺伝的浮動の効果が高く、赤、緑、青の場合が区別しづらくなっているのがわかります。

bottom of page