DNA binding motif比对算法

之前介绍了序列比对的一些算法。本节主要讲述motif(有人翻译成结构模式,但本文一律使用基模)的比对算法。

那么什么是基模么?基模是对DNA结合位点的一种描述。它有几种描述方式,一种是共同序列(consensus sequences)一种是位点倾向距阵(Position Specific Frequency Matrices(PSFM))而对于PSFM,有两种表示方式,一种叫PCM,一种叫PFM,前者是Position count matrices,就是对每个碱基位ACGT出现次数的统计,后者(Position frequency Matrices)是在前者的基础上求出其相对于总数的比率。它们看上去大约是这个样子的:

>PCM motif
A | 367 470 93 1738 0 61 0 0 126 463 414 396
C | 139 12 1688 43 0 109 0 0 471 212 472 411
G | 916 1279 0 0 1781 1601 119 1775 485 426 308 390
T | 148 14 0 0 0 10 1662 6 699 680 584 578
>PFM motif
A
0.208 0.226 0.214 0.350
0.132 0.140 0.070 0.655
0.015 0 0.016 0.968
0.812 0.028 0.010 0.148
0.983 0.007 0.009 0
0.007 0.052 0.027 0.912
0.063 0.024 0.456 0.456
0.669 0 0.312 0.018

使用这个距阵,可以生成所谓的motif logo图示。

alignedLogo0.01.02.0bitspositionmotifName1CTAG2CTAG3AC4CA5G6TACG7GT8TG9ACGT10CGAT11GACT12GACT0.01.02.0bitspositionanother motifFormat1AGCT2GACT3AGT4GCTA5CGA6AGCT7CAGT8TGA

对于基模比对,其主要思路还是运用序列比对当中Needleman-Wunsch或者Smith-Waterman算法。但针对每个碱基位置,因为并非单一的字母,而是一个四个或者五个数字的数组,所以会改变之前字母比对的方式,而使用以下五种算法:

 
  1. Pearson’s correlation coefficient 皮尔逊积矩相关系数
  2. sum of squared distances 距平方和
  3. Kullback–Leibler information content 相对熵
  4. average log-likelihood ratio (ALLR) 平均对数似然率
  5. ALLR with a lower limit of –2 imposed on the score

其实最后一种不应该说是一种算法,只是一种改进,所以我们只略约讲一下前5种方法。

Pearson’s correlation coefficient算法是最容易被想到的一种算法,它将基模中的ACGT分布概率或者个数统计当成两组数,我们必须假设它们拥有相同的分布概率,比如说高斯分布,如果两组数对应位置呈现线性关系的话,那么它们的皮尔逊系数就等于1或者-1.如果它们完全不相关,那么系数就等于0。皮尔逊相关系数的算法为协方差和标准差的商。

很明显,这一算法应用在基模中某一碱基位的比对上有一个巨大的缺陷就是它要求准确服从高斯分布。而基模某一碱基位上只能对应四个,或者五个数字,而一个偏向性强的基模位显然不会符合高斯分布。

对于相对距平方和算法很简单,其公式为。其中M和N是要比较的两碱基位那一列的频率。这一算法是JASPAR用于搜索相类基模的算法。

后面的算法都是从信息论当中来的。它们的基础都是由Claude Shannon提出的信息熵(Information Entropy):

理解这个信息熵可能需要一点点解释。我们说DNA中有4个碱基ACGT,那么每个字母所代表的信息量为:
,
那么对于氨基酸来讲有20种(也有说22或者26种的)ARNDCEQGHILKMFPSTWYV(UO(BZJX)),那么每个字母所代表的信息量为:

如果说三个碱基对应一个氨基酸,那其信息量是2*3=6 ==> 4.3,所以三个碱基的信息量足以转换成一个氨基酸的信息量。
那么熵就是整个系统的总的平均信息量:

知道了这一点,我们可以想象一下将它使用到基模上是会代表什么?其实就是基模所提供的总的信息量。

相对熵的算法是一种比较两种分布的算法。我们来看一眼Kullback–Leibler divergence (information gain)的公式:

我们假设两个分布,一个是不受约束的分布q(X),一个是受约束的分布p(X)。我们相知道两个分布是不是一样的,我们使用上面的公式,如果两分布完全一样,那么就等于0,于是两者的相对熵就是0。

我们再来看平均对数似然率(ALLR)算法,它其实是来源于互信息(Mutual Information)这个概念,它的公式为

它是对称的

它与相对熵的关系为:

而在stromo文章中是这样描述的:

其中i和j是需要比较的两列,每一列都有ACGT的出现次数计数,称为或者,而对于每一列还可以计算出ACGT出现的频率计数,计为或者。在他们所提供的MatAlign基模比对工具中就是使用的这一算法来计算两基模的距离的:Dist = ALLR(A:A) + ALLR(B:B) – 2*ALLR(A:B)。这一公式与互信息的公式完全一致。这现次说明一个问题,生物学中的很多算法都不具有原创性,只是将数学工具进行了一个包装而已。

但是基于信息论的算法有一个缺点,那就是如果两个基模的长度不一样的时候,它们包含的信息量的差别并不一定代表两者的差别。比如说如果一个基模完全是另一个基模的一部分,那么它的信息量会小于另一个基模,如果这时需要比较第三个基模,其与长的那个的信息的差别甚至小于短的那个基模时,就会得出第三个基模的与长的基模的距离甚至小于长基模与短基模的距离。这显然是错误的。

其实上面的这个问题,在现有的算法当中都存在。如何克服,还是一个问题。有一种解决办法就是截短。但也不一定就总是有效。

STMAP工具就是一个集合了上述所有算法的基模比对工具。但遗憾的是它提供的距离值的分辨率不足,很多不同的基模都会得出距离为0的情况。

DNA binding motif比对算法的更多相关文章

  1. 笔记 Bioinformatics Algorithms Chapter2

    Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS 寻找模序 一. 转录因子会结合基因上游的特定序列,调控基因的转录表达,但是在 ...

  2. 广州CBC2019

    CBC2019-day1 25 August 2019 on 学术前沿huyujia 8月24日上午,CBC2019正式开幕.主持人首先对大会情况以及与会嘉宾做了简要介绍:紧接着,校领导.大会主席以及 ...

  3. Massively parallel supercomputer

    A novel massively parallel supercomputer of hundreds of teraOPS-scale includes node architectures ba ...

  4. 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan

    一个工具的逻辑得足够完善.意义足够重大,才有资格发在NG上. A gene-based association method for mapping traits using reference tr ...

  5. DNA motif 搜索算法总结

    DNA motif 搜索算法总结 2011-09-15 ~ ADMIN 翻译自:A survey of DNA motif finding algorithms, Modan K Das et. al ...

  6. 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)

    首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...

  7. LeetCode-Repeated DNA Sequences (位图算法减少内存)

    Repeated DNA Sequences All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, ...

  8. DNA比对算法:BWT

    DNA比对算法:BWT BWT算法,实质上是前缀树的一种实现.那么什么是前缀树呢? 一.前缀树 对于问题p in S?如果S=rpq,那么p为S前缀rp的一个后缀. 于是,为了判断p in S 是否成 ...

  9. 利用Needleman–Wunsch算法进行DNA序列全局比对

    生物信息学原理作业第二弹:利用Needleman–Wunsch算法进行DNA序列全局比对. 具体原理:https://en.wikipedia.org/wiki/Needleman%E2%80%93W ...

随机推荐

  1. Tomcat组成与工作原理

    laosijikaichele 关注  0.2 2018.06.02 10:44 字数 5175 阅读 2798评论 0喜欢 8 原文:https://juejin.im/post/58eb5fdda ...

  2. Tensorflow图像操作

    图像操作 图像基本概念 在图像数字化表示当中,分为黑白和彩色两种.在数字化表示图片的时候,有三个因素.分别是图片的长.图片的宽.图片的颜色通道数.那么黑白图片的颜色通道数为1,它只需要一个数字就可以表 ...

  3. centos6.5 64安装ffmpeg过程支持转码mp3

    百度了几个文章 大致知道了思路 首先yum源安装是木有的,只能编译安装了. 要安装ffmpeg要先安装一个yasm支持汇编优化(FFmpeg需要) 在安装一个lame,支持mp3的转码 那就是需要3步 ...

  4. java 执行sql错误 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知

    连接数据库时设置:Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,ResultSet.CONCUR_R ...

  5. air 桌面应用发布后可以删除的文件

    ****\Adobe AIR\Versions\1.0 下的文件夹Resources,可以整个删除 ***META-INF\AIR目录下的application.xml配置文件可修改initialWi ...

  6. PuTTY免输密码自动登录Linux

    1.使用PuTTY安装目录里的puttygen.exe工具.先点“生成(Generate)”,然后随意移动鼠标直到进度条填满,即可生成密钥 公钥部分:把上边那一段文字全选->复制备用.(不要点击 ...

  7. 5 并发编程-(进程)-队列&生产者消费者模型

    1.队列的介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现 ...

  8. sts,eclipse里面配置tomcat

    第一步:点击window-->preferences-->server-->Runtime Environments点击add. 第二步:选择本机上面有的tomcat版本点击next ...

  9. vue - process.env 定义

    1.官方解释:process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 requir ...

  10. 根据class操作div显示与隐藏

    <div class="otherComment" > <!-- style="display:none" --> 测试 </di ...