序列比对分数计算(动态规划):
一、开gap与延长gap分数相同的序列比对分数计算
1.全局比对:
空间复杂度O(nm),可通过提前计算中点处经过的点来达到节省存储空间的效果。
具体方法如下,先从前往后算到中间一行,再从后往前算,观察两行的最大值确定分界点。
时间复杂度变成O(nm)+T(n/2,j)+T(n/2,m-j)=O(nm)
空间复杂的变成O(4n+m)=O(n+m)=O(max(n,m))
2.局部比对:
3.半全局比对(忽略前缀和后缀的gap):
在全局比对的基础上将F[0,i]和F[j,0]初始化为0。
二、开gap和延长gap的罚分不同,且延长gap罚分为线性的情况:
采用3个矩阵,分别记录来自当前位置是1.匹配/不匹配 2.上面是gap 3.下面是gap 的情况,V[i,j]则为三个矩阵中对应的位置的值最大的一个。