从水果连连看到两条序列比对

2023-05-16

一、序列比对 Sequence Alignment

序列比对(sequence alignment),目前是生物信息学的基本研究方法。

算法类似于连连看,规则是上下两个水果一样,就可以连起来,计如得分:

img

现在如果上下两行代表两条序列,把水果换成碱基,可消除的碱基中间连线,就像下面这样:

AACGGGGTG
 | ||| |
CATGGGATT

到目前为止,我们已经实现了一个简单的序列比对。

序列比对最终结果可以用比对得分来评估,然后通过统计学分析后,得到序列间的相似性与同源性,以及它们的显著性水平即可进行下一步生物信息分析。

在应用上,如果找到了不同序列之间的相似性,那就可以推断功能或建立进化关系,以此更好地了解基因的起源和功能。

反之,如果找到序列间的不相似性,就能推断插入,突变,缺失等生物学过程,比如推断新冠病毒的突变位点。

根据序列比对范围和目的,分为两种:

1、全局比对 Global Alignment

顾名思义,就是对两条序列的全长都进行比对

AACGGGGTG
 | ||| |
CATGGGATT

当然有时候序列比对时会不尽人意,类似于这样:

AACTGAGTGA
 |
CATGAGTGA

细心的小伙伴可能会发现只有在其中空一格就会“连”到更多的碱基

AACTGAGTGA
 | |||||||
CA TGAGTGA

其中引入的空格,也叫空位(Gap),在生物学中也有依据:DNA 序列在进化过程中会发生的碱基删除事件。但更多的是一种算法规则,即在计算打分时,需要遵循以下规则:

  • 碱基匹配加分:+1,也就是中间有连线的碱基对

  • 碱基错配罚分:-1,也就是没有连线的碱基对

  • 碱基空位罚分:-3,也就是空位,不组成碱基对

根据规则,上述的比对结果为:8-1-3=4

这种比对常常用于基因家族分析,系统发育树构建等

2、局部比对 Local Alignment

目的是在两条序列比对后,获取序列比对分数或置信度最高的匹配序列片段。我们拿刚刚的全局比对结果举例

AACTGAGTGA
 | |||||||
CA TGAGTGA

最佳的片段为

TGAGTGA
|||||||
TGAGTGA

根据规则计算比对分数为:7,显然这就是我们要找的最佳匹配序列。

这种比对常常用于功能域查找,转录因子足迹搜索等等。

!!!

但是有个坏消息是,现实中的序列是要长的多,比如癌基因 p53 的序列长度为 25760 个碱基。

而且也要复杂的多,比如氨基酸之间的错配,由于氨基酸之间的物化性质,虽然是不同的氨基酸,但是介于错配与匹配分数之间,这就不能用简单的规则来计算比对分数啦。

为了获得最佳的比对序列,就需要比较序列间的比对得分大小。那么现在有两个需要解决的问题:

  • 设计一种规则,用于计算最真实的比对得分
  • 设计一种算法,来快速精准的比对序列

这时,有大牛提出计分矩阵和最优比对算法来解决这两个问题。

这篇我们先来探讨比对的得分的计算,也就是计分矩阵的由来与计算方法:

二、计分矩阵 Scoring Matrix

在序列比对过程中,需要一个计分规则来对匹配到的每个位置的碱基,氨基酸,错配等进行打分,因此该矩阵也叫替换矩阵(substitution matrix)。

2.1 碱基计分矩阵

比如我们来计算下面两条 DNA 序列的分值:

ATGCGAT
|| ||||
ATCCGAT

一个常用与DNA序列的计分矩阵

ATCG
A0.9-0.1-0.1-0.1
T-0.10.9-0.1-0.1
C-0.1-0.10.9-0.1
G-0.1-0.1-0.10.9

这个矩阵的意思就是,只有匹配一样计分 0.9,但凡不一致扣分 0.1。根据这个计分规则,我们可以很骄傲地拿出我们幼儿园学到的数学,得出:

0.9 × 6 + 1 × ( − 0.1 ) = 5.3 0.9\times6 + 1\times(-0.1) = 5.3 0.9×6+1×(0.1)=5.3

同源性:代表两条序列间有进化关系,也就是进化中的突变概率也会被考虑在内。

相似性:只代表两条序列的相似度

空位问题 Gap

对于序列在进化过程中,插入或缺失造成的序列空位,可能是一个或多个碱基,氨基酸,甚至功能域。

在进行序列比对时,就需要考虑到这些问题,一般用空位罚分(Gap penalty)来处理。

用公式表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EtIziru2-1635057569192)(https://cdn.nlark.com/yuque/__latex/525b352e7a54a951ffcc86e433a2f25b.svg)]

这里的参数代表:

  • a 空位设置 Gap opening:只要有一个空位出现,就以空位设置罚分

  • b 空位扩展 Gap extension:任一空位的扩大,以空位扩展罚分,一般长度越大,罚分越重

  • k 空位数

很容易可以得到

空位设置空位扩展用途
用于非常相似的蛋白质序列的比对,也就是序列间极少有插入,缺失
用于功能域插入或缺失的蛋白质序列比对,序列间少量的长片段空缺
用于亲缘关系较远的蛋白质同源性分析,序列间有大量的短片段空缺

2.2 氨基酸计分矩阵

蛋白质序列的计分矩阵相较于只有 4 个碱基的 DNA 序列要复杂的多。对于蛋白质序列的分析可以避免在翻译时的简并性问题(几个三联体可能编码同一个氨基酸),而且也是最接近执行生物学功能和自然选择的分子,因此蛋白质分析在同源家族,基因进化等方面更具研究意义。

2.2.1 PAM 矩阵

各种氨基酸在进化过程中,由于其自身的物化性质,一种氨基酸替换为另一种氨基酸的概率并不一样。

img

1978年,以 Dayhoff 为首的科学家,对大量蛋白质家族进行统计学分析,观测到 1572 次氨基酸替换,构建了最原始的 PAM 矩阵(Percent Accepted Mutation,PAM),也叫 MDM 矩阵(Mutation Data Matrix)或 Dayhoff 矩阵。

img

根据该表可以计算突变概率矩阵,其中每个矩阵元素代表在进化过程中氨基酸之间的替换频率。

接下来将观测到的突变百分率作为一种进化时间单位,现在假设同一位点不会发生两次以上的突变,我们对 PAM 进行次方处理,比如 PAM 的 100 次方,意味着进化了 100 次,时间尺度也会更大。

在Dayhoff 和她的小伙伴研究过程中,发现将突变概率矩阵进行 250 次方处理后得到的 PAM 250,适合用于研究远缘蛋白质进化,换句话说这是一个研究这种蛋白质最合适的时间尺度。

然后再将 PAM 250 矩阵进行对数处理,得到 PAM250 的对数概率矩阵,该矩阵用于表示氨基酸间互相替换的观测规律。

经过前人的不懈努力,我们终于拿到了最终的计分矩阵,可以计算比对得分啦。

img

后来随着蛋白质序列的增加,有人扩大了统计样本,新构建了 JTT 矩阵等,但最终效果都与 PAM 类似。因此,目前使用最为广泛的还是 PAM。

不清楚选择哪种矩阵怎么办?

需要注意,由于不同的蛋白质家族进化速度并不相同,因此选用的 PAM 也会不一样。

总的来说,如果研究进化关系远的蛋白质序列,最好选 > 100 PAM。

如果蛋白质序列本身相似度高,PAM 的影响会比较小,默认 PAM250 就行。

2.2.2 BLOSUM 矩阵

img

1992 年,Steve Henikoff 和他的妻子 Jorja Henikoff 一起引入了 BLOSUM 替换矩阵。

BLOSUM(Blocks Substitution Matrix),不同于 PAM 直接用全序列对统计氨基酸替换规律,Henikoff 先对区域保守的蛋白质家族进行局部对比,得到蛋白质序列的高度保守区域,也就是 Blocks,然后基于局部比对块获得每个位置的替换分数。

在计算时首先要构建一个蛋白质家族最保守区域的序列比对数据库,得到局部比对块,计算块中的氨基酸对。

现在计算每个氨基酸对的替换分数:

a. 计算观察概率

假设 f i j f_{ij} fij 代表 i,j 氨基酸对, q i j q_{ij} qij 代表观察到的氨基酸频率:
q i j = f i j ∑ f i j q_{ij}=\frac{f_{ij}}{\sum{f_{ij}}} qij=fijfij

b. 计算期望概率

在完全独立情况下, p i , p j p_i, p_j pi,pj 代表 i,j 氨基酸频率,该氨基酸替换频率的期望值 e i j e_{ij} eij

e i j = { p i 2 i = j 2 p i p j i ≠ j e_{ij}=\begin{cases} p_i^2 & i=j \\ 2p_ip_j & i≠j \\ \end{cases} eij={pi22pipji=ji=j

其中,

p i = q i i + 1 2 ∑ i ≠ j q i j p_i=q_{ii}+\frac{1}{2}\sum_{i≠j}{q_{ij}} pi=qii+21i=jqij

c. 计算氨基酸替换分数

s c o r e i j = 2 l o g 2 ( q i j e i j ) score_{ij}=2log2(\frac{q_{ij}}{e_{ij}}) scoreij=2log2(eijqij)

也就是, q i j q_{ij} qij 代表观察到的可能性, e i j e_{ij} eij 代表预料之中的可能性。每个氨基酸对的出现与该对出现的预期值的比率,再被四舍五入并用于替换矩阵中,得到这样一种矩阵,类似于 PAM 矩阵:

img

其中,

  • 零分表示在数据库中发现给定的两个氨基酸比对的频率是偶然的

  • 正分表示比对被发现的频率高于偶然

  • 负分表示比对被发现的频率低于偶然

根据构建数据库时, Block 的最小相似比例,可以定义不同的 BLOSUM。

比如上图所示的是 BLOSUM 62, 代表使用局部序列比对相似度为至少为 62%的 Block 构建的替换矩阵。

不难理解,BOLSUM 后的数字越大,代表进化关系越近。

不清楚选择哪种矩阵怎么办?

BLOSUM 80:进化关系近的蛋白质

BLOSUM 62:大部分蛋白质,默认

BLOSUM 45:进化关系远的蛋白质

目前 BLOSUM 矩阵就是我们使用 BLAST 算法经常用的一种计分矩阵。

2.2.3 PSSM 位置特异性矩阵

位置特异性矩阵(PSSM,Position-Specific Scoring Matrix),计算每种碱基或氨基酸,在特定位置的频率矩阵。一般常用于保守序列的搜索,比如PSI-BLAST,DELTA-BLAST等。

计算举例:

TGAGTGAT
TCAGCGAT
TGGGCGAT
TGGGTGAA

a. 计算频数矩阵

对每条序列中的 ATCG 计算频数

12345678
A002000417
T400020039
C010020003
G0324040013

b. 计算频率矩阵

12345678
A000.500010.250.22
T10000.5000.750.28
C00.25000.50000.09
G00.750.5101000.41

c. 标准化矩阵

碱基背景频率/位置频率

12345678
A002.270004.551.140.22
T3.570001.79002.680.28
C02.78005.560000.09
G01.831.222.4402.44000.41

d. 对数转换矩阵

s c o r e = l o g 2 ( p i j ) score=log_2(p_{ij}) score=log2(pij),其中 p i j p_{ij} pij 代表标准化矩阵中对应的频率,如果 p i j p_{ij} pij 为 0,则取 p i j p_{ij} pij 伪值 0.1

12345678
A-3.3-3.31.18-3.3-3.3-3.32.190.19
T1.84-3.3-3.3-3.30.84-3.3-3.31.42
C-3.31.48-3.3-3.32.48-3.3-3.3-3.3
G-3.30.870.291.29-3.31.29-3.3-3.3

实际应用中,可以用该 PSSM 矩阵作为打分矩阵,去搜索未知序列中与该 PSSM 相似的保守序列片段。当然也可以计算并绘制基序 Logo。

下一篇我们详细探究序列比对算法:

  • Needleman-Wunsch 算法
  • Smith-Waterman 算法
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从水果连连看到两条序列比对 的相关文章

  • Tensorflow lite for 移动端安卓开发(二)——完整详细过程训练自己的模型

    官方给的Tensorflow lite demo是ImageNet 中训练的1000类物体识别 xff0c 基于移动端的项目需要 xff0c 现在要用模型训练自己的数据 xff0c 提供两种训练方法 xff0c 这也是自己在摸索Tensor
  • 机器人领域牛人和研究组列表

    机器人领域牛人列表 美国 Sebastian Thrun Stanford University SLAM领域著名科学家 现任美国斯坦福大学教授 人工智能实验室实验室主任 德国波恩大学博士 硕士 希尔德斯海姆大学 University of
  • 嵌入式 - 宏内核和微内核

    更新历史 20220315 首次创建 xff0c 对宏内核与微内核的概念做出简单的解释 xff1b 宏内核和微内核 引言内核结构宏内核结构特点操作系统举例 微内核结构特点典型操作系统举例 宏内核 V S 微内核参考资料 引言 与通用机操作系
  • SpringAOP的使用

    1 什么是AOP AOP Aspect Orient Programming xff0c 直译过来就是面向切面编程 AOP是一种编程思想 xff0c 是面向对象 xff08 OOP xff09 的一种补充和完善 对于面向对象来说是将程序抽象
  • strrstr函数的宽字符版实现

    strrstr函数用来从一个字符串尾部开始查找另一个字符串出现的第一个位置 xff0c 我却没有找到这个函数的宽字符版本 xff0c 因此自己写了一个实现的函数如下 const wchar t wcsrstr In z const wcha
  • 亚马逊,一个沉睡广告巨人的苏醒(虎嗅网)

    虽然拥有令无数广告主羡慕的高质量用户数据和巨大的网站流量 xff0c 但是在很长的一段时间内亚马逊还是将主要的精力集中在商品销售上 xff0c 广告只是作为自身业务的补充可有可无的存在 不过最近两年 xff0c 亚马逊对广告这种不屑的态度正
  • 大数据案例分析:电信业Hadoop应用分析 原文出自【比特网】,转载请保留原文链接:http://do.chinabyte.com/228/12410228.shtml

    电信业Hadoop应用分析 昨日 xff0c 联通研究院处长王志军在第七届 开源中国 开源世界 高峰论坛上分享了Hadoop在电信行业大数据应用的经验 随着国内3G网络的发展 xff0c 或者移动通信网络的发展 xff0c 中国联通 600
  • Vue富文本编辑器Tinymce内容导出Pdf、Word

    一 Tinymce导出Pdf 使用VueHtml2pdf插件 xff0c 安装插件 xff0c VueHtml2pdf详情见vue html2pdf npm npm i VueHtml2pdf 引入和注册 引入 import VueHtml
  • 大腕出手看门道,谈BAT的投资战略差异 三家战略投资的思考原点并不相同虎嗅网)

    中国互联网的收购之战 xff0c 比娱乐圈的明星离婚更一波三折和猜不透结局 当所有人以为搜狗被360牵回山寨只是早晚的事的时候 xff0c 搜狗和腾讯宣布好上了 眼瞅着今年第三季度即将结束 xff0c 中国互联网巨头们在2013年的 军备竞
  • JDK6的安装

    http www java net download jdk6 6u10 promoted b32 binaries jdk 6u10 rc2 bin b32 windows i586 p 12 sep 2008 exe XP 下 JDK6
  • 如何利用大数据进行价值兑现才是正经事(虎嗅网)

    如果有一天你可以预测未来 xff0c 你要做的第一件事情是什么 xff1f 买彩票 xff1f 第二件 第三件事情呢 xff1f 先卖个关子 xff0c 我们后面再说这件事情 大数据是个产业 xff0c 广义上指的是在这个信息过载时代围绕着
  • 多图震撼!数字的未来,2013报告(虎嗅网)

    新媒体 完爆 旧媒体 从市值上来看 xff0c 以苹果 谷歌 亚马逊 Facebook 雅虎等为首的新媒体公司市值已超过1万亿美元 xff0c 而以迪斯尼 Comcast 时代华纳 Viacom CBS 新闻集团 21世纪福克斯等为首的旧媒
  • 网页采集器-八爪鱼采集器

    八爪鱼采集器下载地址 xff1a http www bazhuayu cc download 八爪鱼采集器的注册地址 xff1a http www bazhuayu cc signup id 61 0e492e9c 6d80 4c2a a2
  • 考研书单与技巧

    书尽量在网上搞活动时买正版的 xff0c 这样也不贵 每科研究透一到两本书 xff0c 不要贪多 xff01 1 英语 xff1a xff08 积累的过程 xff0c 可以现在开始 xff0c 正好把六级过了 xff09 xff08 看好所
  • Ubuntu下程序进程堆栈信息——gstack

    前言 在Ubuntu下调试程序 xff0c 大部分是启动前使用gdb进行调试 xff0c 当然也有其他方法 xff0c 程序在运行中 xff0c 为了不打断程序正常运行 xff0c 也有一些工具进行调试 当前本文章旨在说明不安装其他额外程序
  • 9.针对Linux的8种最佳免费防病毒程序

    虽然Linux操作系统相当稳定和安全 xff0c 但它们可能不完全免疫威胁 所有计算机系统都可能遭受恶意软件和病毒攻击 xff0c 其中包括运行基于Linux的操作系统的系统 但是 xff0c 对于基于Linux的操作系统而言 xff0c
  • 有铅焊锡丝与无铅焊锡丝的性能差异大解析

    有铅焊锡丝与无铅焊锡丝是二大类差另外产物档次 xff0c 由于其金属成份差别造成熔点也差别 xff0c 一样通常有铅焊锡丝 的熔点在183度 xff0c 而无铅焊锡丝的熔点为217 227度 含铅量越少熔点将越高 由于焊锡丝的熔点温度进步之
  • linux中的系统调用

    前言 xff1a 本文只讨论linux中的系统调用 xff0c 不考虑windows等其他操作系统 两点 xff1a 1 系统调用时 xff0c 进程调用的是操作系统的内核函数 xff0c 不是进程 2 系统调用时 xff0c 会出现上下文
  • iView 日期选择器开始时间至结束时间限制

    需要考虑以下条件 开始时间和结束时间都不能大于当前时间开始时间不能大于结束时间 html lt FormItem label 61 34 起止时间 34 gt lt DatePicker type 61 34 date 34 v model

随机推荐

  • 树莓派3安装笔记(1)-安装操作系统Raspbian以及安装必要软件

    拿到了树莓派3后 xff0c 经过短暂的兴奋 xff0c 终于开始实战安装OS了 以下步骤基于官方的文章https www raspberrypi org learning software guide quickstart xff0c 选
  • C中需要检验其执行是否成功的函数(检验返回值)

    一 malloc xff08 xff09 因为当内存分配完了后 xff0c 就无法再分配空间了 xff0c 所以malloc失败也是有的是 xff0c 当malloc失败时返回NULL char s 61 void malloc SIZE
  • 《Java核心技术 卷1》

    目录 第4章 对象和类 lt 1 gt 静态字段和静态方法 lt 2 gt 初始化块 lt 3 gt 定义抽象类的对象变量 lt 4 gt hashCode方法得到散列码 lt 5 gt 虚拟机中的泛型类型信息 第五章 继承 第6章 接口
  • Kalibr 之 Camera-IMU 标定 (总结)

    Overview 欢迎访问 持续更新 xff1a https cgabc xyz posts db22c2e6 ethz asl kalibr is a toolbox that solves the following calibrati
  • VMware Workstations Pro 14 建立的虚拟机目录无法删除

    起因 通过VMware新建的RedHat虚拟机 xff0c 无意间的强制关机 xff0c 导致该虚拟机开机黑屏无法正常开启 xff0c 而且也关不掉 尝试删除自己创建的虚拟机目录文件 xff0c 提示文件被占用 通过任务管理器想要结束相关进
  • 矩形目标检测

    身份证 名片 书籍 考试试卷 答题卡这些检测目标都属于矩形目标检测 一 xff0c 现有技术 传统检测方法思路 xff1a 第一步 xff0c 采用滑动窗口 xff0c 设置不同的大小 xff0c 遍历图像 xff0c 得到一些目标的候选框
  • 几种常用通信协议

    通信可以形象的比喻成两个人讲话 xff1a 1 你说的别人得能听懂 xff1a 双方约定信号的协议 2 你的语速别人得能接受 xff1a 双方满足时序要求 一 IIC协议 xff1a 2C串行总线一般有两根信号线 xff0c 一根是双向的数
  • 基础篇——树莓派远程连接工具VNC不显示视频或摄像头画面解决方式

    背景故事 在树莓派上打开摄像头 xff0c 发现HDMI输出的桌面有画面 xff0c 但VNC这边没有画面 xff1b 之前有一次使用播放器播放视频也出现这个问题 xff0c 现记录解决方式 原因分析 VNC远程桌面并不是使用画面传输的方式
  • 穿越机(无人机航模)电池组装教程-电线接口

    对于动手能力强 xff0c 或者穷逼来说 xff0c 购买品牌电池玩穿越机 xff0c 或者其他航模 是非常浪费钱的 本着能自己干就不需要厂商辛苦的原则 电池组装 xff0c 我们可以自己做 非航模圈的电池 xff0c 一般都需要自带平衡电
  • UITextView

    闪退问题 scrollViewDidScroll 改为 scrollViewWillBeginDragging 禁止编辑 text setEditable NO 光标位置输入 64 param emoji 要输入的内容emoji和字符 vo
  • iView 滚动条样式

    滚动条样式 webkit scrollbar width 6px height 6px webkit scrollbar thumb background ccc webkit scrollbar track background e1e1
  • 英特尔 RealSense D415 + OpenCV 4.0 + VS2017 配置方法

    首先是Opencv 4 0 43 VS2017的配置过程 xff0c 网上已经有很多类似教程 xff0c 这里不再累赘 xff1a https www cnblogs com xinxue p 5766756 html 接下来开始配置D41
  • Android 系统调用实现函数功能--SVC指令的实现与检测

    0x0 简述 xff1a arm android中通过一些反编译的工具分析ELF文件时 xff0c 根据一些导入的系统函数可以很轻松的找到一些功能代码的实现 xff1a 查看libc中分析这些函数的实现 xff1a arm中通过SVC指令实
  • Docker学习笔记(九):Docker +Jenkins +Github持续集成

    本次配置时 xff0c jenkins需要配置在外网可访问的服务器上 xff0c 因为在git push内容到github时 xff0c 触发Webhooks并推送到jenkins服务器上 1 配置Github xff08 通过秘钥登录 x
  • opencv-python 常用函数介绍

    目录 imread xff1a 读取图片 imshow xff1a 展示图片 resize xff1a 图片等比例缩放 split xff1a 获取所有像素的颜色值 merge xff1a 根据颜色值合成图片 VideoCapture xf
  • redis 内存占用分析

    在Redis命令行中 xff0c 执行MEMORY STATS命令查询内存使用详情 Redis实例的内存开销主要由两部分组成 xff1a 业务数据的内存开销 xff0c 该部分一般作为重点分析对象 非业务数据的内存开销 xff0c 例如主备
  • php laravel 分析 redis 各个key的内存占用情况

    lt php namespace App Console Commands Tools use Illuminate Console Command use Illuminate Support Facades DB class Redis
  • centos7手动修改dns

    DNS是计算机域名系统 Domain Name System 或Domain Name Service 的缩写 xff0c 它是由域名解析器和域名服务器组成的 域名服务器是指保存有该网络中所有主机的域名和对应IP地址 xff0c 并具有将域
  • 查看并关闭占用端口

    查看占用端口 sudo lsof i 8888 关闭占用端口 sudo kill 9 2558243
  • 从水果连连看到两条序列比对

    一 序列比对 Sequence Alignment 序列比对 xff08 sequence alignment xff09 xff0c 目前是生物信息学的基本研究方法 算法类似于连连看 xff0c 规则是上下两个水果一样 xff0c 就可以