Skip to contents

A case-specific wrapper for calculating broad / narrow sense heritability.

  • The lowercase prefix h2_ refers to the wrapper or subfunctions e.g. h2_Oakey() for calculating narrow sense heritability

  • The upper case prefix H2_ refers to the wrapper or subfunctions e.g. H2_Delta() for calculating broad sense heritability

Usage

h2(model,
   target,
   method = c("Cullis", "Oakey", "Piepho", "Delta", "Standard"),
   options = NULL,
   marginal = TRUE,
   stratification = NULL,
   source = list(),
   vc = NULL,
   ...)

H2(model,
   target,
   method = c("Cullis", "Oakey", "Piepho", "Delta", "Standard"),
   options = NULL,
   marginal = TRUE,
   stratification = NULL,
   source = list(),
   vc = NULL,
   ...
   )

Arguments

model

Model object of class lmerMod/merMod or asreml

target

The name of the random effect for which heritability is to be calculated.

method

Character vector of name of method to calculate heritability. See details.

options

NULL by default, for internal checking of model object before calculations

marginal

Logical; if TRUE, construct marginal (strata-averaged) mappings so that each genotype receives a single averaged effect per term. If FALSE, mappings will only consider the main genotype effect and ignore the iteracting terms.

stratification

A one-row data frame defining the stratum in which genotype effects should be evaluated. The columns must correspond to model terms that interact with target.

source

The known genomic relationship matrix (GRM) used in model fitted using asreml::vm(), provided as a named list. When not provided (an empty list by default), the GRM variable used for vm calling will be searched in the global environment. Ignored for broad-sense and lmerMod methods

vc

A list of precomputed variance components. Should be in the same structure as the output of var_comp()

...

Additional arguments that specify heritability calculation when interactions with genotype effects are modelled

Value

A named numeric vector, length matching number of methods supplied

Details

The following methods are currently implemented for narrow-sense heritability h2(method = "XX"):

  • "Cullis": $$H^2_{Cullis} = 1 - \frac{PEV^{BLUP}_{\overline\Delta ..}}{2\sigma^2_g}$$

  • "Oakey": $$H^2_{Oakey} = \frac{\sum_{i = n_z+1}^{n_g} \lambda_i}{\sum_{n_g}^{\lambda_i\neq 0}}$$

  • "Piepho": $$H^2_{Piepho} = \frac{\sigma^2_g}{\sigma^2_g + \overline{PEV_{BLUE_g}} / 2}$$

  • "Delta": $$H^2_{\Delta ij} = 1 - \frac{PEV^{BLUP}_{\overline\Delta ij}}{\operatorname{Var}(g_i - g_j)}$$

  • "Standard": $$H^2_{Standard} = \frac{\operatorname{Var}(g_i - g_j)}{\operatorname{Var}(y_i.. - y_j..)}$$

  • "Reliability": $$\bar{r}^2 = \frac{1}{n_g}\sum_{i=1}^{n_g} \left(1 - \frac{var(\hat{g}^{BLUP}_i)}{var(g_i)}\right)$$

"Reliability" is not part of the default method set but can be requested explicitly. Use h2_Reliability_by_genotype() / H2_Reliability_by_genotype() to obtain the per-genotype values \(r^2_i\) instead of their mean.

The following methods are currently implemented for broad-sense heritability H2(method = "XX"):

  • "Cullis": $$H^2_{Cullis} = 1 - \frac{PEV^{BLUP}_{\overline\Delta ..}}{2\sigma^2_g}$$

  • "Oakey": $$H^2_{Oakey} = \frac{\sum_{i = n_z+1}^{n_g} \lambda_i}{\sum_{n_g}^{\lambda_i\neq 0}}$$

  • "Piepho": $$H^2_{Piepho} = \frac{\sigma^2_g}{\sigma^2_g + \overline{PEV_{BLUE_g}} / 2}$$

  • "Delta": $$H^2_{\Delta ij} = 1 - \frac{PEV^{BLUP}_{\overline\Delta ij}}{2\sigma^2_g}$$

  • "Standard": $$H^2_{Standard} = \frac{\sigma^2_g}{\sigma^2_g + \frac{1}{n_g}\sum_{n_g}^{i=1} \sigma^2_p / n_{gi}}$$

  • "Reliability": $$\bar{r}^2 = \frac{1}{n_g}\sum_{i=1}^{n_g} \left(1 - \frac{var(\hat{g}^{BLUP}_i)}{var(g_i)}\right)$$

For further details of a specific method - take a look at helpfile for each subfunctions ?H2_Cullis

References

  • Cullis, B. R., Smith, A. B., & Coombes, N. E. (2006). On the design of early generation variety trials with correlated data. Journal of Agricultural, Biological, and Environmental Statistics, 11(4), 381–393. https://doi.org/10.1198/108571106X154443

  • Oakey, H., Verbyla, A., Pitchford, W., Cullis, B., & Kuchel, H. (2006). Joint modeling of additive and non-additive genetic line effects in single field trials. Theoretical and Applied Genetics, 113(5), 809–819. https://doi.org/10.1007/s00122-006-0333-z

  • Schmidt, P., Hartung, J., Rath, J., & Piepho, H.-P. (2019). Estimating Broad-Sense Heritability with Unbalanced Data from Agricultural Cultivar Trials. Crop Science, 59(2), 525–536. https://doi.org/10.2135/cropsci2018.06.0376

  • Piepho, H.-P., & Möhring, J. (2007). Computing Heritability and Selection Response From Unbalanced Plant Breeding Trials. Genetics, 177(3), 1881–1888. https://doi.org/10.1534/genetics.107.074229

  • Falconer, D. S., & Mackay, T. F. C. (1996). Introduction to quantitative genetics (4th ed.). Longman.

Examples

# lme4 model
lettuce_subset <- lettuce_phenotypes |> subset(loc == "L2")
lettuce_lme4 <- lme4::lmer(y ~ rep + (1 | gen), data = lettuce_subset)
H2(lettuce_lme4, target = "gen", method = c("Standard", "Delta"))
#>  Standard     Delta 
#> 0.8294971 0.8294971 

# asreml model (Requires license)
if (FALSE) { # \dontrun{
lettuce_asreml <- asreml::asreml(fixed = y ~ rep,
                                 random = ~ gen,
                                 data = lettuce_subset,
                                 trace = FALSE
                                 )

H2(lettuce_asreml, target = "gen", method = c("Standard", "Delta"))
} # }