計算機本科生畢業(yè)論文——基因組注釋管理系統(tǒng)_第1頁
計算機本科生畢業(yè)論文——基因組注釋管理系統(tǒng)_第2頁
計算機本科生畢業(yè)論文——基因組注釋管理系統(tǒng)_第3頁
計算機本科生畢業(yè)論文——基因組注釋管理系統(tǒng)_第4頁
計算機本科生畢業(yè)論文——基因組注釋管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、PAGE PAGE 本科生畢業(yè)論文(設計)題 目: 基因組注釋管理系統(tǒng) 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc452749272 摘要 PAGEREF _Toc452749272 h HYPERLINK l _Toc452749273 關鍵詞 PAGEREF _Toc452749273 h HYPERLINK l _Toc452749274 Abstract PAGEREF _Toc452749274 h HYPERLINK l _Toc452749275 Key words PAGEREF _Toc452749275 h HYPERLINK l _Toc45

2、2749276 1 緒論 PAGEREF _Toc452749276 h HYPERLINK l _Toc452749277 1.1 研究背景及意義 PAGEREF _Toc452749277 h HYPERLINK l _Toc452749278 1.2 國內(nèi)外研究現(xiàn)狀 PAGEREF _Toc452749278 h HYPERLINK l _Toc452749279 1.3 研究目的和內(nèi)容 PAGEREF _Toc452749279 h HYPERLINK l _Toc452749280 2 基因組注釋相關概念及處理技術 PAGEREF _Toc452749280 h HYPERLINK

3、l _Toc452749281 2.1 基因組 PAGEREF _Toc452749281 h HYPERLINK l _Toc452749282 2.2 基因組注釋 PAGEREF _Toc452749282 h HYPERLINK l _Toc452749283 2.3 相關數(shù)據(jù)格式 PAGEREF _Toc452749283 h HYPERLINK l _Toc452749284 2.3.1 fasta文件格式 PAGEREF _Toc452749284 h HYPERLINK l _Toc452749285 2.3.2 gff3文件格式 PAGEREF _Toc452749285 h

4、HYPERLINK l _Toc452749286 2.4 相關數(shù)據(jù)庫 PAGEREF _Toc452749286 h HYPERLINK l _Toc452749287 2.5 功能注釋工具Blast PAGEREF _Toc452749287 h HYPERLINK l _Toc452749288 3 開發(fā)環(huán)境和應用技術 PAGEREF _Toc452749288 h HYPERLINK l _Toc452749289 3.1 開發(fā)環(huán)境搭建 PAGEREF _Toc452749289 h HYPERLINK l _Toc452749290 3.2 Python語言概述 PAGEREF _T

5、oc452749290 h HYPERLINK l _Toc452749291 3.2.1 Python語言簡介 PAGEREF _Toc452749291 h HYPERLINK l _Toc452749292 3.2.2 Python語言特性 PAGEREF _Toc452749292 h HYPERLINK l _Toc452749293 3.3 Django概述 PAGEREF _Toc452749293 h HYPERLINK l _Toc452749294 3.3.1 Django簡介 PAGEREF _Toc452749294 h HYPERLINK l _Toc45274929

6、5 3.3.2 Django特性 PAGEREF _Toc452749295 h HYPERLINK l _Toc452749296 3.3.3 MVC開發(fā)模式 PAGEREF _Toc452749296 h HYPERLINK l _Toc452749297 3.4 MySQL數(shù)據(jù)庫概述 PAGEREF _Toc452749297 h HYPERLINK l _Toc452749298 3.4.1 MySQL數(shù)據(jù)庫簡介 PAGEREF _Toc452749298 h HYPERLINK l _Toc452749299 3.4.2 MySQL與Django的連接訪問 PAGEREF _Toc4

7、52749299 h HYPERLINK l _Toc452749300 4 基因組注釋系統(tǒng)需求分析與設計 PAGEREF _Toc452749300 h HYPERLINK l _Toc452749301 4.1 系統(tǒng)需求分析 PAGEREF _Toc452749301 h HYPERLINK l _Toc452749302 4.1.1 系統(tǒng)功能需求分析 PAGEREF _Toc452749302 h HYPERLINK l _Toc452749303 4.1.2 系統(tǒng)界面需求分析 PAGEREF _Toc452749303 h HYPERLINK l _Toc452749304 4.2 系

8、統(tǒng)總體設計 PAGEREF _Toc452749304 h HYPERLINK l _Toc452749305 4.2.1 系統(tǒng)總體架構 PAGEREF _Toc452749305 h HYPERLINK l _Toc452749306 4.2.2 數(shù)據(jù)庫設計 PAGEREF _Toc452749306 h HYPERLINK l _Toc452749307 5 基因組注釋系統(tǒng)功能實現(xiàn) PAGEREF _Toc452749307 h HYPERLINK l _Toc452749308 5.1 用戶登錄模塊 PAGEREF _Toc452749308 h HYPERLINK l _Toc4527

9、49309 5.2 分類檢索模塊 PAGEREF _Toc452749309 h HYPERLINK l _Toc452749310 5.3 增加數(shù)據(jù)模塊 PAGEREF _Toc452749310 h HYPERLINK l _Toc452749311 5.4 刪除數(shù)據(jù)模塊 PAGEREF _Toc452749311 h HYPERLINK l _Toc452749312 5.5 更改數(shù)據(jù)模塊 PAGEREF _Toc452749312 h HYPERLINK l _Toc452749313 5.6 Blast比對模塊 PAGEREF _Toc452749313 h HYPERLINK l

10、_Toc452749314 5.7 上傳文件模塊 PAGEREF _Toc452749314 h HYPERLINK l _Toc452749315 5.8 實現(xiàn)總結與界面展示 PAGEREF _Toc452749315 h HYPERLINK l _Toc452749316 6 測試概述 PAGEREF _Toc452749316 h HYPERLINK l _Toc452749317 6.1 軟件測試的目的 PAGEREF _Toc452749317 h HYPERLINK l _Toc452749318 6.2 測試過程 PAGEREF _Toc452749318 h HYPERLINK

11、 l _Toc452749319 6.2.1 系統(tǒng)整體運行測試 PAGEREF _Toc452749319 h HYPERLINK l _Toc452749320 6.2.2 上傳文件功能測試 PAGEREF _Toc452749320 h HYPERLINK l _Toc452749321 6.2.3 Blast比對功能測試 PAGEREF _Toc452749321 h HYPERLINK l _Toc452749322 6.2.4 分類檢索功能測試 PAGEREF _Toc452749322 h HYPERLINK l _Toc452749323 6.3 測試結論 PAGEREF _To

12、c452749323 h HYPERLINK l _Toc452749324 7 總結與展望 PAGEREF _Toc452749324 h HYPERLINK l _Toc452749325 致謝 PAGEREF _Toc452749325 h HYPERLINK l _Toc452749326 參考文獻 PAGEREF _Toc452749326 h 基因組注釋管理系統(tǒng)摘要:隨著測序技術進步和測序成本下降,越來越多的基因組項目得以啟動并相繼完成,生物領域科研人員對基因組注釋信息自動化管理及可視化展示的需求越來越迫切。本文針對基因組注釋信息維護和使用的需要,設計并開發(fā)了基因組注釋管理系統(tǒng)。該

13、系統(tǒng)采用當前流行的MVC設計模式,使用Django技術,利用Python、JavaScript、Html5以及CSS3語言進行開發(fā)。它可以利用用戶上傳的基因組序列和gff3注釋文件自動化生成CDS序列、蛋白質序列以及功能注釋信息等,并支持Blast序列相似性搜索、基因ID和注釋功能關鍵詞搜索。經(jīng)過測試,該系統(tǒng)性能穩(wěn)定,能滿足用戶的基本需求。關鍵詞:基因組注釋;基因結構維護;可視化展示;功能注釋Genome Annotation Management SystemAbstract: With the progress of sequencing technology and decrease o

14、f the sequencing cost, more and more genome projects were able to be launched and finished. Consequently, there are urgent demands for automatic management and data visualization in genome annotation. In this paper, a genome annotation management system aiming at the need of using and maintaining ge

15、nome annotation information has been designed. This system uses the MVC architectural pattern, Django framework and many other languages such as Python, JavaScript, Html5 and CSS3 to generate coding sequence and protein sequence automatically after the administrator uploads genome sequence and gff3

16、annotation files. Besides, users can use and update these data, run blast and search data via different ways. After testing, this system appears to be stable and convenient, which means it basically meet the requirements of biological scientists.Key words: Genome annotation; Genome structure mainten

17、ance; Data visualization; Function annotation 緒論 研究背景及意義隨著二十世紀以來自然科學的迅猛發(fā)展,生物科學和計算機信息技術成為兩個熱點領域。生物信息學是利用計算機科學的技術手段來研究生物學數(shù)據(jù)的一門學科 REF _Ref452790975 w h * MERGEFORMAT 1。由于測序技術的不斷進步與測序成本的不斷下降,越來越多的生物被測序。研究人員每測完一個物種的基因組一般都會建立一個網(wǎng)頁數(shù)據(jù)庫,全球各地生物信息數(shù)據(jù)庫的數(shù)量不斷增加,基于數(shù)據(jù)庫的大量研究工作將有所突破 REF _Ref452791100 w h * MERGEFORMAT

18、2。數(shù)據(jù)量的暴增使得研究人員用手工管理基因組數(shù)據(jù)變得非常困難。此外,最初注釋的基因信息可能存在錯誤或遺漏的問題,隨著實驗的推進,研究人員對于基因的認識越來越完善,因此需要不斷豐富基因集。目前,生物學家管理基因組數(shù)據(jù)通常用Linux命令行和編寫程序來完成,但大部分的生物學家對編程不熟悉,普通的文本編輯搜索使用不便,科學家對基因組數(shù)據(jù)的管理難以進行。因此,有必要設計開發(fā)自動化的注釋管理工具。 國內(nèi)外研究現(xiàn)狀1995年,Owen White設計出了第一套基因組注釋軟件系統(tǒng) REF _Ref452791238 w h * MERGEFORMAT 3。如今大多數(shù)注釋系統(tǒng)與之類似?;蚪M注釋主要是基于相似

19、序列具有相似功能的假設,利用計算機程序與已知功能的核酸或蛋白質數(shù)據(jù)庫如NR、SwissProt、KEGG、GO等進行序列比對,獲得未知基因序列的功能信息。目前,一些國際著名的機構如NCBI(National Center for Biotechnology Information)、UCSC(University of California, Santa Cruz)以及EBI(European Bioinformatics Institute)等建立了大型基因組數(shù)據(jù)庫。也有比較小型的單一物種基因組數(shù)據(jù)庫如FlyBase、SilkDB、MonarchBase、DBM-DB和ChiloDB等。這些

20、數(shù)據(jù)庫的共同點是,管理基因集需要專業(yè)生物信息人員的參與,一般的生物研究人員很難進行管理。另外,這些數(shù)據(jù)庫或是大型綜合型數(shù)據(jù)庫,或是某物種的專有數(shù)據(jù)庫。根據(jù)文獻檢索結果,目前尚無可自動化注釋,支持多物種的基因組數(shù)據(jù)庫。 研究目的和內(nèi)容本系統(tǒng)利用基因組序列fasta格式文件及基因組注釋gff3格式文件的基本信息進行自動化基因序列的提取、翻譯和功能注釋。用戶可以在線實現(xiàn)對基因的增刪改、序列比對、注釋信息搜索等功能。主要內(nèi)容有以下幾方面:自動化構建該系統(tǒng)使得研究人員只需要上傳一個物種基因組序列文件和基因組注釋文件即可自動化生成一系列衍生序列(如CDS序列、蛋白質序列),研究人員不需要通過手工方式來得到

21、所需的生物數(shù)據(jù)。通用型數(shù)據(jù)庫不同物種的gff3格式基因組注釋文件可能存在差異,該系統(tǒng)可以針對大部分物種的注釋文件來構建通用型數(shù)據(jù)庫系統(tǒng)。易于管理的可視化界面基因組數(shù)據(jù)種類多樣且數(shù)據(jù)量非常龐大,普通文本編輯搜索使用不便。該系統(tǒng)的界面基于用戶體驗方便進行管理操作。高效率的在線比對序列比對是生物學家常用的一種研究方法,通過與已知功能的基因序列進行比對,找出序列相似的基因,推測未知基因的功能。該系統(tǒng)支持最為常用的Blast比對進行序列相似性搜索。 基因組注釋相關概念及處理技術 基因組在生物學中,一個生物體的基因組是指包含在該生物體內(nèi)的DNA(部分病毒是RNA)中的全部遺傳信息。例如人類的基因組通常指的

22、是染色體DNA,盡管其他細胞器官里也包含基因信息,但是這些并不能夠算作基因組的一部分。 基因組注釋在基因組學中,對基因和其他生物特征的標注稱為基因組注釋。基因組注釋是利用已有的生物信息學工具與方法,通過將未知物種核酸或蛋白質序列與數(shù)據(jù)庫已有內(nèi)容進行序列比對,來推測未知基因的功能。狹義層面,注釋是指把基因在基因組上的位置標記出來,再標記出這個基因所具有的功能。廣義上來講,注釋還包括將基因組上別的功能原件進行標記(包括miRNA、IncRNA、重復序列、rRNA等)。起初,有科學家通過實驗,證明某個蛋白質序列具有某種功能,之后他人便可以利用這個已經(jīng)被證實功能的蛋白質序列,將未知功能的基因序列與之進

23、行比對,如果相似性達到一定閾值,就判定這個未知序列也具有相似功能。 相關數(shù)據(jù)格式 fasta文件格式在生物信息學中,fasta文件格式是一種用來記錄核酸或蛋白質序列的文本格式,該格式已成為生物信息領域的一項標準。fasta格式通常由一個“”開始,接下來由標識符、注釋描述行和多行序列數(shù)據(jù)組成。通常規(guī)定每一行的內(nèi)容在80個字母以內(nèi)。“”緊挨著標識符,這一行剩余的其他部分均為對該序列的描述。標識符和描述可以不存在。序列和序列之間的區(qū)分以“”的出現(xiàn)作為標識。小菜蛾蛋白質序列文件部分內(nèi)容如圖2-1所示:圖2-1 部分小菜蛾fasta序列 gff3文件格式在生物信息學中,gff是對核酸或蛋白質序列的特征進

24、行描述的一種數(shù)據(jù)格式。gff3是當前通用的gff注釋文件的新標準。文件中的一行是對一個元件的屬性描述,由9列組成。以下是各列的說明:reference sequence:注釋的目標,例如一個或多個染色體。source:注釋的來源。如果為空,則用點“.”代替。type:屬性的類型,例如gene,repeat,region,exon,CDS等。start position:屬性對應片段的位置起點,從1開始計數(shù)。end position:屬性對應片段的位置終點,通常大于起點的數(shù)值。score:數(shù)字,得分,是注釋信息的可能性說明。如果為空,用點“.”代替。strand:“”為正鏈,“”為負鏈,如果為空

25、,用點“.”表示。phase:屬性針對CDS,用來指定下一個密碼子的起始位置。attributes:一個包含眾多屬性的列表,用來對注釋信息進行描述。小菜蛾基因組gff3注釋文件部分內(nèi)容如圖2-2所示:圖2-2 部分小菜蛾gff3注釋 相關數(shù)據(jù)庫目前國際已經(jīng)建立起許多公共分子信息數(shù)據(jù)庫,主要包括核酸序列數(shù)據(jù)庫、蛋白質序列數(shù)據(jù)庫以及一些其他的數(shù)據(jù)庫。這些數(shù)據(jù)庫目前主要由美國、歐洲和日本建立和維護。核酸序列數(shù)據(jù)庫中存儲了大量公共核酸序列資源,目前國際上主要的核酸序列數(shù)據(jù)庫是EMBL、GenBank和DDBJ等。除了核酸序列數(shù)據(jù)庫外,還有蛋白質序列數(shù)據(jù)庫。NCBI-RefSeq數(shù)據(jù)庫是一個包括核酸和蛋

26、白質序列的數(shù)據(jù)庫。NR數(shù)據(jù)庫是相對全面的非冗余蛋白質數(shù)據(jù)庫。各具特色的蛋白質組數(shù)據(jù)庫的建立標志著蛋白質組的研究水平,其中最有代表性的是SwissProt數(shù)據(jù)庫 REF _Ref452373736 w h * MERGEFORMAT 4。本系統(tǒng)選擇采用SwissProt數(shù)據(jù)庫來對基因組進行功能注釋。 功能注釋工具BlastBlast是生物信息領域里最通用的序列比對工具之一。在對未知物種基因組的進一步研究中,我們需要把功能未知的基因序列和已知并經(jīng)過注釋的蛋白質數(shù)據(jù)庫進行比對從而得到未知基因的功能注釋。它用一個基于序列相似性的算法來比對生物序列的一級結構,精確度高并且運行時間較少,有著比較好的比對結

27、果。如果研究人員發(fā)現(xiàn)一個物種的一條未知基因序列,通常會在人類的基因組里做一個Blast比對來確認是否人類包含與之類似的基因。通常我們可以進行核酸序列比對或者蛋白質序列比對,但蛋白質序列比對的結果通常會更加可靠。Blast的命令詳解如下:格式化數(shù)據(jù)庫:makeblastdb -in swissprot.fasta -dbtype prot -parse_seqids -out dbname參數(shù)說明:-in:待格式化的序列文件。-dbtype:數(shù)據(jù)庫類型,prot或nucl。-out:數(shù)據(jù)庫名。蛋白質序列比對蛋白質數(shù)據(jù)庫(blastp):blastp -query pep.fasta -out s

28、eq.blast -db dbname -outfmt 6 -evalue 1e-5 -max_target_seqs 1參數(shù)說明:-blastp:蛋白質序列對蛋白質序列的比對。-query:輸入的序列文件。-out:輸出的結果文件。-db:格式化之后的數(shù)據(jù)庫路徑及數(shù)據(jù)庫名。-outfmt:輸出文件格式。-evalue:設置輸出結果的e-value值。-max_target_seqs:設置最多的目標序列匹配數(shù),這里我們設為1。 開發(fā)環(huán)境和應用技術 開發(fā)環(huán)境搭建該網(wǎng)站設計過程中選擇使用Sublime Text3作為編輯環(huán)境。Sublime Text3作為一個強大的代碼編輯器,其整潔美觀的界面,功

29、能強大的文本編輯以及運行速度極快等特點便于開發(fā)人員進行快速的開發(fā)。鑒于系統(tǒng)的開發(fā)語言和數(shù)據(jù)庫,采用如下的開發(fā)環(huán)境和工具:開發(fā)環(huán)境:Linux Ubuntu, Python 2.7, Django 1.9開發(fā)語言:Python, Html5, CSS3, JavaScript數(shù) 據(jù) 庫:MySQL開發(fā)工具:Sublime Text3 Python語言概述 Python語言簡介Python是一款面向對象、解釋型的計算機語言 REF _Ref452383266 w h * MERGEFORMAT 5。Python于1989年在荷蘭誕生,1991年第一個公開版被發(fā)行。20世紀90年代末,一些公司如Ya

30、hoo開始用Python設計一些內(nèi)部的小型項目。21世紀初,Python的一些Web框架如Django被發(fā)明出來并開始被廣泛使用。2006年之后,國內(nèi)一些公司如豆瓣開始利用Python進行設計使用。這個語言目前已經(jīng)成熟且穩(wěn)定。由于Python具有動態(tài)、跨平臺、豐富強大的庫以及語法簡潔清晰等特點,因此吸引了為數(shù)眾多的開發(fā)者。Python的設計哲學是“優(yōu)雅”,“明確”,“簡單”。它除了擁有強大的庫之外,還可以調(diào)用其他語言所編寫的程序 REF _Ref452383251 w h * MERGEFORMAT 6。Python已經(jīng)成為當今世界上最受歡迎的程序設計語言之一。在大量平臺上都得到了極高的認可并

31、且?guī)缀蹩梢栽谌魏我豢畹牟僮飨到y(tǒng)上運行。 Python語言特性免費開源Python的創(chuàng)建者將Python免費開放源碼。開發(fā)人員可以自由下載每一版本的Python及其擴展包并可以對源碼進行修改操作。簡單易上手Python具有很強的偽代碼特性。編程人員在閱讀一段源代碼時,就像在閱讀英語文章一樣。Python字少而精,語法簡單,沒有復雜的符號。由于結構簡單,有助于使開發(fā)者專心于實際問題的實現(xiàn)而不需要去考慮編程語言本身的語法細節(jié)。解釋性和編譯性對于Python來講,交互解釋器是最有用的工具之一。它允許使用者檢查代碼的正確性,并且允許開發(fā)者執(zhí)行不同的操作。可移植性Python適用于任何一個操作系統(tǒng),甚至L

32、inux系統(tǒng)中內(nèi)置Python。健壯性和易維護性Python解釋器帶有異常處理機制,并可以讓開發(fā)人員不必浪費多余時間和精力在與實際開發(fā)無關的項目當中。豐富的類庫Python具有非常龐大的標準庫,功能齊全。 Django概述 Django簡介Django是一個Python寫成的開放源代碼標準Web應用程序框架,于2005年正式發(fā)布。Django前身是用于做新聞快速部署的網(wǎng)絡開發(fā)平臺,如今已是Python的最大Web框架之一,在國內(nèi)外均被廣泛使用。 Django特性 內(nèi)置網(wǎng)頁開發(fā)所需要的多種組件Django將多套組件集成在一起,具有很強的易用性,滿足開發(fā)人員的基本需要。 映射方法去控制數(shù)據(jù)庫對于數(shù)

33、據(jù)庫,Django有自己的一套ORM(對象-關系映射模型)。底層實現(xiàn)都封裝在django.db.models中。Django框架默認的數(shù)據(jù)庫是SQLite,支持的數(shù)據(jù)庫還包括PostgreSQL、MySQL等??梢酝ㄟ^簡單修改settings.py這一配置文件里的某一變量來切換數(shù)據(jù)庫,同步數(shù)據(jù)庫以及遷移數(shù)據(jù)庫等。 功能強大編碼簡潔的URL設計Django在URL中使用的是正則表達式。開發(fā)人員可以通過URL設計友好的路徑和相應的需要處理的函數(shù)。 自動化管理界面Django Web框架提供簡單實用的管理界面,具有強大的靈活性和可配置性,便于對用戶數(shù)據(jù)進行管理。 強大的開發(fā)模式Django為開發(fā)人員

34、提供強大開發(fā)環(huán)境,便于進行快速開發(fā)測試。這是一個輕量級的Web服務器。圖3-1 Django組件架構圖 MVC開發(fā)模式在當今,軟件架構已經(jīng)成為判斷是否是一個成功的軟件系統(tǒng)的決定性因素 REF _Ref452383147 w h * MERGEFORMAT 7。而MVC是一種被廣泛使用的軟件架構。Django是一個基于MVC架構的框架 REF _Ref452792583 w h * MERGEFORMAT 8。用Django開發(fā)應用,可以快速設計和開發(fā)具有MVC(模型-視圖-控制器)層次的Web應用。但它比MVC模式要更深一步,絕大部分控制層的東西都由Django自動完成,開發(fā)人員不需要考慮框架

35、細節(jié)而只需要編寫極少的代碼就可以完成大量的事情。例如在搭建開發(fā)環(huán)境結束之后,如果要啟動一個項目,首先需要創(chuàng)建一個新的Django項目 REF _Ref452792685 w h * MERGEFORMAT 9。使用簡單的命令即可完成一個項目的最基本的初始化。MVC(Model-View-Controller,即模型-視圖-框架)的設計理念是把數(shù)據(jù)訪問的方法(模型)與請求邏輯(控制器)和用戶接口(視圖)分離開來。一個數(shù)據(jù)庫模型可以為多個View視圖來提供服務 REF _Ref452792738 w h * MERGEFORMAT 10。但是相比較實際意義上的MVC,它略微有些不同。Django的

36、架構被設計成MTV(Model-Template-View)的形式。這種設計模式的最大優(yōu)勢在于每一個組件都是松散結合,開發(fā)人員可以對每一部分進行獨立更改而不會影響或者干涉到其他部分的使用。例如,開發(fā)人員可以更改一個應用程序的URL地址而不會影響到這個程序的底層實現(xiàn)。設計師可以更改前端界面HTML的樣式而不用接觸到Python代碼。管理數(shù)據(jù)庫可以重命名數(shù)據(jù)表而無需從繁瑣的文件中間進行大量的查找和替換。Django收到HTTP請求后,完成下列處理:通過提交用戶的瀏覽器的請求,Django在URL里找到匹配的正則表達式,通過URLconf模塊來將用戶請求對象傳入,之后對應到views.py里的函數(shù)。

37、函數(shù)可以通過引入models.py里的Model來和數(shù)據(jù)庫里的數(shù)據(jù)進行交互。最后,Django加載Templates,根據(jù)數(shù)據(jù)生成相應的html頁面,返回呈現(xiàn)給用戶。Django組件架構圖如圖3-2所示:圖3-2 Django組件架構圖 MySQL數(shù)據(jù)庫概述 MySQL數(shù)據(jù)庫簡介MySQL是一款開源的關系型數(shù)據(jù)庫管理系統(tǒng)。相比較其他數(shù)據(jù)庫,MySQL有許多優(yōu)勢,例如速度快、體積小以及成本低。該數(shù)據(jù)庫管理系統(tǒng)如今被廣泛使用。 MySQL與Django的連接訪問Django框架下與MySQL數(shù)據(jù)庫相連需要安裝一個Python和數(shù)據(jù)庫交互的包(MySQLdb),之后通過引入這個包來進行一系列的與數(shù)據(jù)

38、庫相關的操作。建立數(shù)據(jù)庫的連接import MySQLdbdb = MySQLdb.connect(localhost, root, kaixin, mygene)cursor = db.cursor()執(zhí)行數(shù)據(jù)庫操作cursor.execute(sql)mit()關閉數(shù)據(jù)庫連接db.close() 基因組注釋系統(tǒng)需求分析與設計 系統(tǒng)需求分析 系統(tǒng)功能需求分析由于測序技術的進步和成本的下降,越來越多基因組被測序。面對海量的基因數(shù)據(jù),我們需要為科研人員將基因組注釋的整個流程自動化,并進行可視化展示,以便于科研人員對基因組注釋進行管理和更新。鑒于此,我們通過分析目前基因組數(shù)據(jù)的使用現(xiàn)狀,根據(jù)研究人

39、員的需求及使用情況,結合該框架自身的特點,分析該系統(tǒng)功能需求如下:用戶權限該系統(tǒng)分為管理員和游客兩個權限。由于該系統(tǒng)是針對單個物種的數(shù)據(jù)庫系統(tǒng),為維護數(shù)據(jù)的安全性,系統(tǒng)需要判斷用戶是管理員還是游客來呈現(xiàn)相應的界面。該系統(tǒng)僅限于管理員對數(shù)據(jù)進行操作,游客不可對系統(tǒng)數(shù)據(jù)進行任何更改。上傳文件管理員通過上傳一個物種的基因組序列fasta格式文件和基因組注釋gff3格式文件,來使該系統(tǒng)形成針對一個物種的基因組注釋管理系統(tǒng)。系統(tǒng)首先判斷兩個文件是否符合要求,如果不符合則生成錯誤。如果符合,則需要為用戶展現(xiàn)文件處理之后的基因組數(shù)據(jù)。生成衍生數(shù)據(jù)根據(jù)管理員上傳的文件,為每條基因生成相應的CDS、蛋白質等衍生

40、序列。后臺通過用gffread工具處理管理員上傳的文件,結果產(chǎn)生CDS序列文件和蛋白質序列文件。之后系統(tǒng)用正則表達式分別提取每個文件當中所需的字段,插入到數(shù)據(jù)表中進行表之間的關聯(lián)。對基因進行功能注釋基于同源比對,格式化SwissProt數(shù)據(jù)庫。后臺用Blast工具將蛋白質序列文件和格式化后的SwissProt數(shù)據(jù)庫進行序列比對。之后,系統(tǒng)需要用腳本文件通過正則表達式提取序列比對后的文件中用戶所需的字段,并插入到數(shù)據(jù)表中進行表之間的關聯(lián)。在線管理數(shù)據(jù)由于生物研究人員在進行實驗時候可能會發(fā)現(xiàn)數(shù)據(jù)的錯誤或者紕漏,管理員可以在線對數(shù)據(jù)進行維護。后臺將數(shù)據(jù)庫中的數(shù)據(jù)表進行關聯(lián),修改之后,數(shù)據(jù)庫中數(shù)據(jù)被更

41、改?;蛐蛄斜葘τ脩艨梢杂靡粭l或多條蛋白質序列與系統(tǒng)中的蛋白質序列進行在線比對,來獲得所需的基因組注釋文件。分類檢索研究人員可以根據(jù)基因ID或功能注釋關鍵詞來進行檢索,以便獲得相關基因信息來進行后續(xù)深入研究。 系統(tǒng)界面需求分析網(wǎng)頁由前臺和后臺系統(tǒng)共同組成。作為一個生物研究人員直接進行交互操作的平臺,必須能夠使研究人員快速便捷找到他們在意的功能。我們根據(jù)系統(tǒng)功能需求來進行系統(tǒng)界面的設計。分析該系統(tǒng)界面設計需求如下:全英界面面向用戶不限于中文用戶,而是全世界的研究者。如今同類數(shù)據(jù)庫系統(tǒng)大多是全英文界面。導航欄導航欄在所有界面的上方固定展示,合理安排位置。當瀏覽者訪問任何一個界面的時候,都可以通過點

42、擊導航上面的目標功能按鈕來迅速轉換到另一個界面。界面友好網(wǎng)頁的設計風格以及顏色搭配要符合該系統(tǒng)的主題,所有字體保持統(tǒng)一。頁面應該對用戶的關鍵操作有所提示。通過對本系統(tǒng)主要業(yè)務功能的分析,得出的該系統(tǒng)的用例圖如圖4-1所示:圖4-1 系統(tǒng)用例圖 系統(tǒng)總體設計 系統(tǒng)總體架構該系統(tǒng)有游客和管理者兩個不同的用戶角色。管理者可以上傳基因組序列fasta格式文件和基因組注釋gff3格式文件,之后系統(tǒng)會自動化生成所需的衍生序列來構建整個系統(tǒng)。游客可以將未知基因序列和數(shù)據(jù)庫系統(tǒng)里的序列進行Blast比對,也可以分別根據(jù)基因ID和基因組注釋的關鍵詞進行分類檢索。管理員除了有以上的功能之外,可以對基因組信息及其衍

43、生序列進行增加、刪除以及修改等管理維護工作,也可以進行Blast比對。本系統(tǒng)的功能體系結構如圖4-2所示:圖4-2 系統(tǒng)功能圖管理員需要通過登錄才可以上傳文件從而形成整個數(shù)據(jù)庫系統(tǒng)。管理員成功登錄后,上傳系統(tǒng)所需要的文件,文件由后臺自動處理并且加載成功之后,管理員即可以使用系統(tǒng)其他例如分類檢索基因信息、對有紕漏或出錯的基因信息進行增刪改的操作以及將未知的序列和數(shù)據(jù)庫中已存在的序列進行Blast比對等功能。管理員流程圖如圖4-3所示:圖4-3管理員模塊流程圖該系統(tǒng)的管理員模塊活動圖如下:圖4-4管理員模塊活動圖 數(shù)據(jù)庫設計 數(shù)據(jù)表結構該系統(tǒng)一共有八張數(shù)據(jù)表,主要的數(shù)據(jù)表結構如下:用戶信息表用戶信

44、息表中存放的是用戶的基本信息,包括用戶名,密碼。表4-1 auth_user表字段名類型能否為空注釋UsernameVARCHAR(20)否用戶名(郵箱)PasswordVARCHAR(20)否用戶密碼CDS表CDS表中包含從cds.fasta文件中提取的關鍵信息,包括CDS的ID,CDS的序列。表4-2 CDS表字段名類型能否為空注釋seq_idLongtext否CDS的標識符cds_seqLongtext否CDS的序列protein表protein表中包含從pep.fasta文件中提取的關鍵信息,包括CDS的ID,蛋白質的序列。表4-3 protein表字段名類型能否為空注釋seq_idL

45、ongtext否CDS的標識符pro_seqLongtext否蛋白質的序列swiss表swiss表中包含從SwissProt數(shù)據(jù)庫中提取的關鍵信息,包括SwissProt的ID,SwissProt的每個ID對應的注釋。表4-4 swiss表字段名類型能否為空注釋swiss_idLongtext否SwissProt數(shù)據(jù)庫標識符swiss_annoLongtext否SwissProt數(shù)據(jù)庫注釋seq_blast表seq_blast表中包含Blast比對后產(chǎn)生的seq.blast文件的關鍵信息,包括用于比對的序列的ID和比對之后的SwissProt序列的ID.表4-5 seq_blast表字段名類型

46、能否為空注釋seq_idLongtext否CDS的標識符cds_seqLongtext否CDS的序列 系統(tǒng)ER圖通過對本基因組注釋系統(tǒng)用戶需求和功能需求的分析,可以抽象出本系統(tǒng)需要的數(shù)據(jù)庫實體、實體屬性以及對應關系。系統(tǒng)ER圖如圖4-5所示:圖4-5 系統(tǒng)ER圖 基因組注釋系統(tǒng)功能實現(xiàn)本系統(tǒng)主要由上傳文件模塊、分類檢索模塊、基因信息的管理以及Blast序列比對模塊四部分組成。 用戶登錄模塊管理員首先需要登錄才能進行后續(xù)的基因組數(shù)據(jù)管理操作。系統(tǒng)判斷用戶名密碼是否正確,如果不正確,返回重新登錄。若正確,則登錄成功,可以進行后續(xù)操作。圖5-1 用戶登錄流程圖 分類檢索模塊這里為研究人員提供的檢索可

47、以分為兩部分。一個是按照基因ID進行檢索,一個是根據(jù)基因功能注釋的關鍵詞進行檢索。在數(shù)據(jù)庫中我們可以根據(jù)數(shù)據(jù)表之間的匹配關系來調(diào)用所需的相關信息。圖5-2 根據(jù)基因ID檢索流程圖圖5-3 根據(jù)注釋關鍵詞檢索流程圖 增加數(shù)據(jù)模塊如果管理人員想要增加基因的信息,我們在數(shù)據(jù)庫中直接進行增加操作,即可以實現(xiàn)。之后返回結果和顯示界面。圖5-4 增加數(shù)據(jù)流程圖 刪除數(shù)據(jù)模塊如果管理人員想要刪除基因的信息,我們刪除數(shù)據(jù)庫中相應的數(shù)據(jù)表的字段,即可實現(xiàn)。之后返回結果和顯示界面。圖5-5 刪除數(shù)據(jù)流程圖 更改數(shù)據(jù)模塊如果管理人員想要對基因的信息進行更改,我們更新數(shù)據(jù)庫中相應的數(shù)據(jù)表的字段,即可以實現(xiàn)。之后返回結

48、果和顯示界面。圖5-6 更改流程圖 Blast比對模塊如果游客或者管理人員想要將一段序列和數(shù)據(jù)庫中已經(jīng)有的蛋白質序列進行Blast比對,由于后臺已經(jīng)自動格式化已有的SwissProt數(shù)據(jù)庫,所以可以通過Blast工具直接進行在線比對。比對之后返回用戶所需要的注釋文件。圖5-7 Blast比對流程圖 上傳文件模塊管理人員需要首先上傳特定物種的文件即可以實現(xiàn)數(shù)據(jù)庫自動化的創(chuàng)建。之后游客和管理員可以進行查看、管理和比對的操作。系統(tǒng)首先需要判斷該用戶是否是管理員。如果不是,那么不可以進行上傳。如果是,判斷數(shù)據(jù)庫中是否已經(jīng)存在基因信息,如果不是,那么不可以進行上傳。如果不存在基因信息,管理員需要上傳一個

49、物種的基因組注釋信息和基因組序列文件,之后系統(tǒng)自動化為這兩個文件進行處理。例如通過腳本文件提取需要的字段并插入到數(shù)據(jù)庫中,對CDS序列文件以及蛋白質序列文件進行處理等。圖5-8 上傳文件流程圖 實現(xiàn)總結與界面展示根據(jù)需求分析,經(jīng)過將近一個月的設計和編碼,完成了上傳文件模塊、用戶登錄模塊、在線增刪改模塊,基本完成了需求分析中設計的功能。 主界面:圖5-9 主界面展示圖分類檢索界面:圖5-10 分類檢索界面展示圖增刪改界面:圖5-11 增刪改界面展示圖Blast比對界面:圖5-12 Blast比對界面展示圖 測試概述 軟件測試的目的軟件測試的目的,主要是為了確認該系統(tǒng)的質量,發(fā)現(xiàn)明顯的錯誤和紕漏,

50、確保系統(tǒng)各個模塊能夠正常運行。 測試過程 系統(tǒng)整體運行測試 測試步驟在Linux終端輸入python manage.py runserver來啟動程序。在瀏覽器的地址欄輸入:8000/進入網(wǎng)站。 預期結果啟動成功,終端顯示可以運行。瀏覽器成功顯示網(wǎng)站主頁面。 測試結果通過測試。 上傳文件功能測試 測試步驟點擊導航欄上傳文件按鈕。點擊上傳基因組序列fasta格式文件按鈕。點擊上傳基因組注釋gff3格式文件按鈕。提交兩個文件,等待系統(tǒng)上傳。查看基因信息。 預期結果顯示上傳文件頁面。成功顯示將要上傳的基因組序列fasta格式文件的文件名。成功顯示將要上傳的基因組注釋gff3格式文件的文件名。顯示文件

51、上傳成功??梢圆榭椿蛐畔?。 測試結果通過測試。 Blast比對功能測試 測試步驟點擊導航欄Blast比對按鈕。在輸入框輸入需要比對的序列。提交序列文件。保存結果文件。 預期結果顯示Blast比對頁面。成功顯示輸入的序列。提交后出現(xiàn)比對結果文件。成功保存結果文件到本地。 測試結果通過測試。 分類檢索功能測試 測試步驟點擊導航欄搜索文件按鈕。選擇要搜索的類型,例如通過基因ID或者是基因功能注釋的關鍵詞進行檢索。輸入基因ID或基因功能注釋關鍵詞。提交進行檢索。 預期結果顯示搜索界面。成功進行搜索并且顯示基因信息及基因組的注釋。 測試結果通過測試。 測試結論本系統(tǒng)的各項主要功能均順利實現(xiàn),可以正常運行。滿足用戶的基本要求,測試目標基本通過。 總結與展望本課題通過對一般的基因組注釋網(wǎng)站進行了業(yè)務分析及功能分析,對自動化構建數(shù)據(jù)庫系統(tǒng)等功能進行了詳細的設計,較好的滿足了用戶的實際需求。隨著研究的不斷深入,我認為還可以從以下幾個方面來進一步優(yōu)化系統(tǒng):用戶上傳文件中,如果上傳的文件非常大,則系統(tǒng)需要加載的時間會更長??梢赃M一步提高效率,減少等待時間,更快加載文件。除了使用SwissProt數(shù)據(jù)庫之外,系統(tǒng)還可以增加多個數(shù)據(jù)庫如NR、GO等數(shù)據(jù)庫來進行功能注釋,這樣可以讓用戶獲得的信息更加全面。由于系統(tǒng)是一次性構建整

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論