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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、PAGE PAGE 本科生畢業(yè)論文(設(shè)計(jì))題 目: 基因組注釋管理系統(tǒng) 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc452749272 摘要 PAGEREF _Toc452749272 h HYPERLINK l _Toc452749273 關(guān)鍵詞 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 基因組注釋相關(guān)概念及處理技術(shù) 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 相關(guān)數(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 相關(guān)數(shù)據(jù)庫 PAGEREF _Toc452749286 h HYPERLINK l _Toc452749287 2.5 功能注釋工具Blast PAGEREF _Toc452749287 h HYPERLINK l _Toc452749288 3 開發(fā)環(huán)境和應(yīng)用技術(shù) 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)需求分析與設(shè)計(jì) 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)總體設(shè)計(jì) PAGEREF _Toc452749304 h HYPERLINK l _Toc452749305 4.2.1 系統(tǒng)總體架構(gòu) PAGEREF _Toc452749305 h HYPERLINK l _Toc452749306 4.2.2 數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc452749306 h HYPERLINK l _Toc452749307 5 基因組注釋系統(tǒng)功能實(shí)現(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比對(duì)模塊 PAGEREF _Toc452749313 h HYPERLINK l

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

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

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

13、系統(tǒng)采用當(dāng)前流行的MVC設(shè)計(jì)模式,使用Django技術(shù),利用Python、JavaScript、Html5以及CSS3語言進(jìn)行開發(fā)。它可以利用用戶上傳的基因組序列和gff3注釋文件自動(dòng)化生成CDS序列、蛋白質(zhì)序列以及功能注釋信息等,并支持Blast序列相似性搜索、基因ID和注釋功能關(guān)鍵詞搜索。經(jīng)過測(cè)試,該系統(tǒng)性能穩(wěn)定,能滿足用戶的基本需求。關(guān)鍵詞:基因組注釋;基因結(jié)構(gòu)維護(hù);可視化展示;功能注釋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 緒論 研究背景及意義隨著二十世紀(jì)以來自然科學(xué)的迅猛發(fā)展,生物科學(xué)和計(jì)算機(jī)信息技術(shù)成為兩個(gè)熱點(diǎn)領(lǐng)域。生物信息學(xué)是利用計(jì)算機(jī)科學(xué)的技術(shù)手段來研究生物學(xué)數(shù)據(jù)的一門學(xué)科 REF _Ref452790975 w h * MERGEFORMAT 1。由于測(cè)序技術(shù)的不斷進(jìn)步與測(cè)序成本的不斷下降,越來越多的生物被測(cè)序。研究人員每測(cè)完一個(gè)物種的基因組一般都會(huì)建立一個(gè)網(wǎng)頁數(shù)據(jù)庫,全球各地生物信息數(shù)據(jù)庫的數(shù)量不斷增加,基于數(shù)據(jù)庫的大量研究工作將有所突破 REF _Ref452791100 w h * MERGEFORMAT

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

19、序列具有相似功能的假設(shè),利用計(jì)算機(jī)程序與已知功能的核酸或蛋白質(zhì)數(shù)據(jù)庫如NR、SwissProt、KEGG、GO等進(jìn)行序列比對(duì),獲得未知基因序列的功能信息。目前,一些國際著名的機(jī)構(gòu)如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ù)庫的共同點(diǎn)是,管理基因集需要專業(yè)生物信息人員的參與,一般的生物研究人員很難進(jìn)行管理。另外,這些數(shù)據(jù)庫或是大型綜合型數(shù)據(jù)庫,或是某物種的專有數(shù)據(jù)庫。根據(jù)文獻(xiàn)檢索結(jié)果,目前尚無可自動(dòng)化注釋,支持多物種的基因組數(shù)據(jù)庫。 研究目的和內(nèi)容本系統(tǒng)利用基因組序列fasta格式文件及基因組注釋gff3格式文件的基本信息進(jìn)行自動(dòng)化基因序列的提取、翻譯和功能注釋。用戶可以在線實(shí)現(xiàn)對(duì)基因的增刪改、序列比對(duì)、注釋信息搜索等功能。主要內(nèi)容有以下幾方面:自動(dòng)化構(gòu)建該系統(tǒng)使得研究人員只需要上傳一個(gè)物種基因組序列文件和基因組注釋文件即可自動(dòng)化生成一系列衍生序列(如CDS序列、蛋白質(zhì)序列),研究人員不需要通過手工方式來得到

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

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

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

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

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

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

27、果。如果研究人員發(fā)現(xiàn)一個(gè)物種的一條未知基因序列,通常會(huì)在人類的基因組里做一個(gè)Blast比對(duì)來確認(rèn)是否人類包含與之類似的基因。通常我們可以進(jìn)行核酸序列比對(duì)或者蛋白質(zhì)序列比對(duì),但蛋白質(zhì)序列比對(duì)的結(jié)果通常會(huì)更加可靠。Blast的命令詳解如下:格式化數(shù)據(jù)庫:makeblastdb -in swissprot.fasta -dbtype prot -parse_seqids -out dbname參數(shù)說明:-in:待格式化的序列文件。-dbtype:數(shù)據(jù)庫類型,prot或nucl。-out:數(shù)據(jù)庫名。蛋白質(zhì)序列比對(duì)蛋白質(zhì)數(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:蛋白質(zhì)序列對(duì)蛋白質(zhì)序列的比對(duì)。-query:輸入的序列文件。-out:輸出的結(jié)果文件。-db:格式化之后的數(shù)據(jù)庫路徑及數(shù)據(jù)庫名。-outfmt:輸出文件格式。-evalue:設(shè)置輸出結(jié)果的e-value值。-max_target_seqs:設(shè)置最多的目標(biāo)序列匹配數(shù),這里我們?cè)O(shè)為1。 開發(fā)環(huán)境和應(yīng)用技術(shù) 開發(fā)環(huán)境搭建該網(wǎng)站設(shè)計(jì)過程中選擇使用Sublime Text3作為編輯環(huán)境。Sublime Text3作為一個(gè)強(qiáng)大的代碼編輯器,其整潔美觀的界面,功

29、能強(qiáng)大的文本編輯以及運(yùn)行速度極快等特點(diǎn)便于開發(fā)人員進(jìn)行快速的開發(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是一款面向?qū)ο?、解釋型的?jì)算機(jī)語言 REF _Ref452383266 w h * MERGEFORMAT 5。Python于1989年在荷蘭誕生,1991年第一個(gè)公開版被發(fā)行。20世紀(jì)90年代末,一些公司如Ya

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論