model { # prior for zygote frequencies for (i in 1:3) { xz1[i] ~ dgamma(1, 0.001) xz[i] <- xz1[i]/sum(xz1[]) } # prior for adult frequencies for (i in 1:3) { xa1[i] ~ dgamma(1, 0.001) xa[i] <- xa1[i]/sum(xa1[]) } # prior for p p ~ dunif(0,1) # likelihood of zygote frequencies nz[1:3] ~ dmulti(xz[], nzygote) # likelihood of adult frequencies na[1:3] ~ dmulti(xa[], nadult) # likelihood of equilibrium sample k ~ dbin(p, n) # relative fitness of A1A1 w11 <- (xa[1]/xa[2])*(xz[2]/xz[1]) w22 <- (xa[3]/xa[2])*(xz[2]/xz[3]) # selection coefficients s1 <- 1 - w11 s2 <- 1 - w22 # predicted equilibrium # poly = 0 if s1 < 0 (monomorphism predicted) # poly = 1 if s1 >= 0 (polymorphism predicted) poly <- step(s1) # p.eq = s2/(s1+s2) if poly = 1 (polymorphism predicted) # p.eq = 1 if poly = 0 (monomorphism predicted) p.eq <- s2/(s1 + s2)*poly + (1-poly) # difference between observed and expected # caclculated only when polymorphism equilibrium is predicted diff.p <- (p.eq - p)*poly } # data list(nz=c(41, 82, 27), na=c(57, 169, 29), nzygote = 150, nadult =255, k = 240, n = 300)