双序列比对在线工具(Needleman-Wunsch 全局比对)
Needleman-Wunsch 是全局比对(global alignment)的标准算法, 用动态规划保证在给定打分方案下找到最优比对,而不是启发式的近似解。
算法本身只有一个递推式。设 H(i,j) 是前 i 个与前 j 个碱基的最优得分:
H(i,j) = max{ H(i-1,j-1) + s(aᵢ,bⱼ), 对齐
H(i-1,j) + gap, 在 b 上开空位
H(i,j-1) + gap } 在 a 上开空位
填满矩阵后从右下角回溯,就得到比对结果。
全局还是局部? 这是最容易选错的地方:
- 全局比对(本工具):强制把两条序列从头到尾对齐,适合长度相近、同源性高的序列, 比如同一基因的两个等位型、克隆前后的质粒片段。
- 局部比对(Smith-Waterman / BLAST):只找最相似的片段,适合长度差异大、 或只有部分区域同源的情况。用全局比对去比一条短引物和一条长模板,结果会被大量空位拖垮。
打分方案会改变结果。 默认 match +1、mismatch −1、gap −2 只适合快速看一眼。 做正式分析请用带替换矩阵的工具(核酸用 EDNAFULL,蛋白用 BLOSUM62), 并区分开空位罚分(gap open)与延伸罚分(gap extend)——本工具用的是线性罚分, 对含长插入缺失的序列会给出偏差较大的结果。
计算在浏览器内完成,时间与空间都是 O(mn),所以长度限制在 2000 bp 以内。
常见问题
全局比对和局部比对该选哪个?
长度相近、整体同源用全局(本工具);长度差异大或只有局部同源用局部比对(Smith-Waterman / BLAST)。用全局比对去比短引物和长模板,结果会被大量空位拖垮。
为什么一致度和别的工具算的不一样?
一致度的分母有两种算法:比对总长(含空位)或较短序列长度。本工具用比对总长。打分方案不同也会得到不同的比对结果。
能比多长的序列?
2000 bp。动态规划的时间和空间都是 O(mn),再长浏览器会卡住。