GREAT(Genomic Regions Enrichment of Annotations Tool)是一种广泛使用的基因组区域功能富集工具,该工具于2010年由斯坦福大学开发。GREAT在做基因组区域富集时,考虑了基因在基因组上的位置分布与长度,采用了不同的策略。对于给定功能基因集中的基因,首先,将基因的TSS上下游分别延伸5kb和1kb来建立一个基础结构域;然后,将基础结构域的上下游再继续延申至最大1mb,或者到达它邻近基因的基础结构域,如此每个基因相当于被转化成了一个区间;最后,将这些转化的区间进行合并形成一个没有overlap的区间集,相当于将特定生物学功能相关的基因集转化为了“功能区间集”,然后使用二项分布来计算输入区域集是否在功能区间集中富集。
然而,作为在线工具,其存在注释数据过时、支持的物种和功能基因集数量少以及用户不可扩展等局限性。因此,有人就开发了一个本地实现GREAT算法的R包rGREAT,其默认支持600多个物种和大量的功能基因集,同时也支持用户自备基因集和物种基因组。此外,该包还实现了处理背景区域的通用方法。
安装
BiocManager::install('rGREAT')
# 最新版
devtools::install_github("jokergoo/rGREAT")
差异可及性区域寻找
da_peaks <- FindAllMarkers(SeuratObj_ATAC,test.use = 'LR')
head(da_peaks)
# 挑选出CLUSTER2的marker peak
CLUSTER <- 2
da_peaks_n <- da_peaks %>%
filter(cluster == CLUSTER & avg_log2FC > 0.5) %>%
arrange(desc(avg_log2FC)) %>%
rownames()
GREAT analysis
library(rGREAT)
gr <- StringToGRanges(da_peaks_n)
# online GREAT
job = submitGreatJob(gr,species = 'hg38')
tbl = getEnrichmentTables(job)
head(tbl$`GO Molecular Function`)
plotVolcano(job, ontology = "GO Biological Process")
plotRegionGeneAssociations(job)
getRegionGeneAssociations(job)
shinyReport(job)
# local GREAT
res = great(gr, 'msigdb:C8', "txdb:hg38")
tb = getEnrichmentTable(res)
View(tb)
参考
https://www.jianshu.com/p/caefd180e0d9
https://jokergoo.github.io/rGREAT/
https://github.com/jokergoo/rGREAT