轉錄因子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的工具
參考: