2-字符串精确匹配与比对.ppt

上传人:b****9 文档编号:1044325 上传时间:2022-10-16 格式:PPT 页数:99 大小:3.20MB
下载 相关 举报
2-字符串精确匹配与比对.ppt_第1页
第1页 / 共99页
2-字符串精确匹配与比对.ppt_第2页
第2页 / 共99页
2-字符串精确匹配与比对.ppt_第3页
第3页 / 共99页
2-字符串精确匹配与比对.ppt_第4页
第4页 / 共99页
2-字符串精确匹配与比对.ppt_第5页
第5页 / 共99页
点击查看更多>>
下载资源
资源描述

2-字符串精确匹配与比对.ppt

《2-字符串精确匹配与比对.ppt》由会员分享,可在线阅读,更多相关《2-字符串精确匹配与比对.ppt(99页珍藏版)》请在冰豆网上搜索。

2-字符串精确匹配与比对.ppt

生物信息学概论讲义,第2章字符串精确匹配与比对,精确匹配问题及其Nave方法字符串比对最长公共子序列多字符串比对,生物信息学概论讲义,精确匹配问题及其Nave方法,字符串精确匹配问题定义给定一个字符串P(称为模式)和一个长字符串T(称为文本)。

字符串精确匹配问题定义为查找T中所有P的出现位置例如:

P=gtg,T=ttgtgcgtgtga。

则P在T中的位置3,7和9三个位置出现。

其中有两个P出现在T中是交叠的,t,t,g,t,g,c,g,t,g,a,g,t,1,2,3,4,5,6,7,8,1,2,9,0,生物信息学概论讲义,精确匹配问题及其Nave方法,精确匹配问题的重要性字符串的精确匹配问题可以应用到很多领域中文字处理器:

例如Unix的grep命令信息检索系统:

分词技术等Internet浏览器技术和爬虫技术海量数字图书馆分子生物学:

当前在Internet上存在数以百计的专门数据库,存放着DNA,RNA和氨基酸序列,生物信息学概论讲义,精确匹配问题及其Nave方法,精确匹配问题的现实意义精确匹配问题似乎已经被彻底解决一个90页的文件,即使使用很古老的文字处理器和一台486PC机,精确匹配操作比预期的要快如果使用GCG软件来搜索GenbankGCG:

一种搜索生物数据库的非常流行的接口工具Genbank:

美国DNA数据库如果将Genbank数据库拷贝到本地数据库中,对于一个30个字符的精确匹配查询需要4个小时以上的查询开销Genbank:

仅是当今生物序列数据库中的很小一部分字符串精确匹配问题是一个经典的计算机科学问题,同时它也是解决许多其它科学问题的基础,生物信息学概论讲义,精确匹配问题及其Nave方法,字符串定义和符号约定字符串S是一个连续从左到右的字符有序列表|S|:

表示字符串S的长度Si.j:

表示字符串S从位置i开始到位置j结束的一个子字符串S1.i:

表示字符串S在位置i结束的一个前缀Si.|S|:

表示字符串S从位置i开始的一个后缀Si.j:

表示一个空串如果ij,生物信息学概论讲义,精确匹配问题及其Nave方法,字符串定义和符号约定字符串S是一个连续从左到右的字符有序列表真前缀、真后缀、真子串:

即非原串又非空串S(i):

表示字符串S的第i个字符使用小写希腊字符(,)来表示字符串变量用小些罗马字符来表示单字符变量对于两个字符的比较如果它们相等,则称为匹配(match)否则称为失配(mismatch),生物信息学概论讲义,精确匹配问题及其Nave方法,Nave方法将P的左端与T的左端对齐,然后从左到右逐个比较P和T的字符,直到一个失配出现或者P中字符被比较完;如果是后一种情况的话,则报告一次P的出现将P在T上从左到右移动一个字符,并重新开始这种比较重复上述过程,直到P的右短移过了T的右端,P,T,生物信息学概论讲义,精确匹配问题及其Nave方法,Nave方法的复杂度分析(|P|T|)具体来讲,字符比较运算的次数在最坏情况下是|P|(|T|-|P|+1),例如P=aaa,T=aaaaaaaaaa,则需要3*(10-3+1)=24个字符比较操作如果|P|=1000,|T|=10,000,000,字符比较操作的次数是不可想象的如何改进Nave算法,最好的目标应该是:

(|P|+|T|),生物信息学概论讲义,精确匹配问题及其Nave方法,Nave方法的改进分析问题症结所在:

P在T上的移动过慢,当出现失配时一次只移动一个字符位置如果有办法一次移动多个字符而又不错过T中P的出现,这将有可能降低字符比较运算操作的数量对于P=abxyabxz,T=xabxyabxyabxz结果是P在T(6)这个位置开始出现1次Nave方法:

比较20次,P:

T:

xabxyabxyabxz,abxyabxz,1,abxyabxz,+8,abxyabxz,+1,abxyabxz,+1,abxyabxz,+1,abxyabxz,+8,=20,如何减少比较次数?

生物信息学概论讲义,精确匹配问题及其Nave方法,Nave方法的改进分析一个智能一点的方法在第9个比较之后,它知道下面的三个比较将是失配的,这时算法将P移动并将P的左端与T(6)对齐,节省了3次字符比较运算,P:

T:

xabxyabxyabxz,abxyabxz,1,abxyabxz,+8,采用什么样的技术?

abxyabxz,+8=17,从P中可以知道:

第一个字符为a,且在P中下一次出现a的位置为5,生物信息学概论讲义,精确匹配问题及其Nave方法,Nave方法的改进分析一个更加智能的方法如果算法知道,P的前三个字符(即abx)在P中下一次出现的位置,则只需要从T(9)这里开始比较,又省略了三次字符比较运算操作,P:

T:

xabxyabxyabxz,abxyabxz,1,abxyabxz,+8,abxyabxz,+5=14,以上智能处理算法所需要的信隐藏在模式P中,但一般我们不能使用隐藏在文本T中的信息这些信息的提取是需要经过预处理才能得到的如果|T|P|的话,|T|在算法复杂度中占有主导地位,生物信息学概论讲义,精确匹配问题及其Nave方法,模式预处理在前面算法改进分析中,模式的前缀信息非常重要的给定字符串S和位置i1,Zi(S)表示位置i开始匹配S的一个最长前缀的长度S=aabcaabxaazZ2(S)=1,Z3(S)=0,Z4(S)=0,Z5(S)=3,Z6(S)=1,Z7(S)=0,Z8(S)=0,Z9(S)=2,生物信息学概论讲义,精确匹配问题及其Nave方法,模式预处理Zi-box:

位置i开始,位置i+Zi-1结束的最长前缀对于任意的i,ri表示开始于i或i之前的所有Z-box的最右端点,li表示结束于ri的Z-box的左端位置S=aabaabcaxaabaabcyZ10=7r15=16l15=10上述Z值的计算将在很多经典的字符串处理算法中使用,aabaabcaxaabaabcy,aabaabcaxaabaabcy,生物信息学概论讲义,精确匹配问题及其Nave方法,模式预处理Z值计算:

从i=2开始,计算所有的Zi,ri,li根据定义,简单算法的复杂度:

O(|S|2)线性Z值计算算法:

O(|S|)Z2:

比较S2.|S|和S1.|S|r2,l2:

如果Z20,r2=Z2+1,l2=2假设Zk-1,rk-1,lk-1已经计算完毕在有些情况下,Zk值可以从前面得到K=121,r120=130,l120=100即在100开始长度为31的字符串匹配S的一个前缀,从121开始的长度为10的字符串必定匹配22开始的字符串如果Z22=3,则Z121=3,生物信息学概论讲义,精确匹配问题及其Nave方法,模式预处理Z算法若kr,则比较Sk.|S|和S1.|S|,得到Zk;若Zk0,则r=k+Zk-1,l=k若k=r.则S(k)包含在Sl.r()中且是S的一个前缀.字符S(k)也一定出现在k=k-l+1的位置上,且Sk.r一定匹配Sk.Zl若Zk|,则Zk=Zk,r和l保持不变,Zk,K,K+Zk-1,l,K,K+Zk-1,r,S,生物信息学概论讲义,精确匹配问题及其Nave方法,模式预处理Z算法若k=|,则Sk.r必定是S的一个前缀,Zk=|=r-k+1,而且Zk可能比|要大,需要比较r+1和|+1开始的字符并得出正确的Zk,r和l,K,K+Zk-1,l,K,r,S,?

生物信息学概论讲义,精确匹配问题及其Nave方法,最简单的线性精确匹配算法S=P$T,$是P和T没有出现过的字符Fori=2to|P|+|T|+1,计算Zi,任意Zi|P|+1,若Zi(S)=n,则在T中i-(n+1)位置出现一个T反过来说,如果P在T中位置j出现,则Z(n+1)+j=n上述算法的时间复杂度:

O(|P|+|T|+1)=O(|T|),是一个线性时间复杂度,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法算法过程与Nave算法类似应用了三种更加“聪明”的思想Right-to-left扫描坏字符移动规则好后缀移动规则,P,T,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法Right-to-left扫描当比较P与T中的某一位置的子串时,不是从左到右比较,而是从右到左比较从T(9)和P(7)开始从右到左比较,在T(5)和P(3)有一个失配,此时P要向后移动,移动规则有两条,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法坏字符移动规则:

基本思想若P中最右端字符为y,T中与之对齐的字符为x,xy如果我们知道P中最右端x的位置,则我们可以安全地右移P并将P中最右端x的位置与T中的x位置对齐而不错失结果一个特例:

如果P中根本就没有x字符,则我们可以安全地右移P并将P的开始位置对齐T中失配x的下一个字符,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法坏字符移动规则:

形式化描述R(x):

表示字符x在P中最右端出现的位置,若没有R(x)=0例如:

R(a)=6,R(b)=7,R(x)=5,假定在某个时刻,P中最右端的|P|-i个字符与T中对应位置匹配,但P(i)与T中对应位置(假设为k)失配,即P(i)T(k),则P向右移动max1,i-R(T(k)个位置假设P中最右端出现T(k)的位置为j若ji,则将P(j)与T(k)对齐否则,P移动一个字符,P,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法坏字符移动规则:

形式化描述若ji,则将P(j)与T(k)对齐否则,P移动一个字符,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法坏字符移动规则:

形式化描述若ji,则将P(j)与T(k)对齐T(5)=t,P(3)=a,T(5)P(3),R(t)=1,则P向右移max1,3-1=2个字符位置,即将P

(1)与T(5)对齐,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法坏字符移动规则:

扩展规则当失配字符离P的右端越近,移动效率越低当字母表比较小时,例如DNA序列只包含四个字符上述情况则不然,ji的情况会经常会发生,这样移动效率低改进方法当P中位置i与T中的字符x失配时,将P中位置i左端最右的x与T中的失配字符对齐,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法好后缀移动规则即使是扩展的坏字符移动规则,移动效率较低基本思路:

在坏字符移动规则中当出现失配时试图对齐失配字符左边最右端的有效字符,如果我们采取对齐子串的思想,算法效率应该更高,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法好后缀移动规则在某一时刻,假设T中的一个子串t与P中的一个后缀匹配,但T中的左端下一个字符与P中的左端下一个字符失配在P中查找t的一个拷贝t:

使得t的左字符与t的左字符不同若t存在,则右移P,对齐P中t和T中的t否则,如果P中存在一个前缀t匹配t的一个后缀,则右移P,对齐P中t和T中t的匹配后缀否则,将P右移|P|个字符如果P在T中出现一个精确匹配如果存在P的一个真前缀匹配T中当前对齐子串的一个真后缀,则右移P,将P中的真前缀对齐T中的真后追将P右移|P|个字符,应该是除了匹配部分外的真后缀的意思,生物信息学概论讲义,精确匹配问题及其Nave方法,Boyer-Moore精确匹配算法好后缀移动规则对于下面的例子,P将向后移动6个位置对于坏字符移动规则,P将向后移动1个位置对于扩展坏字符移动规则,P也只能向后移动1个位置,生物信息学概论讲义,精确匹配问题及其Nave方法,Knuth-Morris-Pratt精确匹配算法:

KMP算法Nave算法回顾Royer-Moore算法:

基本思路是right-to-left扫描比较规则问题:

如果象Nave算法那样,left-to-right来扫描比较,有没有快速移动P的优化规

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1