语音识别:时间序列的Smith–Waterman对齐算法
一、基本概念
Smith-Waterman 算法执行局部序列比对;也就是说,用于确定两串核酸序列或蛋白质序列之间的相似区域。 Smith-Waterman 算法不是查看整个序列,而是比较所有可能长度的片段并优化相似性度量。
该算法由 Temple F. Smith 和 Michael S. Waterman 于 1981 年首次提出。 [1]与作为其变体的 Needleman-Wunsch 算法一样,Smith-Waterman 是一种动态规划算法。因此,它具有理想的特性,即可以保证找到相对于所使用的评分系统(包括替换矩阵和间隙评分方案)的最佳局部对齐。 Needleman-Wunsch 算法的主要区别在于负评分矩阵单元设置为零,这使得(因此正评分)局部对齐可见。 Traceback 过程从得分最高的矩阵单元开始并继续进行,直到遇到得分为零的单元,从而产生得分最高的局部对齐。由于它在时间和空间上的二次复杂性,它通常不能实际应用于大规模问题,而是被不太通用但计算效率更高的替代方案所取代,例如 (Gotoh, 1982), [2] (Altschul 和 Erickson, 1986 年),[3] 和(迈尔斯和米勒,1988 年)。 [4]
二、算法原理
令 和是要对齐的序列,其中和 分别是 和 的长度。
1 确定替代矩阵和空位惩罚方案。
- 构成两个序列的元素的相似度得分
- - 长度为 k 的间隙的惩罚
2 构造一个评分矩阵H 并初始化它的第一行和第一列。评分矩阵的大小为 。该矩阵使用基于 0 的索引。
3 使用以下等式填充评分矩阵。
是对齐和,
是如果 在末尾的分数长度为的间隙,
是如果 在末尾的分数长度为的间隙,
表示和 没有相似性。
4 追溯。从评分矩阵 {\displaystyle H}H 中的最高分数开始,到分数为 0 的矩阵单元格结束,递归地基于每个分数的来源进行回溯,以生成最佳局部对齐。
三、计算步骤
Smith-Waterman 算法通过匹配/错配(也称为替换)、插入和删除来比对两个序列。插入和删除都是引入间隙的操作,用破折号表示。 Smith–Waterman 算法有几个步骤:
1 确定替代矩阵和空位惩罚方案。替换矩阵为每对碱基或氨基酸分配匹配或错配的分数。通常匹配得到正分数,而不匹配得到相对较低的分数。间隙惩罚函数确定打开或扩展间隙的得分成本。建议用户根据目标选择合适的评分系统。此外,尝试替代矩阵和空位惩罚的不同组合也是一种很好的做法。
2 初始化评分矩阵。评分矩阵的维度分别为每个序列的 1+length。第一行和第一列的所有元素都设置为 0。额外的第一行和第一列使得可以在任何位置将一个序列与另一个序列对齐,并将它们设置为 0 使末端间隙不受惩罚。
3 得分。考虑替换的结果(对角线得分)或添加差距(水平和垂直得分),从左到右、从上到下对矩阵中的每个元素进行评分。如果没有一个分数是正数,则该元素为 0。否则,使用最高分数并记录该分数的来源。
4 追溯。从分数最高的元素开始,根据每个分数的来源递归回溯,直到遇到 0。在此过程中生成基于给定评分系统具有最高相似度分数的片段。要获得第二好的局部对齐,请从最佳对齐轨迹之外的第二高分开始应用回溯过程。
四、算法示例
4.1 替代矩阵
每个碱基取代或氨基酸取代都被分配一个分数。一般来说,匹配的得分为正,不匹配的得分相对较低。以 DNA 序列为例。如果匹配得到+1,不匹配得到-1,那么替换矩阵是:
A | G | C | T | |
---|---|---|---|---|
A | 1 | -1 | -1 | -1 |
G | -1 | 1 | -1 | -1 |
C | -1 | -1 | 1 | -1 |
T | -1 | -1 | -1 | 1 |
这个替换矩阵可以描述为:
不同的碱基取代或氨基酸取代可以具有不同的分数。氨基酸的置换矩阵通常比碱基的置换矩阵复杂。参见 PAM,BLOSUM。
4.2 空档罚分
空位罚分指定插入或删除的分数。一个简单的空位罚分策略是对每个空位使用固定分数。然而,在生物学中,出于实际原因,需要对分数进行不同的计算。一方面,两个序列之间的部分相似性是普遍现象;另一方面,单个基因突变事件可能导致插入单个长缺口。因此,形成长间隙的连接间隙通常比多个分散的短间隙更受青睐。为了考虑到这种差异,评分系统中增加了间隙打开和间隙扩展的概念。缺口开放分数通常高于缺口扩展分数。例如,EMBOSS Water 中的默认参数是:缺口开度 = 10,缺口延伸 = 0.5。
在这里,我们讨论了间隙惩罚的两种常见策略。有关更多策略,请参阅间隙惩罚。令 为长度为 k 的间隙的间隙惩罚函数:
1)线性罚分
线性间隙罚分在打开和扩展间隙时具有相同的分数:
, 其中 是单个间隙的成本。
间隙惩罚与间隙长度成正比。当使用线性间隙惩罚时,Smith-Waterman 算法可以简化为:
简化算法使用步骤。当对一个元素进行评分时,只需要考虑与该元素直接相邻的元素的差距罚分。
2)仿射罚分
仿射空位罚分分别考虑空位打开和扩展:
,
其中 是空位开放罚分, 是空位扩展罚分。例如,长度为 2 的间隙的惩罚是。 在原始的 Smith-Waterman 算法论文中使用了任意间隙惩罚。它使用 步骤,因此对时间要求很高。 Gotoh 将仿射间隙罚分的步骤优化为 {\displaystyle O(mn)}O(mn),[2] 但优化后的算法仅尝试找到一个最佳对齐方式,并且不能保证找到最佳对齐方式。 [ 3] Altschul 修改了 Gotoh 的算法,以在保持计算复杂性的同时找到所有最佳对齐。 [3]后来,Myers 和 Miller 指出,Gotoh 和 Altschul 的算法可以在 Hirschberg 于 1975 年发表的方法[11]的基础上进一步修改并应用该方法。 [4] Myers 和 Miller 的算法可以使用 空间对齐两个序列,其中是较短序列的长度。
4.3 间隙惩罚示例
以序列TACGGGCCCGCTAC和TAGCCCTATCGGTCA的比对为例。当使用线性间隙惩罚函数时,结果为(由 EMBOSS Water 执行的对齐。替换矩阵为 DNAfull。间隙打开和扩展均为 1.0):
TACGGGCCCGCTA-C
TA---G-CC-CTATC
当使用仿射间隙惩罚时,结果是(间隙打开和扩展分别为 5.0 和 1.0):
TACGGGCCCGCTA
TA---GCC---CTA
这个例子表明仿射间隙惩罚可以帮助避免分散的小间隙。
4.4 评分矩阵
评分矩阵的作用是对两个序列中的所有成分进行一对一的比较,并记录最优的比对结果。评分过程反映了动态规划的概念。通过迭代扩展不断增长的最佳对齐来找到最终的最佳对齐。换句话说,当前的最佳对齐是通过决定哪条路径(匹配/不匹配或插入间隙)从先前的最佳对齐中给出最高分数来生成的。矩阵的大小是一个序列的长度加 1 乘以另一个序列的长度加 1。附加的第一行和第一列用于将一个序列与另一个序列中的任何位置对齐。第一行和第一列都设置为 0,这样结束间隙就不会受到惩罚。初始评分矩阵为:
b1 | ... | bj | ... | bm | ||
---|---|---|---|---|---|---|
0 | 0 | ... | 0 | ... | 0 | |
a1 | 0 | |||||
... | ... | |||||
ai | 0 | |||||
... | ... | |||||
an | 0 |
五、例子
5.1 示例说明
以 DNA 序列 TGTTACGG 和 GGTTGACTA 的比对为例。使用以下方案:
代入矩阵:
间隙惩罚:(线性间隙惩罚 )
初始化并填充评分矩阵,如下图所示。该图显示了前三个元素的评分过程。黄色表示正在考虑的碱基。红色表示被评分单元格的最高可能分数。
评分矩阵的初始化(左1)和前三个元素的评分过程(左2-4)
完成的评分矩阵如下左图所示。蓝色表示最高分。一个元素可以从多个元素接收分数,如果追溯该元素,每个元素将形成不同的路径。如果有多个最高分,则应从每个最高分开始进行回溯。回溯过程如下右图所示。最佳的局部对齐是在相反的方向上生成的。
5.2 实现步骤参考图
step1:初始化评分矩阵
step2:按规则填充评分矩阵
step4 确定最高分数
step5:回溯路径
step6:结果输出
语音识别:时间序列的Smith–Waterman对齐算法相关推荐
- 【序列匹配算法】Smith Waterman算法 v2.0
Smith Waterman算法是用于两条序列局部匹配的经典算法.与Needleman Wunsch算法不同的是,Smith Waterman算法侧重于寻找局部最优匹配而非全局匹配. 阅读本文前强烈建 ...
- 精彩回顾|《图像对齐算法》
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间,对3D视觉领域相关知识点进行讲解,并在微 ...
- 深度学习多变量时间序列预测:Encoder-Decoder LSTM算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:Encoder-Decoder LSTM算法构建时间序列多变量模型预测交通流量+代码实战 LSTM是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要 ...
- 人脸检测 和 人脸对齐算法-Dlib-Opencv-MTCNN
人脸检测 和 人脸对齐算法算法-Dlib-Opencv-MTCNN 1.Dlib人脸检测 2.Opencv人脸检测 3.MTCNN人脸检测 1.Dlib人脸检测 2.Opencv人脸检测 3.MTCN ...
- Centerface:开源实用的边缘设备无锚人脸检测与对齐算法
点击我爱计算机视觉标星,更快获取CVML新技术 昨天Github上 ywlife 开源了 CenterFace:实用的边缘设备无锚人脸检测与对齐算法,引起了很多52CV群友的关注,开源不到一天,已经1 ...
- 重磅!清华商汤开源CVPR2018超高精度人脸对齐算法LAB
清华&商汤开源超高精度人脸对齐算法LAB 同时发布含10000张人脸的多属性人脸关键点数据集 该算法来自CVPR2018论文<Look at Boundary: A Boundary-A ...
- SDM人脸对齐算法研究
人脸对齐的算法是我本科阶段的毕业设计课题,从最初的一脸迷茫到最后完成毕设,两个月的时光,恭喜自己顺利完成了毕业设计,在过程中,更是不能缺少指导老师以及学长们给予的帮助.衷心感谢! 人脸对齐的目的是对人 ...
- 人脸对齐算法常用评价标准总结
转载请注明作者和出处: http://blog.csdn.net/john_bh/ 文章目录 1. I O N 和 I P N ION和IPN ION和IPN 2. M N E MNE MNE (th ...
- 人脸对齐算法调研(Face Alignment)
人脸对齐算法调研(Face Alignment) 转载自 https://zhuanlan.zhihu.com/p/101250334 一.人脸对齐的定义与作用(引用): https://blog.c ...
最新文章
- Node.js基金会官方的开发者认证准备就绪
- Google V8 编译方法(visual c++ 2008 express)(学习+原创)
- java中从str1中删除所有str2_Java中str1.equals(str2)和str1==str2的区别
- html渐变效果做网页,CSS实现文本渐变效果
- Eclipse里修改SVN的用户名和密码
- 安卓 时间服务器_官方都被惊动!LOL手游日本服务器挤到瘫痪,IOS不得不推迟...
- javascript 数组合并与去重
- oracle中日期相减及显示几天几小时几分钟
- 升级glibc库到glibc-2.14.1
- ORB-SLAM3:一个用于视觉、视觉惯性和多地图SLAM系统
- 12306订票候补是个坑_12306网上订票候补是什么意思
- qq邮箱 html 屏蔽,QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
- 软件工程课堂作业(三)——Right-BICEP软件单元测试
- python配置(二)——机器学习环境
- 短视频app源码开发,音视频合成的实现
- phpspreadsheet 中文文档(七)技巧和诀窍
- 最详细的原版win8系统安装指南,重装原版系统不再求人!
- 均方根误差(RMSE)、平均绝对误差(MAE)、标准差
- 2022-2028全球小型建筑设备行业调研及趋势分析报告
- 计算机一级考试说说,考试说说心情汇总81句 关于考试的说说
热门文章
- 机器学习笔记:Adam
- matlab从入门到精通-常用的几种缺失值处理方法
- 数据中台实战(一):以B2B电商亿订为例谈数据埋点(产品经理视角)
- 产品运营必须知道的几个概念,什么是定向营销?
- Matlab实现线性回归和逻辑回归: Linear Regression Logistic Regression
- 多变量线性回归 原理
- 深度学习100例 | 第24天-卷积神经网络(Xception):动物识别
- Python--判断一个字符串是否包含某子串的几种方法
- 从flink-example分析flink组件(3)WordCount 流式实战及源码分析
- 可视化swing界面编辑--转载