DNA binding motif比对算法
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图示。
对于基模比对,其主要思路还是运用序列比对当中Needleman-Wunsch或者Smith-Waterman算法。但针对每个碱基位置,因为并非单一的字母,而是一个四个或者五个数字的数组,所以会改变之前字母比对的方式,而使用以下五种算法:
- Pearson’s correlation coefficient 皮尔逊积矩相关系数
- sum of squared distances 距平方和
- Kullback–Leibler information content 相对熵
- average log-likelihood ratio (ALLR) 平均对数似然率
- 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比对算法的更多相关文章
- 笔记 Bioinformatics Algorithms Chapter2
Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS 寻找模序 一. 转录因子会结合基因上游的特定序列,调控基因的转录表达,但是在 ...
- 广州CBC2019
CBC2019-day1 25 August 2019 on 学术前沿huyujia 8月24日上午,CBC2019正式开幕.主持人首先对大会情况以及与会嘉宾做了简要介绍:紧接着,校领导.大会主席以及 ...
- Massively parallel supercomputer
A novel massively parallel supercomputer of hundreds of teraOPS-scale includes node architectures ba ...
- 用variant的数据来推导基因表达 | Imputation of Expression Using PrediXcan
一个工具的逻辑得足够完善.意义足够重大,才有资格发在NG上. A gene-based association method for mapping traits using reference tr ...
- DNA motif 搜索算法总结
DNA motif 搜索算法总结 2011-09-15 ~ ADMIN 翻译自:A survey of DNA motif finding algorithms, Modan K Das et. al ...
- 一个简单算法题引发的思考<DNA sorting>(about cin/template/new etc)
首先是昨天在北京大学oj网上看到一个简单的算法题目,虽然简单,但是如何完成一段高效.简洁.让人容易看懂的代码对于我这个基础不好,刚刚进入计算机行业的小白来说还是有意义的.而且在写代码的过程中,会发现自 ...
- LeetCode-Repeated DNA Sequences (位图算法减少内存)
Repeated DNA Sequences All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, ...
- DNA比对算法:BWT
DNA比对算法:BWT BWT算法,实质上是前缀树的一种实现.那么什么是前缀树呢? 一.前缀树 对于问题p in S?如果S=rpq,那么p为S前缀rp的一个后缀. 于是,为了判断p in S 是否成 ...
- 利用Needleman–Wunsch算法进行DNA序列全局比对
生物信息学原理作业第二弹:利用Needleman–Wunsch算法进行DNA序列全局比对. 具体原理:https://en.wikipedia.org/wiki/Needleman%E2%80%93W ...
随机推荐
- Vue基础知识之组件及组件之间的数据传递(五)
vue中的组件是自定的标签,可以扩展的原生html元素,封装可复用的代码 note: 1.在标签命中不要使用大写,标签名字必须用短横线隔开 2.模板中只能有一个根元素,不能使用并列标签. 定义组件 全 ...
- Linux系统下MongoDB的简单安装与基本操作
这篇文章主要介绍了Linux系统下MongoDB的简单安装与基本操作,需要的朋友可以参考下 Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备 ...
- Java平台与内存管理
问题及答案来源自<Java程序员面试笔试宝典>第四章 Java基础知识 4.8Java平台与内存管理 1.为什么说Java是平台独立性语言? 平台独立性是指可以在一个平台上编写和编译程序, ...
- selenium+python自动化94-行为事件(ActionChains)源码详解
ActionChains简介 actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互. 这对于做更复杂的动作非常有用,比如悬停 ...
- zabbix修改中文乱码
参考网站; https://blog.csdn.net/open_data/article/details/47447029 字体下载网站: http://www.font5.com.cn/zitix ...
- 制作keil5的pack
[原创出品§转载请注明出处] 出处:http://www.cnblogs.com/libra13179/p/6273415.html 我在这里就交大家怎样制作自己的Pack,(这里是我制作好的http ...
- shell echo 打印换行
echo -e "aaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbb"
- [ilink32 Error] Fatal: Unable to open file 'RM_COMMON.OBJ'
[ilink32 Error] Fatal: Unable to open file 'RM_COMMON.OBJ' [ilink32 Error] Fatal: Unable to open fil ...
- ESCP打印机数据解密
通过串口调试工具 抓取到的16进制文本; 如下 然后打开我们的文档,查看命令数据内容. 详情请密我QQ:1161588342 说明加好友原因
- AJAX是什么?
AJAX的全称是Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ajax不是新的编程语言,而是一种使用现有标准的新方法.ajax是与服务器 ...