APP下载

Django对MVC模式的发展及其在CRISPRlnc数据库中的运用

2021-10-24张国强刘长宁

计算机时代 2021年10期

张国强 刘长宁

摘要: 在针对长非编码RNA(lncRNA)进行CRISPR/Cas9基因编辑时,从头设计有效singleguide RNA(sgRNA)并非易事,因此收集了已经发表文章中经实验验证过的sgRNA信息,并基于MTV模式的Django框架,开发出CRISPRlnc网站数据库。该数据库的开发将为科研工作者针对lncRNA进行CRISPR/Cas9基因编辑提供有效的辅助,并促进lncRNA的功能研究和CRISPR/Cas9技术的发展。

关键词: MTV模式; Django框架; lncRNA; CRISPR/Cas9

中图分类号:TP392          文献标识码:A     文章编号:1006-8228(2021)10-32-03

Django its development to the MVC pattern and its application

in the CRISPRlnc database

Zhang Guoqiang1,2, Liu Changning1

(1. Xishuangbanna Tropical Botanical Garden Chinese Academy of Sciences, Xishuangbanna, Yunnan 666303, China;

2. University of Chinese Academy of Sciences)

Abstract: It is not easy to design effective singleguideRNAs (sgRNAs) from scratch in CRISPR/Cas9 gene editing for long non-coding RNAs (lncRNAs), so the sgRNAs information verified by experiments in published articles is collected, and the CRISPRlnc website database based on the Django framework of MTV pattern is developed. The CRISPRlnc will not only provide a effective assistance for researchers using CRISPR/Cas9 to edit lncRNAs, but also promote the functional study of lncRNAs and the development of CRISPR/Cas9 technology.

Key words: MTV pattern; Django framework; lncRNA; CRISPR/Cas9

0 引言

由于互联网技术的快速发展以及各种信息的急剧膨胀,网站数据库的开发对于开发时间、开发成本和开发效率的要求更加苛刻。因此,快速搭建一个完整的Web框架对于网站数据库的开发十分重要[1]。本文探究了计算机网络体系架构的发展和MVC模式,着重介绍了Django框架对MVC模式的继承和发展,并展示了使用Django框架快速开发CRISPRlnc网站数据库的实现。

LncRNA是一类长度超过200个核苷酸的非编码RNA转录本[2]。因其位置和发挥功能机制的多样性,在运用CRISPR/Cas9基因编辑技术进行lncRNA的基因编辑时,从头设计有效的sgRNA并非易事[3]。因此,我们收集了已发表的经过实验验证的sgRNA信息并基于Django框架构建了CRISPRlnc数据库。CRISPRlnc数据库的开发不仅会为lncRNA的基因组编辑提供有效的辅助,还会为将来lncRNA的功能研究提供一个崭新的平台,并促进CRISPR/Cas9基因编辑技术的应用。

1 体系架构的发展与MVC模式

计算机网络的体系架构从最初的集中式结构,经过客户端/服务器架构(Client/Server,C/S),发展到广泛应用的浏览器/服务器架构(Browser/Server,B/S)。B/S是从C/S派生出来的新生代架构,由浏览器和服务器端构成,提高了开发效率和维护成本,更适合当前网络技术的发展[4]。MVC模式是Model-View-Controller的简称,即模型-视图-控制器,是一种软件设计的典范[5],MVC的分层、分治思想与当前流行的分布式架构相得益彰,是在分布式架构特别是B/S出现后的主流设计模式。

1.1 C/S和B/S架构

在C/S架构的系统中,客户端部分负责执行前台功能,服务器主要用于对数据的处理和对系统的维护上。C/S架构开发模型简单,数据操作和事务处理能力强,但由于C/S结构被设计为两层结构,显示逻辑和应用业务逻辑被放在了客户端,这样就会对客户端的运行能力和存储空间等硬件配置有较高的要求。另外,在升级客户端时,需要对每个用户的电脑进行升级,大大增加了软件升级所需的工作量。为了克服C/S架构出现的问题,技术人员开发出了分布式结构,将系统的结构有两层推向了三层B/S架构,它将客户端和服务器之间通过运用服务程序连接,用户只需使用浏览器就可以轻松实现对系统的访问[6]。与C/S相比,B/S架构升级简单,运用起来也很方便,同时对客户端的硬件配置要求也不高。

1.2 MVC模式

MVC是在二十世纪八十年代开发出来的一种设计模式,它将输入、处理和输出三部分强制性地分开,呈现出松耦合的状态,如今已被广泛地应用于网络框架和其他应用程序中[7]。基于MVC模式开发的网络框架从逻辑上可以分为三层:模型,视图和控制器。控制器负责接受用户的输入请求,并传递命令给视图或者模型,它本身不做任何处理,也不输出数据;模型表示业务对象与数据库的映射(ORM),同时负责存取数据,将业务数据反馈给视图等;视图负责给用户展示信息,在数据库网站的開发中,视图通常由HTML元素、模板标记语言和模型反馈的数据共同组成。MVC模式作为B/S架构的主流设计模式,可以很好的与其相结合,并在理论上给B/S架构实现逻辑处理和表现分离以指导,对网站数据库的开发具有重要作用。

2 Django框架与MVC模式

2.1 Django框架对MVC模式的发展

Django是基于Python语言在MVC模式的基础上开发的MTV模式(Model、Template和View)的开源Web框架,用少量的代码就可以实现强大的功能(图1)。Django框架遵循MVC模式,其中心思想是减少代码的重复编写并降低模块间的耦合性。Django中的模型和MVC框架中的模型功能相同,负责与数据库的交互;Django的视图与MVC中的视图略有不同,主要完成数据的存取、调用模型等功能;Django的模板是MVC框架中所没有的,它负责定义文件的结构或布局的文件,支持简单的逻辑结构,将页面展示给用户[8]。

通过Django框架能快速完成网站搭建,结合其众多的扩展插件,可以快速开发出功能强大的网站服务。不同于MVC框架,Django将controller接受用户输入的部分由框架自行处理。

2.2 Django框架的优点

Django本身就来自于实践,注重代码的利用率,另外丰富的组件可以方便的以插件的形式应用于整个网站,提高了网站的开发效率。总的来说,Django框架主要有以下几个优点。

⑴ 灵活的URL设计:Django框架中URL设计简洁灵活,功能强大。URL通常与视图相配合,在urls.py中通过Python正则表达式处理,使用的是匹配模式,便于搜索引擎的搜索。

⑵ 对象关系映射:Django的数据库组件一一对象关系映射提供了数据模块和数据引擎之间的接口。另外,Django支持的数据库有PostgreSQL、MySQL和SQLite等,只需要修改配置文件就可以切换数据库,使数据库的开发更为灵活。

⑶ 可扩展性:Django架构的每一部分相互独立,可以根据需求使用第三方库来扩展Web服务。

3 Django框架在CRISPRlnc数据库中的实现

Django框架更专注于数据层面的实现,方便科研人员快速开发相关的数据库网站。在此,我们以CRISPRlnc数据库为例,展示基于Django框架网站数据库的实现过程和CRISPRlnc数据库的一些基本信息。

3.1 数据的收集

首先在PubMed上根据关键字检索已发表的与lncRNA相关的文献,然后通过Python脚本筛选出与CRISPR/Cas9基因编辑相关的文章。在人工阅读筛选出的200多篇文献后,共提取出305个lncRNA和2102个有效的sgRNA。最后将收集的lncRNA和sgRNA的相关信息整合成数据库需要的格式。

3.2 开发环境搭建

CRISPRlnc数据库的构建以Linux服务器为平台,Nginx作为Web服务器,uWSGI作为通讯协议,基于Django框架,使用Python语言开发的。

首先在Linux服务器上安装Nginx、Django、uWSGI等相关软件。然后创建Django项目,并对Nginx、Django和uWSGI进行配置。启动网站,完成数据库开发环境的初步搭建。

3.3 网站建设和部署

网站的建设主要由网页的设计和开发,数据的导入,以及相关功能的实现等几部分组成。通过前期对生物信息数据库的调研并结合课题组已有资源,制定的设计方案如图2所示:数据库网站的主体框架由Django搭建;网页的开发是使用HTML、CSS以及JavaScript等网站开发语言,结合Bootstrap前端框架完成;网站的数据库是使用Django默认的SQLite数据库,进入SQLite控制台输入前面整合好的符合数据库格式的文件即可;在网站的功能方面,除了基本的检索和展示外,还增加了在线BLAST和GBrowse功能,BLAST功能是依靠Django应用程序Django-blastplus实现的,GBrowse功能是由Biodalliance实现的。

最后,購买域名并在阿里云服务器上完成解析,修改Nginx、uWSGI和Django的配置信息,启动网站,即可实现数据库的远程访问功能。

3.4 网站展示

在用户界面,我们提供了浏览、检索、下载数据以及在线BLAST服务和基因组浏览器等功能(图3)。为方便用户使用CRISPRlnc数据库,还提供了一个说明文档,里面列出了数据库中每个工具的使用方法和使用CRISPR/Cas9对lncRNA进行基因编辑的一些注意事项。另外,我们在网页的下方还添加了链接栏,包括lncRNA的数据库和sgRNA的设计工具。

4 结束语

Django是一个可以被用来快速开发功能强大的网站数据库的Web框架,特别适合专注于数据层面的科研工作者们使用。文中基于Django开发的CRISPRlnc数据库将为科研工作者针对lncRNA进行CRISPR/Cas9基因编辑提供有效的辅助,并促进CRISPR/Cas9基因编辑技术的应用和进步。CRISPRlnc数据库访问网址为:http://www.crisprlnc.org。

参考文献(References):

[1] 汪洋,姜新通.MVC框架在Python与Django下的设计研究[J].电脑与信息技术,2021.29:55-57,63

[2] K. C. Wang, H. Y. Chang. Molecular mechanisms of long noncoding RNAs[J]. Mol Cell,2011.43:904-914

[3] A. Goyal et al. Challenges of CRISPR/Cas9 applications for long non-coding RNA genes[J]. Nucleic Acids Res,2017.45:e12

[4] 王运冰.基于B/S和C/S混合体系结构下的BIM监理管理系统研究[D].武汉理工大学硕士学位论文,2017.

[5] 任中方,张华,闫明松等.MVC模式研究的综述[J].计算机应用研究,2004.10:1-5

[6] 于少波,李新明,刘东.基于B_S和MVC模式的武器装备体系评估系统设计[J].太赫兹科学与电子信息学报,2015.13:635-640

[7] 杨凡.基于MVC模式云桌面框架设计与实现[D]. 电子科技大学硕士学位论文,2017.

[8] 黄玮.毛果杨基因数据库搭建以及可视化平台的实现[D].哈尔滨工业大学硕士学位论文,2019.