考慮するアレルで絞る

  • ここにもあるように、マーカーのアレル数は非常に多い
  • それは、アレル数が多い方が、伝達に関する情報が多く、鑑定の力が強いからである
  • しかしながら、組み合わせ計算においては、場合の数を膨大にする源である
  • 家系の解析で、気になるアレル(家系内に存在するアレル、存在することを前提として確率・尤度を計算する対象アレル)のみに絞り、残りのアレルは「プール」して計算すると、場合の数が減る
    • これは、未知のアレルがあるときに、それがあっても計算できることを思い起こすと納得できる
LimitAlleles<-function(g,A,P){
	tmp<-rep(0,length(A))
	for(i in 1:length(g)){
		tmp[which(A==g[i])]<-1
	}
	A2<-c(A[which(tmp==1)],"pool")
	P2<-c(P[which(tmp==1)])
	P2<-c(P2,1-sum(P2))
	list(A=A2,P=P2)
}
Gpool<-RandomGenotype(Np,NL,Alleles,Probs)


G<-RandomGenotypeFamily(p,NL,Alleles,Probs)
G2<-G
G2[which(p[,5]==2),,]<-0
G2[which(p[,5]==3),,]<-0
Gpool2<-array(0,c(length(Gpool[,1,1])+length(G[,1,1]),2,NL))
Gpool2[1:length(G[,1,1]),,]<-G
Gpool2[(length(G[,1,1])+1):length(Gpool2[,1,1]),,]<-Gpool
na<-1 # マーカー番号
	gpool<-G2[,,na]

	A2P2<-LimitAlleles(gpool,A,P)
	A2<-A2P2[[1]]
	P2<-A2P2[[2]]
# 以降の処理でA2とP2を使う
	LDZout2<-LimitDiplotypeZ(p,g,A2)