预测motif的计算原理(extend motif)

前言:

蛋白质中功能的基本单元是domain,是一种特殊的三维结构,不同结构的domain与其他分子特异性结合从而发挥功能。与此类似,转录因子在于DNA序列结合时,其结合位点的序列也由于一定的特异性,不同转录因子结合的DNA序列的模式是不同的。为了更好的描述结合位点序列的模式,科学家们提出了motif的概念。

image.png

通常我们对结合位点采用统计每个site碱基出现频数

PFM矩阵:

我们可以登录JASPAR网站下载相关的raw PFM矩阵

JASPAR提供了转录因子与DNA结合位点motif最全面的公开数据,共收集了脊椎动物、植物、昆虫、线虫、真菌和尾索动物六大类不同类生物的数据

我们随机挑选某一物种的某一转录因子来说明,下载好如同这样:


image.png

4行分别表示ACGT四种碱基在一定长度的结合序列上的频数分布:


image.png

motif表示特定碱基序列的模式,也就是说一个TF可以结合到多个DNA序列上,每一个site的碱基频数是统计的某一个TF能结合到的所有motif的情况,统计该位点所有motif的碱基频数,
正如PFM矩阵每一列的加和为10,代表这一个TF可能结合到10个motif上,假设这10个motif的长度为9bp,那么统计这10个motif中每一个site的碱基频率即可 ,比方说第一个site,即A出现3次,C出现2次,G出现1次,T出现4次

PWM矩阵:

在PFM矩阵的基础上:

PFM矩阵

计算出碱基频率分布,PFM矩阵每一列的加和为10,代表这一个TF可能结合到10个motif上,假设这10个motif的长度为9bp,那么统计这10个motif中每一个site的碱基频率即可,比方说第一列的site,即A出现3次,C出现2次,G出现1次,T出现4次。每一列各个碱基出现的次数除以10即为其频率:
PPM矩阵

(PPM矩阵第一行第一列元素为,PFM矩阵第一行第一列元素3/10 = 0.3)
利用PPM矩阵我们可以计算一条结合序列出现某种搭配的概率,比方说出现GAGGTAAAC的概率为
P = 0.1x0.6x0.7x1.0x1.0x0.6x0.7x0.2x0.2 = 0.0007056
在PPM矩阵的基础上做校正就可以得到我们的PWM矩阵了。公式为:
image.png

即将PPM矩阵的每个元素除以背景0.25(假设基因组上的ATCG含量相同,均为0.25),然后再取log2
例如,PPM矩阵第一行第一列的0.3,log2(0.3/0.25) = 0.26
这样我们就得到了PWM矩阵:
image.png

我们根据PWM矩阵,可以对序列进行打分,来判断是否为一个潜在的motif,例如
GAGGTAAAC在PWM的相应得分为:
-1.32 + 1.26 + 1.49 + 2.0 + 2.0+ 1.26 + 1.49 - 0.32 - 1.32 = 6.54

分数大于0说明可能是一个潜在的功能位点,小于0则说明是随机序列;
你可以根据已有的转录因子结合序列信息(即你感兴趣的转录因子)去预测你待研究的序列是否是这个转录因子的功能位点(根据打分来判断)

利用seqLogo可视化

seqLogo是一个R包,我们读入刚才下载的表格(按ACGT的顺序添加表的行名)

data <- read.table("MA0007.2.pfm")
#转换为PPM矩阵
ppm <- sapply(1:ncol(data), function(t){ data[[t]] / sum(data[[t]]) })
#转换为PWM矩阵
p <- makePWM(ppm)
#绘图
seqLogo(p)

结果:


image.png

图上的字母越大,说明在该位点出现的频率越高

Chip-seq的motif分析

在Chip-seq call peak中(peak是蛋白结合位点前后,被测的reads在比对时累计出的峰),我们会得到一个summit.bed,这个其实就是peak的峰的碱基(峰的最高点),那么只有一个,我们做motif分析,只有一个碱基肯定是做不了的
通常我们用bedtools slop来对这个summit.bed文件进行extend,即对这一个峰的碱基前后进行extend,从而得到一小段序列(extend 100bp),那么就可以做motif分析了

参考:http://www.bioconductor.org/packages/release/bioc/html/seqLogo.html

https://mp.weixin.qq.com/s/wUmfV2EkSUVbBPyZ9ftI7A

你可能感兴趣的:(预测motif的计算原理(extend motif))