胡世洋,楊慧贊,張永德,林勇,孫全亮
(1.賀州學院,計算機科學與信息工程學院,廣西賀州542899;2.廣西水產科學研究院,廣西南寧530021)
基于BLUP的單性狀動物育種模型的研究及實現
胡世洋1,楊慧贊2,張永德2,林勇2,孫全亮1
(1.賀州學院,計算機科學與信息工程學院,廣西賀州542899;2.廣西水產科學研究院,廣西南寧530021)
BLUP算法可以顯著提高動物遺傳進展速度,但是它的計算過程比較復雜,數據量也相當浩繁,若將這種復雜、抽象的數學算法轉換成可視化的計算機系統(tǒng)將大大有利于生產力的提高,針對這一問題,以羅非魚的遺傳育種為研究切入點,將BLUP算法應用于羅非魚的育種值估計當中,構建出系統(tǒng)的模型,并采用面向對象的思維方法將BLUP的算法轉化為可執(zhí)行程序。實驗結果表明,開發(fā)出的軟件可以方便、高效地進行羅非魚育種值的估計,當影響羅非魚的外部因素發(fā)生改變時,最終的計算結果都能較準確地反應出相關因素對羅非魚的影響效應。
BLUP;算法;羅非魚;軟件
動物的選擇育種問題一直是養(yǎng)殖業(yè)的重要科題之一,隨著數理統(tǒng)計學與線性模型理論、計算機科學與互聯網絡技術的迅速發(fā)展,動物的育種值估計的方法發(fā)生了根本的變化[1]。最佳線性無偏預測法(Best Linear Unbiased Prediction,BLUP)由于能顯著提高遺傳進展速度,特別是對于低遺傳力性狀和顯性性狀,因而被廣泛運用到動物的遺傳改良當中。BLUP法可以通過對稱矩陣求解的方式把動物的種類效應、動物自身效應和機誤誤差區(qū)分開來,可以有效提高動物遺傳值的準確性[2]。由于BLUP法的過程比較復雜,計算量也相當浩繁,如何將BLUP算法的數學思想轉化成計算機思維,用程序設計語言將其運行并且實現代碼的可重用性是一個值得深入研究的問題[3]。文章以羅非魚的養(yǎng)殖育種為例研究BLUP算法的應用及實現方法。
一般混合模型可表示為:
y是所有觀察值構成的向量;b是所有固定效應(包括)構成的向量;X是固定效應的關聯矩陣;u是所有隨機效應構成的向量;Z是隨機效應的關聯矩陣;e是隨機殘差向量[4]。
隨機變量的數學期望:
方差-協方差矩陣結構:
BLUP估計一般方程:
混合模型方程組的簡化形式:
某種魚場有如下性能測定資料,測定性狀為達500g日齡,已知該性狀的遺傳力為0.33,已知某群達500g的羅非魚相關記錄數據如表1所示,下面將對該群羅非魚的性狀資料進行個體育種值估計。
表1 羅非魚達500g日齡記錄
根據資料性質,可對羅非魚達500g日齡寫出如下動物模型:
用矩陣形式表示,則對于該資料有:
構建混合模型方程組:
求解混合模型方程組有:
4.1系統(tǒng)框架的構建
系統(tǒng)采用MVC的設計框架,由ODBC接口、相關數據庫構件以及文件流操作模塊組成Model層[5],由矩陣生成模塊、矩陣運算模塊、方程求解模塊以及相關賦值運算模塊組成Controller層,由于相關顯示窗體模塊組成View層[6]。系統(tǒng)可獲取的外部數據類型包括數據庫文件,XML文件、txt文件或xls文件,系統(tǒng)框架如果圖1所示。
圖1 系統(tǒng)框架圖
4.2系統(tǒng)相關操作類的實現
本系統(tǒng)是采用C#程序語言進行開發(fā),在系統(tǒng)實現過程中需要大量的矩陣運算,因此在系統(tǒng)中必須建立Matrix類來管理矩陣數據,同時需要有一個MatrixOperator類來操作Matrix類,從而實現矩陣的混合運算及相關信息的輸出[7]。系統(tǒng)要從數據庫文件中獲取外部數據文件并存取在內存當中,因此需要有DataModel類來負責外部數據的獲取來組織[8]。最后內存中的數據需要在AnalysisOperator類中完成矩陣的構建和運算,并將最終結果輸出到顯示窗體當中。系統(tǒng)的相關類型如圖2所示。
圖2 系統(tǒng)類圖
根據上一節(jié)基于BLUP算法羅非魚育種值計算規(guī)則,可以構建出其在計算機中的實現算法為:
步驟1:讀取數據,基礎數據可以是來自數據,或者是其它外部文件。
步驟2:構建系數矩陣。針對羅非魚的數據特征,可以對體重達500g的日齡構建動物模型,并由此得出固定因素和非固定因素的系數據矩陣。
步驟3:構建親緣矩陣。根據羅非魚的個體系譜列表來構建分子親緣矩陣。
步驟4:構建混合模型矩陣。根據BLUP估計一般方程,混合模型方程組的簡化形式。
步驟5:混合矩陣方程的求解。得到了矩陣向量元素將是各個影響因素的育種估計值。
4.3算法實現的幾個具體問題
4.3.1矩陣類的定義
矩陣的存儲方式是采用二維數組存儲。數組類型為double型,Matrix類中不僅有行和列的相關屬性,而且有其對應的構造方法以及實例化矩陣的相關方法。
4.3.2矩陣操作類的定義算法
BLUP算法在運算過程中涉及矩陣相乘、矩陣數乘、矩陣轉置和矩陣求逆等相關操作。因此我們在MatrixOperator類必須要聲明這些方法,其中MatrixPrint()可以實現矩陣內部元素的輸出。
4.3.3系數矩陣的構建算法
由上一節(jié)的動物模型可以得知,在單性狀遺傳值估計中,固定效應的關聯矩陣X的維數是由測量記錄數和魚池這一固定效應的數量決定的,而矩陣X的元素值是因固定效應的量值決定。關聯矩陣X的構建算法則是先確定魚場的個數,再遍歷測量記錄條目,若當前記錄的魚場數與先前設置的魚池編號相同則將其在X矩陣中所對應的無素值置為1,其它元素置為0。而隨機效應的關聯矩陣Z則是與測量記錄數相關的單位矩陣。顯性向量矩陣y則是由各條記錄數中的日齡字段決定。這兩個矩陣的構建較為簡單,在此不再贅述。
4.3.4親緣矩陣的構建算法
構建親緣矩陣的基本規(guī)則:(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[][]當中,創(chuàng)建空矩陣A,并使用數組a[][]來存儲矩陣的元素。(2)循環(huán)數組arr[][]中行記錄即逐個確定觀測記錄中的每一條記錄。在第t(1<=t<=arr.length)條記錄中,假定這條記錄的第a列是父本編號,第b列是其母本編號,若arr[t,a]和arr[t,b]的值均為空,那么判定t是不是第一條記錄,如果是那么a[t,t]=1。否則建立t的循環(huán)變量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的循環(huán)變量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的循環(huán)變量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混合矩陣的構建算法
系統(tǒng)測試環(huán)境:硬件環(huán)境:(1)硬件環(huán)境:PC機一臺。(2)軟件環(huán)境:Window7操作系統(tǒng),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所示,系統(tǒng)輸出結果如圖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 第二次實驗輸出結果
文章分析了BLUP算法的基本原理,并研究了其在羅非魚單性狀遺傳育種研究中的實現方法。在系統(tǒng)建模型的基礎上,開發(fā)了一套與之相配套的軟件系統(tǒng),并對軟件實現過程的具體算法進行了研究和描述。經過軟件的測試和運行表明,對于單性態(tài)的育種案例,本軟件可以順利計算出羅非魚的育種值,因此本軟件有著一定的現實意義。
BLUP算法不僅可以用于單性狀育種值估計,而且同樣可以應用于多性狀的育種值估計。現實生活中影響魚類遺傳育種的性狀常常不僅僅一個。因此多性狀的育種值估計的研究和實現將是下一步工作的主要內容。
[1]曾聰,曹小娟,高澤霞,等.團頭魴生長性狀的遺傳力和育種值估計[J].華中農業(yè)大學學報,2014,33(2):89-95.
[2]楊瑞飛,張凱,汪平,等.獺兔育種與生產信息管理系統(tǒng)的研發(fā)[J].四川農業(yè)大學學報,2014,32(1):82-86.
[3]劉峰,陳松林,王磊,等.不同牙鲆群體遺傳力和育種值分析[J].中國水產科學,2013,20(4):691-697.
[4]劉瑩瑩,肖兵南,燕海峰,等.利用BLUP法估計荷斯坦種公牛的抗熱應激育種值[J].家畜生態(tài)學報,2012,33(1):29-32.
[5]王光瓊,杜天行,未永慶,等.基于SOA構架的分布式租車公司管理系統(tǒng)設計與實現[J].軟件導刊,2014,13(6):52-54.
[6]岳紹敏,王國春,董亞則,等.基于Spring MVC框架的電商平臺的研究與設計[J].軟件工程師,2014,17(7):3-7.
[7]鄒燕燕,安虹,崔慧敏,等.矩陣形狀無關的并行編譯優(yōu)化[J].小型微型計算機系統(tǒng),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-),男,河南南陽人,賀州學院講師,碩士。主要研究方向:計算機網絡與信息管理系統(tǒng)。
廣西水產遺傳育種與健康養(yǎng)殖重點實驗室資助項目(GXKL-AQUA-2013-C-05)、賀州學院2014年度校級科研項目(2014YBZK09)、賀州學院2013年度校級科研項目(2013ZXZK14)。