学习新方法|ASReml软件批量计算BLUP值

BLUP值是育种中最重要的概念,在实际的计算中我们往往需要计算多个性状的Blup值,为了提高效率,之前我们介绍过如何批量分析多个性状的遗传力,今天小编再给大家介绍一下如何使用ASReml 软件批量计算多个性状的育种值,并保存到本地。

模拟数据

使用asreml包中的harvey数据,另外模拟7个数据,合并一起,构成10个性状的数据,用于分析演示。

library(asreml)data("harvey")dat = harveyhead(dat)dd = as.data.frame(matrix(rnorm(7*65,10,5),65))names(dd) = paste0("y",4:10)head(dd)dat1 = cbind(dat,dd)head(dat1)

这里,先对y1性状进行分析,将Line和ageOfDam作为固定因子,将Sire作为随机因子,进行模型拟合。模型跑通后,再写程序进行批量处理:

m1 = asreml(y1 ~ Line + ageOfDam,            random = ~ Sire,             residual = ~ idv(units),            data=dat1)summary(m1)$varcompvpredict(m1,h2~4*V1/(V1+V2))

结果中保存了方差组分和遗传力,以及育种值BLUP。

library(asreml)data("harvey")dat = harveyhead(dat)set.seed(123)dd = as.data.frame(matrix(rnorm(7*65,10,5),65))names(dd) = paste0("y",4:10)dat1 = cbind(dat,dd)head(dat1)m1 = asreml(y1 ~ Line + ageOfDam,            random = ~ Sire,             residual = ~ idv(units),            na.action = na.method(x = "include",y = "include"),            data=dat1)summary(m1)$varcompvpredict(m1,h2~4*V1/(V1+V2))blup = as.data.frame(coef(m1)$random)blup$ID = rownames(blup)blup = blup[,c(2,1)]head(blup)nn = paste0("y",1:10)nnstatus1 = NULLh2 = NULLvc = NULLblup_re = NULLfor(i in seq_along(nn)){  # i = 1  mod = asreml(formula(paste0(nn[i],"~ Line + ageOfDam")),                random = ~ Sire,                residual = ~ idv(units),               data=dat1)  vc[[i]] = summary(mod)$varcomp  status1[[i]] = mod$converge  h2[[i]] = vpredict(mod,h2 ~ 4*V1/(V1+V2))  blup = as.data.frame(coef(m1)$random)  blup$ID = rownames(blup)  blup = blup[,c(2,1)]  blup_re[[i]] = blup}names(status1) = nnnames(h2) = nnnames(vc) = nnnames(blup_re) = nnre1 = do.call("rbind",h2)re2 = do.call("rbind",status1)re3 = do.call("rbind",vc)re3h2_result = cbind(re1,Converged = re2)library(openxlsx)write.xlsx(h2_result,"h2_result.xlsx")write.xlsx(blup_re,"blup_result.xlsx")

结果文件

* 遗传力结果:h2_result.xsx

* 育种值结果:blup_result.xsx

上面的代码,也可以修改为对个体动物模型进行多个性状的批量处理。

ASReml-R近期提供免费试用活动,感兴趣的老师私聊小编了解更多软件试用详情。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月1日
下一篇 2022年8月1日

相关推荐