c语言dnakmer序列,全新DNA序列的Kmerindex问题.doc
數學建模論文
題目: DNA序列的k-mer index問題分析
隊長姓名:陳智添 學院:數學與信息學院 聯系方法隊員姓名:方宇靖 學院:數學與信息學院 聯系方法隊員姓名:張 航 學院:數學與信息學院 聯系方法承 諾 書
我們仔細閱讀了華南農業大學數學建模競賽的競賽規則.
我們完全明白,在競賽開始后參賽隊員不能以任何方式(包括電話、電子郵件、網上咨詢等)與隊外的任何人研究、討論與賽題有關的問題。
我們知道,抄襲別人的成果是違反競賽規則的, 如果引用別人的成果或其他公開的資料(包括網上查到的資料),必須按照規定的參考文獻的表述方式在正文引用處和參考文獻中明確列出。
我們鄭重承諾,嚴格遵守競賽規則,以保證競賽的公正、公平性。如有違反競賽規則的行為,我們將受到嚴肅處理。
我們參賽選擇的題號是(從A/B/C/D中選擇一項填寫):
參賽隊員 (打印并簽名) :1.
2.
3.
2015年____月____日
評閱記錄
評
閱
人
評
分備
注
成 績:______ _______
名 次:_______ __ ___
獲獎等級:______ _ _____
選拔結果:_____ __ _____
DNA序列的k-merindex問題分析
摘要
隨生物學與計算機學科的不斷發展擴大,DNA序列的k-mer頻數統計是生物信息處理過程中的一個基礎問題。本文在查閱大量相關文獻后,反復運用二維數組進行數據處理,結合哈希算法,我們對固定的k值進行索引的構建后,進行k-mer的查找,并對復雜度進行計算以及對模型進行了評價。
針對索引建立的問題,對于固定的k值,用二維數組儲存100萬行包含100個堿基的DNA序列的信息,把二維數組中的每個元素轉化為四進制的序列數后,通過Dev-cpp運算分割出每行所有的k-mer,利用哈希算法把k-mer轉化為十進制重新儲存到二維數組中,直到100萬行堿基序列全部轉換成十進制的k-mer儲存到二維數組中,實現索引。
針對索引使用的問題,建立需搜索的k-mer字符串與十進制數之間的關系,用計算機自動實現,輸入要搜索的k-mer字符串,程序自動轉換成十進制數到二維數組中,使二維數組返回該十進制數所在的位置,即返回該k-mer在100萬行DNA序列中的位置,實現索引的使用。
針對數據索引的復雜度分析問題,我們針對建立索引、索引查詢,計算出算法的時間復雜度及空間復雜度,從而得出建立索引,索引查詢的時間復雜度。通過運算,索引建立時的時間復雜度T(n)=O(n),空間復雜度為O(n);索引使用時的時間復雜度T(n)=O(n),空間復雜度O(1)。
針對索引方法性能的評價,我們從索引查詢速度、內存使用、K值范圍、索引時間四個方面進行綜合評價。我們通過算法輸出建立索引所需時間,索引查詢所需時間、索引所占用內存。從量化的角度客觀評價算法性能。從多次對k值進行試驗檢索后發現,隨著k值的增大,建立索引的時間逐漸增長,由k值為1時的19.87秒逐漸升為為k值為16的199秒;而索引使用的時間基本保持在1秒以內,所占內存保持在320m到380m之間,索引的建立、使用都比較快,占用空間不大。
運用二維數組儲存、讀取DNA序列,簡潔直觀,結合哈希算法的運用,提升了運算的效率,實現高效快捷操作,并且準確地實現了在大型數據庫中快速訪問指定堿基片段的目的,查找速度快,效率高,輸出界面簡潔,為生物科學與計算機科學的發展提供基礎。
關鍵詞:k-mer index,二維數組,哈希算法,DNA序列目錄
摘要i
1 問題重述1
2 問題分析1
2.1 數據索引建立與使用的分析1
2.2 數據索引的復雜度分析1
2.3 數據索引的評價2
3 模型假設2
4 模型建立與求解2
4.1 建立索引的準備2
4.2 索引的建立3
4.2.1 理論準備3
4.2.2 流程圖3
4.2.3 建立索引4
4.2.3.1 讀取文本文檔4
4.2.3.2 轉化整數數組5
4.2.3.3 分割堿基序列6
4.3 索引的使用6
4.4 復雜
總結
以上是生活随笔為你收集整理的c语言dnakmer序列,全新DNA序列的Kmerindex问题.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAD特殊符号,你不一定会
- 下一篇: android button自动点击事件