今天我们看一下asreml如何根据系谱计算近交系数和亲缘关系系数,asreml计算的特点是:

1,运算速度特别快,对于10万的系谱,运算时间小于10s,是其它软件不可比拟的。

2,对于一些植物或者群体分组的系谱,有些个体(或者家系)可能做父本,可能做母本,asreml软件可以处理这种系谱。

3,asreml直接计算近交系数,所以数据量大时也可以直接计算出来。

这里,我们先用示例数据演示一下,然后我们使用模拟数据(10万系谱)计算一下结果,做一个测试,结果运行时间不到1秒。

1. 载入asreml4-R包

library(asreml)

2. 查看示例系谱数据

> data(harvey)> ped = harvey[,1:3]> head(ped)  Calf   Sire Dam1  101 Sire_1   02  102 Sire_1   03  103 Sire_1   04  104 Sire_1   05  105 Sire_1   06  106 Sire_1   0

3. 计算A逆矩阵

> ainv = ainverse(ped)> head(ainv)     Row Column Ainverse[1,]   1      1 3.666667[2,]   2      2 3.666667[3,]   3      3 2.666667[4,]   4      4 3.666667[5,]   5      5 3.333333[6,]   6      6 3.000000

4. 提取近交系数

注意,提取Inbreeding,通过attr(ainv,"inbreeding")进行提取。

> re = data.frame(Inbreeding = attr(ainv,"inbreeding"))> head(re)       InbreedingSire_1          0Sire_2          0Sire_3          0Sire_4          0Sire_5          0Sire_6          0

5. 计算A矩阵

因为asreml计算的是A逆矩阵的三元组形式,需要首先转化为矩阵形式,然后求逆。asreml4-R中有相关转化的函数,简单快捷。

> mat_ainv > A_mat = zapsmall(solve(mat_ainv))> A_mat[1:10,1:10]       Sire_1 Sire_2 Sire_3 Sire_4 Sire_5 Sire_6 Sire_7 Sire_8 Sire_9 101Sire_1    1.0      0      0      0      0      0      0      0      0 0.5Sire_2    0.0      1      0      0      0      0      0      0      0 0.0Sire_3    0.0      0      1      0      0      0      0      0      0 0.0Sire_4    0.0      0      0      1      0      0      0      0      0 0.0Sire_5    0.0      0      0      0      1      0      0      0      0 0.0Sire_6    0.0      0      0      0      0      1      0      0      0 0.0Sire_7    0.0      0      0      0      0      0      1      0      0 0.0Sire_8    0.0      0      0      0      0      0      0      1      0 0.0Sire_9    0.0      0      0      0      0      0      0      0      1 0.0101       0.5      0      0      0      0      0      0      0      0 1.0

6. 完整示例代码

# 近交系数library(asreml)data(harvey)ped = harvey[,1:3]head(ped)ainv = ainverse(ped)head(ainv)

re = data.frame(Inbreeding = attr(ainv,"inbreeding"))head(re)

mat_ainv A_mat = zapsmall(solve(mat_ainv))A_mat[1:10,1:10]

7. 十万系谱数据计算近交系数

> library(data.table)> library(asreml)> ped = fread("ped_test.ped")> dim(ped)[1] 96280     3> head(ped)   Progeny Sire Dam1:       1    0   02:       2    0   03:       3    0   04:       4    0   05:       5    0   06:       6    0   0> system.time({ainv = ainverse(ped)}) 用户  系统  流逝 0.809 0.037 0.846 > dim(ainv)[1] 293068      3> head(ainv)     Row Column Ainverse[1,]   1      1       61[2,]   2      2       61[3,]   3      3       61[4,]   4      4       61[5,]   5      5       61[6,]   6      6       61> inbr = data.frame(Inbreeding = attr(ainv,"inbreeding"))> head(inbr)  Inbreeding1          02          03          04          05          06          0> tail(inbr)      Inbreeding96275 0.0457145996276 0.0457145996277 0.0457145996278 0.0457145996279 0.0457145996280 0.04571459

结论:

系谱个数:96280

计算近交系数时间:0.864秒

head 10字节_优秀了!10万系谱,计算近交系数,不到1秒!相关推荐

  1. python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...

    开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...

  2. head 10字节_创新创业协会|访字节跳动,品“字节范”

    为加强创新创业协会的对外建设,进一步拓展创新创业协会与外界企业的联系.创新创业学院以"访字节跳动品字节范"为主题,2020年10月16日上午,在学校创新创业学院邱宇恒老师和崔袁廙老 ...

  3. python随机生成10个数_python得到一个10位随机数的方法及拓展

    https://blog.csdn.net/qq_33324608/article/details/78866760 无意中看到一个写10位随机数的方法,很有想法,然后就从学了一下随机数,相关东西都记 ...

  4. c语言 -1%10等于多少,一个点指1%还是10%,比如销售总额为1000万的一点是多少?_-一个点是百分之几-数学-荣谌凡同学...

    概述:本道作业题是荣谌凡同学的课后练习,分享的知识点是一个点是百分之几,指导老师为景老师,涉及到的知识点涵盖:一个点指1%还是10%,比如销售总额为1000万的一点是多少?_-一个点是百分之几-数学, ...

  5. 【MySQL 第10章_数据库的设计规范】

    第10章_数据库的设计规范 1. 为什么需要数据库设计 2.范式 2.1范式简介 2.2范式都包括哪些 2.3 键和相关属性的概念 2.4第一范式(1st NF) 2.5 第二范式(2nd NF) 2 ...

  6. 小米10pro第二个摄像头下面_小米10至尊纪念版、小米10 Pro对比评测:至尊版“至尊”在哪里?...

    在几天前的雷军十周年演讲中,小米10至尊纪念版正式面世,价格刚公布,就引起了不小轰动.在吃瓜群众看来,小米终于迈向了高端,毕竟最贵的版本,售价可以卖到6999元,和三星.苹果旗舰保持在一个水准.而对于 ...

  7. 你知道5分钟法则和10字节法则么?

    如果一条数据每5分钟被访问一次,那么它应该常驻在内存中.类似的,如果想存储只有0和1两个值的标志位,相比于将8个标志位打包为1个字节,将1个标志位单独存储为1个字节是更节约的选择. 本文参考 Jim ...

  8. 大于或小于100万,1000万,1亿,10亿,1000亿,万亿,亿亿,10亿亿,100亿亿上下的10个质数(素数)...

    2019独角兽企业重金招聘Python工程师标准>>> 大于或小于百万,千万,1亿,十亿,百亿,千亿,万亿,十万亿,百万亿,千万亿,亿亿,十亿亿,百亿亿上下的10个质数(素数). U ...

  9. 考研国家线罕见大幅上涨,12个学科涨幅10分以上,超300万人将落榜

    金磊 博雯 发自 凹非寺 量子位 | 公众号 QbitAI 随着2022年研考国家线的发布,"考研"这一话题再次成为焦点. 据央视网报道,全国457万考研大军,院校计划招生人数约1 ...

最新文章

  1. 2021-2027全球与中国跨临界二氧化碳系统市场现状及未来发展趋势报告
  2. (转载)spring jar包详细介绍
  3. (0022)iOS 开发之@property的属性Weak Strong的深入学习
  4. Hibernate.cfg.xml配置文件结构详解
  5. Linux Centos6.5如何截图
  6. LINQ中判断日期时间段
  7. nth_element(a+1 , a + m, a + n+1);
  8. 20、查看帮助的命令--man,info,whatis,--help
  9. C#移除HTML标记
  10. java 心跳程序_Java实现心跳机制的方法
  11. 制作的LINUX安装软件,竟然导致系统无法启动
  12. 阿里云开发笔记01——CuteFTP使用方法
  13. 外贸出口管理系统亮点及重点
  14. 鼠标右键没有word、excel/右键不能新建word、ppt等office
  15. 使用Arduino+L298N控制光驱两项四线步进电机
  16. 大数据从入门到实战 --HDFS系统初体验
  17. 几何分布的期望和方差公式推导_算法数学基础-统计学最基础之均值、方差、协方差、矩...
  18. greenplum 历史拉链表
  19. PMP证书到期,有必要续证吗?
  20. ilove中文_iLovePDF中文版

热门文章

  1. C语言中正弦函数定义域,三角函数定义域和值域
  2. css自定义盒子形状及动画应用
  3. html中按钮下拉菜单,Bootstrap3.0学习笔记之按钮与下拉菜单
  4. linux系统数据库服务器配置,Linux安装配置MariaDB数据库全程详解
  5. linux设备常用缩略语
  6. Sentinel 集群限流设计原理
  7. android设计架构之MVC、MVP、MVVM的理解
  8. SSM疫情医院管理系统实训项目总结
  9. mysql-mmm的搭建
  10. 梦回JDBC —— (Statement对象)