張國強 劉長寧



摘要: 在針對長非編碼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.