【GS专栏】9-全基因组选择实战之sommer

知识/政策规划

2021-03-22


  1. sommer简介

  R包 sommer于2016年最先发表在《PLOS ONE》[1]杂志上,至今引用量近200。虽不及rrBLUP应用广泛,但有自己独特的优势,主要表现如下:

  • 除了估计单个方差组分,还可求解多变量混合模型,对加性、显性和上位效应进行分析;

  • 可自定义方差-协方差结构,估计方差组分算法有AI、EM和EMMA;

  • 解决维数灾难问题(p>>n);

  • 内置C++,运算速度较快;

  • 用法相比于经典混合线性模型工具,如nlme、lme4, 要略微好懂一些;

  • 更新频率非常快。

  最后一点是优势也是劣势,更新快一直在维护完善,但同时带来稳定性问题。特别要注意不同版本用法的区别,尤其是R-version3和R-version4的不同。

  官方原文介绍:

  The sommer package was developed to provide R users a powerful and reliable multivariate mixed model solver. The package is focused in problems of the type p > n (more effects to estimate than observations) and its core algorithm is coded in C++ using the Armadillo library. This package allows the user to fit mixed models with the advantage of specifying the variance-covariance structure for the random effects, and specify heterogeneous variances, and obtain other parameters such as BLUPs, BLUEs, residuals, fitted values, variances for fixed and random effects, etc.

 

  建议安装加载后,直接查看文档进行学习:vignette("v1.sommer.quick.start")

 

 

  混合线性模型关键在于协方差结构的建立,协方差结构有很多种,只有在特定的统计条件下才有意义。常见以下几类结构:

  • 复合对称(Compound Symmetry,CS):所有方差和协方差相等,对应于单变量方法,但对于不同尺度的变量是无意义的。

  • 方差组分(Variance Components):每项方差都不同,且全部协方差等于0。若变量完全独立,且彼此测量尺度不同,才是有意义的模式。

  • 非结构化(Unstructured):没有模式,每项方差和协方差完全不同,彼此间没有关系,对应于多变量方法。

  这里不对结构复杂的混合模型进行测试,只分享如何用sommer来实现GBLUP和RRBLUP两种常见的模型。

 

  2. 利用sommer进行GS分析

  • 数据预处理

  if (!require(sommer)) install.packages('sommer')

  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)

  )

  u <- GT %*% as.matrix(ans2$U$`u:GT`$X1) # BLUPs for individuals

  rownames(u) <- rownames(GT)

  cor(u[vv,],DT[vv,"X1"])

 

  •结果说明

  从上面的结果可初步看出,GBLUP和RRBLUP模型的预测能力是相当的。GBLUP采用直接法,运行速度快很多,而RRBLUP是间接法,需要估计每个标记的效应,再进行累加,因此运算时间较久。

 


相关推荐

百奥繁育 | 良种选育的信息管理系统

百奥繁育 | 良种选育的信息管理系统

09-06

2023

江西种业也刮智能育种风

8月25日,江西省水稻种质资源创新交流及智能育种技术研讨会在江西省农科院顺利召开。江西农业大学、江西师范大学、广东省农科院、江西省农科院、中国水稻所江西早稻中心、南昌市农科院、赣州市农科所有关专家代表以及省内种企代表共约40人参与了本次交流会议。

08-28

2023

百奥繁育 | 育种田间的信息流水线

有人说,植物育种的过程就像工厂流水线。挑选的种质即原材料,根据市场需求进行设计与加工,送入田间生产线后,一代代优中选优,还得经过严格的产量、品质、抗性测试,过五关斩六将,最终拿到审定编号,成为可以推广的成熟产品。 虽然流程相似,但育种工作远不及工厂生产那样标准。田间环境气候复杂、真实性状判断困难、水肥条件难以统一……种种困难下,选育良种成了概率事件,育种家们都有种“尽人事听天命”的无奈感。

08-22

2023

百奥云 & 火山引擎 | 为现代农业的“芯片”增添新科技

育种4.0时代,比拼的是科技创新,关键是通过数字化、信息化、智能化让育种过程缩短周期、提升效率、降低风险,而这也是长沙百奥云数据科技有限公司(百奥云)的创业初衷。

08-22

2023

百奥云新品发布 | 高质量基因组极速拼接服务

1. 利用PopGenomics快速对基因组实现高质量组装 基因组组装是将全基因组测序的小片段(reads长度100 bp-100 kb)通过算法拼接成尽量长的片段(contig 和scaffold,长度几十kb 到Mb 不等)或者整条染色体的过程。获得包含基因组全序列的参考基因组是对动植物进行基因组学研究和育种利用的前提[1]。 由于植物基因组具有非常丰富的多样性,参考已发表的少数物种组装新的物种,有时却无法达到理想的组装效果。测序技术发展提供了短序列测序、单分子测序、光学图谱、Hi-C 图谱等多种测序技术及其组合的组装方案,到目前为止,已经有上千个植物基因组被组装(图1)。然而,如何以最低成本快速获得满足需求的高质量基因组,仍然是科研人员和育种数据分析人员普遍面临的一个问题。

08-22

2023

夏风又绿田间草,除草劳动正当时

7月26日,顶着炎炎夏日 在公司CSO桂進老师的带领下 举行了一场别开生面的劳动体验。

08-04

2023