U.S. flag

An official website of the United States government

NCBI Bookshelf. A service of the National Library of Medicine, National Institutes of Health.

Montesinos López OA, Montesinos López A, Crossa J. Multivariate Statistical Machine Learning Methods for Genomic Prediction [Internet]. Cham (CH): Springer; 2022. doi: 10.1007/978-3-030-89010-0_6

Cover of Multivariate Statistical Machine Learning Methods for Genomic Prediction

Multivariate Statistical Machine Learning Methods for Genomic Prediction [Internet].

Show details

Chapter 6Bayesian Genomic Linear Regression

Published online: January 14, 2022.

The Bayesian paradigm for parameter estimation is introduced and linked to the main problem of genomic-enabled prediction to predict the trait of interest of the non-phenotyped individuals from genotypic information, environment variables, or other information (covariates). In this situation, a convenient practice is to include the individuals to be predicted in the posterior distribution to be sampled. We explained how the Bayesian Ridge regression method is derived and exemplified with data from plant breeding genomic selection. Other Bayesian methods (Bayes A, Bayes B, Bayes C, and Bayesian Lasso) were also described and exemplified for genome-based prediction. The chapter presented several examples that were implemented in the Bayesian generalized linear regression (BGLR) library for continuous response variables. The predictor under all these Bayesian methods includes main effects (of environments and genotypes) as well as interaction terms related to genotype × environment interaction.

Keywords:

Bayesian methods, Genomic selection, Main and interaction terms

6.1. Bayes Theorem and Bayesian Linear Regression

Unlike classic statistical inference, which assumes that the parameter θ that defines the model is a fixed unknown quantity, in Bayesian inference it is considered as a random variable whose variation tries to represent the knowledge or ignorance about this, before the data points are collected (Box and Tiao 1992). The probability density function which describes such variation is known as the prior distribution and is an additional component in the specification of the complete model in a Bayesian framework.

Given a data set yn = (y1, …, yn) whose distribution is assumed to be f(y| θ), and a prior distribution for the parameter θ, f(θ), the Bayesian analysis uses the Bayes theorem to combine these two pieces of information to obtain the posterior distribution of the parameters, on which the inference is fully based (Christensen et al. 2011):

fθy=fyθfy=fθfyθfyfθLθy,
where f(y) =  ∫ f(y| θ)f(θ)dθ = Eθ[f(y| θ)] is the marginal distribution of θ. This conditional distribution describes what is known about θ after data is collected and can be thought of as the updated prior knowledge about θ with the information contained in the data, which is done through the likelihood function L(θ; y) (Box and Tiao 1992).

In general, because the posterior distribution doesn’t always have a recognizable form and it is often not easy to simulate from this, numerical approximation methods are employed. Once a sample of the posterior distribution is obtained, estimation of a parameter is often found by averaging the sample values or averaging a function of the sample values when another quantity is of interest. For example, in genomic prediction with dense molecular markers, the main interest is to predict the trait of interest of the non-phenotyped individuals that have only genotypic information, environment variables, or other information (covariates). In this situation, a convenient practice is to include the individuals to be predicted (yp) in the posterior distribution to be sampled.

Specifically, a standard Bayesian framework for a normal linear regression model (see Chap. 3)

Y=β0+j=1pXjβj+ϵ
6.1
with ϵ a random error with normal distribution with mean 0 and variance σ2, is fully specified by assuming the next non-informative prior distribution: β and log(σ) approximately independent and locally uniform.
fβσ2σ2
6.2
which is not a proper distribution because it does not integrate to 1 (Box and Tiao 1992; Gelman et al. 2013). However, when X is of full column rank, the posterior distribution is a proper distribution and is given by
fβσ2yXσ2n2exp12σ2yTyσ21σ2n2exp12σ2βTXT2yT+yTyσ21σ2p+12exp12σ2ββ˜TXTXββ˜12σ2yTyβ˜TXTXβ˜σ21np1/2σ2p+12exp12σ2ββ˜TXTXββ˜σ21np1/2exp12σ2yTIHyσ2p+12exp12σ2ββ˜TXTXββ˜σ21np12expnp1σ˜22σ2,
where β~=XTX1XTy, σ~2=1np1yTIHy, and H = X(XTX)−1XT. From here the marginal posterior distribution of σ2 is σ2y,XIGnp1/2np1σ~22 with mean np1σ^22/np1/2=σ~2, and given σ2, the posterior conditional distribution of β is given by βσ2,y,XNβ~σ2XTX1.

6.2. Bayesian Genome-Based Ridge Regression

When p > n, X is not of full column rank and the posterior of model (6.1) may not be proper (Gelman et al. 2013), so a solution is instead to consider independently proper prior distributions, β ∼ N(0, Iσ2) and σ2 ∼ IG(α0, α0), which for large values of σ2 (106) and small values of α0 (10−3) is an approximation to the standard non-informative prior given in (6.1) (Christensen et al. 2011). A similar prior specification is taken in genomic prediction where different models are obtained by adopting different prior distributions of the parameters. For example, the Bayesian Linear Ridge Regression (Pérez and de los Campos 2014) with standardized covariates (Xjs) is given by

Y=μ+j=1pXjβj+ϵ
6.3
with a flat prior for mean parameter (μ), f(μ) ∝ 1, which can be approximately specified by μN0σ02, with a large value of σ02 (1010), a multivariate normal distribution with mean vector 𝟎 and covariance matrix σβ2Ip on the beta coefficients, β0=β1βpTσβ2Np0Ipσβ2, and scaled inverse Chi-square distributions as priors for the variance component: σβ2χvβ,Sβ2 (prior for the variance of the regression coefficients βj) and σ2χv,S2 (prior for the variance of random errors, ϵ), where χv,S2 denotes the scaled inverse Chi-squared distribution with shape parameter v and scale parameter S. The joint posterior distribution of the parameters in this model, θ=μβ0Tσ2σβ2T, is given by
fμβ0Tσβ2σ2yXLμβ0Tσ2yfθLμβ0Tσ2yfμfβ0σβ2fσβ2fσ212πσ2n2exp12σ2y1nμX1β02×exp12σ02μ2×1σβ2p2exp12σβ2β0Tβ0×Sβ2vβ2Γvβ2σβ21+vβ2expSβ2σβ2×S2v2Γv2σ21+v2expS2σ2.
This has no known form and it is not easy to simulate values of it, so numerical methods are required to explore it. One way to simulate values of this distribution is by means of the Gibbs sampler method, which consists of alternatingly generating samples of the full conditional distributions of each variable (or block of variables) given the rest of the parameters (Casella and George 1992).

The full conditional posteriors to implement the Gibbs sampler are obtained in the lines below.

The conditional posterior distribution of β0 is given by

fβ0Lμβ0Tσ2yfβ0σβ2exp12σ2y1nμX1β0212σβ2β0Tβ0exp12β0Tσβ2In+σ2X1TX1β02σ2y1nμTX1β0exp12β0β˜0TΣ˜01β0β˜0

Σ~0=σβ2Ip+σ2X1TX11 and β~0=σ2Σ~0X1Ty1nμ. That is, β0Npβ~0Σ~0. Similarly, the conditional distribution of μ is μNμ~σ~02, where σ~02=σ2nand μ~=1n1nTyX1β0.

The conditional distribution of σ2 is

fσ2Lμβ0Tσ2yfσ21σ2n2exp12σ2y1nμX1β02S2v2Γv2σ21+v2expS2σ2S˜2v˜2σ21+v˜2expS˜2σ2,
where v~=v+n and S~=S+y1nμX1β02. So σ2χv~,S~2, where χv,s2 denotes a scaled inverse Chi-squared distribution with parameters v and S. Similarly, σβ2χv~β,S~β2, where v~β=vβ+p and S~β=Sβ+β0Tβ0.

In summary, for the Ridge regression model, a Gibbs sampler consists of the following steps:

1.

Choose initial values for μ, β0, and σ2.

2.

Simulate a value of the full conditional distribution ofσβ2:

σβ2μ,β0,σ2χv~,S~β2,

where χv~,S~β2 denotes a scaled inverse Chi-square distribution with shape parameter v~β=vβ+p andscale parameterS~β=Sβ+β0Tβ0.

3.

Simulate the full conditional posterior distribution of β0:

β0μ,σβ2,σ2Npβ~0Σ~0,

where Σ~0=σβ2Ip+σ2X1TX11 and β~0=σ2Σ~0X1Ty1nμ

4.

Simulate the full conditional distribution of μ:

μβ0,σβ2,σ2Nμ~σ~μ2,

where σ~μ2=σ2n and μ~=1nTyX1β0.

5.

Simulate the full conditional distribution of σ2:

σ2μ,β0,σβ2χv~,S~2,

where v~=v+nandS~=S+y1nμX1β02.

6.

Repeat steps 2–5 depending on how many values of the parameter vector (βT,σβ2,σ2) you wish to simulate. Usually a large number of iterations are needed and an early part of them are discarded, to finally average the rest of each parameter to obtain estimates of them.

The Gibbs sampler described above can be implemented easily with the BGLR R package: if the hyperparameters S-v and Sβ-vβ are not specified, by default the BGLR function assigns v = vβ = 5, and to S and Sβ assigns values such that the mode of the priors of σ2 and σβ2 (inverse scaled Chi-square) matches a certain proportion of the total variance (1 − R2 and R2): S = Var(Y) × (1 − R2) × (v + 2) and Sβ = Var(Y) × R2 × (vβ + 2) (see Appendix 2 for more details). Explicitly, in BGLR this model can be implemented by running the following R code:

 ETA = list( list( model = ‘BRR’, X = X1, df0 = vβ, S0 = Sβ, R2 = 1-R2) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)
where nIter = 1e4 and burnIn = 1e3 are the desired number of iterations and the number of them to be discarded when computing the estimates of the parameters. Remember that when the hyperparameter values are not given, they are set up in the default values, as previously described.

A sub-model of the BRR that does not induce shrinkage of the beta coefficients is obtained by assuming that β1βpTσβ2Np0Ipσβ2, ignoring the prior distribution of σβ2 and setting this at a very high value (1010). Note that this model is very similar to the Bayesian model obtained by adopting the prior (6.2), under which the beta coefficients are estimated solely with the information contained in the likelihood function (Pérez and de los Campos 2014). This prior model can also be implemented in the BGLR package and is called FIXED. Certainly, the Gibbs sampler steps for its implementation are the same as the steps described before for the BRR, except that step 2 is removed (no simulations are obtained from σβ2) and σβ2 is set equal to zero in the full conditional of β0 (step 3).

6.3. Bayesian GBLUP Genomic Model

In genomic-enabled prediction, the number of markers used to predict the performance of a trait of interest is often very large compared to the number of individuals phenotyped in the sample (p ≫ n); for this reason, some computational difficulties may arise when exploring the posterior distribution of the beta coefficients. When the main objective is to use this model for predictive purposes, a solution consists of reducing the dimension of the problem by directly simulating values of g = X1β0 (breeding values or genomic effects, Lehermeier et al. 2013) instead of only from β0. To do this, first note that because β0σβ2Np0Ipσβ2, to induce a prior for g, this is defined as g=X1β0σβ2Nn0σβ2X1X1T=Nn0σg2G, where σg2=pσβ2 and G=1pX1X1T, which is known as the genomic relationship matrix (VanRaden 2007). Then, under this parameterization (g = X1β0 and σg2=pσβ2), the model specified in (6.3), in matrix notation takes the following form:

Y=1nμ+g+ϵ
6.4
with a flat prior to mean parameter (μ), σ2χv,S2, and the induced priors: g=X1β0σg2Nn0σg2G and σg2χvg,Sg2 (vg = vβ, Sg = pSβ).

Similarly to what was done for model (6.3), the full conditional posterior distribution of g in model (6.4) is given by

fgLμgσ2yfgσg212πσ2n2exp12σ2y1nμg21σg2n2exp12σg2gTG1gexp12gg˜TG˜1gg˜,
where G~=σg2G1+σ2In1 and g~=σ2G~y1nμ, and from here gNng~G~. Then, the mean/mode of g ∣ − is g~=σ2G~y1nμ, which is also the best linear unbiased predictor (BLUP) of g under the mixed model equation of Henderson (1975) using the machinery of a classic linear mixed model described in the previous chapter for model (6.4), after recognizing the prior distribution of g as the distribution of the random effects in a model, ignoring the priors specification of the rest of the parameters and assuming that they are known (Henderson 1975). For this reason, model (6.4) is often referred to as GBLUP. If G is replaced by the pedigree matrix A, the resulting model is known as PBLUP or ABLUP.

The full conditional posterior of the rest of parameters is similar to the BRR model: μNμ~σ~02, where σ~02=σ2nand μ~=1n1nTyg; σ2χv~,S~2, wherev~=v+n and S~=S+y1nμg2; and σg2χv~g,S~g2, where v~g=vg+n and S~g=Sg+gTG1g.

Note that when p ≫ n, then the dimension of the parameter space of the posterior of GBLUP model is lower than the BRR.

The GBLUP model (6.4) also can be implemented easily with the BGLR R package, and when the hyperparameters S-v and Sg-vg are not specified, v = vg = 5 is used by default and the scale parameters are settled similarly as in the BRR.

The BGLR code to fit this model:

 ETA = list( list( model = ‘RHKS’, K = G, df0 = vg, S0 = Sg, R2 = 1-R2)) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)

The GBLUP can be equivalently expressed and consequently fitted with the BRR model by making the design matrix equal to the lower triangular factor of the Cholesky decomposition of the genomic relationship matrix, i.e., X = L, where G = LL. So, with the BGLR package, the BRR implementation of a GBLUP model is.

 L = t(chol(G))
ETA = list( list( model = ‘BRR’, X = L, df0 = vβ, S0 = Sβ, R2 = 1-R2) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)

When there is more than one repetition of an individual in the data at hand, or a more sophisticated design is used in the data collection, model (6.4) can be specified in a more general way to take into account this structure, as follows:

Y=1nμ+Zg+ϵ
6.5
with Z the incident matrix of the genotypes. This model cannot be fitted directly in the BGLR and some precalculus is needed first to compute the “covariance” matrix of the predictor Zg in model (6.5): KL = Var(Zg) = ZGZT. The BGLR code for implementing this model is the following:
 Z = model.matrix(~0+GID,data=dat_F,xlev = list(GID=unique(dat_F$GID)))
K_L = Z%*%G%*%t(Z)
ETA = list( list( model = ‘RHKS’, K = K_L, df0 = vg, S0 = Sg, R2 = 1-R2)) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)
where dat_F is the data set that contains the necessary phenotypic information (GID: Lines or individuals; y: response variable of the trait of interest).

6.4. Genomic-Enabled Prediction BayesA Model

Another variant to the standard Bayesian model (6.1) is the BayesA model proposed by Meuwissen et al. (2001), which is a slight modification of the BRR model obtained with the same prior distributions, except that now a specific variance σβj2 is assumed for each of the covariate (marker) effects, that is, βjσβj2N0σβj2, and these variance parameters are supposed to be independent random variables with a scaled inverse Chi-square distribution with parameters vβ and Sβ, σβj2χ2vβSβ. These specific variances for each marker effect provide covariate heterogeneous shrinkage estimation. Furthermore, a gamma distribution is assigned to Sβ, Sβ ∼ G(r, s), where G(r, s) denotes a gamma distribution where r and s are the rate and shape parameters, respectively. By providing a different prior variance for each βj, this model has the potential of inducing covariate-specific shrinkage of estimated effects (Pérez and de los Campos 2013).

Note that choosing r = r/vβ and taking very large values of vβ, the prior of σβj2 collapses to a degenerate distribution at Sβ, and the BRR model is obtained, but with a gamma distribution with parameters r and s as priors to the common variance of the effects σβ2=Varβj=Sβ, instead of χ−2(vβ, Sβ). Furthermore, the marginal distribution of each beta coefficient βj, that is, the unconditional distribution of βj ∣ Sβ, is a scaled-t-student distribution (scaled by Sβ/vβ). These distributions, compared to the normal, have heavier tails and put higher mass around 0, which compared to the BRR, induce fewer shrinkage estimates of covariates with sizable effects, and induce strong shrinkage toward zero estimates of covariates with smaller effects, respectively (de los Campos et al. 2013).

A Gibbs sampler implementation for estimating the parameters of this model can be done following steps 1–6 of the BRR model, where the second step is replaced by the next 2.1 and 2.2 steps, the third and the last step are replaced and modified by the next steps 3 and 6:

2.1.

Simulate from the full conditional of each σβj2

σβj2μ,β0,σj2,Sβ,σ2χv~j,S~βj2,

where v~βj=vβ+1 andscale parameterS~βj=Sβ+βj2, where σj2 is the vector σβ2=σβ12σβp2 but without the jth entry.

2.2.

Simulate from the full conditional of Sβ

fSβj=1pfσβj2SβfSβj=1pSβ2vβ2Γvβ2σβj21+vβ2expSβ2σβj2Sβs1exprSβSβs+pvβ21expr+12j=1p1σβj2Sβ

which corresponds to the kernel of the gamma distribution with rate parameter r~=r+12j=1p1σβj2 and shape parameter s~=s+pvβ2, and so SβGammar~s~.

  • 3. Simulate the full conditional posterior distribution of β0:
    β0μ,σβ2,σ2Npβ~0Σ~0,
    where Σ~0=Dp1+σ2X1TX11 and β~0=σ2Σ~0X1Ty1nμ, Dp=Diagσβ12σβp2.
  • 6. Repeat steps 2–5 (given in the BRR method) depending on how many values of the parameter vector (βT,σβ2,σ2,Sβ) we wish to simulate.

When implementing this model in the BGLR package, by default v = vβ = 5 are used and S = Var(Y) × (1 − R2) × (v + 2), which makes the mode of the priors of σ2 (χ−2(v, S)) match a certain proportion of the total variance (1 − R2). If the hyperparameters of the a priori for Sβ, s, and r, are not specified, by default BGLR takes s = 1.1 to have an a priori (Sβ ∼ G(s, r)) that is relatively non-informative with a coefficient of variation (1/s) of approximately 95%. Then, to the rate parameter it assigns the value r = (s − 1)/Sβ, with Sβ=Vary×R2×vβ+2/Sx2, where Sx2 is the sum of the variances of the columns of X and R2 is the percentage of the total variation that a priori is required to attribute to the covariates in X. The BGLR code for implementing this model is

 ETA = list( list( model = ‘BayesA’, X=X1, df0 = vβ, rate0 = r, shape0 = s, R2 = 1-R2))
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)

6.5. Genomic-Enabled Prediction BayesB and BayesC Models

Other variants of the model (6.1) are the BayesC and the BayesB models, which in turn can be considered as direct extensions of the BRR and BayesA models, respectively, by adding a parameter π that represents the prior proportion of covariates with nonzero effect (Pérez and de los Campos 2014).

The BayesC is the same as the BRR, but instead of assuming a priori that the beta coefficients are independent normal random variables with mean 0 and variance σβ2, it assumes that with probability π each βj comes from aN0σβ2, and with probability 1 − π comes from a degenerate distribution (DG) at zero, that is, β1,,βpσβ2,πiidπpN0σβ2+1πpDG0 (mix of a normal distribution with mean 0 and variance σβ2, and degenerate distribution at zero). In addition, for the parameter πp, a beta distribution is assigned as prior, that is, πp~Beta (πp0, ϕ0), where πp0 = E(πp) represents the mean and ϕ01 is the “dispersion” parameter (varπp=πp01πp0ϕ0+1). If ϕ0 = 2 and πp0 = 0.5, the prior for πp is a uniform distribution in (0,1). For large values of ϕ0, the distribution for πp is highly concentrated around πp0, and so the BayesC is reduced to BRR when πp0 = 1 for large values of ϕ0.

For this model, the full conditional distributions of μ and σβ2 are the same as the model described before, that is, μNμ~σ~μ2 and σ2χv~,S~2. However, for the rest of the parameters, this does not have a known form and is not easy to simulate from them. A solution is to introduce a latent variable to represent the prior distribution of each βj, and compute all the conditional distributions in this augmented scheme, including the distribution corresponding to the latent variable. To do this, note that this prior can be specified by assuming that conditional to a binary latent variable Zj,

βjσβ2,Zj=zN0σβ2,ifz=1DG0,ifz=0,
where Zj is a Bernoulli random variable with parameter πp (Zj ∼ Ber(πp)). With this introduced latent variable, all the full conditionals can be derived, as is described next.

If the current value of zj is 1, the full conditional posterior of βj is

fβjLμβ0σ2yfβjσβ2zjexp12σ2y1nμX1β012πσβ2expβj22σβ2exp12σ2i=1nyijxijβj212σβ2βj2exp12σβ2+σ2i=1nxij2βj22σ2i=1nxijyijβj+1σ2i=1nyij2expβjβ˜j22σ˜j2,
where yij=yik=1kjpxikβk, σ~j2=σβ2+σ2i=1nxij21, and β~j=σ2σ~j2i=1nxijyij. That is, when the current value of zj is 1, βjNβ~jσ~j2. However, if zj = 0, the full conditional posterior of βj is a degenerate random variable at 0, that is, βj ∣  −  ∼ DG(0).

The full conditional distribution of Zj is

fzjfβjσβ2zjfzjfβjσβ2zjπpzj1πj1zj
from which, conditional on the rest of the parameters, Zj is a Bernoulli random variable with parameter π~pj=πp2πσβ2expβj22σβ2πp2πσβ2expβj22σβ2+1πpδ0βj. Note however that, if βj ≠ 0, π~pj=1, and then Zj = 1 with probability 1, when simulating from the full conditional posterior of βj, we will always obtain values different from zero, and this cyclic behavior will remain permanent. On the other hand, note that if βj = 0, π~pj=πp2πσβ2πp2πσβ2+1πp is not 0, then the next simulated value of βj will be different from 0, and in this scenario, in the next steps of the “Gibbs,” Zj will at all times be 1, and so the chain has absorbing states and will not explore the entire sampling space. A solution to this problem consists of trying to simulate from the joint conditional distribution of βj and Zj, that is, from βj, Zj ∣ −. This full joint conditional distribution can be computed as
fβjzjfzjfβjzjfzjLμβ0σ2yfβjσβ2zj,
where f(zj) is the marginal conditional distribution of Zj conditioned to all parameters except βj (Zj ∣  − j ∼ f(·)). Specifically, this is given by “integrating” (f(βj, zj| −) with respect to βj)

fzjfβjzjdβjLμβ0σ2yfβjσβ2zjfzjπpdβjexp12σ2i=1nyijxijβj212πσβ2expβj22σβ2πpdβjexp12σ2i=1nyijxijβj2δ0βj1πpdβjπpσ˜j2σβ21πp.

From here, Zj ∣ − is a Bernoulli random distribution with parameter π~p=πpσ~j2σβ2/πpσ~j2σβ2+1πp. With this and the full conditional distribution derived above for βj, an easy way to simulate values from βj, Zj ∣ − consists of first simulating a zj value from ZjjBerπ~p, and then, if zj = 1, simulating a value of βj from βjNβ~jσ~j2, otherwise take βj = 0.

Now, note that the full conditional distribution of σβ2 is

fσβ2jpfβjσβ2zjzjfσβ21σβ2pz¯pexp12σβ2j=1pzjβj2Sβ2vβ2Γvβ2σβ21+vβ2expSβ2σβ21σβ2pz¯pexp12σβ2j=1pzjβj2Sβ2vβ2Γvβ2σβ21+vβ2expSβ2σβ21σβ21+v˜β2expS˜β2σβ2,
where z¯p=1/pj=1pzj, S~β=Sβ+j=1pzjβj2,and v~β=vβ+pz¯p. That is, σβ2μ,β0,σ2,zχv~,S~β2. The full conditional distributions of μ and σ2 are the same as BRR, that is, μNμ~σ~μ2 and σ2χv~,S~2, with σ~μ2=σ2n, μ~=1nTyX1β0, v~=v+n,andS~=S+y1nμX1β02.

The full conditional distribution of πp is

fπpj=1pfzjπpfπpπppz¯p1πpp1z¯pπpϕ0πp0+111πpϕ01πp01πpϕ0πp0+pz¯p11πpϕ01πp0+p1z¯p1
which means that πpBetaπ~p0ϕ~0, with ϕ~0=ϕ0+p and π~p0=ϕ0πp0+pz¯pϕ0+p.

The BayesB model is a variant of BayesA that assumes almost the same prior models to the parameters, except that instead of assuming independent normal random variables with common mean 0 and common variance σβ2 for the beta coefficients, this model adopts a mixture distribution, that is, βjσβj2,πiidπN0σβj2+1πDG0, with π ∼ Beta(π0, p0). This model has the potential to perform variable selection and produce covariate-specific shrinkage estimates (Pérez et al. 2010).

This model can also be considered an extension of the BayesC model with a gamma distribution as prior to the scale parameter of the a priori distribution of the variance of the beta coefficients, that is, Sβ ∼ G(s, r). It is interesting to point out that if π = 1, this model is reduced to BayesA, which is obtained by taking π0 = 1 and letting ϕ0 go to ∞. Also, this is reduced to the BayesC by setting s/r=Sβ0 and choosing a very large value for r.

To explore the posterior distribution of this model, the same Gibbs sampler given for BayesC can be used, but adding to the process the full conditional posterior distribution of Sβ: SβGammar~s~, where r~=r+12σβ2 and shape parameter s~=s+vβ2.

When implementing both these models in the BGLR R package, by default this assigns πp0 = 0.5 and ϕ0 = 10, for the hyperparameters of the prior model of πp, Beta(πp0, ϕ0), which results in a weakly informative prior. For the remaining hyperparameters of the BayesC model, by default BGLR assigns values like those assigned to the BRR model, but with some modifications to consider because a priori now only a proportion π0 of the covariates (columns of X) has nonzero effects:

v=vβ=5,S=VarY×1R2×v+2,Sβ=Vary×R2×vβ+2Sx2π0.

While for the remaining hyperparameters of BayesB , by default BGLR also assigns values similar to BayesAv = vβ = 5, S = Var(Y) × (1 − R2) × (v + 2), r = (s − 1)/Sβ, with Sβ=Vary×R2×vβ+2Sx2π0, where Sx2 is the sum of the variances of the columns of X.

The BGLR codes to implement these models are, respectively:

ETA = list( list( model = ‘BayesC’, X=X1 ) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, df0 = v, S0 = S, probIn = πp0, counts = ϕ0, R2 = R2)
and
ETA = list( list( model = ‘BayesB’, X=X1 ) )
A = BGLR(y=y, ETA = ETA, nIter = 1e4, burnIn = 1e3, df0 = v, rate0 = r, shape0 = s, probIn = πp0, counts = ϕ0, R2 = R2)

6.6. Genomic-Enabled Prediction Bayesian Lasso Model

Another variant of the model (6.1) is the Bayesian Lasso linear regression model (BL). This model assumes independent Laplace or double-exponential distributions with location and scale parameters 0 and σ2λ, respectively, for the beta coefficients, that is, β1,,βpσ2,λiidL0σ2λ. Furthermore, the priors for parameters μ and σ2 are the same as in the models described before, while for λ2, a gamma distribution with parameters sλ and rλ is often adopted.

Because compared to the normal distribution, the Laplace distribution has fatter tails and puts higher density around 0, this prior induces stronger shrinkage estimates for covariates with relatively small effects and reduced shrinkage estimates for covariates with larger effects (Pérez et al. 2010).

A more convenient specification of the prior for the beta coefficients in this model is obtained with the representation proposed by Park and Casella (2008), which is a continuous scale mixture of a normal distribution: βj ∣ τj ∼ N(0, τjσ2) and τj ∼ Exp(2/λ2), j = 1, …, p, where Exp(θ) denotes an exponential distribution with scale parameter θ. So, unlike the prior used by the BRR model, this prior distribution also puts a higher mass at zero and has heavier tails, which induce stronger shrinkage estimates for covariates with relatively small effect and less shrinkage estimates for markers with sizable effect (Pérez et al. 2010).

Note that the prior distribution for the beta coefficients and the prior variance of this distribution in BayesB and BayesC can be equivalently expressed as a mixture of a scaled inverse Chi-squared distribution with parameters vβ and Sβ, and a degenerate distribution at zero, that is, βjN0σβ2 and σβ2πpχ2vβSβ+1πpDG0. So, based on this result and the connections between the models described before, the main difference between all these models is the manner in which the prior variance of the predictor variable is modelled.

Example 1

To illustrate how to use the models described before, here we consider the prediction of grain yield (tons/ha) based on marker information. The data set used consists of 30 lines in four environments with one and two repetitions and the genotyped information contains 500 markers for each line. The numbers of lines with one (two) repetition are 6 (24), 2 (28), 0 (30), and 3 (27) in Environments 1, 2, 3, and 4, respectively, resulting in 229 observations. The performance prediction of all these models was evaluated with 10 random partitions in a cross-validation strategy, where 80% of the complete data set was used to fit the model and the rest to evaluate the model in terms of the mean squared error of prediction (MSE).

The results for all models (shown in Table 6.1) were obtained by iterating 10,000 times the corresponding Gibbs sampler and discarding the first 1000 of them, using the default hyperparameter values implemented in BGLR. This indicates that the behavior of all the models is similar, except the BayesC, where the MSE is slightly greater than the rest.

Table 6.1

Table 6.1

Mean squared error (MSE) of prediction across 10 random partitions, with 80% for training and the rest for testing, in five Bayesian linear models

The R code to obtain the results in Table 6.1 is given in Appendix 3.

What happens when using other hyperparameter values? Although the ones used here (proposed by Pérez et al. 2010) did not always produce the best prediction performance (Lehermeier et al. 2013) and there are other ways to propose the hyperparameter values in these models (Habier et al. 2010, 2011), it is important to point out that the values used by default in BGLR work reasonably well and that it is not easy to find other combinations that work better in all applications, and when you want to use other combinations of hyperparameters you need to be very careful because you can dramatically affect the predictive performance of the model that uses the default hyperparameters.

Indeed, by means of simulated and experimental data, Lehermeier et al. (2013) observed a strong influence on the predictive performance of the hyperparameters given to the prior distributions in BayesA, BayesB, and the Bayes Lasso with fixed λ. Specifically, in the first two models, they observed that the scale parameter Sβ of the prior distribution of variance of βj had a strong effect on the predictive ability because overfitting in the data occurred when a too large value of this value was chosen, whereas underfitting was observed when too small values of this parameter were used. Note that this is expected approximately by seeing that in both models (BayesA and BayesB), Varβj=Eσβj2=Sβ/(vβ1), which is almost the inverse of the regularization parameter in any type of Ridge regression model.

6.7. Extended Predictor in Bayesian Genomic Regression Models

All the Bayesian formulations of the model (6.1) described before can be extended, in terms of the predictor, to easily take into account the effects of other factors. For example, effects of environments and environment–marker interaction can be added as

y=1nμ+XEβE++XEMβEM+ϵ,
6.6
where XE and XEM are the design matrices of the environments and environment–marker interactions, respectively, while βE and βEM are the vectors of the environment effects and the interaction effects, respectively, with a prior distribution that can be specified as was done for β. Indeed, with the BGLR function all these things are possible, and all the options described before can also be adopted for the rest of effects added in the model: FIXED, BRR, BayesA, BayesB, BayesC, and BL.

Under the RKHS model with genotypic and environment–genotypic interaction effects, in the predictor, the modified model (6.6) is expressed as

Y=1nμ+XEβE+ZLg+ZELgE+ϵ,
6.7
where ZL and ZLE are the incident matrices of the genomic and environment–genotypic interaction effects, respectively. Similarly to model (6.5), this model cannot be fitted directly in the BGLR and some precalculations are needed first to compute the “covariance” matrix of the predictors ZLg and ZELgE, which are KL=σg2VarZLg=ZLGZLT andKLE=σgE2VarZLEgE=ZLEIIGZLET, respectively, where I is the number of environments. The BGLR code for implementing this model is the following:

 I = length(unique(dat_F$Env))
XE = model.matrix(~0+Env,data=dat_F)[,-1]
Z_L = model.matrix(~0+GID,data=dat_F,xlev = list(GID=unique(dat_F$GID)))
K_L = Z_L %*%G%*%t(Z_L)
Z_LE = model.matrix(~0+GID:Env,data=dat_F,
xlev = list(GID=unique(dat_F$GID),Env = unique(dat_F$Env)))
K_LE = Z_LE%*%kronecker(diag(I),G)%*%t(Z_LE)
ETA = list( list(model='FIXED',X=XE),
list( model = ‘RHKS’, K = K_L, df0 = vg, S0 = Sg, R2 = 1-R2)),
list(model='RKHS',K=K_LE )
A = BGLR(y,ETA = ETA, nIter = 1e4, burnIn = 1e3, S0 = S, df0 = v, R2 = R2)
where dat_F is the data set that contains the necessary phenotypic information (GID: Lines or individuals; Env: Environment; y: response variable of trait under study).

Example 2 (Includes Models with Only Env Effects and Models with Env and LinexEnv Effects)

To illustrate how to fit the extended genomic regression models described before, here we consider the prediction of grain yield (tons/ha) based on marker information and the genomic relationship derived from it. The data set used consists of 30 lines in four environments, and the genotyped information of 500 markers for each line. The performance prediction of 18 models was evaluated with a five-fold cross-validation, where 80% of the complete data set was used to fit the model and the rest to evaluate the model in terms of the mean squared error of prediction (MSE). These models were obtained by considering different predictors (marker, environment, or/and environment–marker interaction) and different prior models to the parameters of each predictor included.

The model M1 only considered in the predictor the marker effects, from which six sub-models were obtained by adopting one of the six options (BRR, RKHS, BayesA, BayesB, BayesC, or BL) to the prior model of β (or g). Model M2 is model M1 plus the environment effects with a FIXED prior model, for all prior sub-models in the marker predictor. Model M3 is model M2 plus the environment–marker interaction, with a prior model of the same family as those chosen for the marker predictor (see in Table 6.2 all the models we compared).

Table 6.2

Table 6.2

Fitted models: Mmd, m = 1, 2, 3, d = 1, …, 6

The performance prediction of the models presented in Table 6.2 is shown in Table 6.3. The first column represents the kind of prior model used in both marker effects and env:marker interaction terms, when the latter is included in the model. In each of the first five prior models, model M2 resulted in better MSE performance, while when the BL prior model was used, model M3, the model with the interaction term, was better. The greater difference is between M1 and M2, where the average MSE across all priors of the first model is approximately 21% greater than the corresponding average of the M2 model. Similar behavior was observed with Pearson’s correlation, with the average of this criterion across all priors about 32% greater in model M2 than in M1. So the inclusion of the environment effect was important, but not the environment:marker interaction.

Table 6.3. Performance prediction of models in Table 6.

Table 6.3

Performance prediction of models in Table 6.2: Mean squared error of prediction (MSE) and average Pearson’s correlation (PC), each with its standard deviation across the five partitions

The best prediction performance in terms of MSE was obtained with sub-model M25 (M2 with a BayesC prior) followed by M21 (M2 with a BRR prior). However, the difference between those and sub-models M22, M23, and M24, also derived from M2, is only slight and a little more than with M26, which as commented before, among the models that assume a BL prior, showed a worse performance than M36 (M3 plus a BL prior for marker effects and environment–marker interaction).

6.8. Bayesian Genomic Multi-trait Linear Regression Model

The univariate models described for continuous outcomes do not exploit the possible correlation between traits, when the selection of better individuals is based on several traits and these univariate models are fitted separately to each trait. Relative to this, some advantages of jointly modelling the multi-traits is that in this way the correlation among the traits is appropriately accounted for and can help to improve statistical power and the precision of parameter estimation, which are very important in genomic selection, because they can help to improve prediction accuracy and reduce trait selection bias (Schaeffer 1984; Pollak et al. 1984; Montesinos-López et al. 2018).

An example of this is when crop breeders collect phenotypic data for multiple traits such as grain yield and its components (grain type, grain weight, biomass, etc.), tolerance to biotic and abiotic stresses, and grain quality (taste, shape, color, nutrient, and/or content) (Montesinos-López et al. 2016). In this and many other cases, sometimes the interest is to predict traits that are difficult or expensive to measure with those that are easy to measure or the aim can be to improve all these correlated traits simultaneously (Henderson and Quaas 1976; Calus and Veerkamp 2011; Jiang et al. 2015). In these lines, there is evidence of the usefulness of multi-trait modelling. For example, Jia and Jannink (2012) showed that, compared to single-trait modelling, the prediction accuracy of low-heritability traits could be increased by using a multi-trait model when the degree of correlation between traits is at least moderate. They also found that multi-trait models had better prediction accuracy when phenotypes were not available on all individuals and traits. Joint modelling also has been found useful for increasing prediction accuracy when the traits of interest are not measured in the individuals of the testing set, but this and other traits were observed in individuals in the training set (Pszczola et al. 2013).

6.8.1. Genomic Multi-trait Linear Model

The genomic multi-trait linear model adopts a univariate genomic linear model structure for each trait but with correlated residuals and genotypic effects for traits in the same individual. Assuming that for individual j, nT traits (Yjt, t = 1, …, nT) are measured, this model assumes that

Yj1Yj2YjnT=μ1μ2μnT+xjTβ1xjTβ2xjTβnT+gj1gj2gjnT+ϵj1ϵj2ϵjnT,
where μt, t = 1, …, nT, are the specific trait intercepts, xj is a vector of covariates equal for all traits, gjt, t = 1, …, nT, are the specific trait genotype effects, and ϵjt, t = 1, …, nT are the random error terms corresponding to each trait. In matrix notation, it can be expressed as
Yj=μ+BTxj+gj+ϵj,
6.8
where Yj=Yj1YjnTT, μ=μ1μnTT, B=β1,,βnT, gj=gj1gjnTT, and ϵj=ϵϵnTT. The residual vectors are assumed to be independent with multivariate normal distribution, that is ϵjNnT0R, and all the random genotype effects are assumed to be g=g1TgJTTN0GΣT, being the Kronecker product. For a full Bayesian specification of this model, we suppose that β = vec(B) ∼ N(β0, Σβ), that is, marginally, for the fixed effect of each trait, a prior multivariate normal distribution is adopted, βtNpβt0Σβt,t=1,,nT; a flat prior for the intercepts, f(μ) ∝ 1; and independent inverse Wishart distributions for the covariance matrix of residuals R and for ΣT, that is, ΣT ∼ IW(vt, St) and R ∼ IW(vR, SR).

Putting all the information together where the measured traits of each individual (Yj) are accommodated in the rows of a matrix response (Y), model (6.8) can be expressed as

Y=1JμT+XB+Z1b1+E,
6.9
where =[Y1, …, YJ]T, X = [x1, …, xJ]T, b1 = [g1, …, gJ]T, and E = [ϵ1, …, ϵJ]T. Note that under this notation, ETMNnT×J0RIJ or equivalently EMNJ×nT0IJR, and b1TMNnT×J0ΣTG or b1MNJ×nT0GΣT. Here ZMNJ×nTMUV means that the random matrix Z follows the matrix variate normal distribution with parameters M, U, and V, or equivalently, that the JnT random vector vec(Z) is distributed as NJnTvecMVU,with vec(·) denoting the vectorization of a matrix that stacks the columns of this in a single column. Note that when ΣT and R are diagonal matrices, model (6.9) is equivalent to separately fitting a univariate GBLUP model to each trait.

The conditional distribution of all traits is given by

fYμβb1ΣTR=RJ22πJnTexp12trR1Y1JμTXBZ1b1TIJY1JμTZ1b1=RJ22πJnTexp12vecY1JμTXBZ1b1TR1IJvecY1JμTXBZ1b1
and the joint posterior of parameters μ, B, b1, ΣT, and R is given by
fμBb1ΣTRYfYμBb1ΣTRfb1ΣTfΣTfβfR,
where f(b1| ΣT) denotes the conditional distribution of the genotype effects, and f(ΣT), f(β), and f(R) denote the prior density distribution of ΣT, B, and R, respectively. This joint posterior distribution of the parameters doesn’t have closed form; for this reason, next are derived the full conditional distributions for Gibbs sampler implementation.

Let β0 and Σβ be the prior mean and variance of β = vec(B). Because tr(AB) = vec(AT)Tvec(B) = vec(B)Tvec(AT) and vec (AXB) = (BT ⊗ A)vec(X), we have that

PβfYμBb1ΣTRfβexp12vecY1JμTZ1b1InTXvecBTR1IJ×vecY1JμTZ1b1InTXvecB12ββ0TΣβ1ββ0exp12vecY1JμTZ1b1InTXβTR1IJ×vecY1JμTZ1b1InTXβ12ββ0TΣβ1ββ0exp12ββ˜0TΣ˜β1ββ˜0,
where Σ~β=Σβ1+R1XTX1 and β~0=Σ~βΣβ1β0+R1XTvecY1JμTZ1b1. So, the full conditional distribution of β is Npβ~0Σ~β. Similarly, the full conditional distribution of g = vec(b1) is NJg~G~, with G~=ΣT1G1+R1Z1TZ11 and g~=G~R1Z1TvecY1JμTXB. Now, because vec1JμT=InT1Jμ, similarly as before, the full conditional of μ is NnTμ~Σ~μ, where Σ~μ=J1R and μ~=Σ~μR11JvecYXBZ1B.

The full conditional distribution of ΣT

PΣTPb1ΣTPΣTΣTJ2GnT2exp12trb1TG1b1ΣT1PΣTΣTvT+J+nT+12exp12trb1TG1b1+STΣT1.

From here we have that ΣTIWvT+Jb1TG1b1+ST. Now, because

PRfYμBb1ΣTRfRRJ2exp12trR1Y1JμTXBZ1b1TIJY1JμTZ1b1RvR+nT+12exp12trSTR1RvR+J+nT+12exp12trST+Y1JμTXBZ1b1TY1JμTZ1b1R1
the full conditional distribution of R is IWv~RS~R, where v~R=vR+J and S~R=ST+Y1JμTXBZ1b1TY1JμTZ1b1.

In summary, a Gibbs sampler exploration of the joint posterior distribution of μ, β, g, ΣT, and R can be done with the following steps:

1.

Simulate β from a multivariate normal distribution Npβ~0Σ~β, where Σ~β=Σβ1+R1XTX1 and β~0=Σ~βΣβ1β0+R1XTvecY1JμTZ1b1.

2.

Simulate μ from NnTμ˜Σ˜μ,where Σ~μ=J1R and μ~=Σ~μR11JvecYXBZ1B.

3.

Simulate g = vec(b1) from NJg~G~,where G~=ΣT1G1+R1Z1TZ11 and g~=G~R1Z1TvecY1JμTXB.

4.

Simulate ΣT from IWvT+Jb1TG1b1+ST.

5.

Simulate R from IWv~RS~R,where v~R=vR+J and S~R=ST+Y1JμTXBZ1b1TY1JμTZ1b1.

6.

Return to step 1 or terminate when chain length is adequate to meet convergence diagnostics and the required sample size is reached.

An implementation of this model can be done using the github version of the BGLR R library, which can be accessed from https://github.com/gdlc/BGLR-R and can be installed directly in the R console by running the following commands: install.packages('devtools'); library(devtools); install_git('https://github.com/gdlc/BGLR-R'). This implementation also uses a flat prior for the fixed effect regression coefficients β, and in such a case, the corresponding full conditional of this parameter is the same as step 1 of the Gibbs sampler given before, but removing Σβ1 and Σβ1β0 from Σ~β and β~0, respectively. Specifically, model (6.8) can be implemented with this version of the BGLR package as follows:

ETA = list( list( X=X, model='FIXED' ), list( K=Z1GZ1T, model=’ RKHS’ ) )
A = Multitrait(y = Y, ETA=ETA, resCov = list( type = 'UN', S0 = SR, df0 = vR ), nIter = nI, burnIn = nb)

The first argument in the Multitrait function is the response variable which many times is a phenotype matrix where each row corresponds to the measurement of nT traits in each individual. The second argument is a list predictor in which the first sub-list specifies the design matrix and prior model to the fixed effects part of the predictor in model (6.9), and in the second sub-list are specified the parameters of the distribution of random genetic effects of b1, where it is specified the K = G genomic relationship matrix, that accounts for the similarity between individuals based on marker information, df0 = vT and S0 = ST are the degrees of freedom parameter (vT) and the scale matrix parameter (ST) of the inverse Wishart prior distribution for ΣT, respectively. In the third argument (resCOV), S0 and df0 are the scale matrix parameter (SR) and the degree of freedom parameter (vR) of the inverse Wishart prior distribution for R. The last two arguments are the required number of iterations (nI) and the burn-in period (nb) for running the Gibbs sampler.

Similarly to the univariate case, model (6.9) can be equivalently described and implemented as a multivariate Ridge regression model, as follows:

Y=1JμT+XB+X1B1+E,
6.10
where X1 = Z1LG, G=LGLGT is the Cholesky factorization of G, B1=LG1b1MNJ×nT0IJΣT, and the specifications for the rest of parameters and prior distribution are the same as given in model (6.8). A Gibbs sampler implementation of this model is very similar to the one described before, with little modification. Indeed, a Gibbs implementation with the same multi-trait function is as follows:
LG= t(chol(G))
X1= Z1LG
ETA = list( list( X=X, model='FIXED' ), list( X=X1, model='BRR' ) )
A = Multitrait(y = Y, ETA=ETA, resCov = list( type = 'UN', S0 = SR, df0 = vR ), nIter = nI, burnIn = nb)
with the only change in the second sub-list predictor, where now the design matrix X1 and the Ridge regression model (BRR) are specified.

Example 3

To illustrate the performance in terms of the prediction power of these models and how to implement this in R software, we considered a reduced data set that consisted of 50 wheat lines grown in two environments. In each individual, two traits were measured: FLRSDS and MIXTIM. The evaluation was done with a five-fold cross-validation, where lines were evaluated in some environments with all traits but are missing for all traits in other environments. Model (6.9) was fitted and the environment effect was assumed a fixed effect.

The results are shown in Table 6.4, where the average (standard deviation) of two performance criteria is shown for each trait in each environment: average Pearson’s correlation (PC) and the mean squared error of prediction (MSE). Table 6.4 shows good correlation performance in both traits and in both environments, and better predictions were obtained in environment 2 with both criteria. The magnitude of the MSE in the first trait is mainly because the measurement scale is greater than in the second trait.

Table 6.4

Table 6.4

Average Pearson’s correlation (PC) and mean squared error of prediction (MSE) between predicted and observed values across five random partitions where lines were evaluated in some environments with all traits but are missing for all traits in (more...)

The R codes to reproduce these results (Table 6.4) are shown in Appendix 5.

6.9. Bayesian Genomic Multi-trait and Multi-environment Model (BMTME)

Model (6.9) does not take into account the possible trait–genotype–environment interaction (T × G × E), when environment information is available. An extension of this model is the one proposed by Montesinos-López et al. (2016), who added this interaction term to vary the specific trait genetic effects (gj) across environments. If the information of nT traits of J lines is collected in I environments, this model is given by

Y=1IJμT+XB+Z1b1+Z2b2+E,
6.11
where =[Y1, …, YIJ]T, X = [x1, …, xIJ]T, Z1 and Z2 are the incident lines and the incident environment–line interaction matrices, b1 = [g1, …, gJ]T, b2 = [g21, …, g2IJ]T, and E = [ϵ1, …, ϵIJ]T. Here, b2ΣT,ΣEMNIJ×nT0ΣEGΣT, and similar to model (6.2), b1ΣTMNJ×nT0GΣT and EMNIJ×nT0IIJR. The complete Bayesian specification of this model assumes independent multivariate normal distributions for the columns of B, that is, for the fixed effect of each trait a prior multivariate normal distribution is adopted, βtNpβt0Σβt,t=1,,nT; a flat prior for the intercepts, f(μ) ∝ 1; and independent inverse Wishart distributions for the covariance matrices of residuals R and for ΣT, ΣT ∼ IW(vT, ST) and R ∼ IW(vR, SR), and also an inverse Wishart distribution for ΣE, ΣE ∼ IW(vE, SE).

The full conditional distributions of μ, B, b1, b2, and R can be derived as in model (6.9). The full conditional distribution of ΣT is

fΣTfb1ΣTPb2ΣTΣEPΣTΣTJ2GL2exp12trb1TG1b1ΣT1×ΣTIJ2ΣEGnT2exp12trb2TΣE1G1b2ΣT1PΣTΣTvT+J+IJ+nT+12exp12trb1TG1b1+b2TΣE1G1b2+StΣT1,
that is, ΣTIWvT+J+IJb1TG1b1+b2TΣE1G1b2+ST.

Now, let be b2 a JnT × I matrix such that vecb2T=vecb2. Then because b2TΣT,ΣEMNnT×IJ0ΣTΣEG, vecb2TΣT,ΣEN0ΣEGΣT, and b2ΣT,ΣEMNnT×IJ0GΣTΣE, the full conditional posterior distribution of ΣE is

PΣEELSEPb2ΣEPΣEΣEJL2GΣTI2exp12trΣE1b2TG1ΣT1b2SEυE+I12×ΣEυE2exp12trSEΣE1ΣEυE+JL+I+12exp12trb2TG1ΣT1b2+SEΣE1
which means thatΣEIWυE+JLb2TG1ΣT1b2+SE.

A Gibbs sampler to explore the joint posterior distribution of parameters of model (6.11), μ, β, b1,b2, ΣT, ΣE, and R, can be implemented with the following steps:

1.

Simulate β from a multivariate normal distribution Npβ~0Σ~β, where Σ~β=Σβ1+R1XTX1 and β~0=Σ~βΣβ1β0+R1XTvecY1IJμTZ1b1Z2b2.

2.

Simulate μ from NnTμ~Σ~μ, where Σ~μ=IJ1R and μ~=Σ~μR11IJvecYXBZ1b1Z2b2.

3.

Simulate g1 = vec(b1) from NJg~1G~, where G~=ΣT1G1+R1Z1TZ11 and g~=G~R1Z1TvecY1IJμTXBZ2b2.

4.

Simulate g2 = vec(b2) from NJg~2G~2, where G~2=ΣT1ΣE1G1+R1Z2TZ21 and g~2=G~2R1Z2TvecY1IJμTXBZ1b1.

5.

Simulate ΣT from IWvT+J+IJb1TG1b1+b2TΣE1G1b2+ST.

6.

Simulate ΣE from IWυE+JLb2TG1ΣT1b2+SE.

7.

Simulate R from IWv~RS~R, where v~R=vR+IJ and S~R=ST+Y1IJμTXBZ1b1Z2b2TY1IJμTZ1b1Z2b2.

8.

Return to step 1 or terminate when chain length is adequate to meet convergence diagnostics and the required sample size is reached.

A similar Gibbs sampler is implemented in the BMTME R package, with the main difference, that this package does not allow specifying a general fixed effect design matrix X, only the corresponding to the design matrix for the environment effects, and also the intercept vector μ is ignored because it is included in the fixed environment effects. Specifically, to fit model (6.11) where the only fixed effects to be taken into account are the environment’s effects, the R code to implement this with the BMTME package is as follows:

XE = model.matrix(~Env,data=dat_F)
Z1 = model.matrix(~0+GID,data=dat_F)
Lg = t(chol(G))
Z1_a = Z1%*%Lg
Z2 = model.matrix(~0+GID:Env,data=dat_F)
G2 = kronecker(diag(dim(XE)[2])),Lg)
Z2 _a = Z2%*%G2
A = BMTME(Y = Y, X = XE, Z1 = Z1_a, Z2 = Z2_a, nIter = nI, burnIn = nb, thin = 2, bs = 50)
where Y is the matrix of response variables where each row corresponds to the measurement of nT traits in each individual, XE is a design matrix for the environment effects, Z1 is the incidence matrix of the genetics effects, Z2 is the design matrix of the genetic–environment interaction effects, nI and nb are the required number of interactions and the burn-in period, and bs is the number of blocks to use internally to sample from vec(b2).

Example 4

To illustrate how to implement this model with the BMTME R package, we considered the data in Example 2, but now the explored model includes the trait–genotype–environment interaction.

The average results of the prediction performance in terms of PC and MSE for implementing the same five-fold cross-validation used in Example 3 are shown in Table 6.5. These results show an improvement in terms of prediction performance with this model in all trait environments combinations and in both criteria (PC and MSE) to measure the prediction performance, except in trait MIXTIM and Env 2, where the MSE is slightly greater than the one obtained with model (6.9), which does not take into account the triple interaction (trait–genotype–environment).

Table 6.5

Table 6.5

Average Pearson’s correlation (PC) and mean squared error of prediction (MSE) between predicted and observed values across five random partitions where lines were evaluated in some environments with all traits but are missing for all traits in (more...)

The R code used to obtained these results is given in Appendix 5.

Appendix 1

  • The probability density function (pdf) of the scaled inverse Chi-square distribution with v degrees of freedom and scale parameter S, χ−2(v, S), is given by
    fσ2vS=S2v2Γv2σ21+v2expS2σ2.
    and the mean, mode, and variance of this distribution are given by Sv2, Sv+2, and 2S2v22v4, respectively.
  • The pdf of the gamma distribution with shape parameter s and rate parameter r:
    fSβxsr=rsxs1Γsexprx.
    The mean, mode, and variance of this distribution are s/r, (s − 1)/r, and s/r2, respectively.
  • The pdf of a beta distribution with mean μ and precision parameter ϕ (“dispersion” parameter ϕ−1) is given by
    fxμϕ=1Bμϕ1μϕxμϕ11x1μϕ1,
    where the relation with the standard parameterization of this distribution, Beta(α, β), is
    μ=αα+β,ϕ=α+β.
  • The pdf of a Laplace distribution is
    fxb=12bexpxb,b>0,x.
    The mean and variance of this distribution are 0 and 2b2.
  • A random matrix Σ of dimension p × p is distributed as inverse Wishart distribution with parameter v and S, Σ ∼ IW(v, S), if it has a density function
    fΣ=12vp2Γpv/2Sv2Σv+p+12exp12trSΣ1,
    where Γp(v/2) is the multivariate gamma function, v > 0, and Σ and S are positive defined matrices. The mean matrix of this distribution is Svp1.
  • A (p × q) random matrix Z follows the matrix normal distribution with matrix parameters M (p × q), U (p × p), and V(q × q), Z ∼ MNp, q(M, U, V), if it has density
    fZMUV=exp12trV1ZMTU1ZM2πpq/2Vp/2Uq/2.

Appendix 2: Setting Hyperparameters for the Prior Distributions of the BRR Model

The following rules are those used in Pérez and de los Campos (2014), and provide proper but weakly informative prior distributions. In general, this consists of assigning a certain proportion of the total variance of the phenotypes, to the different components of the model.

Specifically, for model (6.3), first the total variance of y is partitioned into two components: (1) the error and (2) the linear predictor:

Varyj=VarxjTβ0+σ2

Therefore, the average of the variance of the individuals, called total variance, is equal to

1nj=1nVaryj=1nj=1nVarxjTβ0+σ2=1ntrXXTσβ2+σ2=VM+Vϵ.

Then, by setting R12 as the proportion of the total variance (Vy), that is explained by markers a priori, VM=R12Vy, and replacing σβ2 in VM by its prior mode, Sβvβ+2, we have that

1ntrXXTSβvβ+2=R12Vy.

From here, once we have set a value for vβ, the scale parameter is given by

Sβ=R12Vy1ntrXXTvβ+2.

A commonly used value of the shape parameter is vβ = 5 and the value for the proportion of explained variances is R12=0.5.

Because the model only has two predictors and R12 was set as the proportion of the total variance that is explained by markers a priori, the corresponding proportion that is explained by error a priori is R22=1R12. Then, similar to what was done before, once there is a value for the shape parameter of the prior distribution of σ2, v, the value of the scale parameter is given by

S=1R12Vyv+2.

By default, v = 5 is often used.

Appendix 3: R Code Example 1

rm(list=ls())
library(BGLR)
load('dat_ls_E1.RData',verbose=TRUE)
#Phenotypic data
dat_F = dat_ls$dat_F
head(dat_F)
#Marker data
dat_M = dat_ls$dat_M
dim(dat_M)
dat_F = transform(dat_F, GID = as.character(GID))
head(dat_F,5)
#Matrix design of markers
Pos = match(dat_F$GID,row.names(dat_M))
XM = dat_M[Pos,]
XM = scale(XM)
dim(XM)
n = dim(dat_F)[1]
y = dat_F$y
#10 random partitions
K = 10
set.seed(1)
PT = replicate(K,sample(n,0.20*n))
#BRR
ETA_BRR = list(list(model='BRR',X=XM))
Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_BRR,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP[k] = mean((y[Pos_tst]-yp_ts)^2)
}
#GBLUP
dat_M = scale(dat_M)
G = tcrossprod(XM)/dim(XM)[2]
dim(G)
#Matrix design of GIDs
Z = model.matrix(~0+GID,data=dat_F,xlev = list(GID=unique(dat_F$GID)))
K_L = Z%*%G%*%t(Z)
ETA_GB = list(list(model='RKHS',K = K_L))
#Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_GB,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP_GB[k] = mean((y[Pos_tst]-yp_ts)^2)
}
#BA
ETA_BA = list(list(model='BayesA',X=XM))
#Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_BA,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP_BA[k] = mean((y[Pos_tst]-yp_ts)^2)
}
#BB
ETA_BB = list(list(model='BayesB',X=XM))
#Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_BB,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP_BB[k] = mean((y[Pos_tst]-yp_ts)^2)
}
#BC
ETA_BC = list(list(model='BayesC',X=XM))
#Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_BC,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP_BC[k] = mean((y[Pos_tst]-yp_ts)^2)
}
#BL
ETA_BL = list(list(model='BL',X=XM))
#Tab = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
for(k in 1:K)
{
Pos_tst = PT[,k]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA_BL,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab$MSEP_BL[k] = mean((y[Pos_tst]-yp_ts)^2)
}
Tab
#Mean and SD across the five partitions
apply(Tab[,-1],2,function(x)c(mean(x),sd(x)))

Appendix 4: R Code Example 2

rm(list=ls())
library(BGLR)
library(BMTME)
load('dat_ls_E2.RData',verbose=TRUE)
#Phenotypic data
dat_F = dat_ls$dat_F
head(dat_F)
dim(dat_F)
#Marker data
dat_M = dat_ls$dat_M
dim(dat_M)
dat_F = transform(dat_F, GID = as.character(GID))
head(dat_F,5)
#Matrix design for markers
Pos = match(dat_F$GID,row.names(dat_M))
XM = dat_M[Pos,]
dim(XM)
XM = scale(XM)
#Environment design matrix
XE = model.matrix(~0+Env,data=dat_F)[,-1]
head(XE)
#Environment–marker design matrix
XEM = model.matrix(~0+XM:XE)
#GID design matrix and Environment-GID design matrix
#for RKHS models
Z_L = model.matrix(~0+GID,data=dat_F,xlev = list(GID=unique(dat_F$GID)))
Z_LE = model.matrix(~0+GID:Env,data=dat_F,
xlev = list(GID=unique(dat_F$GID),Env = unique(dat_F$Env)))
#Genomic relationship matrix derived from markers
dat_M = scale(dat_M)
G = tcrossprod(dat_M)/dim(dat_M)[2]
dim(G)
#Covariance matrix for Zg
K_L = Z_L%*%G%*%t(Z_L)
#Covariance matrix for random effects ZEg
K_LE = Z_LE%*%kronecker(diag(4),G)%*%t(Z_LE)
n = dim(dat_F)[1]
y = dat_F$y
#Number of random partitions
K = 5
PT = CV.KFold(dat_F,DataSetID = 'GID', K=5, set_seed = 1)
Models = c('BRR','RKHS','BayesA','BayesB','BayesC','BL')
Tab = data.frame()
for(m in 1:6)
{
ETA1 = list(list(model=Models[m],X=XM))
ETA2 = list(list(model='FIXED',X=XE),list(model=Models[m],X=XM))
ETA3 = list(list(model='FIXED',X=XE),list(model=Models[m],X=XM),
list(model=Models[m],X=XEM))
if(Models[m]=='RKHS')
{
ETA1 = list(list(model='RKHS',K=K_L))
ETA2 = list(list(model='FIXED',X=XE),list(model='RKHS',K=K_L))
ETA3 = list(list(model='FIXED',X=XE),list(model='RKHS',K=K_L),
list(model='RKHS',K=K_LE))
}
Tab1_m = data.frame(PT = 1:K,MSEP = NA)
set.seed(1)
Tab2_m = Tab1_m
Tab3_m = Tab2_m
for(k in 1:K)
{
Pos_tst = PT$CrossValidation_list[[k]]
y_NA = y
y_NA[Pos_tst] = NA
A = BGLR(y=y_NA,ETA=ETA1,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab1_m$MSEP[k] = mean((y[Pos_tst]-yp_ts)^2)
Tab1_m$Cor[k] = cor(y[Pos_tst],yp_ts)
A = BGLR(y=y_NA,ETA=ETA2,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab2_m$MSEP[k] = mean((y[Pos_tst]-yp_ts)^2)
Tab2_m$Cor[k] = cor(y[Pos_tst],yp_ts)
A = BGLR(y=y_NA,ETA=ETA3,nIter = 1e4,burnIn = 1e3,verbose = FALSE)
yp_ts = A$yHat[Pos_tst]
Tab3_m$MSEP[k] = mean((y[Pos_tst]-yp_ts)^2)
Tab3_m$Cor[k] = cor(y[Pos_tst],yp_ts)
}
Tab = rbind(Tab,data.frame(Model=Models[m],Tab1_m,Tab2_m,Tab3_m))
}
Tab

Appendix 5

6.1.1. R Code Example 3

rm(list=ls(all=TRUE))
library(BGLR)
library(BMTME)
library(dplyr)
load('dat_ls.RData',verbose=TRUE)
dat_F = dat_ls$dat_F
head(dat_F)
Y = as.matrix(dat_F[,-(1:2)])
dat_F$Env = as.character(dat_F$DS)
G = dat_ls$G
J = dim(G)[1]
XE = matrix(model.matrix(~0+Env,data=dat_F)[,-1],nc=1)
Z = model.matrix(~0+GID,data=dat_F)
K = Z%*%G%*%t(Z)
#Partitions for a 5-FCV
PT_ls = CV.KFold(dat_FF, DataSetID='GID',K=5,set_seed = 123)
PT_ls = PT_ls$CrossValidation_list
#Predictor BGLR
ETA = list(list(X=XE,model='FIXED'),list(K=K,model='RKHS'))
#Function to summarize the performance prediction: PC_MM_f
source('PC_MM.R')#See below
Tab = data.frame()
set.seed(1)
for(p in 1:5)
{
Y_NA = Y
Pos_NA = PT_ls[[p]]
Y_NA[Pos_NA,] = NA
A = Multitrait(y = Y_NA, ETA=ETA,
resCov = list( type = 'UN', S0 = diag(2), df0 = 5 ),
nIter = 5e3, burnIn = 1e3)
PC = PC_MM_f(Y[Pos_NA,],A$yHat[Pos_NA,],Env=dat_F$Env[Pos_NA])
Tab = rbind(Tab,data.frame(PT=p,PC))
cat('PT=',p,'\n')
}
Tab_R = Tab%>%group_by(Env,Trait)%>%select(Cor,MSEP)%>%summarise(Cor_mean = mean(Cor),
Cor_sd = sd(Cor),
MSEP_mean = mean(MSEP),
MSEP_sd = sd(MSEP))
Tab_R = as.data.frame(Tab_R)
Tab_R
#Save in the same folder the following in a file with name “PC_MM.R
#Performance criteria
PC_MM_f<-function(y,yp,Env=NULL)
{
if(is.null(Env))
{
Cor = diag(cor(as.matrix(y),as.matrix(yp)))
MSEP = colMeans((y-yp)^2)
PC = data.frame(Trait = colnames(y),Cor=Cor, MSEP=MSEP)
}
else
{
PC = data.frame()
Envs = unique(Env)
nE = length(Envs)
for(e in 1:nE)
{
y_e = y[Env==Envs[e],]
yp_e = yp[Env==Envs[e],]
Cor = diag(cor(as.matrix(y_e),as.matrix(yp_e)))
MSEP = colMeans((y_e-yp_e)^2)
PC = rbind(PC,data.frame(Trait = colnames(y),Env=Envs[e],Cor=Cor, MSEP=MSEP))
}
}
PC
}

6.1.2. R Code for Example 4

rm(list=ls(all=TRUE))
library(BMTME)
library(dplyr)
load('dat_ls.RData',verbose=TRUE)
dat_F = dat_ls$dat_F
head(dat_F)
Y = as.matrix(dat_F[,-(1:2)])
dat_F$Env = as.character(dat_F$DS)
G = dat_ls$G
Lg = t(chol(G))
XE = model.matrix(~Env,data=dat_F)
Z1 = model.matrix(~0+GID,data=dat_F)
Z1_a = Z1%*%Lg
Z2 = model.matrix(~0+GID:Env,data=dat_F)
L2 = kronecker(diag(dim(XE)[2]),Lg)
Z2_a = Z2%*%L2
#Partitions for a 5-FCV
PT_ls = CV.KFold(dat_FF, DataSetID='GID',K=5,set_seed = 123)
PT_ls = PT_ls$CrossValidation_list
source('PC_MM.R')#See file R “PC_MM.R” defined in example 6.1
Tab = data.frame()
set.seed(1)
for(p in 1:5)
{
Y_NA = Y
Pos_NA = PT_ls[[p]]
Y_NA[Pos_NA,] = NA
A = BMTME(Y = Y_NA, X = XE, Z1 = Z1_a, Z2 = Z2_a,
nIter = 3e3, burnIn = 5e2, thin = 2, bs = 50)
PC = PC_MM_f(Y[Pos_NA,],A$yHat[Pos_NA,],Env=dat_F$Env[Pos_NA])
Tab = rbind(Tab,data.frame(PT=p,PC))
cat('PT=',p,'\n')
}
Tab_R = Tab%>%group_by(Env,Trait)%>%select(Cor,MSEP)%>%summarise(Cor_mean = mean(Cor),
Cor_sd = sd(Cor),
MSEP_mean = mean(MSEP),
MSEP_sd = sd(MSEP))
Tab_R = as.data.frame(Tab_R)
Tab_R

References

  • Box GEP, Tiao GC (1992) Bayesian inference in statistical analysis. Wiley, New York. [CrossRef]
  • Calus MP, Veerkamp RF (2011) Accuracy of multi-trait genomic selection using different methods. Genet Sel Evol 43(1):26. [PMC free article: PMC3146811] [PubMed: 21729282] [CrossRef]
  • Casella G, George EI (1992) Explaining the Gibbs sampler. Am Stat 46(3):167–174.
  • Christensen R, Johnson W, Branscum A, Hanson TE (2011) Bayesian ideas and data analysis: an introduction for scientists and statisticians. Chapman & Hall/CRC, Stanford, CA.
  • de los Campos G, Hickey JM, Pong-Wong R, Daetwyler HD, Calus MP (2013) Whole-genome regression and prediction methods applied to plant and animal breeding. Genetics 193(2):327–345. [PMC free article: PMC3567727] [PubMed: 22745228] [CrossRef]
  • Gelman A, Carlin JB, Stern HS, Dunson DB, Vehtari A, Rubin DB (2013) Bayesian data analysis. Chapman and Hall/CRC, Stanford, CA. [CrossRef]
  • Habier D, Tetens J, Seefried FR, Lichtner P, Thaller G (2010) The impact of genetic relationship information on genomic breeding values in German Holstein cattle. Genet Sel Evol 42(1):5. [PMC free article: PMC2838754] [PubMed: 20170500] [CrossRef]
  • Habier D, Fernando RL, Kizilkaya K, Garrick DJ (2011) Extension of the Bayesian alphabet for genomic selection. BMC Bioinformatics 12(1):186. [PMC free article: PMC3144464] [PubMed: 21605355] [CrossRef]
  • Henderson C (1975) Best linear unbiased estimation and prediction under a selection model. Biometrics 31(2):423–447. https://doi​.org/10.2307/2529430. [PubMed: 1174616] [CrossRef]
  • Henderson CR, Quaas RL (1976) Multiple trait evaluation using relative’s records. J Anim Sci 43:11–88. [CrossRef]
  • Jia Y, Jannink JL (2012) Multiple-trait genomic selection methods increase genetic value prediction accuracy. Genetics 192(4):1513–1522. [PMC free article: PMC3512156] [PubMed: 23086217] [CrossRef]
  • Jiang J, Zhang Q, Ma L, Li J, Wang Z, Liu JF (2015) Joint prediction of multiple quantitative traits using a Bayesian multivariate antedependence model. Heredity 115(1):29–36. [PMC free article: PMC4815501] [PubMed: 25873147] [CrossRef]
  • Lehermeier C, Wimmer V, Albrecht T, Auinger HJ, Gianola D, Schmid VJ, Schön CC (2013) Sensitivity to prior specification in Bayesian genome-based prediction models. Stat Appl Genet Mol Biol 12(3):375–391. [PubMed: 23629460] [CrossRef]
  • Meuwissen TH, Hayes BJ, Goddard ME (2001) Prediction of total genetic value using genome-wide dense marker maps. Genetics 157(4):1819–1829. [PMC free article: PMC1461589] [PubMed: 11290733] [CrossRef]
  • Montesinos-López OA, Montesinos-López A, Crossa J, Toledo FH, Pérez-Hernández O, Eskridge KM, Rutkoski J (2016) A genomic Bayesian multi-trait and multi-environment model. G3 6(9):2725–2744. [PMC free article: PMC5015931] [PubMed: 27342738] [CrossRef]
  • Montesinos-López OA, Montesinos-López A, Montesinos-López JC, Crossa J, Luna-Vázquez FJ, Salinas-Ruiz J (2018) A Bayesian multiple-trait and multiple-environment model using the matrix normal distribution. In: Physical methods for stimulation of plant and mushroom development. IntechOpen, Croatia, p 19.
  • Park T, Casella G (2008) The Bayesian lasso. J Am Stat Assoc 103(482):681–686. [CrossRef]
  • Pérez P, de los Campos G (2013) BGLR: a statistical package for whole genome regression and prediction. R package version 1(0.2)
  • Pérez P, de los Campos G (2014) Genome-wide regression and prediction with the BGLR statistical package. Genetics 198(2):483–495. [PMC free article: PMC4196607] [PubMed: 25009151] [CrossRef]
  • Pérez P, de los Campos G, Crossa J, Gianola D (2010) Genomic-enabled prediction based on molecular markers and pedigree using the Bayesian linear regression package in R. Plant Genome 3(2):106–116. [PMC free article: PMC3091623] [PubMed: 21566722] [CrossRef]
  • Pollak EJ, Van der Werf J, Quaas RL (1984) Selection bias and multiple trait evaluation. J Dairy Sci 67(7):1590–1595. [CrossRef]
  • Pszczola M, Veerkamp RF, De Haas Y, Wall E, Strabel T, Calus MPL (2013) Effect of predictor traits on accuracy of genomic breeding values for feed intake based on a limited cow reference population. Animal 7(11):1759–1768. [PubMed: 23915541] [CrossRef]
  • Schaeffer LR (1984) Sire and cow evaluation under multiple trait models. J Dairy Sci 67(7):1567–1580. [CrossRef]
  • VanRaden PM (2007) Genomic measures of relationship and inbreeding. Interbull Bull 7:33–36.
Copyright 2022, The Author(s)

Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.

The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.

Bookshelf ID: NBK583963DOI: 10.1007/978-3-030-89010-0_6

Views

  • PubReader
  • Print View
  • Cite this Page
  • PDF version of this page (566K)

Recent Activity

Your browsing activity is empty.

Activity recording is turned off.

Turn recording back on

See more...