HOMER 是一套用于Motif查找和二代數(shù)據(jù)分析 的工具。HOMER 中的工具是使用Perl 和C++編寫(xiě)的,是Linux command line based。HOMER 這個(gè)軟件是一個(gè)大雜燴,能解決幾乎所有的高通量測(cè)序數(shù)據(jù)的分析。(這里,我們僅僅是介紹M o t if查 找 這個(gè)功能)
使用conda安裝,一句話搞定: conda install -c bioconda homer
。
使用configureHomer.pl完成Homer軟件的配置
##首先下載configureHomer.pl
wget http://homer./homer/configureHomer.pl
##使用configureHomer.pl配置Homer
perl configureHomer.pl -install
configureHomer.pl
配置Homer的語(yǔ)法是:(下一節(jié)講具體應(yīng)用)
perl /path-to-homer/configureHomer.pl [options]
我們看下這些options
都有哪些:
-list 列出可用的包 -install 安裝homer需要用到的數(shù)據(jù)包 -version 安裝homer包時(shí),可以指定包版本 -remove 移除包 -update 更新所有包到最新版本 -reinstall 強(qiáng)制重新安裝所有已經(jīng)安裝過(guò)的包 -all 安裝所有包 -getFacts (add humor to HOMER - to remove delete contents of data/misc/) -check 檢查第三方軟件:samtools, DESeq2, edgeR -make 重新配置和編譯可執(zhí)行文件 -sun SunOS 系統(tǒng),使用gmake 和 gtar代替make 和 tar -keepScript 不更新configureHomer.pl -url 安裝時(shí),使用的資源地址,默認(rèn):http://homer./homer/ Hubs & BigWig settings (with read existing settings from config.txt if upgrading): -bigWigUrl (Setting for makeBigWigs.pl) -bigWigDir (Setting for makeBigWigs.pl) -hubsUrl (Setting for makeMultiWigHub.pl) -hubsDir (Setting for makeMultiWigHub.pl) Configuration files: 下載 update.txt,更新config.txt
SOFTWARE: homer工具包,包含一些常用數(shù)據(jù)。
ORGANISMS: 物種特異性的數(shù)據(jù),包含Gene accession, gene descriptions, and GO analysis信息。大多數(shù)數(shù)據(jù)來(lái)自于NCBI Gene database。下載promoter 或 genome 數(shù)據(jù)時(shí),會(huì)自動(dòng)下載對(duì)應(yīng)Organism 包。
PROMOTERS: Promoter 序列信息和Promoter 富集分析的文件。大多數(shù)數(shù)據(jù)來(lái)自RefSeq transcript。
GENOMES: 基因組序列及其注釋信息。
這里需要特別注意下:雖然conda安裝好了Homer,但并沒(méi)有包含參考序列或注釋數(shù)據(jù) 。所以需要使用 configureHomer.pl下載各種數(shù)據(jù)包。
下載數(shù)據(jù)之前先查看數(shù)據(jù)列表,看Homer已經(jīng)有哪些數(shù)據(jù)包:
語(yǔ)法公式:perl /path-to-homer/configureHomer.pl -list 具體事例:perl /home/jhuang/miniconda2/share/homer-4.9.1-6 /configureHomer.pl -list 等同于:perl /home/jhuang/miniconda2/share/homer-4.9.1-6 /.//configureHomer.pl -list ##主要是給系統(tǒng)一個(gè)configureHomer.pl路徑
如上述介紹,Homer數(shù)據(jù)包安裝使用-install
參數(shù)
perl /path-to-homer/configureHomer.pl -install mouse #下載老鼠啟動(dòng)子數(shù)據(jù) perl /path -to -homer/configureHomer.pl -install mm10 #下載 mm10小鼠參考基因組 perl /path -to -homer/configureHomer.pl -install hg19 #下載 hg19人的參考基因組 具體實(shí)例: nohup perl /home/jhuang/miniconda2/share /homer-4.9.1-6 /.//configureHomer.pl -install hg19 &#太慢了所以掛后臺(tái)了
3.利用ChIP-Seq結(jié)果在基因組區(qū)域中尋找富集的Motifs 用MACS2軟件進(jìn)行peak calling,也就是找比對(duì)結(jié)果(bam文件)的peaks,MACS2找到的peaks會(huì)存放在生成的 *.bed
文件里。homer軟件找motif需要讀取我們這里得到的bed格式的peaks文件。homer軟件不僅可以找到motif,還可以注釋peaks。
homer軟件在讀取bed文件時(shí),需要提取對(duì)應(yīng)的列作為輸入文件。我們要對(duì)MACS找到的peaks記錄文件,還需提取對(duì)應(yīng)的列給HOMER作為輸入文件,提取操作為:
awk '{print $4 "" $1 "" $2 "" $3 "+" }' sample_peaks.bed >sample_homer.bed
不理解沒(méi)關(guān)系,我們拿我跑的chipseq數(shù)據(jù)做示范,看awk對(duì)bed文件做了什么。 使用命令less -S ChIP-Seq_H3K4Me3_1_trimmed_rmdup_summits.bed
看下awk處理之前bed文件長(zhǎng)什么樣子:
$ less -S ChIP-Seq_H3K4Me3_1_trimmed_rmdup_summits.bed chr1 29202 29203 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_1 260.18610 chr1 714432 714433 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_2 165.19276 chr1 762743 762744 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_3 195.10117 chr1 839761 839762 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_4 36.37314 chr1 859839 859840 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_5 122.88363 chr1 876411 876412 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_6 20.77421 chr1 877742 877743 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_7 77.55285 chr1 894490 894491 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_8 256.37842 chr1 896069 896070 ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_9 183.38295
使用awk對(duì)bed文件進(jìn)行處理,處理完的文件命名為ChIP-Seq_H3K4Me3_1_homer.bed
awk '{print $4 ""$1 ""$2 ""$3 "+"}' ChIP-Seq_H3K4Me3_1_trimmed_rmdup_summits.bed >ChIP-Seq_H3K4Me3_1_homer.bed $ less -S ChIP-Seq_H3K4Me3_1_homer.bed ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_1 chr1 29202 29203 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_2 chr1 714432 714433 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_3 chr1 762743 762744 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_4 chr1 839761 839762 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_5 chr1 859839 859840 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_6 chr1 876411 876412 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_7 chr1 877742 877743 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_8 chr1 894490 894491 + ChIP-Seq_H3K4Me3_1_trimmed_rmdup_peak_9 chr1 896069 896070 +
把bed文件變成這個(gè)樣子,用于Homer軟件的讀取,我們稱(chēng)這樣的文件叫做 Homer Peak/Positions file
我們可以看到Homer Peak/Positions file
有4列:
findMotifsGenome.pl命令用于在基因組區(qū)域中尋找富集Motifs 命令使用格式:
findMotifsGenome.pl <Homer Peak /Positions file > <genome > <output directory > -size # [options]
使用實(shí)例:尋找我們剛剛生成的Homer Peak/Positions file
文件:ChIP-Seq_H3K4Me3_1_homer.bed
的 motif
使用命令:
findMotifsGenome.pl ChIP-Seq_H3K4Me3_1_homer.bed hg19 ChIP-Seq_H3K4Me3_1_motifDir -len 8,10,12 # 參數(shù)解釋-輸入文件:awk處理好的Homer Peak/Positions file -參考基因組:這里是hg19 -輸出文件:給一個(gè)路徑和輸出文件的名字 -len:motif大小設(shè)置,默認(rèn)8,10,12;越大需要的計(jì)算資源越多
上述命令(找motif)每一樣品需要運(yùn)行30-40分鐘后,得到文件夾ChIP-Seq_H3K4Me3_1_motifDir
,文件夾里的內(nèi)容有:
-rw-rw-r-- 1 jhuang jhuang 30K Apr 11 21:56 homerMotifs .all.motifs -rw-rw-r-- 1 jhuang jhuang 9.9K Apr 11 21:19 homerMotifs .motifs10 -rw-rw-r-- 1 jhuang jhuang 12K Apr 11 21:56 homerMotifs .motifs12 -rw-rw-r-- 1 jhuang jhuang 8.6K Apr 11 21:10 homerMotifs .motifs8 drwxrwxr-x 2 jhuang jhuang 12K Apr 11 21:59 homerResults -rw-rw-r-- 1 jhuang jhuang 144K Apr 11 21:59 homerResults .html drwxrwxr-x 2 jhuang jhuang 4.0K Apr 11 21:08 knownResults -rw-rw-r-- 1 jhuang jhuang 226K Apr 11 21:08 knownResults .html -rw-rw-r-- 1 jhuang jhuang 45K Apr 11 21:08 knownResults .txt -rw-rw-r-- 1 jhuang jhuang 81 Apr 11 20:56 motifFindingParameters .txt -rw-rw-r-- 1 jhuang jhuang 1.9K Apr 11 20:57 seq .autonorm.tsv
其中會(huì)生成一個(gè)詳細(xì)版的網(wǎng)頁(yè)結(jié)果,生成這些文件的具體作用下節(jié)講述
常用參數(shù): -bg :自定義背景序列; -size : 用于motif尋找得片段大小,默認(rèn)200bp;-size given 設(shè)置片段大小為目標(biāo)序列長(zhǎng)度;越大需要得計(jì)算資源越多; -len :motif大小設(shè)置,默認(rèn)8,10,12;越大需要得計(jì)算資源越多; -S :結(jié)果輸出多少motifs, 默認(rèn)25; -mis :motif錯(cuò)配堿基數(shù),默認(rèn)2bp; -norevopp :不進(jìn)行反義鏈搜索motif; -nomotif :關(guān)閉重投預(yù)測(cè)motif; -rna : 輸出RNA motif,使用RNA motif數(shù)據(jù)庫(kù); -h :使用超幾何檢驗(yàn)代替二項(xiàng)式分布; -N :用于motif尋找得背景序列數(shù)目,default=max(50k, 2x input);耗內(nèi)存參數(shù)
使用 annotatePeaks.pl 對(duì)peaks進(jìn)行注釋
命令使用格式:
annotatePeaks.pl <Homer Peak /Positions file > <genome > 1>output.peakAnn.xls 2>output.annLog.txt
使用實(shí)例:注釋ChIP-Seq_H3K4Me3_1_homer.bed
的 peaks
使用命令:
annotatePeaks.pl ChIP-Seq_H3K4Me3_1_homer.bed hg19 1>ChIP-Seq_H3K4Me3_1_peakAnn.xls 2>$ChIP -Seq_H3K4Me3_1_annLog.txt
4.HOMER Motif 分析基本步驟和結(jié)果分析 Homer主要被用于 ChIP-Seq 分析,但是核酸序列motif尋找問(wèn)題都可以嘗試使用。
注意:這里大部分是在介紹Homer軟件背后是怎么工作的,不是說(shuō)我們?cè)谑褂肏omer軟件找motif時(shí)的步驟,我們使用的時(shí)候直接調(diào)用Homer軟件的內(nèi)部命令就好
一 提取序列 提供的數(shù)據(jù)是基因組位置信息,就需要提取對(duì)應(yīng)的DNA信息;提供基因號(hào)時(shí),需要選擇啟動(dòng)子區(qū)域。對(duì)應(yīng)著就是我們前面用awk
處理bed文件,最后得到要求的那四列。 二 背景選擇 未指定背景序列時(shí),HOMER 會(huì)自動(dòng)選擇。(上面chipseq處理的時(shí)候就沒(méi)有指定背景序列) 對(duì)基因組某些區(qū)域進(jìn)行分析時(shí),從基因組隨機(jī)選擇GC含量一致的序列作為背景序列。 對(duì)啟動(dòng)子進(jìn)行分析時(shí),除用來(lái)分析外的所有啟動(dòng)子將被作為背景。 自定義背景使用參數(shù)-bg 三 GC 標(biāo)準(zhǔn)化 目標(biāo)序列(對(duì)應(yīng)著上面的就是Homer Peak/Positions file
)和背景序列會(huì)基于GC含量按5%作為bin 查看GC含量的分布。背景序列會(huì)得到權(quán)值,從而使得其GC含量分布與目標(biāo)序列一致。 ChIP-Seq 實(shí)驗(yàn)得到序列GC含量。 四 自動(dòng)標(biāo)準(zhǔn)化 需要分析的序列除了GC含量會(huì)帶來(lái)誤差,其他的生物學(xué)現(xiàn)象,外顯子中密碼子偏好性或測(cè)序?qū)嶒?yàn)中偏好性都會(huì)影響分析。對(duì)于足夠強(qiáng)的偏差,HOMER 會(huì)自動(dòng)追蹤目標(biāo)序列和背景中顯著差異的特征序列,并通過(guò)調(diào)整背景序列的權(quán)重來(lái)平衡輸入數(shù)據(jù)和背景中短寡聚核酸序列不平衡。 短寡聚核酸序列長(zhǎng)度可以通過(guò)參數(shù)-nlen <#>指定。
默認(rèn)情況下,HOMER 調(diào)用homer2 進(jìn)行motif 分析;通過(guò)參數(shù)"-homer1" 可以指定老版本工具。
一 將輸入序列解析為寡聚核苷酸序列 將輸入序列按照motif 長(zhǎng)度期望值解析為寡聚核苷酸序列,以及創(chuàng)建Oligo 數(shù)據(jù)表。Oligo 數(shù)據(jù)表中記錄著每條oligo 在目標(biāo)序列和背景中被發(fā)現(xiàn)的次數(shù)。 二 Oligo 自動(dòng)標(biāo)準(zhǔn)化 三 全局搜索階段 Oligo 表格信息構(gòu)建好之后,HOMER 對(duì)富集的Oligo 進(jìn)行全局搜索。如果一個(gè)Motif是富集的,那么屬于這個(gè)Motif的Oligo 也應(yīng)該會(huì)富集。首先,HOMER 會(huì)搜索可能富集的Oligo 。HOMER 允許錯(cuò)配 。 使用參數(shù)-mis <#> 調(diào)節(jié)允許的錯(cuò)配數(shù)目 四 Mask and Repeat 當(dāng)最優(yōu)oligo被優(yōu)化成motif后,motif 對(duì)應(yīng)的序列從要分析的數(shù)據(jù)中移除,接下來(lái)再分析最優(yōu)的…..直到 25(默認(rèn)值,"-S <#>")個(gè)motifs 被發(fā)現(xiàn)。 比如,我們這里處理chipseq時(shí)的情況
五 計(jì)算已知Motifs是否富集
3.5.1 導(dǎo)入Motif庫(kù) 為了搜索輸入數(shù)據(jù)中已知Motifs ,HOMER 可以輸入已知Motifs 數(shù)據(jù),可以使用HOMER 默認(rèn)的 ("data/knownTFs/known.motifs"),也可以是自己構(gòu)建("-mknown") 。
3.5.2 篩選每一個(gè)Motif
對(duì)于每個(gè)motif,HOMER 計(jì)算豐度(包含motif的序列/background sequences), ZOOPS (zero or one occurence per sequence)計(jì)數(shù)以及使用超幾何檢驗(yàn)或二項(xiàng)式計(jì)算顯著性。
我們chipseq,找motif的輸出文件如下圖:
這些輸出結(jié)果包括:
4.3.1 Motif Files
*.motif
文件包含motifs的信息
"*.motif"文件格式:
>ATATTGCG 1-ATATTGCG 10.055970 -947 .021323 0 T :434.0(1.88 %),B :22.3(0.08 %),P :1 0.997 0.001 0.001 0.001 0.001 0.001 0.001 0.997 0.997 0.001 0.001 0.001 0.001 0.363 0.001 0.635 0.001 0.001 0.001 0.997 0.001 0.001 0.997 0.001 0.001 0.997 0.001 0.001 0.001 0.001 0.997 0.001 >AAAATCGG 2-AAAATCGG 10.633913 -833 .891683 0 T :458.0(1.99 %),B :34.6(0.13 %),P :1 0.997 0.001 0.001 0.001 0.997 0.001 0.001 0.001 0.997 0.001 0.001 0.001 0.997 0.001 0.001 0.001 0.351 0.001 0.001 0.647 0.001 0.997 0.001 0.001 0.001 0.001 0.997 0.001 0.001 0.001 0.997 0.001
一個(gè)motif 的信息分為一塊。motif 信息首行是motif 各種統(tǒng)計(jì)信息;其他行對(duì)應(yīng)各個(gè)A/C/G/T的占比。
motif 信息首行解析:
">" + 序列 (可能是空白) example: >ASTTCCTCTT
Motif 名字 example: 1-ASTTCCTCTT or NFkB
檢測(cè)閾值對(duì)數(shù)值 example: 8.059752
富集P-value對(duì)數(shù)值 example: -23791.535714
0 用于老版本格式的占位符
T: 17311.0(44.36%),B: 2181.5(5.80%),P: 1e-10317
T: #(%) - 包含motif的目標(biāo)數(shù)據(jù)序列數(shù)除以目標(biāo)數(shù)據(jù)序列總數(shù)
B: #(%) - 包含motif的背景序列數(shù)除以背景序列總數(shù)
P: # - 富集 p-value
用逗號(hào)分隔Motif統(tǒng)計(jì)量, example: Tpos: 100.7,Tstd: 32.6,Bpos: 100.1,Bstd: 64.6,StrandBias: 0.0,Multiplicity: 1.13
Tpos: motif在目標(biāo)序列中的平均位置 (0 = start of sequences)
Tstd: motif在目標(biāo)序列中位置的標(biāo)準(zhǔn)偏差
Bpos: motif在背景序列中的平均位置 (0 = start of sequences)
Bstd: motif在背景序列中位置的標(biāo)準(zhǔn)偏差
StrandBias: log ratio of + strand occurrences to - strand occurrences.
Multiplicity: 具有一個(gè)或多個(gè)結(jié)合位點(diǎn)的序列中每個(gè)序列的平均出現(xiàn)次數(shù)
4.3.2重頭預(yù)測(cè)(de novo)的 motif 首先會(huì)對(duì)motif進(jìn)行去冗余,將每個(gè)motif 的概率矩陣轉(zhuǎn)換為向量,求motif之間的Pearson 相關(guān)性。 HTML 結(jié)果:
表格中,Best Match/Details項(xiàng)中: More Information:與預(yù)測(cè)的motif相似的的已知motifs Similar Motifs Found:與預(yù)測(cè)的motif相似的的其它預(yù)測(cè)motifs
4.3.3 已知 motif 的富集情況(knownResults.html)
參考資料: 1.http://homer./homer/ngs/peakMotifs.html 2.https://www.jianshu.com/p/1384173c353b 3.https://www.jianshu.com/p/4af579b2e532 4.https://www.jianshu.com/p/2bf020cc8f90 5.https://www.jianshu.com/p/1602c2621c2b 6.https://www.jianshu.com/p/1602c2621c2b