【GS模型】使用R包sommer进行基因组选择的GBLUP和RRBLUP分析?
简介
R包sommer内置了C++,运算速度还是比较快的,功能也很丰富,可求解各种复杂模型。语法相比于lme4包也要好懂一些。
建议查看文档:vignette("v1.sommer.quick.start")

混合线性模型关键在于协方差结构的建立,有以下几类:
- 复合对称(Compound Symmetry,CS),所有方差相等,所有协方差也相等,对应于单变量方法。但是对于不同尺度的变量是无意义的.
- 方差组分(Variance Components),每个方差都不相同,并且全部协方差等于0。如果变量完全独立,并且彼此测量尺度不同,才是有意义的模式。
- 非结构化(Unstructured),没有模式,每个方差和协方差完全不同,彼此间没有关系,对应于多变量方法。协方差结构有很多种,只有在特定的统计条件下才有意义。
调用模型并不难,难的是在理解的基础上如何随心所欲地应用。
GS示例代码
- 预处理
library(sommer)
data(DT_wheat)
DT <- DT_wheat
GT <- GT_wheat
dim(GT)
GT[1:10,1:10]
colnames(DT) <- paste0("X",1:ncol(DT))
DT <- as.data.frame(DT)
DT$id <- as.factor(rownames(DT))
rownames(GT) <- rownames(DT)
# check NA
which(is.na(GT))
which(is.na(DT))
set.seed(12345)
y.trn <- DT
#制造1/5的缺失值,作为验证集
vv <- sample(rownames(DT),round(nrow(DT)/5))
y.trn[vv,"X1"] <- NA
y.trn[1:5,1:5]
- GBLUP
#######-----------GBLUP--------------------------------------
# GBLUP pedigree-based approach
K <- A.mat(GT) # additive relationship matrix
K[1:5,1:5]
colnames(K) <- rownames(K) <- rownames(DT)
#test first trait X1
system.time(
ans <- mmer(X1~1,
random=~vs(id,Gu=K),
rcov=~units,
data=y.trn,verbose = FALSE) # kinship based
)
ans$U$`u:id`$X1 <- as.data.frame(ans$U$`u:id`$X1)
rownames(ans$U$`u:id`$X1) <- gsub("id","",rownames(ans$U$`u:id`$X1))
cor(ans$U$`u:id`$X1[vv,],DT[vv,"X1"], use="complete")

- RRBLUP
#######-----------rrBLUP--------------------------------------
system.time(
ans2 <- mmer(X1~1,
random=~vs(list(GT)),
rcov=~units,
data=y.trn,verbose = FALSE) # kinship based
)
u <- GT %*% as.matrix(ans2$U$`u:GT`$X1) # BLUPs for individuals
rownames(u) <- rownames(GT)
cor(u[vv,],DT[vv,"X1"]) # same correlation

两者结果相差不大(如果去掉随机种子,循环运行的结果相差还是很大的),运算时间相差比较大。
Ref: 协方差矩阵,协方差结构
【GS模型】使用R包sommer进行基因组选择的GBLUP和RRBLUP分析?的更多相关文章
- 【百奥云GS专栏】全基因组选择之工具篇
目录 1. 免费开源包/库 1.1 R包 1.2 Python库 2. 成熟软件 3. WEB/GUI工具 前面我们已经介绍了基因组选择的各类模型,今天主要来了解一下做GS有哪些可用的软件和工具.基因 ...
- 【GS文献】植物全基因组选择育种技术原理与研究进展
目录 1. 优势杂交育种预测 2. GS育种原理与模型算法 岭回归和LASSO回归 贝叶斯方法 GBLUP和RRBLUP 偏最小二乘法 支持向量机/支持向量回归 其他方法 3. 模型预测能力验证 4. ...
- 【百奥云GS专栏】全基因组选择之模型篇
目录 1. 前言 2. BLUP方法 ABLUP GBLUP ssGBLUP RRBLUP 3. 贝叶斯方法 BayesA BayesB BayesC/Cπ/Dπ Bayesian Lasso 4. ...
- 【GS模型】全基因组选择之rrBLUP
目录 1. 理论 2. 实操 2.1 rrBLUP包简介 2.2 实操 3. 补充说明 关于模型 关于交叉验证 参考资料 1. 理论 rrBLUP是基因组选择最常用的模型之一,也是间接法模型的代表.回 ...
- 【GS文献】全基因组选择模型研究进展及展望
目录 1. GS概况 2. GS模型 1)直接法 GBLUP 直接法的模型改进 ①单随机效应 ②多随机效应 2)间接法 间接法模型 基于间接法的模型改进 3. GS模型比较 模型比较结论 4.问题及展 ...
- 【GS文献】植物育种中基因组选择的方法、模型及展望
目录 1. GS/GP在植物育种中的角色 2. GP模型应用 3. GP模型的准确性 4. 植物育种的GS展望 5. 小结 Genomic SelectioninPlant Breeding: Met ...
- 【GS文献】基因组选择在植物分子育种应用的最新综述(2020)
目录 1. 简介 2. BLUP类模型 3. Bayesian类模型 4. 机器学习 5. GWAS辅助的GS 6. 杂交育种 7. 多性状 8. 长期选择 9. 预测准确性评估 10. GS到植物育 ...
- GWAS与GS模型介绍与比较
目录 1.GWAS模型 1.1卡方检验 1.2 相关性系数的t检验 1.3 一般线性模型GLM 1.4 混合线性模型MLM 1.5 压缩混合线性模型CMLM 1.6 SUPER 1.7 FarmCPU ...
- 【GS文献】从家畜到植物,通过基因组选择提高遗传增益
目录 说明 1.前言 2.植物GS瓶颈 3.提高GS预测的准确性 4.GS与现代育种技术结合 5.GS开源育种网络 说明 Enhancing Genetic Gain through Genomic ...
随机推荐
- [软工顶级理解组] Beta阶段团队贡献分评分
贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...
- [软软软]技术博客-Commitizen优化git commit
工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) np ...
- 零基础入门Linux有什么好的学习方法吗?(超详细)
本节旨在介绍对于初学者如何学习 Linux 的建议,在这里不具体分析Linux的学习节点只分析对于零基础的伙伴的学习方法.那么如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Li ...
- repo学习总结
转载:https://blog.csdn.net/salmon_zhang/article/details/79180075 1. repo简介 repo是Google开发的用于管理Android版本 ...
- Python import cStringIO ImportError: No module named 'cStringIO'
From Python 3.0 changelog; The StringIO and cStringIO modules are gone. Instead, import the io modul ...
- Ubuntu Python2 和 Python3 共存 切换
例如 你写了代码 创建一个文件 在终端 vim test.py 然后写入代码 print "hello world" 接着运行代码 python test.py 会输出 hello ...
- SpringCloud微服务实战——搭建企业级开发框架(十二):OpenFeign+Ribbon实现负载均衡
Ribbon是Netflix下的负载均衡项目,它主要实现中间层应用程序的负载均衡.为Ribbon配置服务提供者地址列表后,Ribbon就会基于某种负载均衡算法,自动帮助服务调用者去请求.Ribbo ...
- OAuth 2.0 的探险之旅
前言 OAuth 2.0 全称是 Open Authorization 2.0, 是用于授权(authorization)的行业标准协议. OAuth 2.0 专注于客户端开发人员的简单性,同时为 W ...
- uni-app使用wx-canvas实现微信小程序上显示地图map和坐标geo
源码 <template> <view class="echart-box"> <canvas class="ec-canvas" ...
- k8s入坑之路(13)kubernetes重要资源(namespace隔离 resources资源管理 label)
Namespace --- 集群的共享与隔离 语言中namespace概念 namespace核心作用隔离 以上是隔离的代码.namespace隔离的是: 1.资源对象的隔离:Service.Depl ...