序列比对之Needleman-wunsch算法的python实现
仅供有缘人参考
因为做项目遇到了beam search生成的序列的对齐问题,所以自己写了一个关于序列比对的needleman-wunsch算法的python代码,供有需要的有缘人参考。
算法原理可参考
Needleman-wunsch算法矩阵的计算
知乎上的对算法以及回溯的介绍
Needleman-Wunsch算法以及回溯对齐的Python代码
// needleman-wunsch 算法
def needleman_wunsch(label, pred):
m=len(label)
n=len(pred)
dp=[[1]*n for i in range(m)]
for i in range(m):
if pred[0]!=label[i]:
dp[i][0]=0
else:
break
for j in range(n):
if pred[j]!=label[0]:
dp[0][j]=0
else:
break
for i in range(1,m):