Derives per-SNP additive effect estimates from genome-wide genomic estimated breeding values (GEBV) without re-fitting a marker model. This implements Step 2 of the Tong et al. (2025) haplotype stacking pipeline:
$$\hat{\alpha} = \frac{M^\top G^{-1} \hat{g}}{2 \sum_t p_t(1-p_t)}$$
where \(M\) is the centred genotype matrix, \(G\) is the VanRaden GRM, \(\hat{g}\) are the GEBV, and \(p_t\) are allele frequencies.
Arguments
- geno_matrix
Numeric matrix (individuals x SNPs), values 0/1/2/NA. Row names must match names of
gebv.- gebv
Named numeric vector of GEBV, one per individual. Names must match
rownames(geno_matrix).- G
Optional pre-computed VanRaden GRM (n x n). If
NULL(default), computed internally viacompute_haplotype_grm()-style logic. Supply your own if you used a bended or tuned G in the GBLUP.
Value
Named numeric vector of length p (SNPs), one effect per SNP.
Names match colnames(geno_matrix).
Details
This approach is preferred over direct marker-effect estimation when GEBV are already available from a GBLUP run (e.g. from ASReml-R, sommer, or rrBLUP). It avoids refitting the marker model and produces marker effects on the same scale as the original GEBV.
Missing genotype values are mean-imputed per column before computation.
References
Tong J et al. (2025). Haplotype stacking to improve stability of stripe rust resistance in wheat. Theoretical and Applied Genetics 138:267. doi:10.1007/s00122-025-05045-0
VanRaden PM (2008). Efficient methods to compute genomic predictions. Journal of Dairy Science 91(11):4414-4423. doi:10.3168/jds.2007-0980