查看原文
其他

MeRIP-seq 数据分析之 homer 注释 peaks

JunJunLab 老俊俊的生信笔记 2022-08-15


点击上方关注老俊俊

1引言

callpeak 步骤得到的是每个 m6A 位点的 位置信息,包括染色体起始位置终止位置正负链 等。我们具体想知道该位点位于哪个基因上,属于哪一个位置,基因属于哪种类型等信息就需要 对 peaks 进行注释,exomePeak2 的结果文件会有基因名注释,macs2 结果就没有了。

可以做这个事情的软件由余老师的 ChipseekerChIPpeakAnno 等包,今天介绍一下怎么使用 homer 进行 peak 注释。

2安装

使用 conda 安装:

$ conda install -c bioconda homer

下载配置文件,把内容复制保存到 configureHomer.pl 里即可,一个 perl 脚本:

地址:

  • https://github.com/IGBIllinois/HOMER/blob/master/configureHomer.pl

下载参考基因组,手机开热点贼快:

#下载 mm10小鼠参考基因组
$ perl /path-to-homer/configureHomer.pl -install mm10
#下载 hg19人的参考基因组
$ perl /path-to-homer/configureHomer.pl -install hg19

3注释 peaks

$ cd /mnt/f/MeRIP-seq/
$ mkdir 8.annotate-peaks-data

#
# annotate macs2 data
$ annotatePeaks.pl 6.macs-data/IVT_peaks.narrowPeak mm10 > 8.annotate-peaks-data/IVT_peaks.annotated.tx
$ annotatePeaks.pl 6.macs-data/WT_macs2_intersect.bed mm10 > 8.annotate-peaks-data/WT_macs2_intersect.annotated.txt
$ annotatePeaks.pl 6.macs-data/M3_KO_macs2_intersect.bed mm10 > 8.annotate-peaks-data/M3KO_macs2_intersect.annotated.txt

#
# annotate exomePeak2 data
$ annotatePeaks.pl 7.exomepeak2-data/IVT.bed mm10 > 8.annotate-peaks-data/IVT.annotated.txt
$ annotatePeaks.pl 7.exomepeak2-data/WT_reps_intersect.bed mm10 > 8.annotate-peaks-data/WT_reps_intersect.annotated.txt
$ annotatePeaks.pl 7.exomepeak2-data/M3KO_reps_intersect.bed mm10 > 8.annotate-peaks-data/M3KO_reps_intersect.annotated.txt

注释也是比较全面的:

主要由 注释位置Entrez IDEsembl IDgene name基因描述等:

4绘图

我们根据 Annotation 列的分类进行绘图,读取 exomepeak2 的注释结果。

新建 R project,创建 step5_annotate_peaks.R 脚本:

# 设置工作路径
setwd('../8.annotate-peaks-data/')

# 加载R包
library(tidyverse)
library(ggplot2)
library(reshape2)

# 读取注释文件
IVT <- read.delim('IVT.annotated.txt',header = T)
WT <- read.delim('WT_reps_intersect.annotated.txt',header = T)
M3ko <- read.delim('M3KO_reps_intersect.annotated.txt',header = T)

# 保存到list
df <- list(IVT = IVT$Annotation,WT = WT$Annotation,M3ko = M3ko$Annotation)

# 切分保存
lapply(1:3function(x){
  tmp = sapply(strsplit(df[[x]],split = '\\('),'[',1)
  res = table(tmp)
}) %>% do.call('rbind',.) %>% as.data.frame() -> type_comb

# 添加名称
type_comb$name = c('IVT','WT','M3ko')

# 宽数据转长数据
final <- melt(type_comb)

# 因子化
final$name <- factor(final$name,levels = c('IVT','WT','M3ko'))

# 绘制饼图
ggplot(final,aes(x = '',y = value,fill = variable)) +
  geom_col(position = position_fill()) +
  theme_void() +
  theme(legend.position = 'bottom',
        strip.text.x = element_text(size= 14)) +
  facet_wrap(~name) +
  coord_polar(theta = 'y') +
  scale_fill_brewer(palette = 'Set1',name = 'Region types')

看到注释在 intron 里是最多的,其次是 exon3'UTR。可以看到 METTL3 KO 后,exon3'UTR 的 peak 明显减少了。

我们把输入文件换成 macs2 的,后面代码不变走一遍:

# 读取注释文件 macs2
IVT <- read.delim('IVT_peaks.annotated.txt',header = T)
WT <- read.delim('WT_macs2_intersect.annotated.txt',header = T)
M3ko <- read.delim('M3KO_macs2_intersect.annotated.txt',header = T)

...省略

啥玩意,可以看到 exon 所占比例是最多的,其次是 intronMETTL3 KO 后,3'UTR 的 peak 明显减少了,exon 上感觉差的不大。

这样对比,感觉 exomepeak2 callpeak 的区域在 intron 会多很多,相对于 macs2 的话,具体什么原因和算法及模型有关,还是其它原因?

绘制条形堆积图展示:

# 条形堆积图
# 宽数据转长数据
final_macs2 <- melt(type_comb)
final_exomepeak2 <- melt(type_comb)

# 添加分组
res <- rbind(final_macs2,final_exomepeak2)
res$sample <- c(rep('Macs2',24),rep('ExomePeak2',24))

# 绘图
ggplot(res,aes(x = name,y = value,fill = variable)) +
  geom_col(position = position_fill()) +
  theme_bw(base_size = 16) +
  scale_y_continuous(labels = scales::percent_format()) +
  theme(legend.position = 'right',
        strip.text.x = element_text(size= 14)) +
  facet_wrap(~sample) +
  scale_fill_brewer(palette = 'Set1',name = 'Region types') +
  xlab('') + ylab('Percent')

难搞哦。



欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群 哦,代码已上传至QQ群文件夹,欢迎下载。

群二维码:





老俊俊微信:



知识星球:



所以今天你学习了吗?

欢迎小伙伴留言评论!

今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,赏杯快乐水喝喝吧!






 往期回顾 




MeRIP-seq 数据分析之 m6A 分布特征可视化

MeRIP-seq 数据分析之 callpeak 及 peak 可视化

质控 + 接头过滤一步走: fastp 软件

MeRIP-seq 数据分析之质控、过滤、比对

MeRIP-seq 数据分析之数据下载

eRNA 上的 m6A 修饰可以促进转录凝聚物的形成和基因激活

提取 ensembl 的 gtf 文件中最长转录本信息

做一个散点图的富集可视化

使用 ggplot_build 函数获取绘图坐标

circRNAs 定量之 CIRIquant 软件使用介绍

◀...

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存