HOMER | MEME | 转录因子的靶基因预测


转录因子motif是一些很短的模序(~10bp),在大基因组里很容易出现随机比对,而且是以position weight matrix (PWM)格式来呈现,说明它的可变性,因此研究motif有哪些binding区域是没有意义的,因为很难找到一个方法(阈值)来判断真正的比对和随机的比对。
换个思路,如果做富集分析,那就稳了,给定一个指定的区域(promoter或enhancer区域),根据统计学检验,我们很容易知道一个motif是否显著富集在这个区域(与背景区域相比),这就回答了一个很好的生物学问题:这个转录因子是否显著地结合到这片区域。
一个突出的矛盾:转录调控的稳定性和我们收集数据不确定性之间的矛盾。
为什么ChIP-seq和ATAC-seq能极大地助力motif研究:
- 真正的开放区域,得到的都是active的区域
- 过滤掉了大部分的无效或复杂区域,假阳性得到了极大的控制
如何根据这些信息来预测每个转录因子的binding区域以及靶基因?
- 不考虑远距离的调控作用,或者只考虑promoter的区域,我们就可以根据peak的注释信息找到最近的基因。
- 然后看这些promoter上分别有哪些富集的motif,然后与转录因子对应即可。
- 最后还需要基因表达来确认这些靶基因和转录因子确实是表达的!(如果这是一个抑制的转录因子,是否基因就不表达了)
转录因子的表达具有高度的组织特异性,而且已知的TF只有1000多个,基因有30000多个,所以一个TF的靶基因可能有几百个,具有高度的时空组织特异性。
实验的方法就暂且不说了,非常可靠,但成本高、耗费劳力。
最简单的预测就是基于基因表达,co-expressed就是可能的靶基因,预测软件一大把。
问题很多,首先理解假设:
1. TF的线性变化引起target gene的线性变化,他们线性相关;
2. TF的调控是sparse的,
问题:
1. 有人说这根本就不是线性的,TF的yes or no,决定target gene的表达;
2. 不是线性相关,存在shift,先后的shift是普遍存在的;
3. co-expression是无法得出target关系的;
所以,现在大家都开始结合motif enrichment了,TF的靶向作用是靠motif与基因组DNA结合来执行的。
但是我们不知道结合位点,所以大部分的富集都默认选择了10kb的flanking region,motif很短,随机比对会带来很多假阳性。
现在,大家有open chromatin的数据了,知道了候选的结合区域,我们就可以更有效的预测了,这就是HOMER的预测功能。
最终,open chromatin还是不准,因为DNA有三维结构,distal regulation是普遍存在的。【TAD很火,可以引入到模型中】
HOMER
HOMER Motif Analysis - 根据ChIP-seq和ATAC-seq的peak结果寻找可能binding的motif
Finding Enriched Motifs in Genomic Regions (findMotifsGenome.pl) - 核心的脚本
Finding Instance of Specific Motifs - 对人类和小鼠而言最有用的代码,因为大部分motif已知,没必要做denovo的motif预测。
Motif Databases included in HOMER - HOMER最常使用的一些motif数据库
HOMER的motif格式
jaspar - 最全的转录因子数据库
下载所有human的TF对应的motif:链接
下载JASPER上的转录因子及其motif数据库,这部分很重要是因为我们不仅需要motif的信息,而且需要motif对应的人类转录因子的信息。【需要用homer的工具进行格式转换】
cd ~/softwares/miniconda3/share/homer-4.10-0/update
curl -O http://jaspar.genereg.net/download/CORE/JASPAR2020_CORE_vertebrates_non-redundant_pfms_jaspar.txt perl ./motifs/parseJasparMatrix.pl JASPAR2020_CORE_vertebrates_non-redundant_pfms_jaspar.txt > jaspar.motifs curl -O http://jaspar.genereg.net/download/CORE/JASPAR2020_CORE_vertebrates_redundant_pfms_jaspar.txt perl ./motifs/parseJasparMatrix.pl JASPAR2020_CORE_vertebrates_redundant_pfms_jaspar.txt > jaspar.motifs
接下来就是全基因组的扫描了,找这些motif到底在哪binding【全基因组扫描过于费时,还是指定区域比较好】
perl ~/softwares/miniconda3/bin/scanMotifGenomeWide.pl ~/softwares/miniconda3/share/homer-4.10-0/update/motifs/vertebrates/jaspar.motifs hg38 -5p -bed -int -homer2 -p 10
选取promoter区域来扫描,看motif的结合区域
perl ~/softwares/miniconda3/bin/findMotifsGenome.pl encc-enhancer-atac.promt.Homer.bed hg38 promt.motif -p 10 -size 200 -find jaspar.motifs > promt.jaspar.txt
结果如何过滤?
For example: findMotifsGenome.pl ERalpha.peaks hg18 MotifOutputDirectory/ -find motif1.motif > outputfile.txt
The output file will contain the columns:
- Peak/Region ID
- Offset from the center of the region
- Sequence of the site
- Name of the Motif
- Strand
- Motif Score (log odds score of the motif matrix, higher scores are better matches)
根据Motif Score来过滤掉一些质量太低的比对。
这个结果仍然不是我想要的,我只想知道,某个motif是否在一个promoter或enhancer区域显著富集【相对于背景区域】
PositionID Offset Sequence Motif Name Strand MotifScore
Peak_152271 -93 AGTAAG Ahr::Arnt/MA0006.1/Jaspar + 1.914416
Peak_152271 -85 CCCTTC Ahr::Arnt/MA0006.1/Jaspar + 2.895245
Peak_152271 -82 TTCAAG Ahr::Arnt/MA0006.1/Jaspar + 3.213699
Peak_152271 -75 GGCAGG Ahr::Arnt/MA0006.1/Jaspar + 4.644445
Peak_152271 -68 AGCTCC Ahr::Arnt/MA0006.1/Jaspar + 1.871856
Peak_152271 -65 TCCCTG Ahr::Arnt/MA0006.1/Jaspar + 6.391753
Peak_152271 -64 CCCTGG Ahr::Arnt/MA0006.1/Jaspar + 2.895245
Peak_152271 -63 CCTGGG Ahr::Arnt/MA0006.1/Jaspar + 2.895245
Peak_152271 -60 GGGATG Ahr::Arnt/MA0006.1/Jaspar + 4.687005
Peak_152271 -59 GGATGG Ahr::Arnt/MA0006.1/Jaspar + 1.508951
Peak_152271 -57 ATGGTG Ahr::Arnt/MA0006.1/Jaspar + 12.000225
Peak_152271 -55 GGTGAG Ahr::Arnt/MA0006.1/Jaspar + 11.552200
HOMER的这个peak注释功能也是写得非常全面:
MEME
FIMO scans a set of sequences for individual matches to each of the motifs you provide - 看motif是否显著的富集在单独的序列里,需要把区域转换为fasta文件
CentriMo identifies known or user-provided motifs that show a significant preference for particular locations in your sequences - CentriMo可以做motif是否显著富集在一堆序列中,给出富集得分
看看这篇文章:Differential motif enrichment analysis of paired ChIP-seq experiments
FIMO
首先提取出自己的fasta
可以用bedtools
bedtools flank -i encc-enhancer-atac.promt.bed -g chrom.sizes -b 300 > encc.enhc.atat.promt.f300.bed
bedtools sort -i tmp2.bed > tmp3.bed
bedtools merge -i tmp3.bed -c 4 -o collapse
bedtools getfasta -fo
也可以用Homer的工具
参考:
HOMER | MEME | 转录因子的靶基因预测的更多相关文章
- miRNA分析--靶基因预测(三)
miRNA分析--数据过滤(一) miRNA分析--比对(二) 根据miRNA Target Prediction in Plants, miRNA并非所有区域都要求严格匹配,其中第1位碱基和第14位 ...
- 5、预测和鉴定miRNA的靶基因
转载:http://www.oebiotech.com/Article/mirnabjyyc.html http://www.ebiotrade.com/newsf/2014-9/2014925941 ...
- 基于PASA进行基因预测
PASA, acronym for Program to Assemble Spliced Alignments, is a eukaryotic genome annotation tool tha ...
- 项目二:使用机器学习(SVM)进行基因预测
SVM软件包 LIBSVM -- A Library for Support Vector Machines(本项目所用到的SVM包)(目前最新版:libsvm-3.21,2016年7月8日) C-S ...
- TargetScan 数据库简介
TargetScan 是一个miRNA 靶基因预测的网站, 包括了 人, 小鼠,果蝇 , 线虫, 斑马鱼 共5个物种的miRNA 靶基因结果, 人 : TargetScanHuman 小鼠 :Targ ...
- miRNA
MicroRNA (miRNA) 是一类内生的.长度约为20-24个核苷酸的小 RNA,其在细胞内具有多种重要的调节作用.每个 miRNA 可以有多个靶基因的表达,而几个 miRNA 也可以调节同一 ...
- miRNA 基本知识
miRNA MicroRNA (miRNA) 是一类内生的.长度约为20-24个核苷酸的小 RNA,其在细胞内具有多种重要的调节作用.每个 miRNA 可以有多个靶基因的表达,而几个 miRNA 也 ...
- 【基因组预测】braker2基因结构注释要点记录
目录 流程使用 问题 记录下braker2的使用要点,以备忘记. 流程使用 braker2有很多流程,根据你的数据:组装的基因组.转录组.蛋白(同源,包括近缘或远缘)选择不同流程,官网有说明: htt ...
- 表观 | Enhancer | ChIP-seq | 转录因子 | 数据库专题
需要长期更新! 参考:生信修炼手册 enhancer的基本概念: 长度几十到几千bp,作用是提高靶基因活性,属于顺式作用原件,DNA作用到DNA,转录因子就是反式,是结合到DNA的蛋白. 1981年, ...
随机推荐
- Notification web 桌面消息推送
var NotificationHandler = { isNotificationSupported: 'Notification' in window, isPermissionGranted: ...
- POJ 1655 求树的重心
POJ 1655 [题目链接]POJ 1655 [题目类型]求树的重心 &题意: 定义平衡数为去掉一个点其最大子树的结点个数,求给定树的最小平衡数和对应要删的点.其实就是求树的重心,找到一个点 ...
- 插播一则关于HTTP Headers详解~~~
URL REQUEST : ------ 使用通讯录请求对象,构建URLLoader对象,并发出数据请求(对指定地址发出数据请求) status code(状态码)------ 200(成功)-- ...
- CentOS 7 zabbix实现微信报警
环境 : LAMP CentOS7 192.168.94.11 首先搭建LAMP环境 , 安装zabbix [root@zabbix-server ~]# wget http://repo.zab ...
- Java并发包1--线程的状态及常用方法
一.线程主要有以下几种状态: new(新建):线程刚刚被创建 runnable(就绪):新建的线程执行start方法进入就绪状态等待系统调度分配CPU,被分配了之后就进入运行中状态 blocked(阻 ...
- Matlab学以致用--模拟os任务装载情况
2012-06-08 21:26:42 用matlab来建模,仿真不同时刻os task在队列中的装载情况.输入参数如下 作为初学者,M文件写的有点长.能实现功能就算学以致用了. clear;clc ...
- Oracle生成GUID
,),),),),) GUID FROM ( SELECT SYS_GUID() GUID FROM DUAL )
- 【融云分析】如何实现分布式场景下唯一 ID 生成?
◀背景▶ 对于一套分布式部署的 IM 系统,要求每条消息的 ID 要保证在集群中全局唯一且按生成时间有序排列.如何快速高效的生成消息数据的唯一 ID ,是影响系统吞吐量的关键因素.那么,融云是如何做到 ...
- Easy methods to select MB Star, Extremely MB Star, MB SD C4, Mercedes BENZ C5 SD
MB Star, Extremely MB SD Connect C4, MB SD C4, Mercedes BENZ C5 SD are usually analysis tools to get ...
- java static关键字和代码块
static关键字 代码块 方法重写 1. 方法重写的特点: 2. 注意事项: static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑 ...