【生信】第二章 序列比对——Needleman-Wunsch全局比对


主要为基因组测序比对相关知识,部分内容作笔记自查使用。如有错误或遗漏还请海涵,可评论或邮箱联系。
最后修改时间:2020-04-03 07:53:55 星期五


Needleman-Wunsch全局比对

一、符号约定

符号

说明

xandy

两个序列

M\left( {i,j} \right)

{x_i}比对到{y_i}情况下,序列x和y目前的最好比对得分(括号里的下标,代表当前已经比对完毕的位置)

X\left( {i,j} \right)

{x_i}比对到gap的情况下,序列x和y目前的最好比对得分(括号里的下标,代表当前已经比对完毕的位置)

Y\left( {i,j} \right)

{y_i}比对到gap的情况下,序列x和y目前的最好比对得分(括号里的下标,代表当前已经比对完毕的位置)

s\left( {A,B} \right)

A替换成B的分数

d

开启一个gap的罚分(正值)

e

延伸一个gap的罚分(正值)

二、简单模型

2.1 模型假设

  1. 符合全局比对要求,即x全串比对到y全串上
  2. 先不考虑开启gap和延伸gap的区别,将gap统一认定罚d分

2.2 模型构建

设在{x_{1 \ldots i}}{y_{1 \ldots j}}完全比对上时,最好的得分为F\left( {i,j} \right),其中{x_{1 \ldots i}}{y_{1 \ldots j}}不一定是x和y全串。此时可能出现3种情况:
       1. {{x_i}}比对上{{y_j}},即前面的串{x_{1 \ldots i - 1}}{y_{1 \ldots i - 1}}完全比对上
       2. {{x_i}}比对上gap,即前面的串{x_{1 \ldots i - 1}}{y_{1 \ldots j}}完全比对上
       3. {{y_j}}比对上gap,即前面的串{x_{1 \ldots i}}{y_{1 \ldots j - 1}}完全比对上
      综上,有

F\left( {0,0} \right) = 0

F\left( {i,j} \right) = \max \begin{dcases}{F\left( {i - 1,j - 1} \right) + s\left( {{x_i},{y_j}} \right)} \\ {F\left( {i - 1,j} \right) - d} \\ {F\left( {i,j - 1} \right) -d} \end{dcases}

有了上述公式,我们就可以利用动态规划思想,计算F\left( {i,j} \right),填满下面每一个格子


2.3 模型使用

以串x:AAGy:AGC为例。gap罚分d=5。使用碱基替换矩阵如下:

计算F\left( {i,j} \right),填满动态规划矩阵,如下:

注意,该矩阵是含有箭头的,意味着记录正向路径,方便反向回溯。
      整个矩阵的最右下角,即为两条序列全串的最优比对结果。此时,需要按正向路径(由箭头记录)相反的方向回溯,得到比对方法。

在此例中,F\left( {2,1} \right)对应两个来源,因此上图中有两条路径可以回溯,得到2种比对方法。在此种打分规则下,2种方法都可以得到-6分,因此一样好,如下:


三、完整模型

3.1 模型假设

  1. 符合全局比对要求,即x全串比对到y全串上
  2. 引入开启gap的罚分d,和延伸gap的罚分e

3.2 模型构建

以有限状态机为思路,构建MXY三种状态的转换公式。

  • 状态M
    状态M\left( {i,j} \right)的前一格共3种情况。
           1. 前一格{{x_{i - 1}}}{{y_{j - 1}}}匹配上
           2. 前一格{{x_{i - 1}}}匹配gap
           3. 前一格{{y_{j - 1}}}匹配gap
    综上,有

    M\left( {i,j} \right) = \max\begin{dcases}{M\left( {i - 1,j - 1} \right) + s\left( {{x_i},{y_j}} \right)} \\ {X\left( {i - 1,j - 1} \right) + s\left( {{x_i},{y_j}} \right)} \\ {Y\left( {i - 1,j - 1} \right) + s\left( {{x_i},{y_j}} \right)} \end{dcases}


  • 状态X
    状态X\left( {i,j} \right)的前一格共2种情况。
           1. 前一格{{x_{i - 1}}}{{y_j}}匹配上
           2. 前一格{{x_{i - 1}}}匹配gap
    综上,有

    M\left( {i,j} \right) = \max\begin{dcases}{M\left( {i - 1,j} \right) - d} \\ {X\left( {i - 1,j} \right) - e} \end{dcases}

    事实上,还有第3种情况,即前一格{{y_j}}匹配gap,但这会导致连续出现{{y_j}}对gap后{{x_i}}对gap,显然不如直接将两步合并成M\left( {i,j} \right)


  • 状态Y
    状态Y\left( {i,j} \right)的前一格共2种情况。
           1. 前一格{{x_i}}{{y_{j - 1}}}匹配上
           2. 前一格{{y_{j - 1}}}匹配gap
    综上,有

    M\left( {i,j} \right) = \max\begin{dcases}{M\left( {i,j - 1} \right) - d} \\ {X\left( {i,j - 1} \right) - e} \end{dcases}

    事实上,还有第3种情况,即前一格{{x_i}}匹配gap,但这会导致连续出现{{x_i}}对gap后{{y_j}}对gap,显然不如直接将两步合并成M\left( {i,j} \right)


有了上述公式,我们就可以利用动态规划思想,填充3张表,分别记录M\left( {{x_i},{y_j}} \right)X\left( {{x_i},{y_j}} \right)Y\left( {{x_i},{y_j}} \right),如下:

记录正向路径,正向路径可能会在2张表之间跳跃。之后从表M的最右下角出发,按照正向路径相反的方向回溯,找到最优比对方法。

第二章 序列比对——Needleman-Wunsch全局比对相关推荐

  1. 第二章 序列比对——Blast局部比对

    第二章 序列比对--Blast局部比对  阅读量: 330 主要为基因组测序比对相关知识,部分内容作笔记自查使用.如有错误或遗漏还请海涵,可评论或邮箱联系. 最后修改时间:2020-04-16 16: ...

  2. 4月19日读书笔记——第二章序列构成的数组(1)

    流畅的python 第二章 序列构成的数组 在这之前,我想要先知道什么是序列.维基百科的答案是 数学上,序列是被排成一列的对象(或事件):这样,每个元素不是在其他元素之前,就是在其他元素之后. 例如: ...

  3. python程序设计第二章序列类型 题库及选解

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 python程序设计题库完整版 https://blog.csdn.net/lijia11 ...

  4. 2020.11.3【读书笔记】丨生物信息学与功能基因组学(第二章 序列数据的获取 下)

    2.7 基因组浏览器 三个主流基因组浏览器:Ensemble.UCSC和NCBI 基因组组装 定义: 所获得的一个物种DNA序列按照染色体的形式进行的一种组装. 内容: 对基因组的注释,如起止位点.外 ...

  5. 王道考研 计算机网络笔记 第二章:物理层

    本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 后续章节将陆续更新- 第二章 一.物 ...

  6. 【v2.x OGE-example 第二章(第二节) 修改器的使用】

    2019独角兽企业重金招聘Python工程师标准>>> [v2.x OGE-example 第二章(第二节) 修改器的使用] 1. 位置:Modifier_example --> ...

  7. python语言程序设计2019版第二章课后答案-python语言程序设计基础课后答案第二章...

    python语言程序设计基础课后答案第二章 以下合法的用户自定义标识符是____________. 导入模块或者模块中的元素要使用关键字________ . 下列哪个函数是用来控制画笔的尺寸的____ ...

  8. python编程入门经典 评分-《Python编程入门经典》--第二章:数值和运算符

    一.在字符串中包含不同的数字 在第一章中使用格式说明符将两个字符串连接在一起时,用到了格式说明符%s,它的含义是"一个字符串".由于数值和字符串有不同的类型,必须使用不同的说明符将 ...

  9. Python 第二章-列表和元组

    第二章-列表和元组 2.0       在Python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序列号-即元素的位置, 也称为索引.第一个索引是0,第二个是1,以此类推 ...

最新文章

  1. linux 初始化工作进程 systemd简介
  2. 【Android RTMP】NV21 图像旋转处理 ( 快速搭建 RTMP 服务器 Shell 脚本 | 创建 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图像旋转效果展示 )
  3. 【操作】鼠标hover效果——元素凸起并产生阴影
  4. 体验C++20新特性的最简便方法
  5. mysql5.5索引如何定义_MySQL5.5索引数在InnoDB引擎内与索引数在mysql中定义的数量是不一致问题-阿里云开发者社区...
  6. Linux环境通过java虚拟机定位程序问题位置的方法
  7. 头条和百度“大打出手”时,微信搜索去哪儿了?
  8. c jni 调用java_JNI NDK (AndroidStudio+CMake )实现C C++调用Java代码流程
  9. Nacos概述,下载与安装,初始化配置,服务注册应用,RestTemplate,Feign
  10. hdu 3506 Monkey Party 区间dp + 四边形不等式优化
  11. pb中控件变颜色_基于GDI+技术开发工业仪表盘控件
  12. CMMI中的过程改进
  13. 携程网络防火墙自动化运维之道
  14. java的time_Java TimeUnit使用
  15. 英语词汇篇 - 构词法
  16. 主键和外键的含义及区别
  17. (ROC-RK3568-PC) 裸机19_VOP2和IEP笔记
  18. 关于未来人工智能时代的一点感想
  19. 飞上天和太阳肩并肩中国人这项太阳能开发技术牛大发了
  20. 视频网站主机服务器,视频网站主机服务器

热门文章

  1. mysql pdo 查询一条数据_pdo mysql怎么输出第1条 第4条 第7条数据
  2. 综述:PyTorch显存机制分析
  3. 三维重建关键技术分享:特征检测+匹配+RT恢复+稠密重建方法
  4. Bags of Binary Words | 词袋模型解析
  5. PointPillars:点云物体识别的快速编码
  6. SpringMVC项目前台利用ajaxFileUpload传递图片后台接收
  7. 关于学习TensorFlow推荐的一些资源及使用方式
  8. 建立于因果推理与机器学习共识的稳定学习
  9. python math库常用函数_Python math库常用函数
  10. 常用转录组组装软件集合