吳 飛,石 蘭,馬梅蘭,王 江,何新宇,依明·蘇來曼
(新疆農(nóng)業(yè)大學(xué)動物科學(xué)學(xué)院,新疆烏魯木齊 830052)
在育種工作方面,疆內(nèi)大多數(shù)的中小型羊場仍采用個體表型值進行選種。但傳統(tǒng)的選種方法不能保證種羊遺傳評定的準(zhǔn)確性,其主要缺點在于:一是羊只數(shù)據(jù)零散和記錄不完全、不系統(tǒng);二是不能有效地剔除各種環(huán)境因素的影響,如:年度、群體等;三是不能有效利用所有親屬的信息。因此中小型羊場根據(jù)表型值選種的方法是不夠準(zhǔn)確的。在羊只各類信息的處理形式上,現(xiàn)階段疆內(nèi)羊場主要通過紙質(zhì)資源和電子文件記錄與儲存數(shù)據(jù),但紙質(zhì)文件容易因自然、人為等原因造成信息缺失,電子文件因為分類儲存也只能針對有限范圍內(nèi)的信息進行查詢和利用,而羊場許多決策需要依據(jù)多方面、跨文件的信息檢索結(jié)果,現(xiàn)階段的零散文件存儲難以提供上述服務(wù),致使信息資源的利用率較低[6-7]。
信息化是當(dāng)今世界發(fā)展的必然趨勢,國內(nèi)許多畜牧企業(yè)都設(shè)計或購買畜牧信息化管理系統(tǒng)以及種畜遺傳評估系統(tǒng),將牧場管理、種畜育種工作與信息技術(shù)相結(jié)合,以此提高生產(chǎn)管理水平,提升育種工作效率,科學(xué)建立種畜繁育基地。本研究在調(diào)研新疆地區(qū)中小型規(guī)?;驁龅纳a(chǎn)與管理模式的基礎(chǔ)上,將信息管理技術(shù)與現(xiàn)代遺傳評估技術(shù)相結(jié)合,開發(fā)兼具信息管理與遺傳評估功能的計算機系統(tǒng),致力于幫助中小型羊場充分利用新疆豐富的種質(zhì)資源,培育優(yōu)良肉羊品種,促進新疆肉羊產(chǎn)業(yè)的高質(zhì)量發(fā)展。
1.1 編程語言 Python 語言是一門新興且優(yōu)秀的計算機編程語言,在2021 年TIOBE(編程語言社區(qū)排行)中,Python 排名第一,榮獲2021 年度編程語言稱號。Python 已成為多個領(lǐng)域的編程實戰(zhàn)語言,運用越來越成熟。Python 學(xué)習(xí)與使用起來清晰而簡單,非常適合編程基礎(chǔ)薄弱或者零基礎(chǔ)的人員使用。Python 擁有龐大的標(biāo)準(zhǔn)庫,可以編寫程序來處理各種工作,包括正則表達式、線程、文檔生成等功能。除了標(biāo)準(zhǔn)庫,它還有大量高質(zhì)量的第三方庫[6,8-9],如Django、Django RESTframework、NumPy 等,這些庫可以通過計算機編程集成開發(fā)環(huán)境軟件例如PyCharm、VSCode 搜索下載使用,有助于提高開發(fā)效率。
1.2 Web 應(yīng)用框架 Django 框架是具有完整架站能力的開源框架,由Python 編寫,其設(shè)計理念是由傳統(tǒng)MVC模式演變的MTV 模式。開發(fā)優(yōu)勢:部署方便、可重用性高、維護成本低,可以便捷快速地開發(fā)以數(shù)據(jù)庫驅(qū)動的系統(tǒng);Django 自身集成了豐富的開發(fā)通用組件,如用戶認(rèn)證、分頁、中間件、緩存、Session 等,避免浪費大量時間做重復(fù)的工作;Django 還具有強大的數(shù)據(jù)庫訪問組件、靈活的URL 映射,大大提高開發(fā)效率[6,9]。
1.3 系統(tǒng)開發(fā)的硬軟環(huán)境
1.3.1 系統(tǒng)開發(fā)的軟件環(huán)境 肉羊遺傳評估系統(tǒng)在Windows 10 操作系統(tǒng)上開發(fā),以Python 3.6.8 作為編程語言,Django 2.0 為開發(fā)框架,以Pycharm 專業(yè)版為輔助開發(fā)工具,數(shù)據(jù)庫采用Python 3 默認(rèn)選取的SQLite 3 數(shù)據(jù)庫,以Navicat Premium 12 為數(shù)據(jù)庫的輔助編輯器。
惡性組:年齡范圍51~77歲,年齡(66.4±9.0)歲;男 23例,女 16例;體質(zhì)指數(shù)(BMI)為(22.6±1.8)kg/m2,合并疾病為高血壓 16例、糖尿病8例、高血脂11例,吸煙16例。非惡性組:年齡范圍48~79歲,年齡(65.2±11.0)歲;男130例,女61例,BMI為(22.4±2.3)kg/m2,合并疾病為高血壓96例、糖尿病53例、高血脂70例;吸煙102例。兩組患者的年齡、性別、BMI、合并疾病、吸煙情況差異無統(tǒng)計學(xué)意義(P>0.05),具有可比性。
1.3.2 系統(tǒng)開發(fā)的硬件環(huán)境 系統(tǒng)開發(fā)所用電腦的CPU為Intel(R)Core(TM)i5-1035 G1,RAM 容量為16 GB,Storage 容量為512 GB。
1.4 支撐系統(tǒng)運行的硬軟環(huán)境 運行平臺/操作系統(tǒng):Windows7、Windows10、Linux、Mac。
運行的硬件環(huán)境:Intel(R)Core(TM)i3 及以上;RAM:2 GB 及以上;Storage:256 GB 及以上。
軟件運行支撐環(huán)境/支持軟件:Python 3.6 及以上版本、Django 3.0 及以上版本、R 語言。
肉羊遺傳評估系統(tǒng)由Django 框架搭建而成,采用瀏覽器/ 服務(wù)器(Browser/Server,B/S)結(jié)構(gòu)模式,通過調(diào)用R 語言的sommer 包實現(xiàn)羊場數(shù)據(jù)信息化管理以及肉羊遺傳評估的功能。肉羊遺傳評估系統(tǒng)在開發(fā)類型上定義為大數(shù)據(jù)嵌入式軟件,后續(xù)的項目計劃將通過Python 強大的可移植性嵌入到肉羊遺傳評估與分子育種服務(wù)平臺中。
2.1 系統(tǒng)角色分權(quán) 肉羊遺傳評估系統(tǒng)分為羊場信息管理模塊與肉羊遺傳評估模塊,并設(shè)置了擁有不同權(quán)限的3 種角色,分別為管理員、技術(shù)員與飼養(yǎng)員。3 種角色的系統(tǒng)主界面所含有的功能模塊數(shù)量依次遞減,管理員擁有系統(tǒng)全部功能模塊,且只有管理員具有添加與刪除系統(tǒng)成員賬號以及運行肉羊遺傳評估模塊的權(quán)限。羊場管理人員可以根據(jù)員工所處崗位添加角色賦予員工在系統(tǒng)內(nèi)的管理權(quán)限。用戶在登錄頁面輸入正確的賬號、密碼以及驗證碼答案即可進入系統(tǒng)主頁面,視圖通過賬號識別用戶角色,并賦予擁有相應(yīng)權(quán)限的主界面。
2.2 數(shù)據(jù)庫的設(shè)計 數(shù)據(jù)庫是大數(shù)據(jù)信息管理系統(tǒng)的核心和基礎(chǔ),具有對數(shù)據(jù)的存儲、維護、檢索等功能。系統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)很大程度上決定了系統(tǒng)的結(jié)構(gòu)和功能的實現(xiàn)[10]。肉羊遺傳評估系統(tǒng)的數(shù)據(jù)庫包含用戶的注冊表以及各管理模塊的數(shù)據(jù)表。根據(jù)實際需求,選用了SQLite 3 作為本系統(tǒng)的數(shù)據(jù)庫,該數(shù)據(jù)庫具有易升級維護的優(yōu)勢。由于SQLite 3 數(shù)據(jù)庫是Python 3 默認(rèn)選取的輕型數(shù)據(jù)庫,所以使用方便,不需要事先安裝數(shù)據(jù)庫軟件。相比于MySQL 等數(shù)據(jù)庫,SQLite 3 不需要配置,不需要任何外部的依賴,用戶不需要復(fù)雜的安裝以及在cmd 終端申請賬號的過程,且每次使用前后不需要手動開啟、關(guān)閉數(shù)據(jù)庫,SQLite 3 在搭建系統(tǒng)時也不需要事先建表,數(shù)據(jù)表直接遷移。根據(jù)SQLite 的官方提示,SQLite 3 數(shù)據(jù)庫最大支持128 TiB(140 terabytes,or 128 tebibytes),數(shù)據(jù)承載量對于中小型羊場完全夠用。在數(shù)據(jù)查詢方面,查詢條件如果是索引字段,在總數(shù)據(jù)量非常龐大的情況下查詢速度仍然很快。
2.3 羊場信息管理模塊 羊場信息管理模塊提供了一種簡便而有效的信息管理和處理技術(shù),它通過設(shè)計模型來定義表格與字段,將現(xiàn)實的羊場數(shù)據(jù)進行分類整理,并在虛擬數(shù)據(jù)庫中存儲起來,通過編寫視圖函數(shù)來調(diào)用和分析數(shù)據(jù),把繁雜的數(shù)據(jù)資料變成用戶所需要的可用來決策的信息[11]。羊場信息管理模塊的每個子模塊對數(shù)據(jù)設(shè)置了增刪查改、導(dǎo)出、打印功能,在羊只管理、配種記錄、繁殖管理、系譜管理、性能測定以及育種值表6 個子模塊中設(shè)置了數(shù)據(jù)批量導(dǎo)入功能。羊場信息管理模塊中各子模塊模型設(shè)計見表1。
表1 羊場信息管理模塊介紹
2.3.1 列表設(shè)置 列表分頁設(shè)置:由于本系統(tǒng)為大數(shù)據(jù)軟件,因此各模塊中的表格分頁設(shè)置了每頁10、20、50、100、200、500、1 000、2 000、5 000 條數(shù)據(jù)選項,方便用戶對數(shù)據(jù)的查看以及批量操作。
列表字段隱藏功能:本系統(tǒng)各子模塊列表字段屬性全面、數(shù)量較多,用戶可根據(jù)實際需求將不需要的字段隱藏,使數(shù)據(jù)列表簡短、直觀。
在系統(tǒng)各個子模塊模型的最后設(shè)立“創(chuàng)建時間、創(chuàng)建人、修改時間、修改人”4 個日志類型的字段,系統(tǒng)會在員工操作后自動記錄以上四字段的內(nèi)容,且員工無法改動,以此方便查尋追責(zé),用以督促員工在收集、登記數(shù)據(jù)時確保數(shù)據(jù)完整無誤。
2.3.2 數(shù)據(jù)的查詢 數(shù)據(jù)的查詢功能是羊場信息管理模塊的核心功能,也是其他功能的基礎(chǔ)。通過連接SQLite 3 數(shù)據(jù)庫,為各子模塊的數(shù)據(jù)列表設(shè)置了2 種數(shù)據(jù)查詢方法:一是設(shè)置關(guān)鍵字搜索框關(guān)聯(lián)模型中的所有字段,用戶需要輸入具體關(guān)鍵字對數(shù)據(jù)進行搜索;二是按條件篩選,在各個模塊列表中按羊場的實際需求,選定一個或多個字段設(shè)置為篩選條件,用戶填寫篩選框條件即可在數(shù)據(jù)庫中篩選數(shù)據(jù)。
2.3.3 數(shù)據(jù)的添加 數(shù)據(jù)的增添功能可以通過點擊“添加”鍵填充字段內(nèi)容對數(shù)據(jù)進行逐條添加。在添加數(shù)據(jù)量龐大的情況下,用戶可通過數(shù)據(jù)批量導(dǎo)入功能一鍵導(dǎo)入數(shù)據(jù)。導(dǎo)入功能要求上傳的數(shù)據(jù)文件必須是純文本文件(Excel、Csv),文件中第一行數(shù)據(jù)名稱從左到右的排列順序必須與系統(tǒng)對應(yīng)的數(shù)據(jù)表中字段順序一致,文件內(nèi)缺失數(shù)據(jù)采用NA 代替,數(shù)據(jù)之間的間隙使用空格或Table 鍵。
2.3.4 數(shù)據(jù)的刪除與修改 數(shù)據(jù)的刪除功能是在查詢功能的基礎(chǔ)上進行操作。數(shù)據(jù)經(jīng)過查詢后,勾選目標(biāo)數(shù)據(jù)前的復(fù)選框進行刪除。批量刪除需根據(jù)刪除數(shù)據(jù)條數(shù)進行分頁設(shè)置,使需刪除的數(shù)據(jù)集中在第1 頁,點擊列表前的復(fù)選框進行整頁刪除。修改功能同刪除功能。
2.3.5 數(shù)據(jù)的導(dǎo)出與打印 數(shù)據(jù)的導(dǎo)出功能:數(shù)據(jù)經(jīng)過查詢后,按照數(shù)據(jù)量進行分頁設(shè)置,使需導(dǎo)出的數(shù)據(jù)集中在第1 頁,通過點擊“導(dǎo)出”鍵,將數(shù)據(jù)導(dǎo)入新建的Excel 或Csv 文件中,并自動保存在電腦C 盤的“用戶”文件中。
數(shù)據(jù)打?。翰僮髁鞒掏瑪?shù)據(jù)導(dǎo)出功能,打印設(shè)置默認(rèn)為橫向黑白打印,打印紙張默認(rèn)為A4。
2.4 肉羊遺傳評估模塊 種羊的遺傳評定是肉羊育種中的一項重要內(nèi)容,選種準(zhǔn)確與否對畜群生產(chǎn)性能的提高具有決定性作用[12]。隨著動物數(shù)量遺傳學(xué)的發(fā)展,基于BLUP 的選擇方法已經(jīng)廣泛應(yīng)用,但是這種計算方法比較復(fù)雜,主要使用幾款專業(yè)的遺傳評估軟件,如ASReml、DMU、WOMBAT 和BLUPF 90 等,但這些軟件不適用于沒有系統(tǒng)學(xué)習(xí)過BLUP 法原理以及軟件教程的羊場工作人員,這是目前遺傳評估軟件面臨的問題。本系統(tǒng)通過Python 的第三方庫rpy 2 調(diào)用R 語言的sommer 包,將遺傳評估軟件有效整合到現(xiàn)有的管理系統(tǒng)中,系統(tǒng)還為遺傳評估功能設(shè)置了簡單且靈活的Web 頁面,用戶只需在此頁面單純的進行鼠標(biāo)點擊,即可完成育種值計算操作,解決了上述遺傳評估軟件存在的問題。
肉羊遺傳評估模塊通過sommer 包建模,運用BLUP 法的單性狀動物模型與多性狀動物模型計算肉羊的育種值。BLUP 法是目前世界范圍內(nèi)主要的種畜遺傳評定方法[13-14],由Henderson 于20 世紀(jì)50 年代初提出,其本質(zhì)是處理不均衡資料的混合模型方程組(Mixed Model Equation)方法[15]。BLUP 法將選擇指數(shù)法和最小二乘估計方法有機結(jié)合起來,可以在估計育種值的同時對系統(tǒng)環(huán)境效應(yīng)進行估計和校正,消除了因選擇和淘汰等造成的偏差,通過BLUP 法計算所得的個體育種值具有最佳線性無偏性,精確性較高。
系統(tǒng)通過Django 框架的視圖與模板搭建計算育種值的選項卡表單Web 頁面,用戶在Web 頁面勾選單選框、復(fù)選框與下拉列表即可選定進行育種值計算的羊只數(shù)據(jù)與動物模型。選項卡表單Web 頁面如圖1 所示。
圖1 選項卡表單Web 頁面
用戶在點擊“計算”選項后,系統(tǒng)視圖接收用戶指令通過數(shù)據(jù)庫SQL 的JOIN 關(guān)鍵字進行多表聯(lián)查提取數(shù)據(jù),形成由羊只ID、固定效應(yīng)、表型性狀組成的數(shù)據(jù)文件,和由目標(biāo)羊只及其父母代、祖代的個體號組成的系譜文件。系統(tǒng)后臺將兩份文件的文件名以及用戶所選表型性狀與固定效應(yīng)的字段名作為參數(shù)傳輸?shù)紸nimalUtils 類函數(shù)相應(yīng)的活字段中,完成由R 語言指令拼接的字符串,最后通過調(diào)用rpy2 庫的r 方法執(zhí)行R語言程序,R 語言按照字符串指令進行常規(guī)育種值估計。系統(tǒng)調(diào)用sommer 包運算所得的育種值結(jié)果自動生成數(shù)據(jù)文件,在“育種值表”子模塊一鍵導(dǎo)入保存育種值數(shù)據(jù)。
系統(tǒng)的遺傳評估功能測試是將同一份測試數(shù)據(jù)分別通過系統(tǒng)與DMU 軟件進行育種值計算,在考慮相同固定效應(yīng)以及運算模型皆為動物模型BLUP 的情況下,比較系統(tǒng)與DMU 軟件的育種值結(jié)果。測試數(shù)據(jù)為真實數(shù)據(jù),由課題組提供,測試數(shù)據(jù)于2021 年采集自新疆地區(qū)的三寶牧業(yè)、塞外銀羚種羊場以及上品美羊科技有限公司,數(shù)據(jù)在剔除異常值后,共計采集1 689 只湖羊的初生重與斷奶重,系譜為完整的二代系譜與部分三代系譜。
遺傳評估功能測試方法具體為系統(tǒng)與DMU 軟件先后采用單性狀動物模型與多性狀動物模型,以羊只性別、出生類型、場號、出生年-季為固定效應(yīng),計算1 689只湖羊初生重與斷奶重的個體育種值。經(jīng)過反復(fù)測試,系統(tǒng)與DMU 軟件計算1 689 只湖羊初生重與斷奶重的個體育種值結(jié)果均基本一致,相關(guān)的前后端指令交互、多表聯(lián)查提取數(shù)據(jù)以及rpy2 調(diào)用R 語言等代碼的邏輯設(shè)計合理。
目前,我國研制出的肉羊遺傳評估軟件大多數(shù)采用的是傳統(tǒng)育種運算方法,很少涉及基因組選擇的分子育種方法,例如魯紹雄等[16]開發(fā)的肉羊信息管理與育種分析系統(tǒng)、趙曉亮[17]研制的肉羊數(shù)據(jù)自動發(fā)掘模塊與遺傳育種模塊以及何小龍等[18]開發(fā)的內(nèi)蒙古自治區(qū)種羊遺傳評估中心網(wǎng)絡(luò)管理信息系統(tǒng)都是采用的傳統(tǒng)育種運算方法。本系統(tǒng)目前已實現(xiàn)運用常規(guī)BLUP 法進行傳統(tǒng)的育種值運算,后續(xù)工作將進一步深度挖掘現(xiàn)代肉羊遺傳評估技術(shù),系統(tǒng)將加入GBLUP 法運算功能,建立基于基因組選擇的肉羊遺傳評估與分子育種服務(wù)技術(shù)平臺,構(gòu)建適合新疆肉羊產(chǎn)業(yè)高效發(fā)展的繁育體系。
在遺傳評估軟件選擇方面,相比于常用的DMU、ASReml、BLUP 90,R 語言的sommer 包在常規(guī)BLUP法運算方面相對平庸,在數(shù)據(jù)量龐大的情況下運算速度無法與前三者相比,甚至當(dāng)固定效應(yīng)與表型數(shù)據(jù)、種類較多,從而構(gòu)建的混合線性模型較為復(fù)雜時,sommer包在矩陣迭代中途會出現(xiàn)“因矩陣過于龐大而停止工作”的報錯代碼。在系統(tǒng)與DMU 軟件皆采用多性狀動物模型計算1 689 只湖羊初生重與斷奶重的個體育種值的測試中,系統(tǒng)調(diào)用sommer 包在矩陣迭代過程中用時不穩(wěn)定,最少用時28 min,最多用時90 min,用R 軟件跑sommer 包代碼用時也是如此,而DMU 用時僅在4 min以內(nèi),sommer 包運算結(jié)果雖然與DMU 軟件基本一致,但在運算時間上有很大差距。而且sommer 包本身不具有處理系譜數(shù)據(jù)的功能,需要先由R 語言的nadiv 包依據(jù)系譜信息構(gòu)建A 矩陣與A 逆矩陣,再由sommer 包構(gòu)建混合線性模型計算育種值。但在軟件的使用性質(zhì)上,只有R 語言的sommer 包為完全免費軟件,商業(yè)使用無需授權(quán),而且在GBLUP 法運算方面性能較為優(yōu)秀,可為后續(xù)開發(fā)的分子育種功能提供技術(shù)支持,所以選取R語言的sommer 包作為本系統(tǒng)調(diào)用的遺傳評估軟件。
本研究基于Django 框架設(shè)計了肉羊遺傳評估系統(tǒng),該系統(tǒng)的羊場信息管理模塊通過對羊場各項數(shù)據(jù)的增刪查改、導(dǎo)入與導(dǎo)出等操作,基本實現(xiàn)了羊場數(shù)據(jù)信息化管理與肉羊生產(chǎn)性能登記的功能,也為遺傳評估模塊提供完整、可靠的數(shù)據(jù)基礎(chǔ);該系統(tǒng)的肉羊遺傳評估模塊通過調(diào)用R 語言的sommer 包計算羊只個體育種值,經(jīng)真實數(shù)據(jù)反復(fù)測試,在測試同一份數(shù)據(jù)、考慮相同固定效應(yīng)的情況下,肉羊遺傳評估系統(tǒng)與DMU 軟件先后通過單性狀動物模型與多性狀動物模型計算1 689 只湖羊初生重與斷奶重的個體育種值的結(jié)果均基本一致,后臺代碼的邏輯設(shè)計合理,肉羊遺傳評估模塊可以實現(xiàn)肉羊遺傳評估與構(gòu)建羊場育種數(shù)據(jù)庫的功能;系統(tǒng)整體可以為新疆肉羊產(chǎn)業(yè)持續(xù)選育優(yōu)良肉羊品種提供技術(shù)支持。