单性状重复力模型

本次主要是演示如何使用DMU分析单性状重复力模型.

重复力模型和动物模型的区别:
不是所有的性状都可以分析重复力模型, 首先重复力模型是动物模型的拓展, 它适合一个个体多个观测值的情况.

  • 比如猪的产仔数, 一个母猪有多个胎次
  • 比如鸡的产蛋, 不同时间段, 鸡都有产蛋量
  • 牛的产奶量, 不同的测定日, 产奶量不同
  • 猪的饲料消耗, 也是重复测量的数据

只有这样的数据才可以将永久环境效应剖分出来.

重复力是遗传力的上限:
教科书上这样说, 这句话怎么理解呢?
首先, 我们认为
P=G+EP = G + EP=G+E
遗传力为
h2=Vg/(Vg+Ve)h^2 = Vg/(Vg+Ve)h2=Vg/(Vg+Ve)
这里的Vg如果有重复测量的数据, 可以剖分为可以遗传的部分, 和不可以遗传的部分(永久环境效应), 那么遗传力的计算公式为:
h2=VgVg+Vpe+Veh^2 = \frac{Vg}{Vg+Vpe+Ve}h2=Vg+Vpe+VeVg​
重复力的计算公式为:
hpe2=Vg+VpeVg+Vpe+Veh_{pe}^2 = \frac{Vg+Vpe}{Vg+Vpe+Ve}hpe2​=Vg+Vpe+VeVg+Vpe​
当Vpe为0时, 重复力=遗传力, 当Vpe>0时, 重复力>遗传力, 所以说重复力是遗传力的上限!

数据使用learnasreml包中的数据

learnasreml是我编写的辅助学习asreml的R包, 里面有相关的数据和代码, 这里我们用其中的repeatmodel.dat和repeatmodel.ped的数据.

如果没有软件包, 首先安装:

setwd("d:/dmu-test/")
library(devtools)
# install_github("dengfei2013/learnasreml")
library(learnasreml)
data("repeatmodel.dat")
data("repeatmodel.ped")dat = repeatmodel.dat
ped = repeatmodel.pedsummary(dat)
summary(ped)

看一下数据:

> summary(dat)ANIMAL         BYEAR      AGE          YEAR         LAYDATE     1      :   5   1000   : 109   2:308   1004   :  79   Min.   : 0.00  3      :   5   1001   :  98   3:322   1005   :  78   1st Qu.:20.00  9      :   5   999    :  86   4:339   1003   :  69   Median :24.00  17     :   5   1002   :  85   5:315   1006   :  64   Mean   :23.54  42     :   5   987    :  70   6:323   1002   :  60   3rd Qu.:27.00  50     :   5   989    :  66           988    :  54   Max.   :41.00  (Other):1577   (Other):1093           (Other):1203
> summary(ped)ID           FATHER           MOTHER      Min.   :   1   Min.   :   0.0   Min.   :   0.0  1st Qu.: 328   1st Qu.:   0.0   1st Qu.: 135.0  Median : 655   Median :   0.0   Median : 538.0  Mean   : 655   Mean   : 261.5   Mean   : 547.4  3rd Qu.: 982   3rd Qu.: 458.0   3rd Qu.: 932.0  Max.   :1309   Max.   :1304.0   Max.   :1306.0

数据介绍:

  • 有因子4个: 分别是 ANIMAL BYEAR AGE YEAR
  • 有变量1个: LAYDATE
  • 缺失值用0表示
  • 系谱中有三列数据, 无出生时间一列, 缺失值为0

需要做的处理

  • 系谱增加第四列出生时间, 因为数据都是数字, 没有字符串, 不需要转化
  • 在保存数据时, 去掉行头
  • 编辑DIR文件

使用R语言清洗数据, 并保存数据到D盘dmu-test

dat = repeatmodel.dat
ped = repeatmodel.pedsummary(dat)
summary(ped)dmuped = ped
dmuped$Birth = 2018head(dat)
library(data.table)
# write.table(dat,"animal-model.txt",row.names = F,col.names = F)
fwrite(dat,"repeat-model.txt",sep = " ",col.names = F)
fwrite(dmuped,"repeat-ped.txt",sep = " ",col.names = F)

编写DIR文件

想要分析的模型:
观测值: LAYDATE (第四列)
固定因子: 第二列, 第三列, 第四列
随机因子: ID, ide(ID)

所以这里编写DIR
第一部分, 是注释, 这里所写的东西会输出到结果文件, 基本上就是模型的解释, 这部分没有强制要求, 可以省略

$COMMENT
Estimate variance components for BWT
Model
y: LAYDATE
fixed: BYEAR + AGE + YEAR
random: ANIMAL +ide(ANIMAL)

第二部分是分析方法, 默认是AI

$ANALYSE 1 1 0 0

第三部分是定义因子数和变量书, 以及文件位置:

$DATA  ASCII (4,1,0) d:/dmu-test/repeat-model.txt

第四部分, 定义变量名, 也是为了方便结果输出, 相当于数据的行头名

$VARIABLE
ANIMAL BYEAR AGE YEAR
BWT

第五部分, 有6行, 定义模型
整体来说是:
第一行: 单性状 # 1
第二行: 无吸收 # 0
第三行: 主要定义y变量, 固定因子, 随机因子

  • 分析的是第一个变量 # 1
  • 无权重考虑 # 0
  • 共五个因子(固定+随机, 固定写前面, 随机写后面) # 5
  • 第一个固定因子是第二列因子 #2 #BYEAR
  • 第二个固定一致是第三列因子 #3 #AGE
  • 第三个固定因子是第四列 #4 #YEAR
  • 第四个随机因子是第一列 #1 #ANIMAL
  • 第五个随机因子是第一列 #1 #ANIMAL
  • 所以, 5个因子, 三个固定因子:2,3,4, 两个随机因子:1,1 #1 0 5 2 3 4 1 1

第四行: 有两个随机因子, 他们的关系是独立的, 所以是2 1 2

1
0
1 0 5 2 3 4 1 1
2 1 2
0
0

第六部分: 指定系谱

$VAR_STR 1 PED 2 ASCII d:/dmu-test/repeat-ped.txt

注意, 如果想要输出BLUP值, 定义:$DMUAI

$DMUAI
10
1D-7
1D-6
1

完整DIR文件, 放入model.txt中, 然后重命名为: Uni_repeatmodel.DIR

$COMMENT
Estimate variance components for BWT
Model
y: LAYDATE
fixed: BYEAR + AGE + YEAR
random: ANIMAL +ide(ANIMAL)$ANALYSE 1 1 0 0
$DATA  ASCII (4,1,0) d:/dmu-test/repeat-model.txt
$VARIABLE
ANIMAL BYEAR AGE YEAR
BWT
$MODEL
1
0
1 0 5 2 3 4 1 1
2 1 2
0
0
$VAR_STR 1 PED 2 ASCII d:/dmu-test/repeat-ped.txt$DMUAI
10
1D-7
1D-6
1

执行DIR文件

这里运行的run_dmuai.bat, 将DMU安装路径下的文件run_dmuai.bat拷贝到d:/dmu-test文件夹, 在终端cmd界面键入:

run_dmuai.bat Uni_repeatmodel

执行结果:

D:\dmu-test>run_dmuai.bat Uni_repeatmodelD:\dmu-test>Echo OFF
Starting DMU using Uni_repeatmodel.DIR as directive file

查看结果

在文件*lst中有估算的方差组分, 结果如下:

                             SUMMARY OF MINIMIZATION PROCESSEval Criterion    !!Delta!!   !!Gradient!!                   Parameters---- ---------     ---------  ------------ |------------------------------------------1   12629.2     0.8574        4.330      |    1.8100        1.8898        1.8705    2   8234.59      1.370        6.822      |    2.9917        3.3812        3.2879    3   6444.28      1.776        8.529      |    4.2397        5.4642        5.1761    4   5857.47      1.566        6.869      |    4.9013        7.4662        6.8832    5   5736.36     0.6798        2.497      |    4.9407        8.3737        7.6324    6   5727.01     0.7387E-01   0.2311      |    4.9325        8.4634        7.7233    7   5726.91     0.1399E-02   0.1596E-02  |    4.9341        8.4621        7.7245    8   5726.91     0.7706E-04   0.5119E-04  |    4.9340        8.4622        7.7245    9   5726.91     0.4564E-05   0.2610E-05  |    4.9340        8.4622        7.7245    10   5726.91     0.2695E-06   0.1558E-06  |    4.9340        8.4622        7.72

可以看到模型收敛

方差组分为:

                   Estimated (co)-variance components----------------------------------Parameter vector for L at convergence          Asymptotic SE based on AI-information matrix   No          Parameter             Asymp. S.E.1           4.93404               1.76364    2           8.46217               1.63818    3           7.72445              0.329943

遗传力需要手动计算, 这里还没有找到解决方案.

对比asreml的结果:

代码:

library(asreml)head(dat)
dat[dat$LAYDATE==0,]$LAYDATE=NA
ainv = asreml.Ainverse(ped)$ginv
mod = asreml(LAYDATE ~ BYEAR + AGE + YEAR, random = ~ ped(ANIMAL)+ide(ANIMAL), ginverse = list(ANIMAL=ainv),data=dat)
summary(mod)$varcomp
pin(mod,h2 ~ V1/(V1+V2+V3))

方差组分:

> summary(mod)$varcompgamma component std.error   z.ratio constraint
ped(ANIMAL)!ped 0.6387559  4.934041 1.7636385  2.797649   Positive
ide(ANIMAL)!id  1.0955038  8.462169 1.6381812  5.165588   Positive
R!variance      1.0000000  7.724454 0.3299432 23.411466   Positive

遗传力:

> pin(mod,h2 ~ V1/(V1+V2+V3))Estimate         SE
h2 0.233612 0.07907261

DMU和asreml比较

两者方差组分一致.

相关阅读:

DMU-参数介绍-学习笔记1
DMU-单性状动物模型-学习笔记2
DMU-单性状重复力模型-学习笔记3
DMU-多性状动物模型-学习笔记4
DMU-单性状动物模型-母体效应–学习笔记5
DMU软件 语法高亮 vim设置–学习笔记6

关注我的公众号:R-breeding

DMU-单性状重复力模型-学习笔记3相关推荐

  1. DMU软件 语法高亮 vim设置--学习笔记6

    用vim编程时, DMU的关键词没有语法高亮, 看着不舒服, 就进行一下设置, 并记录过程. 设置的效果如下 设置流程 本次设置的比较简单, 将关键词分为: 模型model, 比如DMU1, DMU2 ...

  2. 文本分类模型学习笔记

    文本分类模型学习笔记 TextCNN 模型结构 HAN 模型结构 实验 数据集 预处理 模型内容 模型训练 模型测试 近年来,深度学习模型在计算机视觉和语音识别中取得了显著成果.在自然语言处理中,深度 ...

  3. 概率图模型学习笔记:HMM、MEMM、CRF

    作者:Scofield 链接:https://www.zhihu.com/question/35866596/answer/236886066 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权 ...

  4. Heckman两阶段模型学习笔记

    有近两周的时间都在学习Heckman两阶段模型.网上看了一些资料,在CSDN里找到了几篇珍贵的学习笔记,有一篇相当于带我入了门学习笔记 | Heckman两阶段法介绍_Claire_chen_jia的 ...

  5. ARIMA模型学习笔记

    ARIMA模型学习笔记 目录 ARIMA模型学习笔记 ARIMA模型 时间序列平稳性 什么是平稳性 严平稳 弱平稳 平稳性检验 ADF检验(Augmented Dickey-Fuller test) ...

  6. MySQL8单表记录多少_mysql学习笔记之8(单表数据记录查询)_mysql

    mysql学习笔记之八(单表数据记录查询) 查询数据记录,就是指从数据库对象中获取所要求的数据记录.mysql中提供了各种不同方式的数据查询方法. 一.简单数据记录查询 select field1,f ...

  7. 生成模型学习笔记:从高斯判别分析到朴素贝叶斯

    机器之心专栏 作者:张威 翻译:燕子石 本文是哥伦比亚大学研究生张威在生成模型上的学习笔记,由毕业于新西兰奥克兰理工大学的燕子石翻译.机器之心之前曾介绍过张威所写的吴恩达<机器学习>课程的 ...

  8. 图神经网络(GNNs)模型学习笔记与总结

    GCN学习笔记 1 基于谱域的GCN 1.1 知识要点: 1.2 Spectral-based models 1.2.1 Spectral Network 1.2.2 ChebNet(2016) 1. ...

  9. MNL——多项Logit模型学习笔记(二)

    本节将会通过案例举例,介绍Logit模型的建模思路和过程 内容为摘抄他人学习资料的个人学习笔记,如有侵权则删 1.正确打开/解读Logit模型系数的方式 本节的具体内容在笔记里不详细表示了,大家在软件 ...

最新文章

  1. Nginx为什么快到根本停不下来?
  2. 关于自注意力机制的思考
  3. 怎么找回失踪的NTLDR文件
  4. [译][Tkinter 教程14] menu 菜单
  5. 正则过滤符号_多角度理解正则项
  6. 最小生成树唯一吗_最小生成树 - 齐芒
  7. 腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?
  8. iOS开发UI篇—控制器的创建
  9. 影视剧中的歌曲怎么录制 怎么录背景音乐
  10. 计算机主机放电,电脑需要放电才能开机_电脑主板放电才能开机
  11. PS 打好的字体 怎么修改 字体间距
  12. matplotlib colormap
  13. MIT线性代数笔记一 行图像和列图像
  14. vue实现不同页面显示不同标题
  15. 【贪心】兔警官朱迪买礼物
  16. Dell inspiron 7580硬件升级_更换电池加内存条移动硬盘
  17. 凯云水利水电工程造价管理系统 技术解析(四)取费管理(一)
  18. pubg体验服服务器维护,简单1招,教你快速获得《Pubg Mobile》体验服“邀请码”!...
  19. 怎么解决localhost打不开
  20. 与机器人恋爱?人工智能已开始影响人类伦理观

热门文章

  1. docer 设置 拉取http协议的私有仓库
  2. qlikview中日期问题的两个小结
  3. 微信小程序关键字搜索
  4. datax(二)datax on azkaban架构设计之datax as a service
  5. FPGA入门实验-基于状态机实现4位共阴极数码管显示超声波模块读数
  6. 幅频特性曲线protues_幅频特性曲线Matlab编程
  7. 7939.com,7b.com.cn,9505.com,4199.com 清除工具(转)
  8. 基于微信小程序编写的AI配音界面
  9. vsftpd通过cmds_allowed进行精确权限控制
  10. vue实现点击不同按钮展示不同内容