PopVar (version 1.3.1)

mppop.predict: Predict genetic variance and genetic correlations in multi-parent populations using a deterministic equation.

Description

Predicts the genotypic mean, genetic variance, and usefulness criterion (superior progeny mean) in a set of multi-parent populations using marker effects and a genetic map. If more than two traits are specified, the function will also return predictions of the genetic correlation in the population and the correlated response to selection.

Usage

mppop.predict(
  G.in,
  y.in,
  map.in,
  crossing.table,
  parents,
  n.parents = 4,
  tail.p = 0.1,
  self.gen = 10,
  DH = FALSE,
  models = c("rrBLUP", "BayesA", "BayesB", "BayesC", "BL", "BRR"),
  n.core = 1,
  ...
)

mppop_predict2( M, y.in, marker.effects, map.in, crossing.table, parents, n.parents = 4, tail.p = 0.1, self.gen = 10, DH = FALSE, models = c("rrBLUP", "BayesA", "BayesB", "BayesC", "BL", "BRR"), n.core = 1, ... )

Value

A data.frame containing predictions of \(\mu\), \(V_G\), and \(\mu_{sp}\) for each trait for each potential multi-parent cross. When multiple traits are provided, the correlated responses and correlation between all pairs of traits is also returned.

Arguments

G.in

See G.in in pop.predict.

y.in

See y.in in pop.predict.

map.in

See map.in in pop.predict.

crossing.table

A data.frame with 2 columns (for bi-parental crosses) or 4 columns (for four-way crosses), each of which contains the names of parents to use in a potential cross. Rows contain individual crosses. See Details.

parents

See parents in pop.predict.

n.parents

Integer number of parents per cross. May be 2 or 4. If crossing.table is passed, this argument is ignored.

tail.p

See tail.p in pop.predict.

self.gen

The number of selfing generations in the potential cross. Can be an integer or Inf for recombinant inbreds. Note: self.gen = 1 corresponds to an F2 population.

DH

Indicator if doubled-haploids are to be induced after the number of selfing generations indicated by self.gen. For example, if self.gen = 0 and DH = TRUE, then doubled-haploids are assumed to be induced using gametes from F1 plants.

models

See models in pop.predict.

n.core

Number of cores for parallelization. Parallelization is supported only on a Linux or Mac OS operating system; if working on a Windows system, the function is executed on a single core.

...

Additional arguments to pass depending on the choice of model.

M

A Matrix of marker genotypes of dimensions nLine x nMarker, coded as -1, 0, and 1.

marker.effects

A data frame of marker effects. The first column should include the marker name and subsequent columns should include the marker effects. Supercedes y.in if passed.

Details

Predictions are based on the deterministic equations specified by Allier et al. (2019).

In the case of four-way crosses (i.e. 4 parents), the function assumes that the first two parents are mated, producing a \(F_1\) offspring; then, the next two parents are mated, producing another \(F_1\) offspring. The two \(F_1\) offspring are then mated and inbreeding or doubled haploid induction (if specified) proceeds from there. For example, say cross i uses parents P1, P2, P3, and P4. P1 and P2 are first mated, producing O1; then, P3 and P4 are mated, producing O2; then, O1 and O2 are mated, producing a segregating family.

The mppop.predict function takes similarly formatted arguments as the pop.predict function in the PopVar package. For the sake of simplicity, we also include the mppop_predict2 function, which takes arguments in a format more consistent with other genomewide prediction packages/functions.

If you select a model other than "rrBLUP", you must specify the following additional arguments:

  • nIter: See pop.predict.

  • burnIn: See pop.predict.

References

Allier, A., L. Moreau, A. Charcosset, S. Teyssèdre, and C. Lehermeier, 2019 Usefulness Criterion and Post-selection Parental Contributions in Multi-parental Crosses: Application to Polygenic Trait Introgression. G3 (Bethesda) 9: 1469–1479. https://doi.org/https://doi.org/10.1534/g3.119.400129

Examples

Run this code
# \donttest{

# Load data
data("think_barley")

# Vector with 8 parents
parents <- sample(y.in_ex$Entry, 8)

# Create a crossing table with four parents per cross
cross_tab <- as.data.frame(t(combn(x = parents, m = 4)))
names(cross_tab) <- c("parent1", "parent2", "parent3", "parent4")

out <- mppop_predict2(M = G.in_ex_mat, y.in = y.in_ex, map.in = map.in_ex, 
                      crossing.table = cross_tab, models = "rrBLUP")

# }




Run the code above in your browser using DataLab