么贺贵 高云燕 姜驿 王金豹 唐友
摘 要:该项目以云计算与弹性计算为实践方法,基于多种平台架构,对基因组预测分析系统进行开发设计。采用MySQL数据库,通过Apache构建平台,使用阿里云计算推出的弹性计算云服务器,运用Java Web来实现基因组预测分析功能。项目遵循软件工程生命周期,从需求分析、数据库设计等多方面进行详细阐述,全面介绍了基因组预测分析的全过程,具有计算准确度高,页面操作难度低,结果可视化等多个优点,能够为用户提供良好的云计算服务。
关键词:云计算;弹性计算;WebServer架构
中图分类号:TP311.52;R394 文献标识码:A 文章编号:2096-4706(2020)23-0076-04
Genome Prediction and Analysis System Based on Cloud Computing and
Elastic Computing
MO Hegui1,GAO Yunyan2,JIANG Yi1,WANG Jinbao1,TANG You1,3
(1.Electrical and Information Engineering College,Jilin Agricultural Science and Technology University,Jilin 132101,China;
2.Economic and Management School,Jilin Agricultural Science and Technology University,Jilin 132101,China;
3.Smart Agricultural Engineering Research Center,Jilin Agricultural Science and Technology University,Jilin 132101,China)
Abstract:This project takes cloud computing and elastic computing as the practical methods,and develops and designs the genome prediction analysis system based on various platform architectures. The MySQL database is used to build the platform through Apache,the elastic computing cloud server launched by Alibaba cloud computing is used to realize the function of genome prediction and analysis by using Java Web. The project follows the life cycle of software engineering,elaborates on the requirements analysis,database design and other aspects,and comprehensively introduces the whole process of genome prediction and analysis. It has many advantages,such as high accuracy of calculation,low difficulty of page operation,and visualization of results. It can provide users with good cloud computing services.
Keywords:cloud computing;elastic computing;WebServer architecture
0 引 言
近几年,信息技术与生物领域相融合的研究日趋丰富,高通量测序技术(RNA-set)迅速发展,为海量数据的计算提供了可能。云计算与基因预测整合了软件与硬件资源,并以易用、可统计使用量的服务方式向公众提供分布式、并行计算方案[1]。生物学信息内容研讨中常见辅助工具有基因组裁剪、短二阶对比与剖析[2]、无参考基因组的转录组剖析、有参考基因组的转录组剖析、监控突变基因、基因预估、基因组注解、吸附剖析与基因同源性剖析等等[3]。目前这类生物计算的相关软件种类繁多,技术也日趋多样化。在实际应用中,为了将计算时间最小化,通常会采用并行集群系统[4]。
本文基于对基因组预测分析的需求,采用全基因组选择(GS)方法,设计了基于云计算与弹性计算的基因组预测分析系统,本系统的核心内容主要是基因组数据的预测分析,基本功能包括数据文件的下载、浏览、共享、建设项目的打造、业务流程的打造、业务流程及数据展现等等,主要资源优势包括在线邮件认证、下载文档自动清理、权限自定义及弹性计算。
本系统实现了用户对基因组预测分析的基本需求,并在技术上有所突破,能够为生物界基因组预测分析所用,能够帮助育种人员完成种子筛选,帮助生物科研人员更深刻地理解基因变异是如何影响种子疾病、药物反应等其他生物进程。
本系统的研究依托吉林农业科技学院的省级大学生创新创业项目,利用在吉林农业科技学院的智慧农业工程研究中心的现有设备,对整体系统进行了开发和调试。其中唐友教授负责系统的整体设计和把控,么贺贵负责具体的系统实现。
1 基因組预测分析系统背景及意义
全基因组选择(GS)是一种遗传选育价值(GEBV)抉择办法,测试掩盖整个基因组的原子标记,而是选用整个基因组的遗传标记信息内容来对于个体展开遗传评估,进而取得更低的选育价值估计精确性。在大数据网络时代的今日,生物信息内容领域的数据呈指数级增长,怎样高效精确地对数据展开妥善处理、剖析是生物信息内容领域的痛点之一。根据相似难题,云计算的发展为其提供了良好的设计方案,研究人员可以通过网络平台获得后台提供的计算能力、储存能力以及交通设施,对于海量的生物学信息内容数据展开有效储存或者剖析。因此,本平台出现能够实现低成本、高效率、安全可靠的基因预测分析,从而推动信息生物领域更好更快的发展。
2 基因组预测分析系统介绍
2.1 系统架构设计
Web应用框架(Web Application Framework)是一种计算机软件框架,用来支持动态门户网站、网络应用程序以及应用服务的开发,本系统是基于Web应用框架展开设计的。用户在选用服务器时候通过HTTP协议衔接服务器,与此同时向服务器发出请求,服务器在收到用户请求时,展开静态与动态的辨别,如果是静态页面直接将请求结果发回浏览器界面,反之,若是动态界面,后续相应代码将在服务器执行,执行完成后返回结果。
本系统的Web应用框架主要通过Struts2及Hibernate组成,为了方便软件的设计与组成,采纳传统的MVC(Model-View-Controller)架构,将系统软件分成三个基本部分:分析模型(Model)、视图(View)及控制器(Controller)。Controller主要负责将请求转发并妥善处理。View留给界面工作人员展开图形界面设计,分析模型用作程序员编程应有的基本功能、实现遗传算法等等。
2.2 系统技术选型
本系统采用Eclipse来实现功能。Eclipse是一个开放源代码的、基于Java的可扩大开发网络平台。本系统的开发采用了Hibernate,Struts框架搭建并与MySQL数据库连接,综合运用了Java、SQL、HTML等技术。系统设计依据全基因组选择办法,通过测试掩盖全基因组的原子标记,利用全基因组的遗传标记信息内容对于个人展开遗传评价,进而取得更低的选育价值估计精确度。
本系统采用浏览器/服务器模式(B/S)模式,用户通过浏览器针对许多分布于网络上的服务器进行请求访问,请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器。使用户可以不用安装任何专门的软件就能实现在任何地方进行系统操作,降低了开发成本,减少了维护费用。
2.3 研究方法
本项目采用一个新基因组选择方法MMAP(Mining the Maximum Accuracy of Prediction)是根据目前流行的基因组选择方法建立方法库,通过它去预测大量不同的物种对应不同表型数据,采用交叉验证得到精准值,从而形成具有参考价值的知识库。然后根据知识库采用挖掘技术选择最优GS方法预测新的物种性状,指导育种分析。知识库内现有三百多种表型性状测得精准值,若有新GS方法将立即加入方法库,因而测得的新物种性状预测精准值就累积到知识库中。MMAP方法具体研究实现设计包括:实现GS方法库程序及接口、知识库调用及累积流程(Knowledge)、迭代挖掘方法过程(Mining)、收敛阈值判断(Convergence)、数据平台(Platform)和命令执行(Command)[5]。本项目内包含了MMAP、贝叶斯A(Byase A)、贝叶斯B(Bayes B)、贝叶斯C(Bayes C)、贝叶斯Cpi(Bayes Cpi)等多种遗传算法可供选择。
本项目采用弹性计算的方法对云计算进行技术支持。在云环境下,用户任务的请求量可能会比较大,如果系统只是部署在单一服务器上,势必会造成服务器过载,因此基于用户对不同计算能力的需求,本系统实现了弹性计算的解决方案。弹性计算主要分为客户端和服务端,其中服务端部署在运行系统同一操作系统环境下,客户端部署在任意终端上。服务端功能包括:监测当前系统的负载率、监测当前运行文件的大小、智能分析当前拥有的服务器数量、打包要计算的文件、发送和接收文件。客户端功能包括接收服务端发送的文件,调用本地资源进行计算、计算完成后回传结果文件。
2.4 系统流程图
图1为本平台的系统流程图,用户能够通过新建项目—选择文件—选择参数—开始项目对自己上传到本平台的数据进行差异化分析。在计算结束后用户可以下载结果文件,并进行图形化分析,从而更加直观的得出某一段基因组对此性状的影响。
3 基因组预测分析系统功能
3.1 实现功能介绍
根据系统性能和安全的需求,系统实现应该包括以下功能:(1)系统界面的各核心功能模块清晰明了,页面简洁大方,保证用户体验良好。系统程序要满足硬件的可拓展性,当系统需要拓展储存设备和计算设备时,保证系统能在正常情况下进行安全拓展。(2)系统架构设计要满足众多用户同时登录的需要,保证数据库的并發量。要保障数据能及时备份,当系统出现故障时,能及时恢复数据并保证系统正常运行。(3)外部安全针对网络威胁,系统应设置防火墙,防止来自网络的恶意攻击。若出现攻击事件,要能及时恢复数据,保障数据安全。内部安全针对系统进行加密,排除他人冒名登录以及账号轻易被盗等安全隐患,保障合法用户的使用安全。(4)可以在保证预测模型准确性的前提下,利用多线程技术,对预测模型的分析计算速度进行大幅度的提升(15倍以上的提升,具体提升的速度看CPU的核心数量,一般来说CPU的核心数量每多1倍,则运算速度会提升1倍,同时可以利用GPU技术对计算方法进行加速,因为GPU的核心数量是CPU核心数量的几百倍,则理论上计算速度也会提升数百倍)。(5)在研究完成现有方法的基础之上,将算法以软件包的形式部署到服务器上,并利用阿里云的弹性开启服务器技术,通过负载均衡和弹性计算将软件包以云服务器的方式进行配置,让外界用户能以Web服务访问的形式访问本网站,用户通过上传文件和选择计算方法就可以快速便捷地使用本算法(软件包),从而免除了复杂的软件依赖环境的安装。
3.2 功能介绍
根据功能需求分析得出,系统的模块设计共分为四大部分:用户登录模块、文件管理模块、项目管理模块和主页面模块。包括但不仅限于以下功能:(1)用户登录:使用户登入本系统。(2)用户管理:用户管理包括用户忘记密码、注册。(3)项目展示:项目展示包括项目状态的展示、流程状态的展示、流程的参数展示、流程计算的报告文件展示、搜索流程、和对流程进行排序展示。(4)私人文件页面:私人文件页面包括对私人文件的上传、下载、删除、展示、搜索和分享到公共文件页面。(5)公共文件页面:公共文件页面包括了对公共文件的下载、搜索和展示。(6)结果文件页面:结果文件页面包括了对结果文件的下载、搜索和展示。(7)项目页面:项目页面包括对项目的添加、流程的添加,对流程开始云计算、下载报告文件、对流程进行删除和查看流程参数。(8)备份恢复:备份恢复主要包括数据备份、还原数据库。(9)容灾初始化:容灾初始化主要针对服务器端异常断电之后,重启本系统之前对系统进行的初始化操作。(10)用户操作:用户操作包括修改密码,登出系统。(11)后台管理:后台管理包括了禁止用户登录、修改用户可同时运算流程数和修改流程参数。
3.3 系统平台首页展示
当用户注册账号后,在登录页输入账号和密码,点击登录,即可登入系统首页。在首页,用户可以查看项目/流程的详细信息和参数信息。系统首页如图2所示。
3.4 系统结果文件展示
当计算流程结束后,流程处于已完成状态,点击项目管理页面的下载结果文件按钮,即可下载计算完成的结果文件,如表1所示。结果文件中各项数据展示了各个基因组之间的相关性,正数即表明正相关,负数即表明负相关。
3.5 系统图形化分析展示
图形化分析是根据结果文件数据,在系统平台上进行动态分析的方法。能够直观展示各个基因组之间的相关性。纵坐标中,正数即表明正相关,负数即表明负相关。横坐标代表了每一个个体的个体名,图3就以叶宽(PH)、叶长(EH)、株高(DTT)三种性状为例子,进行了基因组分析。经过基因型数据进行分析,结果显示:叶宽采用贝叶斯A方法为最佳、叶长采用贝叶斯B方法为最佳、株高采用贝叶斯B方法为最佳。
4 基因组预测分析系统测试
一般情况,本系统的运行总是运行在特定的环境下,这种环境包括用户的软硬件环境和许多影响运行的外部的环境。为了给用户提供更好的体验,充分提高系统运行性能,在进行软件开发之后,会对影响系统运行环境的关键因素进行测试(关键因素:系统的架构、支撑软件、网络带宽、硬件配置、外部负载等)。
4.1 负载测试
本测试方法是通过改变系统承受的负载大小和负载的方式,从而模拟实际软件运行的条件,发现系统中的问题。通常采用增加访问用户的数量来观察系统的云计算时间和数据的吞吐量,以及系统运行的资源等。通过负载测试发现系统存在的问题,比如内存泄漏、不能实时同步等。
负载测试是针对我们系统开始的,应尽量符合正常的云计算环境。在工具JMeter中为每个负载测试设置线程、循环的次数和启动周期等参数值。针对本系统,主要是监控数据吞吐量、数据处理效率以及数据请求的时间。经过测试发现,本系统的数据吞吐量负载良好,响应时间较短,能够满足正常的云计算需求。
4.2 性能测试
性能测试是一个受控的分析过程,通过一个个小实例来完成系统的测试。通过性能测试发现,在正常负载情况下(20个用户)开启云计算功能的成功率为100%,响应时间与单个用户响应时间相同。
5 基因组预测分析系统总结与展望
目前云计算已经广泛应用在各个领域,相比传统计算方法其优势开始被广泛接受。大数据时代,生物科学领域的数据呈数量级增长,众多问题开始涌现,一方面是如何对数据进行有效储存和整理,保障数据的安全,另一方面是如何通过高效准确的方式对海量数据进行计算。以上两点是生物科学研究的症结所在,云计算的出现为解决这些问题指明了道路。
本系统主要以全基因组选择(GS)方法为载体,基于B/S框架搭建了基于云计算与弹性计算的基因组预测分析系统,主要工作内容总结如下:(1)首先根据需求设计了本系统的大致框架;其次从需求出发对功能、数据库等方面进行设计,考虑可行性;最后设计出系统的整体架构。(2)系统通过提出弹性计算的解决方案,为有高并发集群计算需求的用户,提供了更为高效的解决方案,同时用户可以通过登录并访问本系统享受数据资源的上传、分享等功能,为数据管理提供了便利。(3)系统的有效性,使各个功能能够顺畅运行,为基因组预测分析提供高效准确的计算工具。
本系统设计并开发了基于云计算与弹性计算的基因组预测分析系统,但仍有一些问题需要继续完善:(1)弹性计算需要大量的硬件资源支持,在系统使用中要实现真实的集群运行,缺乏相关硬件,若采用单个服务器作为运行环境,云计算的强大算力会大打折扣。(2)本系统的云计算模型基于GS设计,但生物信息处理的工具繁多,如何将更多的云计算功能集成到本平台,拓展功能外延是后续研究的重点工作之一。(3)为了提升系统的使用体验,上传基因组数据格式如何实现自动化规范,后续需要继续改进。
6 结 论
随着测序技术的发展,外部政策的不断完善,加上大数据与生物医药领域的不断融合与发展,未来将涌现出更多创新型大数据应用场景。弹性计算的应用还为云计算提供了一种廉价有效的办法拓展网络设备及服务器的带宽、增多吞吐量、增强网络平台数据处理能力。可迎合不同客户的计算需求,在最低限度增加成本的同时,更好的发挥云计算的作用,提升网络平台的实用性及可用性。
本系统的开发严格遵照软件工程生命周期,从需求剖析、数据库系统设计、系统功能设计等等方面对于各个阶段展开详细设计,提高基因组预测的准确性,实现低成本、高效率、安全可靠的基因预测分析,从而推动信息生物领域更好更快的发展。
参考文献:
[1] 吳浩宇.基于Hadoop的同源性搜索GO功能注释平台的研究 [D].南京:南京农业大学,2013.
[2] EKANAYAKE J,GUNARATHNE T,QIU J. Cloud Technologies for Bioinformatics Applications [J].IEEE Transactions on Parallel and Distributed Systems,2011,22(6):998-1011
[3] 王小磊,李江域,毛逸清,等.利用Galaxy与高性能计算集群构建本地化一站式生物信息学平台 [J].军事医学,2013,37(10):780-783.
[4] 王秋文.基于Hadoop的全基因组关联研究系统设计与实现 [D].天津:天津大学,2012.
[5] 唐友.基于全基因组测序的表型预测方法研究及其体系构建 [D].哈尔滨:东北农业大学,2017.
作者简介:么贺贵(2000—),男,汉族,河北唐山人,本科在读,研究方向:Web前端;通讯作者:唐友(1979—),男,汉族,黑龙江哈尔滨人,系统架构师,教授,博士,主要研究方向:计算机科学、生物信息学、遗传统计。