染色体の親子関係

  • こちらから
  • こちらとも関係する
  • ハプロタイプを0,1列で表すとする
  • ハプロタイプ1(h_{p1})、親ハプロタイプ2(h_{p2})、子ハプロタイプ(h_c)
  • h_{p1}から伝達したとして矛盾しないマーカーとh_{p2}から伝達したとして矛盾しないマーカーとを判断する
    • d.p1.c,d.p2.c
  • d.p1.cとd.p2.cとのパターンにより、どちらからのハプロタイプから伝達したとしても矛盾しないマーカーと、どちらのハプロタイプからも伝達しえないマーカーと、h_{p1}からは伝達しえてもh_{p2}からは伝達しえないマーカー、h_{p2}からは伝達しえてもh_{p1}からは伝達しえないマーカーの4パターンに分類できる
    • d.both.c,d.neither.c,d.only.p1.c,d.only.p2.cの4パターン
  • d.neither.cに属するマーカーが一つでもあったら、「あり得ない」とすることもできる(現実的には観測誤差をある程度許容することもできる)
  • 簡単のため、b,n,1,2をそれぞれ両ハプロタイプOK,両ハプロタイプNG、h1のみOK、h2のみOKを表すものとすると、マーカー列はb,n,1,2の4文字の順列となる
    • bb11111222bb11222 など
  • 交叉は1と2との接続箇所で奇数回、1と1との接続箇所、2と2の接続箇所とで偶数回起きたと考えるのがよい(交叉の偶奇に関しては、こちらこちらで言及している通り)
  • bと1,bと2の間では特定できないが、...1bbbbb2...のようなbを挟んだ1,2間では、奇数回、bを挟んだ1,1間、bを挟んだ2,2間では偶数回起きたとして矛盾はない
  • 関連記事:こちらこちら
n<-10 # マーカー数
# 親ハプロタイプ2本と子ハプロタイプ1本
h.p1<-sample(0:1,n,replace=TRUE)
h.p2<-sample(0:1,n,replace=TRUE)
h.c<-sample(0:1,n,replace=TRUE)
# d.p1.c : h.p1 -> h.c OK
# d.p2.c : h.p2 -> h.c OK
d.p1.c <-h.p1==h.c
d.p2.c <-h.p2==h.c
# d.p1.c と d.p2.c とは(H1 and H2),(H1 and (NOT H2)),((NOT H1) and H2),((NOT H1) and (NOT H2))の4パターンに分かれる
# (H1 and H2) d.p1.c と d.p2.cの両方でTRUE
d.both.c <- d.p1.c * d.p2.c
# ((NOT H1) and (NOT H2)) d.p1.c と d.p2.cの両方でFALSE
d.neither.c <- as.numeric(!(d.p1.c + d.p2.c))
# (H1 and (NOT H2))
d.only.p1.c <- d.p1.c * as.numeric(!d.p2.c)
# ((NOT H1) and H2)
d.only.p2.c <- d.p2.c * as.numeric(!d.p1.c)
# あり得ない?
sum(d.neither.c)>0
  • このことは親子鑑定にも通じる話でそれは次の記事(こちら)