核家族のルール

  • 核家族のアレル集合を比較することで次の2つのことができる
    • メンデルの法則にあっているかどうかのデータのエラーチェック(メンデリアン・チェック)
    • 不明アレル集合についてメンデルの法則に合致するようにアレル集合要素を限定する(集合要素限定処理)
  • 核家族
    • 父1人、母1人、子0人以上
  • この2人以上の構成員のディプロタイプを作るアレル集合の間にあるルールを列挙する
    • 子の数がN_c核家族のメンバーのアレル集合S_{p_f},S_{p_m},S_{ci},i=1,2,...,Ncに言えること
      • すべてのメンバーのアレル集合S_*の要素数(n(S_*))は1か2である
      • 父母のアレル集合の和集合S_p = S_{p_f} \cup S_{p_m}の要素数n(S_p)は1,2,3,4のいずれかである
      • 子がいるとき、その複数の子のアレル集合の和集合S_K=\bigcup_{i=1}^{N_c} S_c_iの要素数は1,2,3,4のいずれかである
    • 父母子トリオで決まること
      • どの子のアレル集合も、両親のアレル集合に関して次のことが言える
        • 父のアレル集合の1要素と母のアレル集合の1要素からなる(メンデリアン・チェック)
          • n(S_{p_*} \cup S_{c_i})=1,2
        • 子のアレル集合は父母のアレル集合の和集合の部分集合である(集合要素限定処理)
          • S_{c_i} \subseteq S_{p_f} \cup S_{p_m}
          • Rでかき分けると…
library(sets)
s.mother<-set("A","B")
s.father<-set("B","B")
s.child<-set("A","A")
# sets パッケージのintersection は"&"
if(set_is_empty(s.mother & s.child))print("Menderrian Error!")
if(set_is_empty(s.mother & s.child))print("Menderrian Error!")
s.mother<-set("A","B")
s.father<-set("B","B")
# childのアレルが不明のとき
s.child<-set("A","B","C")
# setsパッケージのunionは"|"
s.child.should.be<-s.child & (s.mother | s.father)
print(s.child.should.be)	
      • どの父母子トリオに関しても、片親のアレル集合は、パートナーのアレル集合と子のアレル集合について次のことが言える
        • c_iのアレル集合とパートナーp_{i'}のアレル集合の和集合を考える。子のアレル集合の要素で子とパートナーの和集合の要素でない要素は、たかだか1つあって、それは今考えている片親p_iのアレル集合の要素の1つである
          • S_{c_i} \cap (S_{c_i} \cap S_{p_i})^c \subseteq S_{p_i'}
          • n(S_{c_i} \cap (S_{c_i} \cap S_{p_i})^c) \le 1
    • 父母全子で決まること
      • 父母のアレル集合の和集合の要素数は4以下
        • n(\bigcup S_{p_*})\le 4
      • 子のアレル集合の和集合は父母のアレル集合の和集合の部分集合である
          • \bigcup_{i=1}^{N_c} S_{c_i} \subseteq \bigcup S_{p_*}
      • 子のアレル集合の和集合の少なくとも1要素は父(または母)のアレル集合の要素である
        • \bigcup_{i=1}^{N_c} \cap S_{p_i} \ne \phi
        • n(\bigcup_{i=1}^{N_c} \cap S_{p_i}) \ge 1
      • 子のアレル集合の和集合の要素のうち、父(母)のアレル集合に含まれない要素はたかだか2つあって、それは母(父)のアレル集合の要素である
        • n(\bigcup_{i=1}^{N_c} \cap S_{p_i}^c) \le 2