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. lucene中TOKENIZED,UN_TOKENIZED 解釋

    Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZED)); 這些地方與舊版本有很大的區別 ...

  2. Mybatis通过colliection属性递归获取菜单树

    1.现有商品分类数据表category结构如下,三个字段都为varchar类型 2.创建商品分类对应的数据Bean /** * */ package com.xdw.dao; import java. ...

  3. 代码:cookie(一个广告展示例子)

    这个小例子的要求是: 用户第一次进入,显示大图,2秒后大图动画关闭,再把小图动画展开: 用户再次进入后,只显示静态小图. 做法: 定义一个容器 .img201512ad,宽高写死:1190x70.—— ...

  4. TortoiseGit上传项目到GitHub

    1. 简介 gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. 2. 准备 2.1  安装git:https://git-scm.c ...

  5. linux获取日志指定行数范围内的内容

    假如我要获取“浅浅岁月拂满爱人袖”到“落入凡尘伤情着我”之间的内容. 1.首先得到他们所在的行号: -n选项显示行号 但是有时候grep后显示的是“匹配到二进制文件(标准输入)”,说明搜索的字符串在某 ...

  6. idea 安装 破解方法

    参考:https://blog.csdn.net/qq_27686779/article/details/78870816 (1)下载破解补丁 把下载的破解补丁放在你的idea的安装目录下的bin的目 ...

  7. WebService客户端调用的几种方式

    1.用组件HTTPRIO,支持VCL WIN32和FIRE MONKEY跨平台Android手机 HTTPRIO1.URL := 'http://127.0.0.1:8080/soap/IsoapTe ...

  8. SQL SERVER2008 DBX Error: Driver could not be properly initialized

    raised exception class TDBXError with message 'DBX Error:  Driver could not be properly initialized. ...

  9. Nexus使用

    Nexus使用: Nexus的默认登录账户:admin,密码:admin123. 以下为步骤说明: 1.右上角->login 2.左菜单->security->user->ad ...

  10. Winform 窗体关闭事件

    //窗体关闭前事件 private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult res ...