R
package for
mixed-effects model REML incorporating
Generalized Inverses (so, with some
mental gymnastics: GREMLIN).
master
branch is the most recent production version
(often the same as what is available from the R CRAN mirrors)
devel
branch is a preview of the next release which
should be functional and error/bug free, but proceed with
caution
R install.packages("gremlin")
then select your favorite CRAN mirrorremotes
package https://github.com/r-lib/remotes:
# Install `master` branch
remotes::install_github("matthewwolak/gremlin")
# Install `devel` branch
remotes::install_github("matthewwolak/gremlin", ref = "devel")
library(gremlin)
library(nadiv) #<-- needed for creating inverse relatedness matrices
# Add unique term for including individual effects of additive and dominance
warcolak$IDD <- warcolak$ID
# Create generalized inverse matrices
Ainv <- makeAinv(warcolak[, 1:3])$Ainv
Dinv <- makeD(warcolak[, 1:3])$Dinv
# Basic model structure is as follows:
## Fixed effects of sex
## ID = autosomal additive genetic variance term
## IDD = autosomal dominance genetic variance term
grAD <- gremlin(trait1 ~ sex-1,
random = ~ ID + IDD,
ginverse = list(ID = Ainv, IDD = Dinv),
data = warcolak)
# Summary
nrow(warcolak)
summary(grAD)
# Calculate proportions of phenotypic variances (and Std. Error)
deltaSE(h2 ~ V1 / (V1 + V2 + V3), grAD)
deltaSE(d2 ~ V2 / (V1 + V2 + V3), grAD)
## Do this 2 alternative ways - both use `update()`:
### Either fix dominance variance to *almost* zero
grA_Dfxd <- update(grAD, Gstart = list(0.1, 1e-8), Gcon = list("P", "F"))
### Or drop dominance variance from the model
grA <- update(grAD, random = ~ ID)
## Compare log-likelihoods
logLik(grA_Dfxd)
logLik(grA)
## Do the Hypothesis test:
anova(grA, grAD)