分支界定发现基序问题

来源:互联网 发布:淘宝囤货 编辑:程序博客网 时间:2024/06/18 16:31

1、有一部分起始位点在没对其进行迭代前,可根据它们得分的最优估计,简单而迅速地将它们排除在外。

如:若t个起始位点中的前i个位点[即:(s1,s2,...,si)]构成了一个弱序列谱,没必要考虑序列i+1,i+2,....,t中的任一起始位点。

2、给定一组起始位点s=(s1,s2,..,st),定义部分一致得分Score(s,i,DNA)为i*l阶联矩阵的一致得分,且该矩阵仅涉及与起始位点S的DNA前i行相应部分。对于s1,s2,..,si,我们有部分一致得分,甚至在最佳情况下,余下的t-i行只能对一致得分作(t-i)*l的改进。任一前i个起始位点为(s1,s2,..,si)的联配矩阵的得分最多可能是score(s,i,DNA)+(t-i)*l

3、算法

BYPASS算法略过以顶点(a,i)为根的子树,直接进入同层的下一个顶点。

NEXTVERTEX算法当i<l时,进入下一层,i=l时,即在最底层时,移动到同层的下一顶点,遍历完成后,返回i=0。

 

BRANCHANDBOUNDMOTIFSEARCH(DNA,t,n,l)

 s<-(1,...,1)

 bestscore<-0

  i<-1

  whilei>0

     if i<t

        optimisticscore<-Score(s,i,DNA)+(t-i)*l

        if optimisticscore<bestscore

           (s,i)<-BYPASS(s,i,t,n-l+1)

            //当前顶点及子树的最佳得分比bestscore小则放弃继续向该顶点子树的寻找。

         else

           (s,i)<-NEXTVERTEX(s,i,t,n-l+1)

     else//到达底层

         ifscore(s,DNA)>bestscore

           bestscore<-score(s)

           bestMotif<-(s1,s2,..,st)

     (s,i)<-NEXTVERTEX(s,i,t,n-l+1)   

   returnbestMotif

原创粉丝点击