vs {sommer} | R Documentation |
vs
is the main function to build the variance-covariance structure for the random effects to be fitted in the mmer
solver.
vs(..., Gu=NULL, Gt=NULL, Gtc=NULL)
... |
variance structure to be specified following the logic desired in the internal kronecker product. For example, if user wants to define a diagonal variance structure for the random effect 'genotypes'(g) with respect to a random effect 'environments'(e), this is:
being
One strength of sommer is the ability to specify very complex structures with as many kronecker products as desired. For example:
is equivalent to
where different covariance structures can be applied to the levels of |
Gu |
matrix with the known variance-covariance structure for the random effect levels (i.e. relationship matrix among individuals or any other known covariance structure). If NULL, then an identity matrix is assumed. |
Gt |
matrix with dimensions t x t (t equal to number of traits) with initial values of the variance-covariance components for the random effect specified in the .... argument. If NULL the program will provide the initial values. |
Gtc |
matrix with dimensions t x t (t equal to number of traits) of constraints for the variance-covariance components for the random effect specified in the ... argument according to the following rules:
In the multi-response scenario if the user doesn't specify this argument the default is to build an unstructured matrix (using the |
a list with all neccesary elements (incidence matrices, known var-cov structures, unknown covariance structures to be estimated and constraints) to be used in the mmer solver.
Giovanny Covarrubias-Pazaran
Covarrubias-Pazaran G (2016) Genome assisted prediction of quantitative traits using the R package sommer. PLoS ONE 11(6): doi:10.1371/journal.pone.0156744
Covarrubias-Pazaran G (2018) Software update: Moving the R package sommer to multivariate mixed models for genome-assisted prediction. doi: https://doi.org/10.1101/354639
The core function of the package: mmer
data(DT_example) DT <- DT_example A <- A_example ## ============================ ## ## example to use ds() structure (DIAGONAL) ## ============================ ## ds(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(ds(Year),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use at() structure (level-specific) ## ============================ ## unique(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(at(Year,c("2011","2012")),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use us() structure (UNSTRUCTURED) ## ============================ ## us(DT$Year) mix <- mmer(Yield~Env, random= ~ vs(us(Year),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use cs() structure (CUSTOMIZED) ## ============================ ## unique(DT$Year) mm <- matrix(1,3,3); mm[1,3] <- mm[3,1] <- 0;mm #don't estimate cov 2011-2013 mix <- mmer(Yield~Env, random= ~ vs(cs(Year,mm),Name), rcov=~ vs(ds(Year),units), data=DT) ## ============================ ## ## example to use overlay() + vs() structure ## ============================ ## data("DT_halfdiallel") DT <- DT_halfdiallel head(DT) DT$femalef <- as.factor(DT$female) DT$malef <- as.factor(DT$male) DT$genof <- as.factor(DT$geno) A <- diag(7); colnames(A) <- rownames(A) <- 1:7;A # if you want to provide a covariance matrix #### model using overlay modh <- mmer(sugar~1, random=~vs(overlay(femalef,malef), Gu=A) + genof, data=DT) ## ============================ ## ## example to use spl2D() + vs() structure ## ============================ ## # ### mimic two fields # data(DT_cpdata) # DT <- DT_cpdata # GT <- GT_cpdata # MP <- MP_cpdata # aa <- DT; bb <- DT # aa$FIELD <- "A";bb$FIELD <- "B" # set.seed(1234) # aa$Yield <- aa$Yield + rnorm(length(aa$Yield),0,4) # DT2 <- rbind(aa,bb) # head(DT2) # # mix <- mmer(Yield~1, # random=~vs(ds(FIELD),id, Gu=A) + # vs(ds(FIELD),Rowf) + # vs(ds(FIELD),Colf) + # vs(ds(FIELD),spl2D(Row,Col)), # rcov=~vs(ds(FIELD),units), # data=DT2)