生物序列比对问题上考虑凸形间隔处罚函数的一些O(nm)演算法.doc

生物序列比对问题上考虑凸形间隔处罚函数的一些O(nm)演算法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
生物序列比对问题上考虑凸形间隔处罚函数的一些O(nm)演算法.doc

生物序列比對問題上考慮凸形間隔處罰函數的一些O(nm)演算法 吳哲賢,王志倫 中華大學資訊工程研究所 300新竹市東香30號 {jswu,m890202}@chu.edu.tw 摘要 假設n、m為兩序列長度,n≧m。兩條DNA或胺基酸的生物序列比對問題上,不考慮間隔處罰函數或只考慮線性間隔處罰函數,其演算法的時間複雜度為O(nm);考慮任意間隔處罰函數,時間複雜度增為O(nm2)。若考慮生物上的意義,凸形間隔處罰函數:g(k)-g(k-1)≧g(k+1)-g(k),其中k為間隔長度,是一個符合條件的良好選擇。針對凸形間隔處罰函數,Myers及Miller於1988年首先提出時間複雜度為O(nmlogm)的方法,並找出一個特殊的凸形間隔處罰函數,對數函數:g(k)=A+Blogk,提出O(nm)的演算法。本論文針對凸形間隔處罰函數,首先推導出擁有O(nm)演算法的凸形間隔處罰函數條件,並提出一些符合條件的建議函數。 一、簡介 所謂DNA或胺基酸的生物序列比對(sequence alignment)問題,是由二條有限長度的生物序列,插入間隔形成長度相同的序列,再根據評分矩陣及間隔處罰(gap penalty)函數,找出分數最高的序列比對方式。當序列比對問題剛開始發展時,Needleman 及 Wunsch[5]於1970年,利用動態規劃(dynamic programming)的方法,提出不考慮間隔處罰函數的O(nm)演算法,其中n、m為序列長度,n ≧ m。 接著Waterman、Smith及Beyer[7]於1976年,提出考慮任意間隔處罰函數,時間複雜度為O(nm2) 的演算法。Gotoh[2]於1982年針對線性間隔處罰(affine gap penalty)函數:g(k) = A + Bk,A、B為非負整數,k為間隔長度;提出時間複雜度是O(nm)的演算法。 採用線性間隔處罰在生物序列比對上並非永遠正確,特別是針對長間隔會有過重的處罰。Waterman[6]於1984年,提出凸形間隔處罰(convex gap penalty)函數:g(k)-g(k-1)≧g(k+1)-g(k),其中k為間隔長度;它在長間隔發生頻率高時會比線性間隔處罰具有較高的適用性。他預測存在時間複雜度為O(nmlogm),甚至O(nm)的演算法。Myers及Miller[4]於1988年,針對凸形間隔處罰函數,使用侯選者名單(candidate list)的方法,首先提出時間複雜度為O(nmlogm)的方法,並找出一個特殊的凸形間隔處罰函數,對數(logarithmic)函數:g(k) = A + Blogk,提出O(nm)的演算法。爾後Galil 及 Giancarlo[1]於1989年,Gusfield[3]於1997年,也分別提出了時間複雜度一樣是O(nmlogm)的改良演算法。 這篇論文是討論在序列比對中有關凸形間隔處罰上的問題。首先利用Gusfield[3]於1997年設計的O(nmlogm)演算法,分析其特性,並進一步推導出符合O(nm) 時間複雜度的凸形間隔處罰函數條件。序列比對工作並非毫無目的的使用任意間隔函數來進行運算,接著找出一些既簡單又符合上述條件的凸形間隔處罰函數,如此不但符合生物上的意義,並且降低時間複雜度為O(nm)。使得考慮凸形間隔處罰函數演算法的的執行時間,可以和不考慮間隔處罰函數演算法的執行時間,具有一樣的時間複雜度。 二、考慮任意間隔處罰函數的O(nm2)演算法 假設n、m為兩序列長度,n ≧ m。針對生物序列比對上,考慮任意間隔處罰函數的問題,首先定義一些變數, V(i,j):第一序列前i個字母和第二序列前j個字母,最高的序列比對分數 G(i,j):在V(i,j)中,第一序列第i個字母和第二序列第j個字母比對 E(i,j):在V(i,j)中,第一序列間隔和第二序列第j個字母比對 F(i,j):在V(i,j)中,第一序列第i個字母和第二序列間隔比對 S(i,j):第一序列第i個字母和第二序列第j個字母比對分數 g(k):間隔長度為k的比對分數 接著利用以下動態規劃程式, V(i,j) = max[E(i,j), F(i,j), G(i,j)], G(i,j) = V(i-1,j-1) + S(i,j), E(i,j) = max[V(i,k) – g(j-k)], 0≦k≦j-1, F(i,j) = max[V(k,j) – g(i-k)], 0≦k≦i-1, V(i,0) = -g(i), V(0,j) = -g(j), E(i,0) = -g(i), F(0,j) = -g(j). 可以得到時間複雜度為O(nm2) 的演算法。考慮E(i,j)矩陣,其中每一列需O(m2) 的

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档