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

如何在Sommer的GWAS模型中纳入显性效应矩阵?

在Sommer中纳入显性效应矩阵进行GWAS的方法

函数选择优先用GWAS()

GWAS()是mmer()的GWAS专用封装,会直接输出SNP关联分析结果(P值、效应量等),比mmer()更高效,优先选GWAS()即可。

核心修改步骤

要纳入显性效应,需同时准备显性遗传关系矩阵(用于拟合随机效应)和对应显性编码的标记矩阵(用于计算SNP显性效应,按需选择),再调整GWAS()参数:

  1. 生成显性遗传关系矩阵
    用D.mat()基于等位基因剂量标记矩阵(0/1/2编码,比如你原代码里的Xz)生成显性关系矩阵:
D <- D.mat(Xz)  # Xz为加性编码标记矩阵:0=纯合参考,1=杂合,2=纯合替代
  1. 调整随机效应项
    在原有加性随机项基础上,添加显性效应的随机项,建议给效应命名避免混淆:
# 同时拟合加性+显性遗传效应
random_formula <- ~vs(id, Gu=Aa, name="add") + vs(id, Gd=D, name="dom")
  • Gu=Aa对应你原代码中的加性关系矩阵
  • Gd=D对应刚生成的显性关系矩阵
  • name参数自定义效应名称,后续指定gTerm更清晰
  1. 调整M和gTerm参数
    根据你要计算的SNP效应类型调整:
  • 若计算加性SNP效应:保持M=Xz,gTerm="add"(对应加性效应项)
  • 若计算显性SNP效应:先生成显性编码标记矩阵,再指定M=X_dominant,gTerm="dom"

生成显性编码标记矩阵示例:

# 转换为显性编码:杂合子=1,纯合子=0
X_dominant <- ifelse(Xz == 1, 1, 0)

完整代码示例

示例1:拟合加性+显性效应,计算加性SNP关联

# 生成显性关系矩阵
D <- D.mat(Xz)

# 运行GWAS
mix2 <- GWAS(R2~1,
             random=~vs(id, Gu=Aa, name="add") + vs(id, Gd=D, name="dom"),
             rcov=~units,
             data=phenorm,
             n.PC = 3,
             M= Xz, 
             gTerm = "add")

示例2:拟合加性+显性效应,计算显性SNP关联

# 生成显性关系矩阵和显性编码标记矩阵
D <- D.mat(Xz)
X_dominant <- ifelse(Xz == 1, 1, 0)

# 运行GWAS
mix2_dom <- GWAS(R2~1,
                 random=~vs(id, Gu=Aa, name="add") + vs(id, Gd=D, name="dom"),
                 rcov=~units,
                 data=phenorm,
                 n.PC = 3,
                 M= X_dominant, 
                 gTerm = "dom")

注意事项

  • 显性效应模型复杂度更高,若出现收敛问题,可尝试添加maxIter=1000(增大迭代次数)或tolParInv=1e-6(调整收敛阈值)参数
  • 确保标记矩阵编码正确:加性编码为0/1/2,显性编码为0/1(仅杂合子为1)
  • GWAS中通常保留加性效应作为基础模型,仅需显性效应时可去掉加性vs项

内容的提问来源于stack exchange,提问作者Toin C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:55:14