rna_seq

[R]bioconductor之ChIPseeker学习

2020-10-28  本文已影响0人  小贝学生信

ChIPseeker包南方医科大学Y叔大牛写的许多有名的生信R包之一,其最初设计用于chip-seq的macs peak calling结果分析以及可视化,后来逐渐也适用于相关的peak分析。
参考链接:https://www.bioconductor.org/packages/release/bioc/vignettes/ChIPseeker/inst/doc/ChIPseeker.html
以及Y叔自己的微信公众号教程:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI5NjUyNzkxMg==&action=getalbum&album_id=1300625300497268737&scene=173&from_msgid=2247488238&from_itemidx=1&count=3#wechat_redirect

1、关于ChIP-seq

详见之前的笔记

2、准备工作 preparation

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene
BiocManager::install("ChIPseeker")
library(ChIPseeker)
files <- getSampleFiles()
print(files)
#bed转为Granges对象
peak <- readPeakFile(files[[4]])
peak

3、ChIPseeker基础peak可视化

3.1、概况covplot()

观察所有peak在染色体的分布、表达情况

#依据第五列score,表明峰的高低情况
covplot(peak, weightCol="V5")
covplot all peak&all chromesome
#筛选指定染色体的指定区域的分布情况
covplot(peak, weightCol="V5", chrs=c("chr17", "chr18"), xlim=c(4.5e7, 5e7))
covplot some area

3.2、针对某一feature的分布情况

#自己定义promoter区域,上下游3000bp
promoter <- getPromoters(TxDb=txdb, upstream=3000, downstream=3000)
#不理解这个函数也没关系,是为下一步做热图提供matrix
tagMatrix <- getTagMatrix(peak, windows=promoter)
tagHeatmap(tagMatrix, xlim=c(-3000, 3000), color="red")

如下图结果,每一行代表一个promoter区域,红线的即为peak分布


tagheatmap
#一键绘图,效果同上
peakHeatmap(peak, TxDb=txdb, upstream=3000, downstream=3000, color="red")
plotAvgProf(tagMatrix, xlim=c(-3000, 3000),
            xlab="Genomic Region (5'->3')", ylab = "Read Count Frequency")
plotAvgProf
#加一个置信区间
plotAvgProf(tagMatrix, xlim=c(-3000, 3000), conf = 0.95, resample = 1000)
plotAvgProf with conf

we developed getBioRegion function to support centering all peaks to the start region of Exon/Intron. Users can also create heatmap or average profile of ChIP peaks binding to these regions.

4、ChIPseeker peak annotation

4.1 what's peak annotation

4.2 annotatePeak()

(1)just do it
peak
#共计1331个peak
txdb
peakAnno <- annotatePeak(files[[4]], tssRegion=c(-3000, 3000), TxDb=txdb)
peakAnno

如下图,如果在R里直接观察结果,它会告诉我们ChIPseq的位点落在基因组上什么样的区域,分布情况如何。(即第一种注释方法genomic annotation)


genomic annotation

在注释时,有的peak可能同时落在两个或者更多的gene feature里(例如是一个基因的外显子而同时又是另一个基因的内含子),但只能注释其中一个。默认按照Promoter、5’ UTR、3’ UTR、Exon、Intron、Downstream、Intergenic顺序先后注释。

class(peakAnno)
peakAnno.df <- as.data.frame(peakAnno)
peakAnno.gr <- as.GRanges(peakAnno)
head(peakAnno.gr, 3)

如下图,右上角为genomic annotation结果、下面为nearest gene annotation结果。

另外一种思路:注意上述nearest gene annotation默认找的是最近的TSS,即first anno与second anno对应的可以不是同一个基因。如果我想说只要和基因有overlap就是最近基因,那么这两种注释的基因应该是一致的,只需把overlap="TSS"(default)设置为overlap="all"

5、ChIPseeker基于注释的peak可视化

(1)genomic annotation可视化
plotAnnoPie(peakAnno)
plotAnnoBar(peakAnno)
pie chart
vennpie(peakAnno)
venn + pie
upsetplot(peakAnno, vennpie=TRUE)

如下图可以清楚地看到绝大多数的peak同时落到了多种feature里


upsetplot
(2)nearest gene annotation结果可视化
plotDistToTSS(peakAnno,
              title="Distribution of transcription factor-binding loci\nrelative to TSS")
plotDistToTSS

ChIPseeker包暂时先学习到这里,还有很多深入的功能,比如富集分析等,之后有机会再学习。
感觉到国人写的R包,然后看中文的原版说明书还是比较轻松的~~

上一篇 下一篇

猜你喜欢

热点阅读