CalcLikeZ<-function(p,G,nucs,Alleles,Probs){
tmpret<-0
for(na in 1:length(Alleles)){
A<-unlist(Alleles[[na]])
P<-Probs[[na]]
g<-G[,,na]
gpool<-G[,,na]
A2P2<-LimitAlleles(gpool,A,P)
A2<-A2P2[[1]]
P2<-A2P2[[2]]
LDZout2<-LimitDiplotypeZ(p,g,A2)
MCheck<-TRUE
for(i in 1:length(LDZout2$dlistA)){
if(length(LDZout2$dlistA[[i]])==0){
print("checkFALSE")
MCheck<-FALSE
}
}
if(!MCheck){
return(-Inf)
}
cpnout2<-CalcProbNucs(p,g,A2,P2,nucs,LDZout2)
info2<-LDZout2$dlistA
DiplotypePrior2<-MakeDiplotypePrior(p,g,A2,P2,LDZout2,info2)
like2<-LikeNucWithPrior(cpnout2,nucs,DiplotypePrior2)
tmpret<-tmpret+SumPivot(cpnout2,like2,info2)$loglike
}
tmpret
}