homer进行motif分析 ChIP-seq
【怪毛匠子-整理】
5 2月 2013 | 程序员
HOMER是一个使用perl和C写成的motif分析工具。之前在分析clip-seq分析时,按照文献中材料和方法所写的流程进行分析,却无法得到与文献一致的结果。想来多半是文章发表时,并没有把所有的细节写清楚,导致我在重复时参数选择方面并没有与原作者保持一致。另一个原因是基因组几经修改,原本的hg17的数据无法下载到,只能下载到liftover到hg18的数据。为此,进行了一下google research,发现这个叫做homer的工具,很不错。HOMER主要用于分析基于NGS或者micorarrays的ChIP-Seq,ChIP-Chip数据。也可以分析DNase-Seq,GRO-Seq之类的数据。
HOMER并不能用于查找差异表达的基因,基因表达图谱分析,或者在已知的motif数据库当中去搜索motif。HOMER还有一个缺点,那就是没有用户界面,只能通过命令行形式工作。
HOMER的在分析motif时需要两组数据,一个是感兴趣的数据,另一个是背景数据。如果没有背景数据,HOMER会首先生成随机数据做为背景数据用于motif分析。在生成背景数据时,HOMER会考虑几个方面,一个是要避免CpG岛,一个是可以首先考虑目标数据的上下游的序列。
一但目标数据和背景数据确定了之后,HOMER就开始使用使用马尔可夫3级模型生成确定长度的motif,使用cummulative hypergeometric distribution来分析哪个motif是相对于背景数据而言在目标数据中富集了。当富集的简单motif确定之后,再基于目标数据进行微调以得到精确的motif。
之后的工作就是在已知的motif中去查找相类的motif。这里的已知motif不是来自于任何数据库,而是由作者从发表的ChIP-Seq实验中收集的。
HOMER比较适合分析长度8以上的motif。HOMER还可以进行有倾向性的motif搜索,这需要使用到参数opt 。比如:
findMotifsGenome.pl peaks.txt hg18r OutputDirectory -opt motif1.motif -len 30
对于比较长的motif,比如说长度20的motif,如果mismatch还是使用默认的话不一定会合适,这时可以使用-mis参数来设置可以mismatch多少个碱基,比如-mis 4等等。
HOMER的安装可以说有一点难度,但也不是特别难。首先要下载安装Ghostscript,seqlogo(2.8.1以上版本其实是可以工作的很好的,但安装文件说不行。)以及blat。安装好这些工具,然后把它们的工作目录都加入到PATH中去。比如使用PATH=$PATH:/path/to/blat:/path/to/seqlogo等等。
你的系统需要事先安装好GNU C++ compiler, perl, make, zip/unzip以及wget。
然后下载configureHomer.pl到你希望的安装目录,使用
|
perl configureHomer.pl |
来下载所需要的文件,以及自动安装好HOMER。
安装好之后,可以使用
|
perl ./configureHomer.pl -list |
来查看可能安装的数据,比如说我们接下来需要使用到的hg18基因组。
|
perl ./configureHomer.pl -install hg18 |
下面就是试用HOMER。我们先去UCSC下载所需要的fox2.clip数据。参数如下图所示
下载到数据后,我们运行命令
|
findMotifsGenome.pl fox2.clip.bed hg18 fox2.clip.rna -len 6 -rna > fox2.clip.rna.log 2>&1 & |
。然后打开fox2.clip.rna.log文件来查看程序的运行进展。运行结束之后打开fox2.clip.rna目录中的homerResults.html文件,可以看到下面类似的结果:
如果我们看到排在第一的是UGCAUG,那么就说明安装正常了。接下来就可以使用自己的数据来运行HOMER了。
homer进行motif分析 ChIP-seq的更多相关文章
- TCP ------ 抓包分析(seq ack)
总结: 1.ACK包可以和其他包合在一起,比如ACK包可以携带数据 2.可以接收多个数据包后,一次性给一个应答,不用每个数据包一一对应给应答 3.在通信过程中,通过接收到的包的ack值可以判断是否是上 ...
- HOMER | MEME | 转录因子的靶基因预测
Finding Enriched Motifs in Genomic Regions (findMotifsGenome.pl) 在指定区域做motif enrichment,大大降低了假阳性. ME ...
- ChIP-seq 学习内容
chip-seq 流程图 书籍资料 工具 UCSU 安装 使用 原理 手册 Swiss在线分析工具 短序列比对工具 BWA 流程 格式处理 序列比对 peak-calling motif 可视化 输出 ...
- 表观 | Enhancer | ChIP-seq | 转录因子 | 数据库专题
需要长期更新! 参考:生信修炼手册 enhancer的基本概念: 长度几十到几千bp,作用是提高靶基因活性,属于顺式作用原件,DNA作用到DNA,转录因子就是反式,是结合到DNA的蛋白. 1981年, ...
- ChIP-seq技术介绍|易基因
大家好,这里是专注表观组学十余年,多组学科研服务领跑者的易基因. 染色质免疫沉淀后测序(ChIP seq)是一种针对DNA结合蛋白.组蛋白修饰或核小体的全基因组分析技术.由于二代测序技术的巨大进步,C ...
- 计算机网络(11)-----TCP连接的建立和释放
TCP连接的建立和释放 概述 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程,运输连接有三个阶段:连接建立,数据传送和连接释放. TCP连接的建立 如图所示,假定A主机是客户端程序, ...
- 测序深度和覆盖度(Sequencing depth and coverage)
总是跑数据,却对数据一无所知,这说不过去吧. 看几篇文章吧 Sequencing depth and coverage: key considerations in genomic analyses( ...
- iOS,Android网络抓包教程之tcpdump
现在的移动端应用几乎都会通过网络请求来和服务器交互,通过抓包来诊断和网络相关的bug是程序员的重要技能之一.抓包的手段有很多:针对http和https可以使用Charles设置代理来做,对于更广泛的协 ...
- 如何在 Android 手机上实现抓包?
如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么.网上的教程太复杂,不想麻烦.有 ...
随机推荐
- Mtlab:抛物型方程的交替方向隐格式(ADI)
tic; clear clc M=[,,,,]; N=M; :length(M) h=/M(p);% 这里定义空间步长等距 tau=/N(p); % 时间步长 x=:h:; y=:h:; t=:tau ...
- 使用session统计在线人数
效果图如下 这里是Chrome浏览器新登录一个用户 代码展示 package com.test.Util; import java.util.ArrayList; import javax.servl ...
- D3比例尺
D3中有个重要的概念就是比例尺.比例尺就是把一组输入域映射到输出域的函数.映射就是两个数据集之间元素相互对应的关系.比如输入是1,输出是100,输入是5,输出是10000,那么这其中的映射关系就是你所 ...
- cmd命令往MySQL数据库提交数据
第一步:MySQL -V检查下载成功否第二步:mysql -u root -p 登陆密码第三步:创建一个数据库 create database if not exists 数据库name: 第四步:展 ...
- spring boot中实现security错误信息本地化
一.修改messages.properties 找源码中的messages.properties,复制一份放在classpath下,修改你要修改的内容 AbstractUserDetailsAuthe ...
- qtp中type方法的按键常量
记录键盘操作可以用set和presskey方法,而type方法是不记录的.type方法主要用于输入连接文本字符串和键盘修饰键(组合键),组合键之间用&符号. 如:JavaWindow(&quo ...
- (05) SpringBoot开发RESTFull?
1. 什么是RESTFull? RESTFull 一种互联网软件架构设计的风格,但它并不是标准,它只是提出了一组客户端和服务器交互时的架构理念和设计原则,基于这种理念和原则设计的接口可以更简洁,更有层 ...
- idea crack
ThisCrackLicenseId-{ “licenseId”:”11011”, “licenseeName”:”Wechat”, “assigneeName”:”tree-deep-see-dee ...
- 如何不使用loop循环创建连续的数组
ES5 Array.apply(null,{length:100}) Object.keys(Array.apply(null,{length:100})); ES6 [...Array(100)]
- java判断一个字符串是否为空,isEmpty和isBlank的区别
转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...