前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GWAS计算BLUE值2--LMM计算BLUE值

GWAS计算BLUE值2--LMM计算BLUE值

作者头像
邓飞
发布2021-12-20 14:12:39
1.1K0
发布2021-12-20 14:12:39
举报

GWAS计算BLUE值2--LMM计算BLUE值 #2021.12.12

本节,介绍如何使用R语言的lme4包拟合混合线性模型,计算最佳线性无偏估计(blue)

1. 试验数据

❝数据来源:Isik F , Holland J , Maltecca C . Genetic Data Analysis for Plant and Animal Breeding. Springer International Publishing, 2017.❞

该数据有62个重组自交系(RIL),在4个地点进行试验,随机区组,每个地点2个重复,每个小区种植20株,随机选择5株的表型平均值作为观测值。

2. 读取数据及转换为因子

代码语言:javascript
复制
library(lme4)
library(emmeans)
library(data.table)
library(tidyverse)
library(asreml)

dat = fread("MaizeRILs.csv",data.table = F)
head(dat)
str(dat)

col = 1:5
dat[,col] = dat %>% select(all_of(col)) %>% map_df(as.factor)
str(dat)

之前,我批量转化为因子,都是用for循环,这次用的是map函数,可读性更强。

3. 使用lme4包进行blue值计算

这里,使用lme4包进行blue值计算,然后使用emmeans包进行预测均值(predict means)的计算,这样就可以将predict means作为表型值进行GWAS分析了。

代码语言:javascript
复制
# lme4
m1 = lmer(height ~ RIL + (1|location:RIL) + (1|location) + (1|location:rep), data=dat)
summary(m1)
re1 = emmeans(m1,"RIL") %>% as.data.frame()
head(re1)

这里,

  • RIL作为固定因子
  • 地点和品种互作,作为随机因子
  • 地点内区组,作为随机因子

然后通过emmeans计算RIL的预测均值。

「注意,lme4直接计算的固定因子(RIL)的效应值(BLUE值),不是我们最终的目的,因为它是效应值,有正有负,我们需要用预测均值将其变为与表型数据尺度一样的水平。」

emmeans这一列就是预测均值了。

4. 使用asreml包进行blue值计算

代码语言:javascript
复制
library(asreml)
m2 = asreml(height ~ RIL, random = ~ location + location:RIL + location:rep,data=dat)
summary(m2)$varcomp
re2 = predict(m2,classify = "RIL")$pval %>% as.data.frame()
head(re2)

这里,用predict进行预测均值的计算,predicted.value这一列就是blue值,两者结果一致。

5. 你以为这样就结束了?

95%的同学,在计算GWAS分析表型值计算时,都是用上面的模型计算出blue值,然后直接进行计算,其实还有更好的模型。

比如设置每个地点的残差异质,然后和残差同质的模型进行LRT检验,选择最优的模型。

比如设置每个地点与品种的互作的方差异质,比较方差同质的模型,选择最优的模型。

下节见。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GWAS计算BLUE值2--LMM计算BLUE值 #2021.12.12
    • 1. 试验数据
      • 2. 读取数据及转换为因子
        • 3. 使用lme4包进行blue值计算
          • 4. 使用asreml包进行blue值计算
            • 5. 你以为这样就结束了?
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档