注意不是最长子序列LCS,LCS问题对应于匹配则奖励1,插缺则没有惩罚。如果要对插缺进行统计分析,则属于序列联配问题,最佳序列联配求出的并不是最长子序列
对有K个字母的字符集A进行扩展,加入缺口符号-,并提出得分矩阵为(k+1)*(k+1)矩阵,将联配中的列(x,y)记为δ(x,y),将联配的得分定义为所有列得分之和。
联配中列的概念是:假设V=ATG,W=A-G,则每列分别定义为:(0,0)、(1,1)、(2,2)(2,3)即:(V1,W1)、(V2,W2).....
1、给定得分矩阵,寻找2个字符串之间的最佳联配(这个最佳包含S( i,j)相似性和d(i,j)编辑距离)
输入:字符串V和W及得分矩阵δ
输出:V和W的一个联配,它的得分是V和W所有可能联配中最大的。
对于V的前i个字符和W的前j个字符间的一个最优联配得分Si,j ,其相应的递归过程为:
Si,j=max(Si,j+δ(Vi,-) ,Si,j-1+δ(-,Wj) , Si-1,j-1+δ(Vi,Wj))
2、当错配和插缺的罚分分别为常数而不需要从得分矩阵中取数时,匹配的得分为+1时,相关序列的联配得分为
#matches-μ·#mismatches-·σ#indels
其相应的递归过程为:
Si,j=max(Si-1,j -σ ,Si,j-1 -σ , Si-1,j-1 -μ if Vi<>Wj , Si-1,j-1 +1 ifVi=Wj )