1. Needleman-Wunsch(全局比对 · 线性 gap)
构建 (m+1)×(n+1) 矩阵 H,H[i,j] 表示 A 前 i 个字符与 B 前 j 个字符的最优得分。边界行/列累加 gap 罚分,然后从 H[m,n] 回溯。
核心递推(三选一取 max)
H[i,j] = max( H[i−1,j−1]+s(Ai,Bj), H[i−1,j]+gap, H[i,j−1]+gap )
// needlemanWunschLinear — 摘自 sequence-alignment-core.js for (let i = 1; i <= m; i++) { for (let j = 1; j <= n; j++) { const diag = H[i-1][j-1] + scorer.score(a[i-1], b[j-1]); const up = H[i-1][j] + gap; const left = H[i][j-1] + gap; H[i][j] = Math.max(diag, up, left); trace[i][j] = [diag, up, left].indexOf(H[i][j]); // 0=对角 1=上 2=左 } }
回溯:从 (m,n) 沿 trace 走向 (0,0)。trace=0 对齐两字符;1 在 B 上插 gap;2 在 A 上插 gap。
2. Smith-Waterman(局部比对)
与 NW 相同的三种来源,但每项再与 0 取 max,使低分区域「截断」。矩阵全局最大值处开始回溯,直到遇到 0 停止。
const val = Math.max(0, diag, up, left); H[i][j] = val; if (val > maxScore) { maxScore = val; maxI = i; maxJ = j; } // 回溯起点:(maxI, maxJ),遇 H[i][j]===0 停止
典型场景:在长基因组/蛋白质中搜索短 motif;全局 NW 会被迫对齐无关前缀,得分被拉低。
3. Gotoh 仿射 gap(三矩阵 M / Ix / Iy)
- M[i,j]:A[i] 与 B[j] 对齐(match/mismatch)
- Ix[i,j]:A[i] 对 gap(A 上 opening/extend indel)
- Iy[i,j]:B[j] 对 gap
长 indel 只付一次 open + (k−1)×extend,比线性 gap 的 k×gap 更符合生物学。SW 版本在每个矩阵单元同样 max(0,·)。
4. 打分函数 createScorer
DNA 默认 match=+2、mismatch=−1;蛋白质可选 BLOSUM62 或按疏水/带电等分组的简化分。比对展示时 | 表示相同,: 表示 BLOSUM 保守替换。
为什么不能只看「比对得分」?
DP 得分 = 各列 match/mismatch/gap 罚分的累加,受打分矩阵、gap 参数、序列长度影响。两条不同长度的序列,或换了 BLOSUM/PAM 矩阵后,得分不能直接比较。应再计算与长度无关的百分比指标,必要时结合数据库搜索的统计显著性(E-value)。
核心指标(本页交互实验室自动计算)
| 一致性 Identity | 完全相同残基 / 有残基的对齐列数 × 100%。DNA 常用;蛋白同源判断的首要指标。 |
|---|---|
| 相似性 Similarity | (完全相同 + 保守替换) / 对齐列数 × 100%。蛋白用 BLOSUM>0 或简化分组计为保守替换。 |
| 覆盖度 Coverage | 局部比对时,参与比对的 A(或 B)长度占原始序列的百分比。低覆盖 → 仅 motif 相似,非全序列同源。 |
| Gap 比例 | 含 gap 的对齐列 / 总对齐长度。过高说明 indel 多或 forced global 对齐。 |
| 单位残基得分 | 比对得分 / 对齐残基数。在同一套参数下可粗略比较两条比对孰优。 |
| 得分效率 | 实际得分 / 全 match 理论最高分 × 100%。反映「接近完美匹配」的程度。 |
经验阈值(仅供参考,非绝对标准)
| DNA | Identity ≥90%:几乎相同(等位基因、PCR 克隆);75–90%:近缘或重复序列;<60%:通常远缘,需结合覆盖度与 E-value。 |
|---|---|
| 蛋白质 | Identity ≥30% 且覆盖 >70%:常提示同源;20–30%(Twilight zone):需更长对齐 + 结构/系统发育佐证;<20%:多为远缘或无关。 |
| 数据库搜索 | BLAST 报告 Bit score(可比)与 E-value(随机出现概率)。E < 0.01 通常认为显著; pairwise DP 教学演示可先用 Identity/Similarity,再送 BLAST 验证。 |
建议流程:① 最优比对 → ② 算 Identity/Similarity/Coverage → ③ 若需发表或数据库注释,用 NCBI BLAST 得 E-value 与 bit score。
自动化测试套件
覆盖完全匹配、错配、indel、局部 motif、仿射 gap、全错配、蛋白 BLOSUM、边界清洗等 10 种情况。点击运行可逐条验证实现是否与预期一致。
自定义序列比对
📥 哪里获取真实 DNA / 蛋白质序列?
在下列数据库检索基因或蛋白,下载 FASTA 格式后复制单链序列(仅字母,不含 > 标题行)粘贴到上方「序列 A / B」即可比对。教学演示建议选取 < 80 个字符的片段,否则矩阵会过大。
核酸(DNA / RNA)
蛋白质
💡 提示:两条序列分别填入 A、B;若下载的是完整 FASTA 文件,只取 > 标题行下面的一行字母。蛋白质比对请将「序列类型」选为蛋白质并启用 BLOSUM62。