mgidi: Multitrait Genotype-Ideotype Distance Index

Description Usage Arguments Value Author(s) References Examples

View source: R/mgidi.R

Description

[Stable]

Computes the multi-trait genotype-ideotype distance index, MGIDI, (Olivoto and Nardino, 2020), used to select genotypes in plant breeding programs based on multiple traits.The MGIDI index is computed as follows: \loadmathjax \mjsdeqnMGIDI_i = \sqrt\sum\limits_j = 1^f(F_ij - F_j)^2

where \mjseqnMGIDI_i is the multi-trait genotype-ideotype distance index for the ith genotype; \mjseqnF_ij is the score of the ith genotype in the jth factor (i = 1, 2, ..., g; j = 1, 2, ..., f), being g and f the number of genotypes and factors, respectively, and \mjseqnF_j is the jth score of the ideotype. The genotype with the lowest MGIDI is then closer to the ideotype and therefore should presents desired values for all the analyzed traits.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
mgidi(
  .data,
  use_data = "blup",
  SI = 15,
  mineval = 1,
  ideotype = NULL,
  weights = NULL,
  use = "complete.obs",
  verbose = TRUE
)

Arguments

.data

An object fitted with the function gafem(), gamem() or a two-way table with BLUPs for genotypes in each trait (genotypes in rows and traits in columns). In the last case, row names must contain the genotypes names.

use_data

Define which data to use if .data is an object of class gamem. Defaults to "blup" (the BLUPs for genotypes). Use "pheno" to use phenotypic means instead BLUPs for computing the index.

SI

An integer (0-100). The selection intensity in percentage of the total number of genotypes.

mineval

The minimum value so that an eigenvector is retained in the factor analysis.

ideotype

A vector of length nvar where nvar is the number of variables used to plan the ideotype. Use 'h' to indicate the traits in which higher values are desired or 'l' to indicate the variables in which lower values are desired. For example, ideotype = c("h, h, h, h, l") will consider that the ideotype has higher values for the first four traits and lower values for the last trait. If .data is a model fitted with the functions gafem() or gamem(), the order of the traits will be the declared in the argument resp in those functions.

weights

Optional weights to assign for each trait in the selection process. It must be a numeric vector of length equal to the number of traits in .data. By default (NULL) a numeric vector of weights equal to 1 is used, i.e., all traits have the same weight in the selection process. It is suggested weights ranging from 0 to 1. The weights will then shrink the ideotype vector toward 0. This is useful, for example, to prioritize grain yield rather than a plant-related trait in the selection process.

use

The method for computing covariances in the presence of missing values. Defaults to complete.obs, i.e., missing values are handled by casewise deletion.

verbose

If verbose = TRUE (Default) then some results are shown in the console.

Value

An object of class mgidi with the following items:

Author(s)

Tiago Olivoto tiagoolivoto@gmail.com

References

Olivoto, T., and Nardino, M. (2020). MGIDI: toward an effective multivariate selection in biological experiments. Bioinformatics. doi: 10.1093/bioinformatics/btaa981

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
library(metan)

# simulate a data set
# 10 genotypes
# 5 replications
# 4 traits
df <-
 g_simula(ngen = 10,
          nrep = 5,
          nvars = 4,
          gen_eff = 35,
          seed = c(1, 2, 3, 4))

# run a mixed-effect model (genotype as random effect)
mod <-
  gamem(df,
        gen = GEN,
        rep = REP,
        resp = everything())
# BLUPs for genotypes
gmd(mod, "blupg")

# Compute the MGIDI index
# Default options (all traits with positive desired gains)
# Equal weights for all traits
mgidi <- mgidi(mod)
gmd(mgidi, "MGIDI")

# Higher weight for traits V1 and V4
# This will increase the probability of selecting H7 and H9
# 30% selection pressure
mgidi2 <-
   mgidi(mod,
         weights = c(1, .2, .2, 1),
         SI = 30)
gmd(mgidi2, "MGIDI")

# plot the contribution of each factor on the MGIDI index
p1 <- plot(mgidi, type = "contribution")
p2 <- plot(mgidi2, type = "contribution")
p1 + p2

# Positive desired gains for V1, V2 and V3
# Negative desired gains for V4
mgidi3 <-
  mgidi(mod,
       ideotype = c("h, h, h, l"))

metan documentation built on Nov. 10, 2021, 9:11 a.m.