前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用R语言计算遗传力

使用R语言计算遗传力

作者头像
生信小王子
发布2020-08-10 17:12:14
3.2K0
发布2020-08-10 17:12:14
举报
文章被收录于专栏:生信小王子生信小王子

遗传力 (Heritability) 又称遗传率,指遗传方差在总方差(表型方差)中所占的比值。遗传力表明某一性状受到遗传控制的程度。它介于0到1之间,当遗传力为1时,表型变异完全由遗传因素决定,当遗传力为0时表型变异由环境因素决定。

我们可以使用R包" lme4 "来计算遗传力。

代码语言:javascript
复制
## 安装R包
install.packages("lme4")
## 加载R包
library("lme4")

根据表型数据的收集方式,我们可以将数据分为多点无重复数据、多点有重复数据和多年多点有重复数据。每种类型数据计算遗传力的方法有细微差别,需要分情况对待。

多点无重复数据

多点无重复数据输入文件格式如下:

每列代表样本名,种植地点和表型值。保存为制表符分隔的txt文件。

代码语言:javascript
复制
## 导入表型数据
phe <- read.table("phe.txt", header =T, sep="\t")
trait <- phe$Trait
line <- phe$Line
loc <- phe$Loc
TRAIT <- as.numeric(trait)
LINE <- as.factor(line)
LOC <- as.factor(loc)
## 建模
blup <- lmer(TRAIT~(1|LINE)+(1|LOC))
summary(blup)

我们可以看到遗传方差Vg为0.1970,残差方差Ve为0.2866,环境个数L为2。

遗传力计算公式为:

代码语言:javascript
复制
## 计算遗传力
h <- 0.197/(0.197+0.2866/2)
h

结果为0.578901。

多点有重复数据

多点有重复数据输入文件格式如下:

每列代表样本名,重复,种植地点和表型值。保存为制表符分隔的txt文件。

代码语言:javascript
复制
## 防止报错,需先执行这一步
options(lmerControl=list(check.nobs.vs.rankZ ="warning",check.nobs.vs.nlev = "warning",check.nobs.vs.nRE= "warning",check.nlev.gtreq.5 = "warning",check.nlev.gtr.1= "warning"))
## 导入表型数据
phe <- read.table("phe.txt", header =T, sep="\t")
trait <- phe$Trait
line <- phe$Line
loc <- phe$Loc
rep <- phe$Rep
TRAIT <- as.numeric(trait)
LINE <- as.factor(line)
LOC <- as.factor(loc)
REP <- as.factor(rep)
## 建模
blup <- lmer(TRAIT~(1|LINE)+(1|LOC)+(1|REP%in%LOC)+(1|LINE:LOC))
summary(blup)

遗传方差Vg为0.196543,品种与环境互作方差Vge为0.001014,残差方差Ve为0.286031,重复数R为2,环境个数L为2。

遗传力计算公式为:

代码语言:javascript
复制
## 计算遗传力
h <-0.196543/(0.196543+0.001014/2+0.286031/(2*2))
h

结果为0.7318463。

多年多点有重复数据

多年多点有重复数据输入文件格式如下:

每列代表样本名,重复,年份,种植地点和表型值。保存为制表符分隔的txt文件。

代码语言:javascript
复制
## 防止报错,需先执行这一步
options(lmerControl=list(check.nobs.vs.rankZ ="warning",check.nobs.vs.nlev = "warning",check.nobs.vs.nRE= "warning",check.nlev.gtreq.5 = "warning",check.nlev.gtr.1= "warning"))
## 导入表型数据
phe <- read.table("phe.txt", header =T, sep="\t")
trait <- phe$Trait
line <- phe$Line
loc <- phe$Loc
rep <- phe$Rep
year <- phe$Year
TRAIT <- as.numeric(trait)
LINE <- as.factor(line)
LOC <- as.factor(loc)
REP <- as.factor(rep)
YEAR <- as.factor(year)
## 建模
blup <-lmer(TRAIT~(1|LINE)+(1|LOC)+(1|YEAR)+(1|REP%in%LOC:YEAR)+(1|LINE:LOC)+(1|LINE:YEAR))
summary(blup)

遗传方差Vg为0.19187,品种与环境互作方差Vge为0.00949,品种与年份互作方差Vgy为0.01023,残差方差Ve为0.25782,重复数R为2,年份数Y为2,环境个数L为2。遗传力计算公式为:

代码语言:javascript
复制
## 计算遗传力
h <- 0.19187/(0.19187+0.00949/2+0.01023/2+0.286031/(2*2*2))
h

结果为0.8079285。

参考资料:

https://www.jianshu.com/p/668e3be27530

https://cloud.tencent.com/developer/article/1445670

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

本文分享自 生信小王子 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档