Enviromic genomic selection for West African cereals (R package)
# enviGS
Enviromic genomic selection for drought tolerance in cereals (maize, rice,
sorghum), calibrated for West African breeding programs.
enviGS takes a breeder from raw marker files to ranked, environment-aware
selection decisions. It wraps the trusted R mixed-model stack (sommer, BGLR,
rrBLUP) rather than reimplementing it, and reports genotype-by-environment
structure through **envirotype-annotated which-won-where biplots** — the
classical GGE idiom breeders already read, with the anonymous environment axis
replaced by interpretable stress envirotypes.
## Install
```r
# install.packages("devtools")
devtools::install_github("K-nie/enviGS")
```
Core prediction needs `rrBLUP`; reaction-norm and CV0 use `sommer`; VCF input
uses `vcfR`. These are `Suggests` — install the ones you need.
## The pipeline
| Stage | Function |
|-------|----------|
| Ingest genotypes (VCF / HapMap / PLINK / DArTseq / dosage) | `read_geno()` |
| Ingest phenotypes, environments, manifest | `read_pheno()`, `read_env()`, `read_manifest()` |
| Assemble & reconcile IDs | `build_project()` |
| Quality control | `qc_geno()` |
| Impute | `impute_geno()` |
| Relationship matrices (additive / dominance / enviromic) | `kinship()`, `dominance_kernel()`, `enviromic_kernel()` |
| Fit prediction model | `fit_gs()` |
| Cross-validate (CV1 / CV2 / CV0) | `cross_validate()` |
| Predict breeding values | `predict()` |
| Multi-trait selection index | `selection_index()` |
| Envirotype which-won-where | `gge_envirotype()`, `plot_biplot()` |
| Optimise the testing network | `optimize_network()` |
| Reproducible report | `build_report()` |
## Quick start
```r
library(enviGS)
proj QC -> kinship -> genomic prediction ->
envirotype biplot -> multi-trait index -> reproducible report.
- Next: in-silico hybrid construction from parents + cross table; reaction-norm
G x E via sommer; retrospective validation on DTMA/STMA maize.
- Later: a locally-deployable Shiny front end over this same engine (no genotype …