Partitioning genetic trends in mean and variance

Gregor Gorjanc, Jana Obsteter, Thiago de Paula Oliveira

2022-11-13

In breeding programmes, the observed genetic change is a sum of the contributions of different groups of individuals. Here we show how to partition the genetic mean and variance of breeding values using AlphaPart.

In addition to the contribution of paths to changes in genetic mean, breeding programmes should also consider analysing changes in genetic variance to understand the drivers of genetic change in a population fully. Managing the change in genetic mean and variance in breeding programmes is essential to ensure long-term genetic gain.

Loading packages

#=======================================================================
# Packges
#=======================================================================
#devtools::install_github("AlphaGenes/AlphaPart")
library(AlphaPart)
library(dplyr)
library(ggplot2)
library(ggridges)

Loading datafile

#=======================================================================
# Reading and organizing Scenario 1
#=======================================================================
data <-  readRDS("./../inst/extdata/AlphaPartCattleSim.rds") %>%
  dplyr::mutate(across(generation:mother, as.numeric)) %>%
  dplyr::rename(status = type) %>%
  dplyr::mutate(across(c("sex", "status"), as.factor)) %>%
  dplyr::mutate(path = interaction(sex,status, sep = ":")) %>%
  arrange(generation, ind) %>%
  select(ind, father, mother, sex, status, path, generation, tbv, pheno) %>%
  dplyr::mutate(generation = generation - 20) %>%
  droplevels()

# Data head
head(data) %>%
  knitr::kable(digits = 2)
ind father mother sex status path generation tbv pheno
1 0 0 M Non-Selected M:Non-Selected -20 -0.27 -0.48
2 0 0 F Non-Selected F:Non-Selected -20 0.75 0.89
3 0 0 M Non-Selected M:Non-Selected -20 -0.10 -0.04
4 0 0 F Non-Selected F:Non-Selected -20 -0.53 -1.44
5 0 0 M Non-Selected M:Non-Selected -20 0.70 0.88
6 0 0 F Non-Selected F:Non-Selected -20 0.25 -0.63
# Data size
dim(data)
## [1] 42000     9