Stability analysis is crucial in plant breeding to select superior genotypes that perform consistently across different environments. Several models and methods have been developed for this purpose, including Additive Main Effect and Multiplicative Interaction (AMMI), Weighted Average of Absolute Scores (WAASB), and Genotype plus Genotype-Environment (GGE) interactions in multi-environmental trials (MET) (Mishra et al. 2024; Sakata 2021; Pour-Aboughadareh et al. 2022; Danakumara et al. 2023). These analyses help breeders identify genotypes with stable performance and adaptability under varying conditions, leading to optimal yield stability and successful crop production. Utilizing these stability analysis tools, breeders can navigate the complexities of genotype-environment interactions and select genotypes that consistently excel across different locations and seasons, ensuring the development of resilient and high-performing plant varieties (SWARUP and SINGH 2014).
By combining the strengths of AMMI for assessing stability and BLUP
for prediction accuracy, breeders can effectively select genotypes that
consistently perform well across different environmental conditions.
This is crucial for developing sustainable agricultural systems and
improving food security. To estimate the stability index of genotypes in
multi-environment trials (METs), the WAASB index
(weighted average of the absolute values obtained from the singular
value decomposition of the BLUP matrix for the genotype by environment
interaction effects, generated by a linear mixed-effects model) is
calculated using the formula provided by (Olivoto et al. 2019). They suggest
that the function *waasb()*
computes the Weighted Average
of the Absolute Scores considering all possible IPCA from the Singular
Value Decomposition of the BLUPs for genotype-vs-environment interaction
effects obtained by an Linear Mixed-effect Model (Olivoto et al.
2019) , as follows:
\[ WAASB_i = \sum_{k = 1}^{p} |IPCA_{ik} \times EP_k|/ \sum_{k = 1}^{p}EP_k \] where \(WAASB_i\) is the weighted average of absolute scores of the ith genotype; \(IPCA_{ik}\) is the scores of the ith genotype in the kth IPCA; and \(EP_k\) is the explained variance of the kth PCA for \(k = 1,2,..,p\), \(p = min(g-1; e-1)\).
Interestingly our new index (rYWAASB) gives results which can be compared with WAASBY index provided by Olivoto et al. (Olivoto et al. 2019).
For working with rYWAASB package, firstly, if the metan or rYWAASB packages are not already installed, they should be installed on the system. The analysis requires the following packages to be installed:
## To extract *WAASB* index values and construct a biplot using `Y*WAASB` or Y*WAASB.
library(metan)
## For graphical displays
library(ggplot2)
library(graphics)
The codes provided below form the metan package, allow you to access the WAASB index values, rankings, and other information for genotypes (or entries) in general.
waasb_model <-
waasb(data_ge,
env = ENV,
gen = GEN,
rep = REP,
resp = everything(),
random = "gen", #Default
verbose = TRUE) #Default
# Evaluating trait GY |====================== | 50% 00:00:02 Evaluating trait HM |============================================| 100% 00:00:03
# Method: REML/BLUP
# Random effects: GEN, GEN:ENV
# Fixed effects: ENV, REP(ENV)
# Denominador DF: Satterthwaite's method
# ---------------------------------------------------------------------------
# P-values for Likelihood Ratio Test of the analyzed traits
# ---------------------------------------------------------------------------
# model GY HM
# COMPLETE NA NA
# GEN 1.11e-05 5.07e-03
# GEN:ENV 2.15e-11 2.27e-15
# ---------------------------------------------------------------------------
# All variables with significant (p < 0.05) genotype-vs-environment interaction
data <- waasb_model$GY$model
print(data)
# # A tibble: 24 × 22
# type Code Y PC1 PC2 PC3 PC4 PC5 PC6 PC7
# <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1 GEN G1 2.60 0.246 -0.0482 -0.0314 -0.0513 -0.146 -0.419 0.117
# 2 GEN G10 2.47 -0.819 -0.421 -0.128 -0.266 -0.116 0.0575 0.0480
# 3 GEN G2 2.74 0.119 0.154 -0.585 0.376 -0.0810 0.202 0.0975
# 4 GEN G3 2.96 0.0437 -0.0793 0.187 0.138 -0.175 0.155 -0.370
# 5 GEN G4 2.64 -0.243 0.393 -0.0723 0.113 -0.113 -0.279 -0.126
# 6 GEN G5 2.54 -0.256 0.206 0.193 0.145 0.365 0.0546 0.187
# 7 GEN G6 2.53 -0.0753 0.195 0.445 0.192 0.0685 0.0353 0.0180
# 8 GEN G7 2.74 0.247 0.458 -0.166 -0.565 0.172 0.103 -0.0930
# 9 GEN G8 3.00 0.404 -0.166 0.259 -0.136 -0.310 0.175 0.222
# 10 GEN G9 2.51 0.334 -0.692 -0.102 0.0537 0.335 -0.0845 -0.0991
# # ℹ 14 more rows
# # ℹ 12 more variables: PC8 <dbl>, PC9 <dbl>, WAASB <dbl>, PctResp <dbl>,
# # PctWAASB <dbl>, wRes <dbl>, wWAASB <dbl>, OrResp <dbl>, OrWAASB <dbl>,
# # OrPC1 <dbl>, WAASBY <dbl>, OrWAASBY <dbl>
The output generated by the waasb() function is very similar to that generated by the waas() function. The main difference is that the singular value decomposition is based on the BLUP for GEI effects matrix. For more information, refer to (Olivoto et al. 2019).
Several indexes have been developed to identify genotypes that exhibit both high performance and stability in plant breeding programs. One example is the kangranksum index, which was developed by Kang (Kang 1988). This index combines yield and stability ranks based on the Shukla stability index. Olivoto (Olivoto et al. 2019), on the other hand, created the WAASBY index by assigning weights to yield and stability. Our rYWAASB index can be compared to these earlier indexes, as it follows a similar computational approach. However, our index (rYWAASB) is a powerful tool, because it incorporates a trait and WAASB rankings in the process.
First, let’s examine the Y*WAASB
biplot generated by the
metan package. This will allow us to compare the results of the
rYWAASB package with the Y*WAASB
biplot. In the
Y*WAASB
or GY*WAASB
biplot proposed by (Olivoto et al.
2019) (Fig. 1), the quadrants illustrate the stability and
trait patterns (specifically, the grain yield of oat genotypes in the
data_ge dataset) as follows:
Fig. 1: Y*WAASB biplot of ‘metan’ package built-in oat data
In this section, we will utilize the built-in data maize to generate ranking scores for different genotypes, along with their corresponding plots. For further details, please refer to the ?maize documentation. It is also possible to use other datasets as long as they contain the following columns: genotype, trait, and WAASB index for genotypes. To understand how the HTML tables were created, please refer to the Rendering engine section.
Firstly, the rYWAASB package is installed if it is not already installed.
We recommend that users address (handle/overcome/substitute) any missing data in their inputs before proceeding with analyses. This is because the rank codes do not incorporate a comprehensive algorithm to handle this task.
library(rYWAASB)
data(maize)
ranki(maize)
# GEN Y WAASB rY rWAASB rY+rWAASB Ranks
# 1 Dracma 262.2230 0.8107018 5 3 8 1.0
# 2 DKC6630 284.0391 2.2006718 1 8 9 2.0
# 3 NS770 243.4864 0.3272558 10 1 11 3.0
# 4 89 MAY 70 258.8993 1.9638360 6 7 13 5.0
# 5 BOLSON 252.7882 1.1512639 8 5 13 5.0
# 6 Sy Hydro 243.7789 0.9741668 9 4 13 5.0
# 7 KSC704 234.5755 0.6564340 13 2 15 8.0
# 8 NS6010 277.7849 3.1780198 2 13 15 8.0
# 9 Sy Inove 276.2174 3.0619396 3 12 15 8.0
# 10 ZP606 255.3309 2.6157585 7 10 17 10.0
# 11 ZP600 265.8830 4.2201795 4 17 21 11.0
# 12 BK 74 217.7637 1.2910417 16 6 22 12.0
# 13 Mv Massil 228.5190 2.2487080 14 9 23 13.0
# 14 Barekat2 239.1610 3.7488510 11 15 26 14.0
# 15 KSC705 218.7118 3.2878162 15 14 29 15.0
# 16 DKC6589 234.7383 4.4766285 12 18 30 16.5
# 17 Sy Miami 212.3417 2.7648339 19 11 30 16.5
# 18 Gazda 214.8292 3.8871065 18 16 34 18.0
# 19 DKC7211 215.7097 4.7286087 17 19 36 19.0
# 20 DKC6101 191.8700 6.0110405 20 20 40 20.0
In the table above, the genotype with the lowest rank (Dracma) is considered the best due to its high grain yield and low WAASB score.
Fig.2. The first biplot of the rYWASSB package
Fig.3. The second biplot of the rYWASSB package