% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/MCMCgrm.R
\name{MCMCgrm}
\alias{MCMCgrm}
\title{Mixed modeling with genetic relationship matrices}
\usage{
MCMCgrm(
  model,
  prior,
  data,
  GRM,
  eps = 0,
  n.thin = 10,
  n.burnin = 3000,
  n.iter = 13000,
  ...
)
}
\arguments{
\item{model}{statistical model.}

\item{prior}{a list of priors for parameters in the model above.}

\item{data}{a data.frame containing outcome and covariates.}

\item{GRM}{a relationship matrix.}

\item{eps}{a small number added to the diagonal of the a nonpositive definite GRM.}

\item{n.thin}{thinning parameter in the MCMC.}

\item{n.burnin}{the number of burn-in's.}

\item{n.iter}{the number of iterations.}

\item{...}{other options as appropriate for MCMCglmm.}
}
\value{
The returned value is an object as generated by MCMCglmm.
}
\description{
Mixed modeling with genetic relationship matrices
}
\details{
Mixed modeling with genomic relationship matrix. This is appropriate with relationship
matrix derived from family structures or unrelated individuals based on whole genome data.

The function was created to address a number of issues involving mixed modelling with
family data or population sample with whole genome data. First, the implementaiton
will shed light on the uncertainty involved with polygenic effect in that posterior
distributions can be obtained. Second, while the model can be used with the MCMCglmm
package there is often issues with the specification of pedigree structures but this
is less of a problem with genetic relationship matrices. We can use established
algorithms to generate kinship or genomic relationship matrix as input to the MCMCglmm
function. Third, it is more intuitive to specify function arguments in line with other
packages such as R2OpenBUGS, R2jags or glmmBUGS. In addition, our experiences of tuning
the model would help to reset the input and default values.
}
\examples{
\dontrun{
### with kinship

# library(kinship) 
# fam <- with(l51,makefamid(id,fid,mid))
# s <-with(l51, makekinship(fam, id, fid, mid))
# K <- as.matrix(s)*2   

### with gap

s <- kin.morgan(l51)
K <- with(s,kin.matrix*2)
prior <- list(R=list(V=1, nu=0.002), G=list(G1=list(V=1, nu=0.002)))
m <- MCMCgrm(qt~1,prior,l51,K)
save(m,file="l51.m")
pdf("l51.pdf")
plot(m)
dev.off()

# A real analysis on bats
## data
bianfu.GRM <- read.table("bianfu.GRM.txt", header = TRUE)
bianfu.GRM[1:5,1:6]
Data <- read.table(file = "PHONE.txt", header = TRUE, 
                   colClasses=c(rep("factor",3),rep("numeric",7)))
## MCMCgrm
library("MCMCglmm")
GRM <- as.matrix(bianfu.GRM[,-1])
colnames(GRM) <- rownames(GRM) <- bianfu.GRM[,1]
library(gap)
names(Data)[1] <- "id"
prior <- list(G = list(G1 = list(V = 1, nu = 0.002)), R = list(V = 1, nu = 0.002))
model1.1 <- MCMCgrm(WEIGTHT ~ 1, prior, Data, GRM, n.burnin=100, n.iter=1000, verbose=FALSE)
## an alternative
names(Data)[1] <- "animal"
N <- nrow(Data)
i <- rep(1:N, rep(N, N))
j <- rep(1:N, N)
s <- Matrix::spMatrix(N, N, i, j, as.vector(GRM))
Ginv <- Matrix::solve(s)
class(Ginv) <- "dgCMatrix"
rownames(Ginv) <- Ginv@Dimnames[[1]] <- with(Data, animal)
model1.2 <- MCMCglmm(WEIGTHT ~ 1, random= ~ animal, data = Data,
  ginverse=list(animal=Ginv), prior = prior, burnin=100, nitt=1000, verbose=FALSE)
## without missing data
model1.3 <- MCMCglmm(Peak_Freq ~ WEIGTHT, random = ~ animal, 
  data=subset(Data,!is.na(Peak_Freq)&!is.na(WEIGTHT)), 
  ginverse=list(animal=Ginv), prior = prior, burnin=100, nitt=1000, verbose=FALSE)
}

}
\references{
\insertRef{hadfield10}{gap}
}
\author{
Jing Hua Zhao
}
\keyword{htest}
