混合线性模型是把因变量分解成固定效应值和随机效应值的组合。其一般形式为:

y 是因变量,β是固定效应,u 是随机效应,X 和 Z 为对应的设计矩阵,ε是残差。由于β是固定值,所以并无方差。如果把基因型效应看成固定效应,做一下LRT这就是GWAS。如果把基因型效应看成随机效应,此公式为GS。
GS分为直接法和间接法:
直接法,利用群体标记信息构建群体遗传关系 G 矩阵,通过使用混合线性模型估计不同组分的方差进行个体 GEBV 的估计。
间接法,通过使用贝叶斯先验的思想和方法估计每个标记的效应进行 GEBV 的估计。
直接法和间接法的等效性:

直接法估计$\widehat$,间接法估计标记效应之和m$\widehat$。当K=M`M且标记效应g服从独立正态分布时,两种方法估计的育种值是一样的$\widehat$=m$\widehat$,我的理解是没有局部上位没有搭载效应。
y=u+A + AA + e 表型等于截距相+加性相+上位性相。如何利用R语言的sommer和BGLR实现上述模型。基础数据的格式如下:


(1)直接法:
A + AA 模型
# 首先进行工作目录的设置,加载需要的R包
setwd("D:/XX/XX/XX")
library(sommer,BGLR)
# 加载基因型数据和表型数据
plink --bfile /platform/handejun/zhangcl/1376/17000 --recodeA --out /platform/handejun/zhangcl/1376/17000test
cat /platform/handejun/zhangcl/1376/17000test.raw | cut -d" " -f1,7- | sed 's/_[A-Z]//g' | sed 's/NA/-2/g' > /platform/handejun/zhangcl/1376/17000genotype.csv
Makers<-as.matrix(read.csv("17000genotype.csv",header = T,sep=" "))
Makers1<-Makers[,-1]
Makers2=apply(Makers1,2,as.numeric)
Genotype=Makers2-1
Pheno <- as.matrix(read.csv(file ="Trait3.csv", header=T))
Pheno <- as.data.frame(Pheno)
Pheno$id <- as.factor(rownames(Pheno))
Genotype<- as.data.frame(Genotype)
rownames(Genotype) <- rownames(Pheno)
set.seed(123)
y.train <- Pheno
SL <- sample(rownames(Pheno),round(nrow(Pheno)/5))
y.train[SL,"SL18NYW"] <- NA
y.train[1:5,1:5]
# 加行模型
A <- A.mat(Genotype)
A[1:5,1:5]
colnames(A) <- rownames(A) <- rownames(Pheno)
AA <- E.mat(Genotype)
colnames(AA) <- rownames(AA) <- rownames(Pheno)
ans <- mmer(SL18NYW~1, random=~vs(id,Gu=A),rcov=~units,data=y.train,verbose = FALSE))

ans2 <- mmer(SL18NYW~1, random=~ vs(id,Guu=AA),data=y.train,verbose = FALSE)) #上位性模型

