APP下载

基于BLUP的单性状动物育种模型的研究及实现

2016-12-02胡世洋杨慧赞张永德林勇孙全亮

贺州学院学报 2016年1期
关键词:关联矩阵遗传力贺州

胡世洋,杨慧赞,张永德,林勇,孙全亮

(1.贺州学院,计算机科学与信息工程学院,广西贺州542899;2.广西水产科学研究院,广西南宁530021)

基于BLUP的单性状动物育种模型的研究及实现

胡世洋1,杨慧赞2,张永德2,林勇2,孙全亮1

(1.贺州学院,计算机科学与信息工程学院,广西贺州542899;2.广西水产科学研究院,广西南宁530021)

BLUP算法可以显著提高动物遗传进展速度,但是它的计算过程比较复杂,数据量也相当浩繁,若将这种复杂、抽象的数学算法转换成可视化的计算机系统将大大有利于生产力的提高,针对这一问题,以罗非鱼的遗传育种为研究切入点,将BLUP算法应用于罗非鱼的育种值估计当中,构建出系统的模型,并采用面向对象的思维方法将BLUP的算法转化为可执行程序。实验结果表明,开发出的软件可以方便、高效地进行罗非鱼育种值的估计,当影响罗非鱼的外部因素发生改变时,最终的计算结果都能较准确地反应出相关因素对罗非鱼的影响效应。

BLUP;算法;罗非鱼;软件

1 引言

动物的选择育种问题一直是养殖业的重要科题之一,随着数理统计学与线性模型理论、计算机科学与互联网络技术的迅速发展,动物的育种值估计的方法发生了根本的变化[1]。最佳线性无偏预测法(Best Linear Unbiased Prediction,BLUP)由于能显著提高遗传进展速度,特别是对于低遗传力性状和显性性状,因而被广泛运用到动物的遗传改良当中。BLUP法可以通过对称矩阵求解的方式把动物的种类效应、动物自身效应和机误误差区分开来,可以有效提高动物遗传值的准确性[2]。由于BLUP法的过程比较复杂,计算量也相当浩繁,如何将BLUP算法的数学思想转化成计算机思维,用程序设计语言将其运行并且实现代码的可重用性是一个值得深入研究的问题[3]。文章以罗非鱼的养殖育种为例研究BLUP算法的应用及实现方法。

2 BLUP算法的工作原理

一般混合模型可表示为:

y是所有观察值构成的向量;b是所有固定效应(包括)构成的向量;X是固定效应的关联矩阵;u是所有随机效应构成的向量;Z是随机效应的关联矩阵;e是随机残差向量[4]。

随机变量的数学期望:

方差-协方差矩阵结构:

BLUP估计一般方程:

混合模型方程组的简化形式:

3 BLUP算法在罗非鱼研究过程中的具体研究及分析

某种鱼场有如下性能测定资料,测定性状为达500g日龄,已知该性状的遗传力为0.33,已知某群达500g的罗非鱼相关记录数据如表1所示,下面将对该群罗非鱼的性状资料进行个体育种值估计。

表1 罗非鱼达500g日龄记录

根据资料性质,可对罗非鱼达500g日龄写出如下动物模型:

用矩阵形式表示,则对于该资料有:

构建混合模型方程组:

求解混合模型方程组有:

4 Blup算法在计算机中的算法实现方案

4.1系统框架的构建

系统采用MVC的设计框架,由ODBC接口、相关数据库构件以及文件流操作模块组成Model层[5],由矩阵生成模块、矩阵运算模块、方程求解模块以及相关赋值运算模块组成Controller层,由于相关显示窗体模块组成View层[6]。系统可获取的外部数据类型包括数据库文件,XML文件、txt文件或xls文件,系统框架如果图1所示。

图1 系统框架图

4.2系统相关操作类的实现

本系统是采用C#程序语言进行开发,在系统实现过程中需要大量的矩阵运算,因此在系统中必须建立Matrix类来管理矩阵数据,同时需要有一个MatrixOperator类来操作Matrix类,从而实现矩阵的混合运算及相关信息的输出[7]。系统要从数据库文件中获取外部数据文件并存取在内存当中,因此需要有DataModel类来负责外部数据的获取来组织[8]。最后内存中的数据需要在AnalysisOperator类中完成矩阵的构建和运算,并将最终结果输出到显示窗体当中。系统的相关类型如图2所示。

图2 系统类图

根据上一节基于BLUP算法罗非鱼育种值计算规则,可以构建出其在计算机中的实现算法为:

步骤1:读取数据,基础数据可以是来自数据,或者是其它外部文件。

步骤2:构建系数矩阵。针对罗非鱼的数据特征,可以对体重达500g的日龄构建动物模型,并由此得出固定因素和非固定因素的系数据矩阵。

步骤3:构建亲缘矩阵。根据罗非鱼的个体系谱列表来构建分子亲缘矩阵。

步骤4:构建混合模型矩阵。根据BLUP估计一般方程,混合模型方程组的简化形式。

步骤5:混合矩阵方程的求解。得到了矩阵向量元素将是各个影响因素的育种估计值。

4.3算法实现的几个具体问题

4.3.1矩阵类的定义

矩阵的存储方式是采用二维数组存储。数组类型为double型,Matrix类中不仅有行和列的相关属性,而且有其对应的构造方法以及实例化矩阵的相关方法。

4.3.2矩阵操作类的定义算法

BLUP算法在运算过程中涉及矩阵相乘、矩阵数乘、矩阵转置和矩阵求逆等相关操作。因此我们在MatrixOperator类必须要声明这些方法,其中MatrixPrint()可以实现矩阵内部元素的输出。

4.3.3系数矩阵的构建算法

由上一节的动物模型可以得知,在单性状遗传值估计中,固定效应的关联矩阵X的维数是由测量记录数和鱼池这一固定效应的数量决定的,而矩阵X的元素值是因固定效应的量值决定。关联矩阵X的构建算法则是先确定鱼场的个数,再遍历测量记录条目,若当前记录的鱼场数与先前设置的鱼池编号相同则将其在X矩阵中所对应的无素值置为1,其它元素置为0。而随机效应的关联矩阵Z则是与测量记录数相关的单位矩阵。显性向量矩阵y则是由各条记录数中的日龄字段决定。这两个矩阵的构建较为简单,在此不再赘述。

4.3.4亲缘矩阵的构建算法

构建亲缘矩阵的基本规则:(1)当编号为t的个体的父母均未知时,att=1,ati=ait=0,i=1、2…t-1。(2)当编号为t的个体的父母中的一个已知为p,而另一个未知时,att=1,ati=ait=0.5aip,i=1、2…t-1。(3)当编号为t的个体的父母均已知(假定为p和q)时,att=1+0.5apq,ati=ait=0.5(aip+aiq),i=1、2…t-1。因此确定亲缘矩阵的构建算法为:(1)将罗非鱼的观测记录读入到数组arr[][]当中,创建空矩阵A,并使用数组a[][]来存储矩阵的元素。(2)循环数组arr[][]中行记录即逐个确定观测记录中的每一条记录。在第t(1<=t<=arr.length)条记录中,假定这条记录的第a列是父本编号,第b列是其母本编号,若arr[t,a]和arr[t,b]的值均为空,那么判定t是不是第一条记录,如果是那么a[t,t]=1。否则建立t的循环变量i(1<=i<=t),a[t,t]=1;a[t,i]=a[i,t]=0。(3)若arr[t,a]和arr[t,b]的值只有一个不为空记为p,那么判定t是不是第一条记录,如果是那么a[t,t]= 1。否则建立t的循环变量i(1<=i<=t),a[t,t]=1,a[t,i]=a[i,t]=0.5*a[i,p]。(4)若arr[t,a]和arr[t,b]的值分别为p和q时,那么判定t是不是第一条记录,如果是那么a[t,t]=1。否则建立t的循环变量i(1<=i<=t),a[t,t]=1+0.5*a[p,q],a[t,i]=a[i,t]= 0.5*(a[i,p]+a[i,q])。

4.3.5混合矩阵的构建算法

5 系统的运行结果及应用分析

系统测试环境:硬件环境:(1)硬件环境:PC机一台。(2)软件环境:Window7操作系统,Microsoft. NET Framework 4.0组件,SQL server2005数据库。

实例测试1:提供2个鱼场的5条记录,并输入性状遗传力值0.33,最终计算的育种值向量值为:(h1 h2 a1 a2 a3 a4 a5)=(114.44 112.72-0.46 2.57 -3.404.70-3.47)。测量记录数据如图3所示,系统输出结果如图4所示。

图3 第一次测量记录数据

图4 第一次实验输出结果

实例测试2:提供3个鱼场的6条记录,并输入性状遗传力值0.33,最终计算的育种值向量值为:(h1h2h3a1a2a3a4a5)=(142.84152.12169.62-2. 463.05-2.12-1.392.150.38)。测量记录数据如图5所示,实现输出结果如图6所示。

图5 第二次测量记录数据

图6 第二次实验输出结果

6 结语

文章分析了BLUP算法的基本原理,并研究了其在罗非鱼单性状遗传育种研究中的实现方法。在系统建模型的基础上,开发了一套与之相配套的软件系统,并对软件实现过程的具体算法进行了研究和描述。经过软件的测试和运行表明,对于单性态的育种案例,本软件可以顺利计算出罗非鱼的育种值,因此本软件有着一定的现实意义。

BLUP算法不仅可以用于单性状育种值估计,而且同样可以应用于多性状的育种值估计。现实生活中影响鱼类遗传育种的性状常常不仅仅一个。因此多性状的育种值估计的研究和实现将是下一步工作的主要内容。

[1]曾聪,曹小娟,高泽霞,等.团头鲂生长性状的遗传力和育种值估计[J].华中农业大学学报,2014,33(2):89-95.

[2]杨瑞飞,张凯,汪平,等.獭兔育种与生产信息管理系统的研发[J].四川农业大学学报,2014,32(1):82-86.

[3]刘峰,陈松林,王磊,等.不同牙鲆群体遗传力和育种值分析[J].中国水产科学,2013,20(4):691-697.

[4]刘莹莹,肖兵南,燕海峰,等.利用BLUP法估计荷斯坦种公牛的抗热应激育种值[J].家畜生态学报,2012,33(1):29-32.

[5]王光琼,杜天行,未永庆,等.基于SOA构架的分布式租车公司管理系统设计与实现[J].软件导刊,2014,13(6):52-54.

[6]岳绍敏,王国春,董亚则,等.基于Spring MVC框架的电商平台的研究与设计[J].软件工程师,2014,17(7):3-7.

[7]邹燕燕,安虹,崔慧敏,等.矩阵形状无关的并行编译优化[J].小型微型计算机系统,2014,35(7):1518-1522.

[8]Seo-Young NOH,Shashi K.GADIA,Haengjin JANG.Comparisons of three data storage models in parametric temporal databases[J].Journal of Central South University,2013,20(7):1919-1927.

[责任编辑]张琴芳

Research and Implementation of Single Trait Animal Breeding Models Based BLUP

HuShi-yang1,YANG Hui-zan2,ZHANG Yong-de2,LINYong2,SUNQuan-liang1
(1.School ofComputerScienceandInformationEngineering,Hezhouuniversity,HezhouGuangxi 542899;2.Guangxi AcademyofFisherySciences,NanningGuangxi 530021)

BLUP algorithm can significantly improve the speed of animal genetic progress,but the calculations are more complex and the data size is quite voluminous.If this complex abstract mathematical algorithm changes into a visualization computer system,it will greatly help to improve productivity for this problem.This paper applies the BLUP algorithm in tilapia breeding value estimation to build the model of the system and use an object-oriented way of thinking to turn the BLUP into executable program.Experimental results show that the development of the software can easily and efficiently estimate breeding values of tilapia.When external factors change,the final result can more accurately reflect the effect of related factors affecting tilapia.

BLUP;algorithm;tilapia;software

TP311.11

A

1673—8861(2016)01—0144—05

2015-02-23

胡世洋(1987-),男,河南南阳人,贺州学院讲师,硕士。主要研究方向:计算机网络与信息管理系统。

广西水产遗传育种与健康养殖重点实验室资助项目(GXKL-AQUA-2013-C-05)、贺州学院2014年度校级科研项目(2014YBZK09)、贺州学院2013年度校级科研项目(2013ZXZK14)。

猜你喜欢

关联矩阵遗传力贺州
n阶圈图关联矩阵的特征值
美系大白种猪生长性状和繁殖性状遗传力估计
游贺州紫云洞
单圈图关联矩阵的特征值
印象贺州
变胞汽车焊接机器人拓扑分析与动态焊接参数建模
基于Petri网的L企业产品设计变更执行流程优化研究
我的家乡最美之贺州
吾城·吾乡
星斑川鲽家系建立及遗传效应分析