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