Needleman-Wunsch algorithm

完全学自.https://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm

还有内容会更新补充

编者按:

比对其实应该对应的单词是alignment,但往往特指低通量的序列之间的比较。比如10条序列,进行多序列比对就是我们常说的 multiple alignment问题;如果是2条序列的比对,我们经常称其为pairwise alignment.

mapping,一般指高通量的数据去寻找基因组的位置。比如我们进行测序以后,有10M对read pair,要去寻找他们在基因组上的位置,这个时候就是一个典型的mapping问题。

alignment与mapping其实是密切相关的概念,所有的mapping软件其实都是从低通量的办法逐步改进而得到的。

算法简述:

1.需要的配置

  •    一个配比矩阵

               

  •   还需要一个得分系统:

            match,mismatch,gap,连续gap。这些情况对应的分值

 2.算法书写

3.具体的语言表述

  将需要比较的俩列序列,列矩阵一样表现出来。然后依次给每个空格填入分数,即上文的F(i,j)。

  •    F(i,j)的值如果来源于左边的加上gap的分,就是说这个位置的对应的Xi对应Y序列的gap了。

  •    F(i,j)的值如果来源于上边的加上gap的分,就是说这个位置的对应的Yj对应X序列的gap了。

  •    F(i,j)的值如果来源于左上边的加上match或者mismatch的分,就是说这个位置的对应的Xi对应Yj了。

  也就是说,回溯确定序列如何分布时,是被这个分的由来得到的。也就是说,回溯仅能从这个分得到的方向回溯回去。

一些有意思的相关:

序列对齐也是可以采用枚举的方法,当然这个方式一听就很可怕。

两个n长的序列,新的匹配结果能且只能通过插入空位产生,因此最极端的情况无非就是所有残基都与空位对应。

动态规划就是用上个局部最优解加上这个部分的局部最优解,从而得到全局最优解。

一个疑惑:如何保证让局部最优解相加得到全局最优解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值