- ここにもあるように、マーカーのアレル数は非常に多い
- それは、アレル数が多い方が、伝達に関する情報が多く、鑑定の力が強いからである
- しかしながら、組み合わせ計算においては、場合の数を膨大にする源である
- 家系の解析で、気になるアレル(家系内に存在するアレル、存在することを前提として確率・尤度を計算する対象アレル)のみに絞り、残りのアレルは「プール」して計算すると、場合の数が減る
- これは、未知のアレルがあるときに、それがあっても計算できることを思い起こすと納得できる
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]]
LDZout2<-LimitDiplotypeZ(p,g,A2)