「母体效应」
是母亲对后代生活环境的影响(泌乳能力,母性等),是母亲带来的效应。
俗话说:“父挫,挫一个;母挫,挫一窝”。因为,母体效应很强大,母亲的影响力要甩父亲几条街。从遗传的角度,想要改良家族的基因和性格,男性找一个好的女性做配偶,比女性找一个好的男性做配偶,影响更大。
想到这里,忽然感觉结婚时,给女方大量的彩礼,也可以理解了。
女性对后代影响大,不只是从遗传的角度,还有环境的作用,还有交互的作用,更别提还有线粒体遗传呢!
我一直对个体永久环境效应
,母体遗传效应
,母体永久环境效应
分不清楚,构建模型时,总是知其然而不知其所以然,这种一瓶子不满半瓶子咣当
的状态显然不是一个段子说得好
的数据分析师应该具备的素养。
「所以,」
我就写篇博客介绍一下,顺便理清一下自己的思路。毕竟,你如果不炫富,别人怎么知道你有钱呢?你如果带着口罩,别人怎么知道你帅呢?你如果不看时间,别人怎么知道你有劳力士呢?你如果不写出来,别人怎么知道你有两把刷子呢?(高考作文排比句系列)
「所以,」
我就写篇博客,证明一下自己是一个有劳力士会讲段子帅气的数据分析师。
第一种:母体遗传效应,这里母体遗传效应也分为两种,一种是考虑母体遗传效应和个体加性效应协方差,一种是不考虑,不过默认都是考虑的。
第二种:母体环境效应,就是不考虑情缘关系矩阵,作为随机因子的那种模型。
「模型书写:」
这里:
「方差协方差结构:」
这里A为亲缘关系矩阵,可以看出加性和母体存在协方差,而且加性和母体都要考虑A矩阵。
「示例数据+示例代码+示例结果」
数据和代码:
# 载入软件包
# devtools::install_github("dengfei2013/learnasreml")
library(learnasreml)
# asreml属于商业版软件,需要购买,购买请联系:http://www.vsnc.com.cn/
library(asreml)
data("animalmodel.dat")
data("animalmodel.ped")
head(animalmodel.dat)
head(animalmodel.ped)
# m1 单性状动物模型
dat = animalmodel.dat
ped = animalmodel.ped
dat[dat==0] = NA
str(dat)
# 计算亲缘关系逆矩阵
# m1 单性状动物模型 + 母体遗传效应 + 加性效应和母体遗传效应互作
m1 = asreml(BWT ~ SEX + BYEAR, random= ~ str(~vm(ANIMAL,ainv) + vm(MOTHER,ainv), ~us(2):vm(ANIMAL,ainv)),
residual = ~ idv(units),data = dat)
summary(m1)$varcomp
vpredict(m1,h2 ~ V1/(V1+V2+V3+V4))
结果:
> summary(m1)$varcomp
component std.error z.ratio bound %ch
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_1:1 1.66469827 0.9069349 1.8355213 P 0.0
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_2:1 0.01602755 0.4968458 0.0322586 P 0.8
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_2:2 1.35818328 0.4194201 3.2382408 P 0.0
units!units 2.19186868 0.6632651 3.3046644 P 0.0
units!R 1.00000000 NA NA F 0.0
> vpredict(m1,h2 ~ V1/(V1+V2+V3+V4))
Estimate SE
h2 0.3182506 0.1714373
从结果可以看出:
由此计算的遗传力为0.318
「模型书写:」
这里:
「方差协方差结构:」
这里A为亲缘关系矩阵,可以看出,不考虑加性和母体协方差,而且加性和母体都要考虑A矩阵。
「示例数据+示例代码+示例结果」
这里,将us
变为diag
,即不考虑协方差。
m2.1 = asreml(BWT ~ SEX + BYEAR, random= ~ str(~vm(ANIMAL,ainv) + vm(MOTHER,ainv), ~diag(2):vm(ANIMAL,ainv)),
residual = ~ idv(units),data = dat)
summary(m2.1)$varcomp
vpredict(m2.1,h2 ~ V1/(V1+V2+V3))
结果:
> summary(m2.1)$varcomp
component std.error z.ratio bound %ch
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!diag(2)_1 1.689122 0.5291361 3.192225 P 0.0
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!diag(2)_2 1.366709 0.3151848 4.336215 P 0.1
units!units 2.174346 0.3932961 5.528523 P 0.0
units!R 1.000000 NA NA F 0.0
> vpredict(m2.1,h2 ~ V1/(V1+V2+V3))
Estimate SE
h2 0.3229569 0.09621066
从结果可以看出:
由此计算的遗传力为0.32
「另外一种写法:」可以和加性方差组分写法类似,直接用vm
函数,这种写法比较简单,但是没有考虑加性和母体遗传效应的协方差。
# m2 单性状动物模型 + 母体遗传效应
m2.2 = asreml(BWT ~ SEX + BYEAR, random= ~ vm(ANIMAL,ainv) + vm(MOTHER,ainv),
residual = ~ idv(units),data = dat)
summary(m2.2)$varcomp
vpredict(m2.2,h2 ~ V1/(V1+V2+V3))
> summary(m2.2)$varcomp
component std.error z.ratio bound %ch
vm(ANIMAL, ainv) 1.689188 0.5292161 3.191868 P 0
vm(MOTHER, ainv) 1.366777 0.3153196 4.334578 P 0
units!units 2.174264 0.3932864 5.528448 P 0
units!R 1.000000 NA NA F 0
> vpredict(m2.2,h2 ~ V1/(V1+V2+V3))
Estimate SE
h2 0.3229663 0.09621819
可以看到结果完全一样。
「模型书写:」
这里:
「方差协方差结构:」
这里A为亲缘关系矩阵,可以看出,不考虑加性和母体协方差,而且加性和考虑A矩阵,母体不考虑A矩阵。
这里的母体环境效应,不考虑亲缘关系矩阵,将其作为随机因子即可。
# m3 单性状动物模型 + 母体环境效应
m3 = asreml(BWT ~ SEX + BYEAR, random= ~ vm(ANIMAL,ainv) + MOTHER,
residual = ~ idv(units),data = dat)
summary(m3)$varcomp
vpredict(m3,h2 ~ V1/(V1+V2+V3))
「结果:」
> summary(m3)$varcomp
component std.error z.ratio bound %ch
MOTHER 1.104038 0.2398000 4.603997 P 0
vm(ANIMAL, ainv) 2.277785 0.4970861 4.582274 P 0
units!units 1.656900 0.3734446 4.436803 P 0
units!R 1.000000 NA NA F 0
> vpredict(m3,h2 ~ V1/(V1+V2+V3))
Estimate SE
h2 0.2191107 0.04364284
「模型书写:」
这里:
「方差协方差结构:」
# m4 单性状动物模型 + 母体遗传效应 + 加性效应和母体遗传效应互作 + 母体环境效应
m4 = asreml(BWT ~ SEX + BYEAR, random= ~ str(~vm(ANIMAL,ainv) + vm(MOTHER,ainv), ~us(2):vm(ANIMAL,ainv)) + MOTHER,
residual = ~ idv(units),data = dat)
summary(m4)$varcomp
vpredict(m4,h2 ~ V1/(V1+V2+V3+V4+V5))
「结果:」
> summary(m4)$varcomp
component std.error z.ratio bound %ch
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_1:1 1.688055506 0.9091111 1.85681974 P 0.0
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_2:1 0.006385884 0.4954503 0.01288905 P 4.0
vm(ANIMAL, ainv)+vm(MOTHER, ainv)!us(2)_2:2 1.057027088 0.4405431 2.39937292 P 0.1
MOTHER 0.497693182 0.3694028 1.34729116 P 0.6
units!units 2.157268745 0.6628453 3.25455845 P 0.0
units!R 1.000000000 NA NA F 0.0
> vpredict(m4,h2 ~ V1/(V1+V2+V3+V4+V5))
Estimate SE
h2 0.3122311 0.1665252
GBLUP或者SSGBLUP(一步法)的好处是,传统动物模型能用的模型,基因组选择都可以使用。一些性状在分析时,需要考虑重复力模型,母体遗传,母体环境等模型,分析结果会更准确。
很多老师和同学和我交流,询问如何计算母体效应,如何计算母体遗传效应,如何计算母体环境效应,如何计算个体加性效应和母体遗传效应的交互等等,这次这篇博客一次性讲清楚了。
还有同学告诉我, 我之前的培训教程中,计算的母体效应,其实是母体环境效应(仅仅将母体作为随机因子,没有考虑系谱亲缘关系矩阵),我说我知道了,回头我写篇博客解释汇总一下。我看了一下聊天记录:2020年5月10号,这位同学,久等了。
❝张勤老师 2020年暑期summer school 统计遗传学暑期学校教材,中国农业大学 Lawrence R. Schaeffer, Linear Models and Animal Breeding, 2010 A R Gilmour, ASReml User Guide Release 4.1 Structural Specification, 2015 D G Butler, ASReml-R Reference Manual Version, 2018❞