基于
MongoDB
蒙古高原
数据管理
系统
设计
实现
邬学敏
SOFTWARE软 件2022第 43 卷 第 12 期2022 年Vol.43,No.12基金项目:内蒙古自治区科学技术厅研究课题蒙古高原家畜遗传资源库与信息平台建设及种质资源开发利用(2020ZD0007);内蒙古自然科学基金全基因组重测序数据的变异检测和转录组差异表达分析的高效并行化算法和软件研究(2019MS03014)作者简介:邬学敏(1993),女,硕士,助教,研究方向:大数据智能与知识发现;高静(1970),女,博士,教授,研究方向:大数据智能与知识发现。基于 MongoDB 蒙古高原家畜基因组大数据管理系统的设计与实现邬学敏1 高静2(1.包头职业技术学院计算机与信息工程系,内蒙古包头 014000;2.内蒙古农业大学计算机与信息工程学院,内蒙古呼和浩特 010000)摘要:目前,国内外已有许多动物基因组学数据库,却还未有专门针对蒙古高原家畜基因组信息构建的数据库。此外,传统的基因组数据库平台一般采用关系型数据库存储数据,但在面对海量的基因组数据时出现了读写性能差、可靠性低、不易扩展等问题。为解决上述问题,收集整合了牛、绵羊、山羊、骆驼等蒙古高原家畜的基因组数据,应用非关系型数据库,设计并实现了基于 MongoDB 存储架构的蒙古高原家畜基因组大数据管理系统。该系统的实现为蒙古高原家畜分子生物学研究提供了一个良好的数据平台,也解决了海量基因组数据的存储与管理问题。关键词:基因组学数据库;蒙古高原家畜;海量数据;非关系型数据库;MongoDB中图分类号:TP311.13;TP311.5文献标识码:ADOI:10.3969/j.issn.1003-6970.2022.12.002本文著录格式:邬学敏,高静.基于MongoDB蒙古高原家畜基因组大数据管理系统的设计与实现J.软件,2022,43(12):004-008+014Design and Implementation of Mongolia Plateau Genome Big Data Management System Based on MongoDBWU Xuemin1,GAO Jing2(1.Department of Computer and Information Engineering,Baotou Vocational and Technical College,Baotou Inner Mongolia 014000;2.College of Computer and Information Engineering,Inner Mongolia Agricultural University,Hohhot Inner Mongolia 010000)【Abstract】:Atpresent,therearemanyanimalgenomicsdatabasesathomeandabroad,butthereisnodatabasespeciallybuiltforthegenomeinformationoflivestockonthemongolianplateau.Inaddition,thetraditionalgenomedatabaseplatformgenerallyusesrelationaldatabasestostoredata,butinthefaceofmassivegenomedata,problemssuchaspoorread-writeperformance,lowreliability,anddifficultexpansionhaveemerged,Inordertosolvetheaboveproblems,wecollectedandintegratedthegenomedataofcattle,sheep,goats,camelsandotherlivestockonthemongolianplateau,anddesignedandimplementedabigdatastoragesystemforthegenomeoflivestockonthemongolianplateaubasedontheMongoDBstoragearchitectureusinganonrelationaldatabase.TheimplementationofthissystemprovidesagooddataplatformforthemolecularbiologyresearchoflivestockontheMongolianplateau,andalsosolvestheproblemofstorageandmanagementofmassivegenomedata.【Key words】:genomicsdatabase;mongolianplateaulivestock;massivedata;non-relationaldatabase;MongoDB基金项目论文0 引言随着测序技术的持续发展以及实验数据的不断积累,当前已形成大量一级生物信息数据库,如 NCBI、ENSEMBL 及 USCS。它们各自按一定的目标归类整合实验的原始数据,并提供数据查询、下载及处理等服务。但是在实际研究中,一级数据库不一定能满足研究人员特定的数据及功能需求,因此,针对不同研究内容及需要,进一步整合一级数据库中的知识和信息,通过5邬学敏高静:基于 MongoDB 蒙古高原家畜基因组大数据管理系统的设计与实现系统化创建专用二级数据库。当前,关于动物基因组学的二级数据库非常多,如牦牛基因组数据库、家蚕基因组数据库和猪基因组数据库1-3,却大多集中在全球普遍饲养的动物,还未构建专门针对蒙古高原家畜研究的基因组数据库。此外,随着生物科学技术的飞速发展,蒙古高原家畜基因组数据量已增长到 TB 级别,基于关系型数据库的传统存储方式在应对大数据时显露出不足。本文收集整合了牛、羊、骆驼等蒙古高原家畜的基因组数据,通过分析数据的特征,制定了可行的 MongoDB存储架构,并采用业界当前的主流技术,实现了蒙古高原家畜基因组大数据管理系统,测试结果表明该系统具有良好的读写性能。1 蒙古高原家畜基因组数据的特征及传统存储方式的问题为了给蒙古高原家畜基因组大数据管理系统的构建提供充分的数据支持,目前已从 ENSEMBL 和 NCBI等公共数据库下载整合了羊、牛、骆驼等蒙古高原家畜的基因组数据 17000 多条,共约 3TB 的数据量,通过分析已有的数据资源,总结了蒙古高原家畜基因组数据具有以下几个特征:(1)结构复杂。除了有结构化的描述信息,还有非结构化的序列文件,如.sra 文件(高通量测序数据序列文件)以及.gbff文件(全基因组序列文件)。(2)格式多样。由于数据的来源众多,格式不一,所以不同序列文件所需存储的描述信息不尽相同。(3)大文件。单个序列文件达 GB 级别。(4)数据量大。目前数据总量已达到 TB 级别。此外,蒙古高原家畜基因组数据在实际业务工作中还具有以下特征:(1)集中写入大批量数据的业务较多,导入之后,更改操作很少发生。(2)需支持多种查询方式,并且具有良好的查询性能。(3)随着测序技术的发展,数据量还在不断增加,要求数据库具有很好的可扩展性。综上所述,蒙古高原家畜基因组数据呈现出海量、大文件、结构复杂等一系列大数据特征。传统的基因组数据存储系统都是基于关系型数据库设计研发的,提供给数据存储和管理一个高效率的平台,但由于自身的限制,在面对蒙古高原家畜基因组大数据时存在着许多的弊端。首先,关系型数据库需要预先设计固定的表结构,因此无法灵活添加多样化的基因组信息;其次,因为 GB 级别的序列文件不断增加,造成关系型数据库的体积持续增大,读写性能不断下降;最后,关系型数据库集群架构存在着关系复杂、维护成本高、代码处理复杂及难以横向扩展的问题。然而 NoSQL 非关系型数据库恰恰能够弥补以上所列举的不足之处。其中,MongoDB 数据库发展较好,以其高性能、易部署、高可用的优点成为了关系型数据库的替代品4。2 基于 MongoDB 的存储架构MongoDB 由 C+语言开发,是一款面向文档的分布式数据库,为海量大数据的存储问题提供了高性能的解决方案。再者,MongoDB 面向集合存储,采用BSON 作为基本存储单位,并且模式自由,因此可根据实际需求动态地插入格式多样的基因组序列相关描述信息。另外,MongoDB 具有丰富的查询表达方式,完全能够满足蒙古高原家畜基因组数据的查询需求5,6。分布式文件系统GridFS是MongoDB的一个子模块,提供了大型二进制数据在数据库中的解决方案,可用来存储大型基因组序列文件并且支持分布式应用。GridFS 将巨大文件分割成很多小文件块并以两种集合配合的方法存储文件。Files 集合来存储文件相关信息,Chunks集合用来存储二进制文件块,两集合用 ID 对应。默认情况下,MongoDB 用时间戳+机器+进程标识+计算器计算获得 ID,它具有高度的唯一性,可达到秒级。另外,GridFS 通过复制和自动分片机制突破了一般文件系统对文件的限制,故障恢复能力强,扩展性好7。2.1 存储方案前文提及的 MongDB 的文档型存储模式和 GridFS的大文件存储模式在蒙古高原家畜基因组大数据存储方面具有很多优势,但也存在一些各自的不足,文档型存储模式虽然可以有效的存储基因组的描述信息,但对于序列文件本身却因其长度远远大于 16M 而无法有效的存储。相反,基于 GridFS 的大文件存储方式可有效的存储序列文件,但对于格式多样的描述信息却无能为力。因此本文设计了一种新的存储方案,如图 1 所示,将 MongoDB和 GridFS 有效结合,存储优势得到了更大的发挥。首先采用 GridFS 的大文件存储方式将序列文件插入数据库中,然后利用第三方编程语言,通过 MongoDB 提供的与之对应的 API 接口,采用 Excel 批量数据导入的方式获取有关序列文件的相关描述信息,并将其通过传统的文档型存储模式以一条文档信息形式插入集合中。在此过程中最重要的是需要将该序列文件 ID 作为一条记录存入描述的文档中,以此关联序列文件的 ID和描述信息的 ID,因此,外部通过一条文档中记录的序列文件 ID 就可以快速检索到与该文档记录信息对应的序列文件并进行读取下载。6软 件第 43 卷 第 12 期SOFTWARE2.2 存储结构本系统中整合的绵羊、山羊、牛及骆驼基因组数据有三类,第一类为全基因组数据,可供研究人员对于蒙古高原家畜完整的基因信息进行分析;第二类为高通量测序数据,可供研究人员对于蒙古高原家畜的血液、肌肉、胃和肠等器官组织的基因信息进行分析;第三类为变异数据,可供研究人员对目前已知的变异情况进行了解。本文结合 MongoDB 的存储方案和基因组数据的分类信息,构建了两层的数据库存储结构,分别为元数据层和具体的数据集。用户通过元数据了解数据库中数据集的描述信息,并根据元数据提供的数据类型进行读取和转换数据格式。(1)元数据,元数据集中包含蒙古高原家畜基因组数据集的内容描述以及每项数据的类型和含义。(2)数据集,建了三个集合来存储三类数据的描述信息,分别为全基因组数据集、高通量测序数据集及变异数据集,如图 2 所示。高通量测序数据集中文档由自动生成ID(_id)、自定义文件ID、运行号(Run)、生物项目(Bioproject)、实验类型(Assay_Type)、文件大小(mBytes)、组织名称(Tissue)、测序方式(LibraryLayout)、测序类型(LibrarySource)、实验处理(Treatment)、性别(Sex)、品种(Breed)、年龄(Age)、发育阶段(developmental_stage)、测序平台(Platform)、测序设备(Instrument)、测序实验(Experiment)、生物标本(bioSample)、物种(Organism)、中心名称(cent