You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用R语言metan包对多性状开展GGE分析?

多性状GGE分析的可行方案

首先明确报错原因:你使用的gge函数是为单性状设计的,参数逻辑为gge(data, env, gen, resp, ...),其中resp仅支持传入单个响应变量。你直接将PROT、GY、HD依次放在参数位置时,函数会把后续的GY、HD识别为centering这类参数的输入值,但GY并非预定义的参数选项,因此触发“object 'GY' not found”错误。

以下是两种可行的解决方法:

方法1:单性状分别建模,批量绘图

这是最直接且通用的方案——因为GGE分析本身就是针对单个性状的基因型-环境互作展开的。对每个性状单独构建GGE模型,再将结果图拼接展示:

# 为每个性状单独构建GGE模型
gge_gy <- gge(x, LOC, CODE, GY, svp = "symmetrical")
gge_prot <- gge(x, LOC, CODE, PROT, svp = "symmetrical")
gge_hd <- gge(x, LOC, CODE, HD, svp = "symmetrical")

# 安装并加载gridExtra包用于拼接图形
install.packages("gridExtra")
library(gridExtra)

# 给每个图添加标题并拼接展示
p_gy <- plot(gge_gy, type = 3, max_overlaps = 5) + ggtitle("籽粒产量 (GY)")
p_prot <- plot(gge_prot, type = 3, max_overlaps = 5) + ggtitle("蛋白质含量 (PROT)")
p_hd <- plot(gge_hd, type = 3, max_overlaps = 5) + ggtitle("抽穗期 (HD)")

grid.arrange(p_gy, p_prot, p_hd, ncol = 2)

方法2:多变量GGE联合分析

如果需要整合多性状信息做联合GGE分析,可借助多变量扩展工具。先对多性状做标准化(消除量纲差异),再用mvGGE包实现多变量GGE模型:

# 安装并加载必要的包
install.packages(c("dplyr", "tidyr"))
devtools::install_github("wolfemd/mvGGE") # 从GitHub安装mvGGE包
library(dplyr)
library(tidyr)
library(mvGGE)

# 计算每个基因型-环境组合的性状均值(消除重复试验的影响)
data_mean <- x %>%
  group_by(LOC, CODE) %>%
  summarise(
    GY = mean(GY),
    PROT = mean(PROT),
    HD = mean(HD),
    .groups = "drop"
  )

# 对性状做标准化处理(关键步骤,避免量纲大的性状主导分析)
data_scaled <- data_mean %>%
  mutate(across(c(GY, PROT, HD), scale))

# 构建多变量GGE模型
mv_gge <- mvGGE(
  data = data_scaled,
  env = "LOC",
  gen = "CODE",
  resp = c("GY", "PROT", "HD")
)

# 绘制多性状联合GGE图
plot(mv_gge)

注意:多变量GGE的结果解读需结合各性状权重,标准化步骤不可省略,否则量纲差异会干扰分析结果。

内容的提问来源于stack exchange,提问作者Luca Bonfiglioli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:25:26