2011/05/28 京都大学大学院 附属ゲノム医学センター統計遺伝学分野 山田 亮 家系ジェノタイプデータの 確率・尤度計算 2011/05/28 京都大学大学院 附属ゲノム医学センター統計遺伝学分野 山田 亮
確率を計算する ジェノタイプがわかっているか、わかっていないか 場合に分ける 場合は網羅する
何が確率的に起きるのか library(kinship) MakePedigreeFromFamilyInfo<-function(p){ ns<-length(p[,1]) affected<-status<-rep(1,ns) affected[which(p[,5]==2)]<-0 affected[which(p[,5]==3)]<-0 status[which(p[,5]==1)]<-0 status[which(p[,5]==2)]<-0 ptemp<-pedigree(id=p[,1],dadid=p[,3],momid=p[,2],sex=p[,4],affected=affected,status=status) if(sum(ptemp$affected)==0)ptemp$affected<-affected ptemp } def.par <- par(no.readonly = TRUE) peds<-list() peds[[1]]<-matrix( c(1,2,3, 0,0,1, 0,0,2, 1,0,1, 1,1,1), ncol=5) plot(MakePedigreeFromFamilyInfo(peds[[1]]),symbolsize=0.5) peds[[2]]<-matrix( c(1,2,3,4,5, 0,0,1,0,3, 0,0,2,0,4, 1,0,1,0,1, 1,1,1,1,1), nf <- layout(matrix(c(0,1,2,2),2,2), TRUE) layout.show(nf) plot(MakePedigreeFromFamilyInfo(peds[[1]]),symbolsize=0.3) plot(MakePedigreeFromFamilyInfo(peds[[2]])) peds[[3]]<-matrix( c(1,2,3,4,5,6,7, 0,0,1,0,3,0,5, 0,0,2,0,4,0,6, 1,0,1,0,1,0,1, 1,1,1,1,1,1,1), peds[[4]]<-matrix( c(1,2,3,4,5,6,7,8,9, 0,0,1,0,3,0,5,0,7, 0,0,2,0,4,0,6,0,8, 1,0,1,0,1,0,1,0,1, 1,1,1,1,1,1,1,1,1), nf <- layout(matrix(c(0,0,0,1,0,0,2,2,0,3,3,3,4,4,4,4),4,4), TRUE) plot(MakePedigreeFromFamilyInfo(peds[[1]]),symbolsize=0.2) plot(MakePedigreeFromFamilyInfo(peds[[2]]),symbolsize=3) plot(MakePedigreeFromFamilyInfo(peds[[3]])) plot(MakePedigreeFromFamilyInfo(peds[[4]])) par(def.par) peds[[5]]<-matrix( c(1,2,3,4, 0,0,1,1, 0,0,2,2, 1,0,1,0, 1,1,1,1), nf <- layout(matrix(c(1,1,2,2),2,2), TRUE) plot(MakePedigreeFromFamilyInfo(peds[[5]]),symbolsize=0.5) peds[[6]]<-matrix( 0,0,1,1,1, 0,0,2,2,2, peds[[7]]<-matrix( c(1,2,3,4,5,6, 0,0,1,1,1,1, 0,0,2,2,2,2, 1,0,1,0,1,0, 1,1,1,1,1,1), nf <- layout(matrix(c(1,2,3,4),2,2,byrow=TRUE), TRUE) plot(MakePedigreeFromFamilyInfo(peds[[6]]),symbolsize=0.5) plot(MakePedigreeFromFamilyInfo(peds[[7]]),symbolsize=0.5) peds[[8]]<-matrix( c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 0,0,1,0,3,0,5,0,7,1,3,1,3,1,5, 0,0,2,0,4,0,6,0,8,2,4,2,4,2,6, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[8]]),symbolsize=1) peds[[11]]<-matrix( 2,1,1), plot(MakePedigreeFromFamilyInfo(peds[[11]]),symbolsize=0.5) peds[[12]]<-matrix( 1,1,2,1,1), plot(MakePedigreeFromFamilyInfo(peds[[11]]),symbolsize=0.3) plot(MakePedigreeFromFamilyInfo(peds[[12]])) peds[[13]]<-matrix( 1,1,2,1,2,1,1), peds[[14]]<-matrix( 1,1,2,1,2,1,2,1,1), plot(MakePedigreeFromFamilyInfo(peds[[11]]),symbolsize=0.2) plot(MakePedigreeFromFamilyInfo(peds[[12]]),symbolsize=3) plot(MakePedigreeFromFamilyInfo(peds[[13]])) plot(MakePedigreeFromFamilyInfo(peds[[14]])) peds[[15]]<-matrix( 2,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[15]]),symbolsize=0.5) peds[[16]]<-matrix( 2,1,1,1,1), peds[[17]]<-matrix( 2,1,1,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[16]]),symbolsize=0.5) plot(MakePedigreeFromFamilyInfo(peds[[17]]),symbolsize=0.5) peds[[18]]<-matrix( c(1,2,3,4,5,6,7,8, 7,0,1,1,1,1,0,0, 8,0,2,2,2,2,0,0, 1,0,1,0,1,0,1,0, 2,1,1,1,1,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[18]]),symbolsize=1) peds[[19]]<-matrix( 1,1,2,1,2,1,2,1,1,1,1,1,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[19]]),symbolsize=1) peds[[21]]<-matrix( peds[[22]]<-matrix( peds[[23]]<-matrix( 2,2,1), nf <- layout(matrix(c(1,2,3,0,0,0),2,3,byrow=TRUE), TRUE) plot(MakePedigreeFromFamilyInfo(peds[[21]]),symbolsize=0.5) plot(MakePedigreeFromFamilyInfo(peds[[22]]),symbolsize=0.5) plot(MakePedigreeFromFamilyInfo(peds[[23]]),symbolsize=0.5) peds[[20]]<-matrix( 2,1,1,1,1,1,2,2), nf <- layout(matrix(c(1,2,0,0),2,2,byrow=TRUE), TRUE) plot(MakePedigreeFromFamilyInfo(peds[[20]]),symbolsize=1) for(i in 1:4){ stat<-sample(c(1,2),15,replace=TRUE,prob=c(0.6,0.4)) stat[c(10,12,14,11,13,15,9)]<-1 peds[[24]]<-matrix( stat), plot(MakePedigreeFromFamilyInfo(peds[[24]]),symbolsize=1,id=rep("",15)) stat[c(3,5,7)]<-2 peds[[25]]<-matrix( 0,0,1,0,3,3, 0,0,2,0,4,4, 2,1,2,1,1,1), plot(MakePedigreeFromFamilyInfo(peds[[25]]),symbolsize=1,id=rep("",6))
親子 父:A B 母:B B 子: A A : 0 A B : 1/2 B B : 1/2 AB BB AA ? AB BB
親子を探せ
親子を探せ
親子を探せ
親子を探せ
親子を探せ
家系図での「確率」計算 親子ごとに確率を計算する 親子を数え上げる 全部の親子について掛け合わせる 家系図での「確率」計算 親子ごとに確率を計算する 親子を数え上げる 全部の親子について掛け合わせる もう、できる!
ジェノタイプがわかっているときの確率 と ジェノタイプがわかっていないときの確率
母親のジェノタイプがわからない BB AA AB BB AA AB BB
母親のジェノタイプがわからないって どういうこと? BB AA AB
わからないって どういうこと? わからない → 計算できない わからない → 計算できるようにする BB AA AB わからない → 計算できない わからない → 計算できるようにする 母親のジェノタイプがわかっていれば、計算できる 母親のジェノタイプは「わからないけれど」場合分けすれば、「わかる」
場合に分ける BB AA AB AA AB BB AB AA BB BB AA AB これなら、計算できる!
場合に分けた後に どうやってまとめる? BB AA AB AA AB BB AB AA BB BB AA AB これなら、計算できる!
場合に分けた後に どうやってまとめる? BB AA AB 場合に重みが付けばよい AA AB BB AB AA BB BB AA AB
場合に重みが付けばよい これならできる!
これならできる!
子供が増えても?
子供が増えても、できる
これも大丈夫
これは。 先祖がたどれない・・・
わからないって どういうこと? わからない → 計算できない わからない → 計算できるようにする BB AA AB 困ったら、「困ったときの経験」を活かそう わからない → 計算できない わからない → 計算できるようにする 母親のジェノタイプがわかっていれば、計算できる 母親のジェノタイプは「わからないけれど」場合分けすれば、「わかる」
先祖がたどれない、って どういうこと? たどれない → 計算できない たどれない → 計算できるようにする たどれない → 計算できない たどれない → 計算できるようにする 先祖のジェノタイプがわかっていれば、計算できる 先祖のジェノタイプは「わからないけれど」場合分けすれば、「わかる」 先祖のジェノタイプの場合の重みづけがわかれば計算できる
先祖は集団
集団のジェノタイプ頻度が 『重みづけ』
たどれない先祖が誰かわかれば、 対処できる たどれない先祖は誰か ~ 集団の雲はどこか?
集団の雲はどこか?
集団の雲はどこか?
集団の雲はどこか?
集団の雲はどこか?
集団の雲はどこか?
すべて解決
復習 親子を見つける ジェノタイプ不明なら、場合分けする 場合分けしたら、重みづけする 重みは、親が決める 親は 「実在」する「親」かもしれないし、 「集団」という「雲」かもしれない
問 親子関係はいくつ? ジェノタイプの場合分けが必要なのは何人? 「集団雲」で隠されるメンバーは何人?
何ができるようになったのか? ある集団に属する 家系と 家系メンバーのジェノタイプとがあったときに、 その確率を計算することができるようになった
『この身元不明者は この行方不明者なのか?』 という質問と 確率との 関係
行方不明者 身元不明者
行方不明者 身元不明者
?『行方不明者=身元不明者』? を 考え始める前に、 少し回り道をすることにします
?『行方不明者=身元不明者』? 何の情報を使うのか? 行方不明者の、「何」? 身元不明者の、「何」?
?『行方不明者=身元不明者』? 何の情報を使うのか? 行方不明者の、「何」? ジェノタイプの確率分布 特別な場合 いろいろと可能性があるジェノタイプの、どれがどれくらいの確率なのか 特別な場合 場合1:行方不明者のDNAはある場合 ただ一つのジェノタイプである確率が1であって、それ以外のジェノタイプである確率が0である 場合2:本人のDNAも家族のDNAもない場合 「集団」という「雲」のジェノタイプの確率を使うしかない ※ 特別な場合は、一般的な場合に含まれますから、この先は気にしないことにします
行方不明者のジェノタイプの確率分布 行方不明者本人のDNAがあれば、確定する 家族のジェノタイプを調べるのは、行方不明者のジェノタイプの確率分布をよりよく推定するため 家族のジェノタイプがわからなければ、行方不明者のジェノタイプの確率分布は、集団のそれと同じ
?『行方不明者=身元不明者』? 何の情報を使うのか? 行方不明者の、「何」? 身元不明者の、「何」? DNAはあるので ジェノタイプは確定しています
?『行方不明者=身元不明者』? 行方不明者のジェノタイプの確率分布 身元不明者の確定している ジェノタイプ 一致する確率は?
行方不明者 身元不明者 この確率が計算できる?
行方不明者 身元不明者 この確率が計算できる? はい、できます!
確率の計算はできた。 さて、それで何がわかったか? 行方不明者 身元不明者 この確率が計算できる? はい、できます!
確率の計算はできた。 さて、それで何がわかるのか? 確率が0である 確率が1である 確率が0から1の間である 「ありえない」 「絶対そうだ」 「ありえるけれど、絶対ではない」 確率という数字の大きさをどう考えるか・・・
確率 大きいか小さいかを測るもの 確率が0から1の間である 「大きい」か「小さい」か 「ありえるけれど、絶対ではない」 絶対評価 相対評価 「ありえない」=0 「絶対」=1 相対評価 何かと比較することで意味を持つ
比較したい ~ 別の確率を計算したい
比較1 比較したい ~ 別の確率を計算したい 別の身元不明者 比較2
比較1 身元不明者 が 家系情報のない誰かである 身元不明者 が 行方不明者である
別の身元不明者 が 家系情報のない誰かである 別の身元不明者 比較2 身元不明者 が 行方不明者である
いわゆる 血縁鑑定はこちら 比較1 身元不明者 が 家系情報のない誰かである 身元不明者 が 行方不明者である
話しの終盤で、両方の比較が出てくるので、忘れ去らないでおきましょう 比較1 話しの終盤で、両方の比較が出てくるので、忘れ去らないでおきましょう 別の身元不明者 比較2
話しの終盤までの長い道のり
行方不明者 身元不明者 この確率が計算できる? はい、できます!
この確率が計算できる? はい、できます!
この確率が計算できる? はい、できます!
この確率が計算できる? はい、できます! 本当にできるのか? できるなら、 やって見せよ!
話しの終盤までの長い道のり 計算ができるまでの長い道のり
いわゆる 血縁鑑定はこちら 比較1 身元不明者 が 家系情報のない誰かである 身元不明者 が 行方不明者である
計算は 親子を見つける ジェノタイプ不明なら、場合分けする 場合分けしたら、重みづけする 重みは、親が決める 親は 「実在」する「親」かもしれないし、 「集団」という「雲」かもしれない
何が問題か 場合分けが多すぎる 場合の数が多すぎて、時間がかかりすぎる ジェノタイプの種類数gは アレル数aのマーカーで G=a(a+1)/2 場合分けは、ジェノタイプが不明のメンバー数kについて Gk 場合の数が多すぎて、時間がかかりすぎる
場合の数を減らす工夫 2倍体ではなく1倍体で扱う
場合の数を減らす工夫
場合の数を減らす工夫
アレルは必ず親アレルが決まる
ただし、 受け渡しパターンは いろいろあって 場合分けが必要
ただし、 受け渡しパターンは いろいろあって 場合分けが必要
ただし、 受け渡しパターンは いろいろあって 場合分けが必要
ただし、 受け渡しパターンは いろいろあって 場合分けが必要
ただし、 受け渡しパターンは いろいろあって 場合分けが必要
伝達のパターンはいくつある?
伝達のパターンはいくつある? 2 2 2 2 2 2 2x2x2x2x2x2=(2x2)x(2x2)x(2x2)
伝達のパターンはいくつある? 4 子供の数 2 2 2 2 2 2 2x2x2x2x2x2=(2x2)x(2x2)x(2x2)
場合分けはこれで終わり・・・ ではない
A B A B A B B B A B A B
A B A B A B B B A B B A
A B A B A B A B A B B A
A B A A A B A B A B B A
A B A A A B A B A B B A
母方・父方由来アレルの場合分け
伝達パターンの場合分け x 母方・父方アレルの割り付けの場合分け たくさんあるけれど、 G=a(a+1)/2 → Gk よりはまし
場合に分けたら 確率を計算すべし
メンデルの法則は満足している? A B A A A B A B A B B A
A B A A A B A B A B B A
A B A A A B A B A B B A
A B A A A B A B A B B A
A B A A A B A B A B B A
「雲の中」に突っ込んでいるときは 「A」アレルの雲の中での確率を考慮しよう A B A A A B A B A B B A
いわゆる 血縁鑑定 両方で計算して比較しよう 比較1 身元不明者 が 家系情報のない誰かである 身元不明者 が 行方不明者である
2つの仮説 2つの確率~尤度 2つの確率~尤度を比較する 比を取る 2つの仮説 2つの確率~尤度 2つの確率~尤度を比較する 比を取る
なんとか、合いました・・・ 計算があっているかどうか、見せてみよ!
産みの苦しみ
休憩、必須
休憩、必須
休憩、必須 ここまでで、十分なのでは
さて、終盤戦 終盤戦ってなんだった?
身元不明者が複数いるときに、 その情報をどう使うか 別の身元不明者 が 家系情報のない誰かである 別の身元不明者 比較2 身元不明者 が 行方不明者である
身元不明者が複数いるときに、 その情報をどう使うか 別の身元不明者 が 家系情報のない誰かである 別の身元不明者 比較2 別の身元不明者 身元不明者 が 行方不明者である
行方不明になった人数Nがわかっている 身元不明なままの遺体がN体ある 行方不明・身元不明となった「きっかけ」も確定している
身元不明者リスト 行方不明
身元不明者リスト 行方不明
L(1) L(2) L(1) L(1)+L(2)+L(3)+…+L(N) L(3) … … … L(N) すべての仮説に関して尤度を足し合わせたものが分母 … … L(N)
行方不明になった人数Nがわかっている 身元不明な遺体が1体だけある 行方不明・身元不明となった「きっかけ」は確定している
DNAがない場合には、「集団の子供」のジェノタイプを持っているとみなして計算できる 身元不明者リスト 行方不明
計算は同じ L(1) L(2) L(1) L(1)+L(2)+L(3)+…+L(N) L(3) … … … L(N) すべての仮説に関して尤度を足し合わせたものが分母 … … L(N)
行方不明者総数が少なければ、 は大きくなる L(1) L(1)+L(2)+L(3)+…+L(N)
最後の最後 さて、これをするのに必要なことは 身元不明者1 身元不明者1 身元不明者1 身元不明者1 行方不明者1 身元不明者1 行方不明者2 行方不明者3 行方不明者4 行方不明者… 行方不明者… 行方不明者… 行方不明者… 行方不明者… 行方不明者N
身元不明者1 身元不明者2 身元不明者3 身元不明者… 身元不明者M 行方不明者1 行方不明者2 行方不明者3 NxMの確率計算・・・ だと思います 申請のない行方不明者の扱いとか、検討する課題は残っているように思えますが、方向性は悪くないように思います。 行方不明者4 行方不明者… 行方不明者… 行方不明者… 行方不明者… 行方不明者… 行方不明者N