【怪毛匠子-整理】
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了。