ミトコンドリア・シミュレータ

by たけ(tk)

たけ(tk)のホームページへ


ミトコンドリアDNAをめぐる議論についての、2001-10-08(月)現在の たけ(tk)の意見はこんなかんじ。 (1)「現代のある人」の母親は一人だが、父母は2人。祖母は2人で祖父母は 4人居る、曾祖母は4人、曾祖父母は8人居る。10代前(約300年前)の祖 先は計算上1024人。30代前(約1000年前)の祖先は計算上10億7374万 1824人となる(※1)。「現代のある人」の祖先は時代が遡ると計算上膨大な人 数になる。その時代の全人口を上回ることは確実である。したがって、大昔の人 間のうち、その後子孫を残した人の大半が「現代のある人」の祖先であったと考 えた方が合理的だろう(※2)。 ※1 1世代30年として、世代数=年数/30年、祖先の人数=2の(世代数)乗)。 ※2 この部分のシミュレータ (2)現代の人類の全員が一人のイブ(純粋母系の祖先)にたどり着くのは数学 的な必然であって、驚くべきことではない。ある集団の女性の人数が一定(N人) だとすると平均してその人数の4倍の世代数(4N世代)で一人のイブになって しまうらしい。人数に変動がある場合には最も人数が減った時期の集団の人数に よる。(※3) ※3 この部分のシミュレータ nifty:FSCI/MES/04/8605 》| 単系化するまでの平均世代数は個体数だけによって数学的に計算できそう 》|です。しかし、それを定式化するのは、たけ(tk)の能力を超えているようで 》|す。 》| 》| (1)誰か定式化してくださいませんか?。 》| 》| (2)それと、「平均」というのはあるのでしょうか?。 》 》 》(1)これについては、MES(1)#8867で suchowan さんが書いてます。まだ読 》   めるはずですが、引用しておきましょう。 》 》| 木村資生『分子進化の中立説』(1986紀伊國屋書店)P.65 あたりに、「中立 》|な突然変異遺伝子(初期頻度をp=1/(2N))が集団の中に定着するまでの世代数と 》|標準偏差が載っています(*)。集団の有効な大きさを Ne として、 》| 》| 平均 = 4.00 Ne 世代 》| 標準偏差 = 2.15 Ne 世代 》| 》| ということだそうです。ミトコンドリア遺伝子の場合、ちょっとモデルも違っ 》|てくると思いますが、結論は、定数が倍半分違う程度(たぶんN=Ne=人口の半分) 》|では無いでしょうか(原論文にあたって導出過程を確認すれば、定数の補正もで (3)純粋母系の祖先(ミトコンドリアイブ)が「祖先」であるとするのは、1 0代前の1024人の祖先のうち、1023人の影響はとりあえず考えないこと を意味する。純粋母系または純粋父系の祖先をあまりに重大視すると、30代前 の10億7374万1824人の祖先のうちの10億7374万1,823人の影響を無視する、とい うことになりかねない。 (4)純粋母系の祖先(ミトコンドリアイブ)は14万年前の祖先(計算上の人 数は2の5000乗かな?)のうちの一人であるが、14万年間の祖先が一人で あったということではない。あくまでも、膨大な数の祖先のうちの一人にすぎな い。その一人がどこにいたかは、たとえ分かったとしても、大きな意味を持つも のではない。
ミトコンドリア・シミュレータ その1(新)
 以下の文はニフティのサイエンスフォーラムの生物学の会議室 (nifty:FSCI/MES/04/)で、2000年の9月頃に掲載したものです。 内容的には、その1、その2(新)と同じなので、「その1」へ進んだほうが 読みやすいです。
08594/08606 GGB03124 たけ(tk) mtDNAシミュレータ −その1 ( 4) 00/09/01 23:47 08591へのコメント 初めまして たけ(tk)です。 FREKI よりもこちらの方がふさわしいのではないかと思って、こちらに投 稿します。 −− mtDNAの集団内での変異・増減をシミュレートするスクリプトを Ruby で作ってみました。170行ほどなので挙げておきます。 Ruby は http://www.moriq.com/apollo から Ap-999.zip と vcl50.zip をダウンロードして展開すればWIN95で実行できるはず。 −− やっていることは (1) 最大40人(女性20人)の集団が100世代(3000年)孤 立していた時の集団内でのmtDNAの分布をシミュレートする。 (2) 一人の女性は必ず2人の子供を産み、その子供は必ず育つ。 (3) 子供の性別はランダムに決定される。女女であればmtDNAは 増えるが、男男であれば、その母親の系統は断絶する。 (4) 変異はN世代に1回起こる。(Nは指定可能、0にすると変異な し)。 −− シミュレータを実行すると次のような出力を出す。 (1) 「000」は世代番号。一つの世代につき、均等状態の行と、 その 子供の状態の行の2行出力する。 (2) 「a」〜「z」で女性の遺伝子の型を表す。記号は使い回すので、 いったん断絶した後の同じ記号があっても、別の遺伝子型である。 (3) 変異によって発生した型は大文字で表す。 (4) 「.」は男性。 (5) 「t1」は統計データ。 (6) 最後に変異の一覧表を出す。 Ruby_aw d:\apollo\mtdna.rb 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1,... 000 aa.b.c..e..f..h.Uij...llnn...op.q...s.tt 001 a.a.b.c.e.f.h.u.i.j.l.l.n.n.o.p.q.s.t.t. t2,n2,l2,a2,u1,s1,q1,p1,o1,... 001 aa.a......ffhhu.i.....Vl.n.no..p..ss.ttt 002 a.a.a.f.f.h.h.u.i.v.l.n.n.o.p.s.s.t.t.t. t3,a3,s2,n2,h2,f2,v1,u1,p1,... 002 .aa.aaf.ffhhh.....v..l..W.oop.s.....ttt. 003 a.a.a.a.f.f.f.h.h.h.v.l.w.o.o.p.s.t.t.t. a4,t3,h3,f3,o2,w1,v1,s1,p1,l1 003 a.aaa.a.fff.ff...hhh..X..wo...p..s.tt... 004 a.a.a.a.a.f.f.f.f.f.h.h.h.x.w.o.p.s.t.t. f5,a5,h3,t2,x1,w1,s1,p1,o1 004 a...aa.a..f.ff..f.f..h..h.xx.w.oY.sst.t. 005 a.a.a.a.f.f.f.f.f.h.h.x.x.w.o.y.s.s.t.t. f5,a4,x2,t2,s2,h2,y1,w1,o1 ・・・ 100 t.t.t.t.t.t.f.t.c.c.c.c.i.i.k.k.k.k.k.k. t7,k6,c4,i2,f1 100 t....tt.ttt.f..tG.....c.i.ii..kk.kk.kkk. 101 t.t.t.t.t.t.f.t.g.c.i.i.i.k.k.k.k.k.k.k. t7,k7,i3,g1,f1,c1 101 ..t.tt...t.tf...g.Hciiii...k.k.kkk..k..k (変異の一覧表) ["0 i => U", "1 l => V", "2 n => W", "3 l => X", "4 p => Y", "5 a => Z", "6 f => B", "7 t => C", "8 y => D", "9 d => E", ・・・ "100 c => G", "101 c => H"] −− シミュレーションの出力の見方 下の例では、000 世代で 1 「a」→「aa」 子供が二人とも女だった 2 「c」→「.c」「c.」 子供が男一人、女一人だった 3 「k」→「..」 子供が二人とも男だった 4 「i」→「Ui」 子供(娘)の一人に変異があった 1 2 4 3 世代↓ ↓ ↓ ↓ 順位:記号+人数 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1,... 000 aa.b.c..e..f..h.Uij...llnn...op.q...s.tt ←変異したものは大文字 || | | | | | ||| |||| || | | || |\\\ | ////| //|\ /| | /// 001 a.a.b.c.e.f.h.u.i.j.l.l.n.n.o.p.q.s.t.t. t2,n2,l2,a2,u1,s1,q1,p1,o1,... −−−−−−−−−− ## ## Ruby_aw mtDNA.rb ## Ruby_aw d:\apollo\mtdna.rb ## ## ミトコンドリアDNA ## 2000-08-30(水)。たけ(tk) ## ## ---- 設定 ---- $model = 0 $model_ichiyo = true # はじめに一様の遺伝子か、20種類か?。 $model_disp_all = false # 全ての経過を表示するか、10世代に1回か?。 $model_ninzu = 20 # 部族の女性の人数(最大20人) $model_heni = 1 # 何世代に1回変異するか。0なら変異しない。 $model_sedai = 102 # 何世代まで計算するか?。 ## ---- $model による変更 ---- if $model ==1 ## 単一化のシミュレーション $model_ichiyo = false $model_heni = 0 elsif $model == 2 ## 普通の変異のシミュレーション elsif $model == 3 ## 多様で初めて変異もある場合。 $model_ichiyo = false elsif $model == 4 ## 10人。 $model_ninzu = 10 elsif $model == 5 ## 5世代に1回の変異。途中何度も単一化する。 $model_heni = 5 $model_sedai = 502 elsif $model == 6 ## 2世代に1回の変異。 $model_heni = 2 $model_sedai = 202 elsif $model == 7 ## 単一化のシミュレーション。15人 $model_ichiyo = false $model_heni = 0 $model_ninzu = 15 elsif $model == 8 ## nifty のケースで50世代目から分離 $model_sedai = 52 end if $model_ichiyo ## 12345678901234567890 $current = 'aaaaaaaaaaaaaaaaaaaa' $nextchr = ?b else ## 12345678901234567890 $current = 'abcdefghijklnmopqrst' $nextchr = ?u end if $model == 8 ## 12345678901234567890 $current = 'oobjjtttssttvvvmmmaa' $nextchr = ?c end if $model_ninzu < 20 $current = $current[0..($model_ninzu-1)] end ## ---- 設定おわり ---- ## ---- 各遺伝子の数をカウントする ---- $chrcnt = {} def mk_cnt for c in ?a .. ?z $chrcnt[c.chr] = 0 end for i in 0 .. $model_ninzu-1 c = $current[i].chr.downcase $chrcnt[c] = $chrcnt[c] + 1 end end mk_cnt ##p $chrcnt.sort def disp_cnt s1 = [] $chrcnt.each{ |chr,cnt| s1 << [cnt,chr] if cnt > 0 } s2=[] s1.sort.reverse.each{ |cnt,chr| s2 << format("%s%d",chr,cnt) } return s2.join(',') end ## ---- 女性を一つ置きに並べる ---- def mk_disp1 s = '' for i in 0..$model_ninzu-1 s = s+$current[i].chr+'.' end return s end ## ---- 次の変異型の記号を捜す ---- def getnext c = $nextchr m1,m2=1000,1000 for d in ?a .. ?z if $chrcnt[d.chr] == 0 if c < d m2 = d if d < m2 else m1 = d if d < m1 end end end if m2 != 1000 $nextchr = m2 else $nextchr = m1 end return c.chr end ## ---- 子供の遺伝子を複製して、変異型を追加し、男子は「.」にする ---- $changes = [] def mk_disp2 r = rand($model_ninzu) s = '' for i in 0..$model_ninzu-1 c = $current[i].chr if ( r == i ) and ( $model_heni != 0 ) and ( $sedai % $model_heni == 0 ) n = getnext.upcase s = s+n+c $changes << format("%d %s => %s",$sedai,c,n) else s = s+c*2 end end d = 0 while d < $model_ninzu r = rand($model_ninzu*2) c = s[r] if ( c != ?. ) && ( ?a <= c ) && ( c <= ?z ) d=d+1 s[r] = ?. end end $current = '' for d in 0 .. ($model_ninzu*2-1) c = s[d] if ( c != ?. ) $current = $current + c.chr.downcase end end mk_cnt return s end ## ---- メインループ。計算+表示。最後に変異の一覧を表示 ---- $sedai = 0 if $model==8 $sedai = 50 end for i in 1..$model_sedai cnt = disp_cnt disp1 = mk_disp1 disp2 = mk_disp2 if ($model_disp_all) || ($sedai < 10) || ($sedai % 10 < 2) print format("%03d " % $sedai),disp1,' ',cnt,"\n" print format("%03d " % $sedai),disp2,"\n" end $sedai += 1 end p $changes ## ---- スクリプトおわり ---- たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
【系統の単一化のシミュレーション】
08595/08606 GGB03124 たけ(tk) mtDNAシミュレータ −その2 ( 4) 00/09/01 23:47 08591へのコメント コメント数:1 で、上記のスクリプトで、 》参考文献(*)によれば、ほ乳類の卵には約10万個のmtDNAがあるそ 》うです。ヒトの卵には何個のmtDNAがあるのか知りませんが、沢山あ 》ると仮定します。mtDNAが変異しやすいとはいえ、そんなに沢山ある 》mtDNAのうちに1個mtDNAに塩基置換が起きたとして、それがなん 》になるというのでしょうか。 》今日たまたま発見したのですが、「モンゴロイド地球を動く」(1992クバプロ) 》という講演記録集に、こういう質疑が掲載されていました。 》 》<引用> 》 》Q.1個の細胞中には複数のミトコンドリアDNAがあるはずですが、それぞれ 》のミトコンドリアDNAの間に塩基配列の異なるものが含まれていたりして、混 》在しているということはないのでしょうか。 》 》A.(宝来聡) 少なくとも正常人では多数含まれているコピーのDNAはすべて 》均質で、まったく同じ塩基配列をもっています。(中略) 検出できるレベルで 》は正常人は均質であると考えています。 あたりで参考になりそうな結果が出ていますので、挙げておきます。 シミュレーションの条件は、デフォルトを一部次のように変更したもの。 (1) 最初の状態は20個全部バラバラである。 (2) 変異しない。 結果はと見ると、予想したよりずっと早く単一化してしまいました。(1 個の祖先の子孫だけで全体が埋め尽くされてしまう)。 卵細胞内の約10万個のmtDNAとシミュレーションの20個とでは差が ありすぎますが、分裂+ランダム断絶の回数もずっと多いでしょうから、結 果としては、遅かれ早かれ単一化してしまうものである。と考えて良さそう です。 どの遺伝子型に単一化されるかは、偶然によりますから、変異型に単一化 される確率は「変異型の発生数/数10万個」でしょうね。 −− 【系統の単一化のシミュレーション】 40人の部族が100世代(3000年)孤立していた場合(変異はしな いものとする)に、当初20種類のDNAがあったとしても、100世代の うちにはほとんど全て単一化している。最短では30世代で単一化している。 * 何度かやってみて、希に100世代目でも2種類残っている場合があ った。 * 人数がきわめて少ないので、短期間で単一化してしまうと考えられる。 Ruby_aw d:\apollo\mtdna.rb 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1,... 003 a.f.g.h.h.h.h.j.j.k.l.l.m.p.p.r.r.t.t.t. h4,t3,r2,p2,l2,j2,m1,k1,g1,f1,a1 004 f.g.g.h.h.h.j.j.l.l.l.l.p.p.r.r.r.t.t.t. l4,t3,r3,h3,p2,j2,g2,f1 006 f.f.f.g.h.j.j.j.l.l.p.r.r.r.r.t.t.t.t.t. t5,r4,j3,f3,l2,p1,h1,g1 007 f.f.f.f.g.j.j.j.l.l.p.p.r.r.r.t.t.t.t.t. t5,f4,r3,j3,p2,l2,g1 008 f.f.f.f.f.g.j.j.l.l.p.p.r.r.r.t.t.t.t.t. t5,f5,r3,p2,l2,j2,g1 009 f.f.f.f.f.f.g.g.j.j.j.l.r.r.r.r.t.t.t.t. f6,t4,r4,j3,g2,l1 011 f.f.f.f.f.f.f.g.g.g.j.j.l.r.r.r.t.t.t.t. f7,t4,r3,g3,j2,l1 020 f.f.f.g.g.g.g.g.g.j.j.j.j.j.j.j.t.t.t.t. j7,g6,t4,f3 021 f.f.f.g.g.g.g.g.g.j.j.j.j.j.j.t.t.t.t.t. j6,g6,t5,f3 030 g.g.g.g.g.g.j.j.j.j.j.j.t.t.t.t.t.t.t.t. t8,j6,g6 041 g.g.j.j.j.j.j.j.j.j.t.t.t.t.t.t.t.t.t.t. t10,j8,g2 050 j.j.j.j.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. t16,j4 081 j.j.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. t18,j2 090 t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t. t20 Ruby_aw d:\apollo\mtdna.rb 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1,... 005 b.c.c.c.d.e.l.l.l.n.n.m.m.m.m.m.r.r.s.s. m5,l3,c3,s2,r2,n2,e1,d1,b1 006 c.c.c.c.d.e.e.l.l.l.n.n.m.m.m.m.m.r.r.r. m5,c4,r3,l3,n2,e2,d1 007 c.c.c.c.d.d.l.l.n.m.m.m.m.m.m.r.r.r.r.r. m6,r5,c4,l2,d2,n1 011 c.c.c.c.c.d.d.d.d.l.l.l.n.m.m.m.m.r.r.r. c5,m4,d4,r3,l3,n1 020 c.c.c.d.n.n.n.n.n.n.n.n.n.m.m.m.m.m.m.m. n9,m7,c3,d1 021 c.n.n.n.n.n.n.n.n.n.n.m.m.m.m.m.m.m.m.m. n10,m9,c1 030 n.n.n.n.n.n.n.n.n.n.n.m.m.m.m.m.m.m.m.m. n11,m9 091 n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.m. n18,m2 100 n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n. n20 * 上のは最終段階の90〜100世代の間で単一化している。2個にな ったのは早い。2個になったときに両者の勢力がほぼ均衡していたので (n11,m9)、長期間併存した模様。 Ruby_aw d:\apollo\mtdna.rb 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1... 004 a.d.d.d.d.e.f.g.h.h.k.k.l.n.n.q.q.q.t.t. d4,q3,t2,n2,k2,h2,l1,g1,f1,e1,a1 005 d.d.d.d.d.d.f.g.k.k.l.l.n.n.q.q.q.q.q.t. d6,q5,n2,l2,k2,t1,g1,f1 006 d.d.d.d.d.d.d.f.f.g.k.k.l.l.n.n.q.q.q.t. d7,q3,n2,l2,k2,f2,t1,g1 007 d.d.d.d.d.f.f.g.k.k.k.l.l.l.n.n.q.q.q.q. d5,q4,l3,k3,n2,f2,g1 009 d.d.d.d.d.d.d.f.g.k.k.k.k.l.n.q.q.q.q.q. d7,q5,k4,n1,l1,g1,f1 010 d.d.d.d.f.g.g.k.k.k.k.l.l.q.q.q.q.q.q.q. q7,k4,d4,l2,g2,f1 011 d.d.d.d.f.g.g.k.k.k.k.l.l.q.q.q.q.q.q.q. q7,k4,d4,l2,g2,f1 020 d.f.f.f.f.f.q.q.q.q.q.q.q.q.q.q.q.q.q.q. q14,f5,d1 021 f.f.f.f.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q. q16,f4 030 q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q.q. q20 * 上のは30世代で単一化している。 Ruby_aw d:\apollo\mtdna.rb 000 a.b.c.d.e.f.g.h.i.j.k.l.n.m.o.p.q.r.s.t. t1,s1,r1,q1,p1,o1,n1,m1,l1,... 003 b.d.d.e.g.j.k.k.o.o.p.p.q.q.q.q.s.s.t.t. q4,t2,s2,p2,o2,k2,d2,j1,g1,e1,b1 004 b.b.d.e.e.g.g.k.k.k.o.o.p.p.p.q.q.s.s.t. p3,k3,s2,q2,o2,g2,e2,b2,t1,d1 006 b.d.d.e.e.g.g.g.k.k.k.o.o.p.p.p.p.q.s.t. p4,k3,g3,o2,e2,d2,t1,s1,q1,b1 007 d.d.d.d.e.e.e.g.g.k.k.k.k.k.o.p.p.p.s.t. k5,d4,p3,e3,g2,t1,s1,o1 008 d.d.d.e.e.e.e.e.g.g.k.k.k.k.k.o.o.p.p.s. k5,e5,d3,p2,o2,g2,s1 009 d.d.d.d.e.e.e.g.k.k.k.k.k.k.o.o.p.p.p.s. k6,d4,p3,e3,o2,s1,g1 010 d.d.d.d.d.e.e.e.g.k.k.k.k.k.k.k.o.o.p.p. k7,d5,e3,p2,o2,g1 011 d.d.d.d.d.e.e.g.g.k.k.k.k.k.k.k.k.o.p.p. k8,d5,p2,g2,e2,o1 020 e.e.e.e.g.g.k.k.k.k.k.k.k.k.k.k.k.k.k.k. k14,e4,g2 041 e.e.e.e.e.e.e.g.k.k.k.k.k.k.k.k.k.k.k.k. k12,e7,g1 050 e.e.e.e.e.e.k.k.k.k.k.k.k.k.k.k.k.k.k.k. k14,e6 071 e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.k.k.k. e17,k3 080 e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e. e20 たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
08596/08606 GGB03124 たけ(tk) mtDNAシミュレータ −その3 ( 4) 00/09/01 23:47 08591へのコメント さて、本来の目的である、変異があった場合の変化を出してみると、次の ようになりました。 系統樹を書いてみると、それらしい形のものができていますので、結構お もしろいです。 【mtDNA系統樹のシミュレーション】 40人というきわめて少数の部族が、100世代(3000年)孤立して いたと仮定。 人数は常に一定で、20人の女性がそれぞれ2人の子供を産む。子供は必 ず育つ。子供が男か女かはランダムに決まる。 変異は1世代に1回起こるという仮定。 000 世代目では全て同一のDNA(a 型)とする。 という条件でシミュレートすると、次のようなものが出てきた。 −− 10世代くらい経つと多様性がほとんど一定になるというのがおもしろい (6種類から8種類、希に5または10まで増減する)。多様性は集団の人 数(と、変異速度)によって数学的に決まるのではないか?。 * 変異速度を5世代に1回として、500世代までシミュレートすると、 多様性はほとんどなくなる(1から5種類ほどになる)。やってみると、 変異型で何度も単一化されてしまうことが多いのにはびっくりする。 【シミュレーションスクリプトの出力】 Ruby_aw d:\apollo\mtdna.rb 000 a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a. a20 000 aaaaaa.a...aaa.aa...a..aa..aa.a.......Ba 001 a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.b.a. a19,b1 001 aaa.a...C.a.a..a..aa.a.aa...a..aaaa.b..a 002 a.a.a.a.c.a.a.a.a.a.a.a.a.a.a.a.a.a.b.a. a18,c1,b1 010 i.i.a.a.a.a.a.a.a.a.j.a.a.a.a.k.a.a.a.h. a15,i2,k1,j1,h1 010 .i..a..a....aaa.a...jjaaa.a.aak.aaL..a.. 011 i.a.a.a.a.a.a.j.j.a.a.a.a.a.a.k.a.a.l.a. a15,j2,l1,k1,i1 020 a.a.a.a.a.u.r.a.t.t.a.a.a.k.m.m.m.a.a.a. a12,m3,t2,u1,r1,k1 020 aa..a...aa..r.V.tt...aaaaa....mm.ma..aa. 021 a.a.a.a.a.r.v.t.t.a.a.a.a.a.m.m.m.a.a.a. a13,m3,t2,v1,r1 030 z.c.c.f.a.a.a.r.r.t.t.t.t.t.a.a.m.a.d.x. a6,t5,r2,c2,z1,x1,m1,f1,d1 030 z......f.a.a.a.rrrt.....tttt.aaaG.aad... 031 z.f.a.a.a.r.r.r.t.t.t.t.t.a.a.a.g.a.a.d. a8,t5,r3,z1,g1,f1,d1 040 o.j.j.t.l.l.m.m.m.i.i.a.a.a.a.p.d.d.d.d. d4,a4,m3,l2,j2,i2,t1,p1,o1 040 ooQj..tt.....mm..miii..aa.aaaa.......dd. 041 o.o.q.j.t.t.m.m.m.i.i.i.a.a.a.a.a.a.d.d. a6,m3,i3,t2,o2,d2,q1,j1 050 o.o.b.j.j.t.t.t.s.s.t.t.v.v.v.m.m.m.a.a. t5,v3,m3,s2,o2,j2,a2,b1 050 o.o..b.j.j..ttt.s..s.tt....vv.mm..mmC..a 051 o.o.b.j.j.t.t.t.s.s.t.t.v.v.m.m.m.m.c.a. t5,m4,v2,s2,o2,j2,c1,b1,a1 ▼ 当初の a が断絶した。 060 i.i.d.g.g.t.t.t.n.l.s.s.s.s.k.k.k.m.m.e. s4,t3,k3,m2,i2,g2,n1,l1,e1,d1 060 i..id.g..gtt..ttP.ll...s..s..k.kkkmm.... 061 i.i.d.g.g.t.t.t.t.p.l.l.s.s.k.k.k.k.m.m. t4,k4,s2,m2,l2,i2,g2,p1,d1 070 w.w.u.u.t.t.z.s.s.s.y.k.k.k.k.k.k.k.k.a. k8,s3,w2,u2,t2,z1,y1,a1 070 ........tt.t.zsss.ssy.k.kk...k.k.kkk.kB. 071 t.t.t.z.s.s.s.s.s.y.k.k.k.k.k.k.k.k.k.b. k9,s5,t3,z1,y1,b1 080 j.t.y.y.y.y.y.y.y.y.y.k.k.k.k.k.k.l.k.k. y9,k8,t1,l1,j1 080 j.tt.yM..y.yyy...y..y.k...kk..kk.kl.kk.. 081 j.t.t.y.m.y.y.y.y.y.y.k.k.k.k.k.k.l.k.k. k8,y7,t2,m1,l1,j1 ○ 090 t.t.t.y.y.y.y.y.r.r.k.k.k.u.u.k.k.w.k.k. k7,y5,t3,u2,r2,w1 090 Xtt.t.y...y...y.r..rk.k.k..uuuk...w..kkk 091 x.t.t.t.y.y.y.r.r.k.k.k.u.u.u.k.w.k.k.k. k7,y3,u3,t3,r2,x1,w1 ◎ ▼ t が断絶した。 100 x.f.f.f.f.h.y.y.y.y.y.r.r.r.r.r.r.r.k.k. r7,y5,f4,k2,x1,h1 100 .xf.f...If...yy..yy..yr..r.r.rr.rr.r.kk. 101 x.f.f.i.f.y.y.y.y.y.r.r.r.r.r.r.r.r.k.k. r8,y5,f3,k2,x1,i1 ● −− 変異の総図・・スクリプトの変異一覧の出力を再構成した。 ただし、「"0 a => B",」のように当初の「a」から生まれて、それ以後の 痕跡を残さなかったものは除いた。 " 1 a => C", " 5 c => G", "10 a => L", "11 l => M", "30 m => G", "14 a => P", "17 p => S", "16 a => R", "19 r => U", "18 a => T", "35 t => L", "36 t => M", "44 m => V", "45 m => W", "57 m => K", "67 k => Y", "77 y => I", "80 y => M", "82 y => O", "85 y => R", "94 r => C", "101 r => J" "86 y => S", "88 y => V", "91 y => Z", "98 y => G", "99 g => H", "69 k => A", "70 a => B", "71 k => C", "73 k => E", "74 k => F", "79 k => L", "81 k => N", "83 k => P", "84 k => Q", "87 k => U", "92 u => A", "95 u => D", "89 k => W", "42 t => S", "58 s => L", "62 s => R", "72 s => D", "54 t => G", "64 g => V", "55 t => H", "59 t => N", "66 t => X", "68 t => Z", "75 t => G", "76 t => H", "78 t => J", "90 t => X", "96 x => E", "97 x => F", "100 f => I", "93 t => B", "21 a => W", "47 w => Y", "22 a => X", "27 x => D", "34 d => K", "39 d => P", "41 d => R", "25 a => B", "26 b => C", "29 a => F", "38 f => O", "31 a => H", "32 h => I", "33 a => J", "37 j => N", "60 n => P", "40 j => Q", "43 q => U", "49 j => B", "51 j => D", "53 d => F", "56 d => I", "65 i => W", "61 d => Q", "63 q => U", −− 上記のデータから最近の世代の現有型までの系統樹を再構成すると次のよ うになる。 ● 101世代目の現有6型の系統樹 ・・・ r8,y5,f3,k2,x1,i1 ◎ 91世代目の現有7型の系統樹 ・・・ k7,y3,u3,t3,r2,x1,w1 ○ 81世代目の現有7型の系統樹 ・・・ k8,y7,t2,m1,l1,j1 00 10 20 30 40 50 60 70 80 90 100 (80)┌M○─[85] │ (85)┌R◎─────●8 (67)┌┴Y○─┴─◎─────●5 (79)│┌L○─[85] ││ (87)┌U◎─[95] ││ (89)├W◎─[95] (57)┌─K─┴┴─○─┴─◎─────●2 (36)┌─M───┴──[65] │ (78)┌J○─[85] │ │ (100)┌I●1 │ │ (97)┌F┴─●3 │ │ (90)┌X◎─┴───●1 (18)┌─T───┴──────────┴─○─┴─◎─[95] A────┴───────────[55] 00 10 20 30 40 50 60 70 80 90 100 * 比較的それらしい系統樹ができた!。 * 「(18)」は発生した世代番号。 * 「[70]」は断絶した世代数。 このシミュレーションでは正確にはわ からない場合があるので、その場合には中間年(91世代目にあって1 00世代目になくなっていれば95世代)とした。 たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
08597/08606 GGB03124 たけ(tk) mtDNAシミュレータ −その4 ( 4) 00/09/01 23:53 08591へのコメント コメント数:1 さらに、集団の分離というのもシミュレートしてみる。 【集団分離のシミュレーション】 前回の集団で50世代目から別の集団にそのまま分離したと考えて、50 世代目の状態からやり直してみた。 * シミュレータの初期値を50世代目のデータでセットしてやり直した。 【シミュレーションスクリプトの出力】 Ruby_aw d:\apollo\mtdna.rb 050 o.o.b.j.j.t.t.t.s.s.t.t.v.v.v.m.m.m.a.a. t5,v3,m3,s2,o2,j2,a2,b1 050 Coo.b....jtt....ss.st.t.vv.vv.mmm..m.... 051 c.o.o.b.j.t.t.s.s.s.t.t.v.v.v.v.m.m.m.m. v4,t4,m4,s3,o2,j1,c1,b1 060 j.b.b.b.t.h.l.k.g.g.g.i.v.v.f.f.f.f.f.v. f5,v3,g3,b3,t1,l1,k1,j1,i1,h1 060 ...bb.bb.t.h..k.gg.gM.ii....f.f.ff..ffv. 061 b.b.b.b.t.h.k.g.g.g.m.i.i.f.f.f.f.f.f.v. f6,b4,g3,i2,v1,t1,m1,k1,h1 070 q.q.s.k.k.k.g.g.w.g.g.g.u.r.f.f.f.f.f.f. f6,g5,k3,q2,w1,u1,s1,r1 070 qqXq.sk....k.g...w..gg.g.u.r.f.fff...ff. 071 q.q.x.q.s.k.k.g.w.g.g.g.u.r.f.f.f.f.f.f. f6,g4,q3,k2,x1,w1,u1,s1,r1 080 s.g.g.g.u.u.u.i.u.u.u.f.d.f.f.f.f.f.f.h. f7,u6,g3,s1,i1,h1,d1 080 .sggJ..gu.u.u.i.u..uu..fd.f.f.f..ff...h. 081 s.g.g.j.g.u.u.u.i.u.u.u.f.d.f.f.f.f.f.h. u6,f6,g3,s1,j1,i1,h1,d1 090 g.g.r.j.j.q.q.j.j.j.j.p.p.s.u.u.u.u.u.u. u6,j6,q2,p2,g2,s1,r1 090 .gTg.r......q.jjjjj..jppppssuu........u. 091 g.t.g.r.q.j.j.j.j.j.j.p.p.p.p.s.s.u.u.u. j6,p4,u3,s2,g2,t1,r1,q1 100 g.g.g.g.g.g.g.g.g.g.g.g.g.c.x.b.j.d.a.a. g13,a2,x1,j1,d1,c1,b1 100 ....ggg...g.ggEgg...gg.gg...xx.bj.dd..a. 101 g.g.g.g.g.g.e.g.g.g.g.g.g.x.x.b.j.d.d.a. g12,x2,d2,j1,e1,b1,a1 ["50 o => C", "51 s => D", "52 t => E", "53 v => F", "54 t => G", "55 s => H", "56 v => I", "57 b => J", "58 s => K", "59 h => L", "60 g => M", "61 i => N", "62 i => O", "63 f => P", "64 b => Q", "65 g => R", "66 k => S", "67 r => U", "68 k => V", "69 g => W", "70 q => X", "71 u => Y", "72 y => Z", "73 g => A", "74 x => B", "75 u => C", "76 f => D", "77 s => E", "78 f => H", "79 u => I", "80 g => J", "81 i => K", "82 f => L", "83 u => M", "84 u => N", "85 j => O", "86 g => P", "87 j => Q", "88 o => R", "89 u => S", "90 g => T", "91 t => V", "92 s => W", "93 q => X", "94 w => Y", "95 p => Z", "96 s => A", "97 j => B", "98 x => C", "99 a => D", "100 g => E", "101 e => F"] −− そこで、前回のデータ(集団A)から50世代目の時点でのデータを追加 して系統樹を再構成しておく。また、今回の集団Bでも系統樹を作成する。 【集団Aの系統樹】 00 10 20 30 40 50 60 70 80 90 100 (44)┌V★─[55] │ (80)┌M○─[85] │ │ (85)┌R◎─────●8 │ (67)┌┴Y○─┴─◎─────●5 │ (79)│┌L○─[85] │ ││ (87)┌U◎─[95] │ ││ (89)├W◎─[95] │ (57)┌─K─┴┴─○─┴─◎─────●2 (36)┌M┴─★─┴──[65] │42┌S★───────[75] │ │ (78)┌J○─[85] │ │ │ (100)┌I●1 │ │ │ (97)┌F┴─●3 │ │ │ (90)┌X◎─┴───●1 (18)┌─T───┴─┴─★──────┴─○─┴─◎─[95] │ (38)┌─O──★─[55] │(29)┌F┴[39] │ │ (49)┌B★─[55] │ │(33)┌J┴─★─[55] A────┴──┴──┴───★─[55] 00 10 20 30 40 50 60 70 80 90 100 * これだと、★と●とで共通のものが一つもないぞ!。 * しかも、50世代目の型は8個もあったのに、80世代目ではM★と T★の2個の系統しか残っていない!。 * 集団の比較としては、分離の時期を早くしすぎたかもしれないな。 * アフリカ人と非アフリカ人の分離を20世代辺りとするとおもしろい か?。 −− 【集団Bの系統樹】 00 10 20 30 40 50 60 70 80 90 100 (78)┌H◎─ (76)├D◎─ (53)┌F───┴─◎─ (44)┌V★─┴─ (36)┌M┴─★─ │ (66)┌S──◎─ │ (58)┌K─┴─ │42┌S★─┴─ │ │ ┌I◎─ │ │ │ (99)┌D◎─ │ │ │ (96)┌┴A◎─ │ │ │(89)┌──S◎┴─ │ │ (67)┌U┴─◎┴───◎─ │ │ (65)┌┴R─ │ │ │ (88)┌R◎─ │ │ │ (85)┌┴O─ │ │ │ │ (93)┌X◎─ │ │ │ (87)├─Q◎─┴─ │ │ │ │ (97)┌B◎─ │ │ │ (80)┌┴─J◎─┴─◎─ │ │ │ (86)├──P◎─ │ │ │ (90)├──T◎─ │ │ │ │ (100)┌E◎─ │ │ (54)┌G┴────◎┴───◎─┴─◎─ (18)┌─T───┴─┴─★─┴─ │ (38)┌─O──★─ │(29)┌F┴[39] │ │ (57)┌J─────◎─ │ │ (49)┌B★─┴── │ │(33)┌J┴─★─ A────┴──┴──┴───★─ 00 10 20 30 40 50 60 70 80 90 100 * こちらの方では50世代目の8個のクラスタのうち、80世代目では 4個のクラスタ(B★、T★、S★、V★)の系統が残っている。とこ ろが、90世代目ではT★クラスタの一つだけになってしまっている!。 * 集団間でのクラスタの比較も当てにならないということか?。 * なお、次の部分に注目。(54)Gから(80)Jが分離し、(85)Oから(88) Rが分離するまで、変異がこの部分に集中している。そういう偶然もあ り得るということだ。変異の数から変異の時期を逆算できると思ったら 大間違いのもと。 │ │ │ (88)┌R◎─ │ │ │ (85)┌┴O─ │ │ │ (80)┌┴─J◎─┴─◎─ │ │ (54)┌G┴────◎┴───◎─┴─◎─ −− クラスタごとに比較してみる。 【T★クラスタの比較】 【集団Aの系統樹】 │ │ (78)┌J○─[85] │ │ │ (100)┌I●1 │ │ │ (97)┌F┴─●3 │ │ │ (90)┌X◎─┴───●1 (18)┌─T───┴─┴─★──────┴─○─┴─◎─[95] 【集団Bの系統樹】 │ │ ┌I◎─ │ │ │ (99)┌D◎─ │ │ │ (96)┌┴A◎─ │ │ │(89)┌──S◎┴─ │ │ (67)┌U┴─◎┴───◎─ │ │ (65)┌┴R─ │ │ │ (88)┌R◎─ │ │ │ (85)┌┴O─ │ │ │ │ (93)┌X◎─ │ │ │ (87)├─Q◎─┴─ │ │ │ │ (97)┌B◎─ │ │ │ (80)┌┴─J◎─┴─◎─ │ │ │ (86)├──P◎─ │ │ │ (90)├──T◎─ │ │ │ │ (100)┌E◎─ │ │ (54)┌G┴────◎┴───◎─┴─◎─ (18)┌─T───┴─┴─★─┴─ T★クラスタでは、両方の集団に痕跡が残っている。実に、両方の集団に 痕跡が残っているクラスタは、この一つだけである。(分離の時期を早くし すぎただけ、とも言えるが・・)。 050 o.o.b.j.j.t.t.t.s.s.t.t.v.v.v.m.m.m.a.a. t5,v3,m3,s2,o2,j2,a2,b1 ↑ T★クラスタは50世代目で最も優勢だった型である。集団が分離した時 点での優勢な型は共通に残る可能性が高いということか。 ただし、集団BではT★自体は比較的早く(65世代あたり)に途絶して しまっている。変異型のGがその後の系統の祖型となっている。変異型が残 るのは偶然の要素が強いが、優位な型であれば発生する変異型も多いともい えるので、分離時期の優位性が影響していると言えるだろう。 −− V★クラスタ、M★クラスタ、S★クラスタ、およびB★クラスタでは、 一方の集団だけに痕跡が残っている。他方の集団では早い時期に途絶してし まって、痕跡がなくなっている。 しかし実際には、集団Aでも分離の時期まではV★クラスタの人間が居た のである。 本来共通に残っているはずのクラスタが、途絶によって消滅してしまい、 比較できなくなっている、という可能性を考慮する必要があるようだ。 【V★クラスタの比較】 【集団Aの系統樹】 (44)┌V★─[55] 【集団Bの系統樹】 (78)┌H◎─ (76)├D◎─ (53)┌F───┴─◎─ (44)┌V★─┴─ 【M★クラスタの比較】 【集団Aの系統樹】 │ (80)┌M○─[85] │ │ (85)┌R◎─────●8 │ (67)┌┴Y○─┴─◎─────●5 │ (79)│┌L○─[85] │ ││ (87)┌U◎─[95] │ ││ (89)├W◎─[95] │ (57)┌─K─┴┴─○─┴─◎─────●2 (36)┌M┴─★─┴──[65] 【集団Bの系統樹】 (36)┌M┴─★─ 【S★クラスタの比較】 【集団Aの系統樹】 │42┌S★───────[75] 【集団Bの系統樹】 │ (66)┌S──◎─ │ (58)┌K─┴─ │42┌S★─┴─ −− 【O★クラスタなど残りのクラスタの比較】 【集団Aの系統樹】 │ (38)┌─O──★─[55] │(29)┌F┴[39] │ │ (49)┌B★─[55] │ │(33)┌J┴─★─[55] A────┴──┴──┴───★─[55] 【集団Bの系統樹】 │ (38)┌─O──★─ │(29)┌F┴[39] │ │ (57)┌J─────◎─ │ │ (49)┌B★─┴── │ │(33)┌J┴─★─ A────┴──┴──┴───★─ B★クラスタ以外は、両方の集団で途絶してしまっている。 集団B57世代目に発生したJ型など、「きわめて特異な型であって、起 源が謎である」ということになるだろうな。 たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
08603/08606 GGB03124 たけ(tk) 単系化するまでの平均世代数は?。 ( 4) 00/09/03 19:13 08595へのコメント コメント数:1 単系化するまでの平均世代数は個体数だけによって数学的に計算できそう です。しかし、それを定式化するのは、たけ(tk)の能力を超えているようで す。 (1)誰か定式化してくださいませんか?。 (2)それと、「平均」というのはあるのでしょうか?。 −− 最も少数の場合、個体が2の場合には 00 AB 01 AA AB BA BB xx xx 50.0%の確率で単系化 ===== 元と同じなので・・ 02 25.0%の確率で単系化。 03 12.5%・・ 04 ・・・ 個体数が3の場合には 00 ABC 01 AAB AAC ABB ABC ACC BBC BCC 0% 1/10 1/10 1/10 4/10 1/10 1/10 1/10 02 AAA ? くらいは分かったが、その後は思考停止状態・・。 −− 「平均」というのは何でしょうね?。個体数が2でも永遠に単系化しない 場合もあるわけだが・・。 たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
08605/08606 GFD03044 ひの RE:単系化するまでの平均世代数は?。 ( 4) 00/09/04 03:13 08603へのコメント コメント数:1 #8603 たけ(tk) さん、こんにちは。 | 単系化するまでの平均世代数は個体数だけによって数学的に計算できそう |です。しかし、それを定式化するのは、たけ(tk)の能力を超えているようで |す。 | | (1)誰か定式化してくださいませんか?。 | | (2)それと、「平均」というのはあるのでしょうか?。 (1)これについては、MES(1)#8867で suchowan さんが書いてます。まだ読    めるはずですが、引用しておきましょう。 | 木村資生『分子進化の中立説』(1986紀伊國屋書店)P.65 あたりに、「中立 |な突然変異遺伝子(初期頻度をp=1/(2N))が集団の中に定着するまでの世代数と |標準偏差が載っています(*)。集団の有効な大きさを Ne として、 | | 平均 = 4.00 Ne 世代 | 標準偏差 = 2.15 Ne 世代 | | ということだそうです。ミトコンドリア遺伝子の場合、ちょっとモデルも違っ |てくると思いますが、結論は、定数が倍半分違う程度(たぶんN=Ne=人口の半分) |では無いでしょうか(原論文にあたって導出過程を確認すれば、定数の補正もで (2)平均と考えると分かりにくいかもしれませんが、期待値と考えて下さい。 2000/09/04(Mon) 03:00am GFD03044 ひの
08606/08606 GGB03124 たけ(tk) RE^2:単系化するまでの平均世代数は?。 ( 4) 00/09/05 00:37 08605へのコメント ひの さん こんにちは たけ(tk)です。 》(1)これについては、MES(1)#8867で suchowan さんが書いてます。まだ読 》 めるはずですが、引用しておきましょう。 ありがとうございます。suchowan さんのシミュレータは1993年なん ですね。びっくり。 》| 木村資生『分子進化の中立説』(1986紀伊國屋書店)P.65 あたりに、「中立 》|な突然変異遺伝子(初期頻度をp=1/(2N))が集団の中に定着するまでの世代数と 》|標準偏差が載っています(*)。集団の有効な大きさを Ne として、 》| 》| 平均 = 4.00 Ne 世代 》| 標準偏差 = 2.15 Ne 世代 標準偏差も人数に関わりなく一定と言うことですね。平均4N世代で標準 偏差が2.15N世代と言うことは、1.85N世代から6.15N世代く らいの間にだいたい納まる・・というか、幅が広すぎて何とも言えない、と いうことになるんでしょうか?。 ひの さんのシミュレータ(#8185)では 2.68 になっているようですね。 条件によって多少は異なるが、集団の人数に単純に比例する、というのがお もしろい。 たけ(tk)=熊谷 秀武 http://member.nifty.ne.jp/take_tk
08608/08608 MXD01037 森輝雄 RE:RE^2:単系化するまでの平均世代数は?。 ( 4) 00/09/06 21:15 08606へのコメント たけ(tk)さん、ひのさん、 こんばんわ  集団の有効な大きさNeというのはむろん実際の個体数とは異なっており 場合によってはひどく小さくなることもあるそうです。  今、下記のテキストを読んでいますが、p318にいくつかの場合のNeが 示されています。 「分子進化遺伝学」根井正利 (培風館,1990)
ミトコンドリア・シミュレータ その2