热图、韦恩图、GO富集分析图(有了转录组数据不知道该怎么写文章,看我就对了!)

上个月我们曾经学习过一篇细胞内PD-L1调控RNA稳定性的文章:TCGA正常血液样本中PD-L1与BRCA1和NBS1的表达量相关性(没找到原数据,但重复出了结果)(PS,目前为止我还是没能找到TCGA中'Blood Derived Normal'样本的RNA-seq数据 ╯︿╰ ),当时文中Fig4的测序数据还没有公开,现在GEO上已经可以下载了,不过作者只提供了处理好的excel表格数据和RNA-seq raw-data,对处理RNA-seq raw data感兴趣的欢迎点击“阅读原文”去B站学习Jimmy老师的视频,但是需要有linux服务器。

本周我们就系统性的学习一下本文的4张图(几乎全部结论)的画法吧!

A. 分别用PD-L1抗体或IgG进行RNA免疫共沉淀(RIP),热图展示DNA损伤相关基因的表达量

B. 分别用2种shRNA沉默PD-L1基因,热图同样为DNA损伤相关基因的表达量

C. 图A与图B的重叠基因及重叠的DNA损伤基因,也就是受PD-L1调控的RNAs

D. RIP-seq及RNA-seq重叠基因的GO富集分析

热图

GSE128613和GSE128742分别为RIP和RNA-seq数据,GEO网站上提供了xlsx格式的数据

#### RIP peak-score
library(readxl)
RIP <- read_excel('./GSE128613_processed_RIP_data.xlsx')
# DNA damage基因,在excel的第3个sheet中
RIP_gene <- read_excel('./GSE128613_processed_RIP_data.xlsx',sheet = 3,col_names = F)
setdiff(RIP_gene$...2,RIP$`Gene name`) 
#基因名有重叠现象,'USP1,UBP1' 'BRIP1,BACH1' 'POLQ,POLH'
#逗号前后是不同的基因,查了一下HGNC号,作者用的应该是前一个
choose_matrix <- as.matrix(RIP[RIP$`Gene name` %in% c(RIP_gene$...2,'USP1','BRIP1','POLQ'),3:8]) 
colnames(choose_matrix) <- c('IgG_1','IgG_2','IgG_3','PDL1_1','PDL1_2','PDL1_3')
choose_matrix <- log2(choose_matrix + 1)
library(pheatmap)
pheatmap(choose_matrix, scale = 'row',
         cluster_rows = F, cluster_cols = F,
         show_colnames = T,angle_col=45)

#### RNA-seq
RNA_seq <- read_excel('./GSE128742_processed_RNA-seq_data.xls')
# DNA damage基因
RNA_seq_gene <- read_excel('./GSE128742_processed_RNA-seq_data.xls',sheet = 3,col_names = F)
setdiff(RNA_seq_gene$...2,RNA_seq$`gene name`) 
#基因名也有重叠,'USP1,UBP1' 'POLQ,POLH' 'MED1,MBD4'

choose_matrix <- as.matrix(RNA_seq[RNA_seq$`gene name` %in% c(RNA_seq_gene$...2,'USP1','POLQ','MED1'),2:7]) 
colnames(choose_matrix) <- c('Ctrl shRNA(1)','Ctrl shRNA(2)',
                             'shPD-L1-1(1)','shPD-L1-1(2)',
                             'shPD-L1-2(1)','shPD-L1-2(2)')
choose_matrix <- log2(choose_matrix + 1)
pheatmap(choose_matrix, scale = 'row',
         cluster_rows = F, cluster_cols = F,
         show_colnames = T)

韦恩图

## PD-L1敲除后下调的基因与RIP-seq的重叠基因library('VennDiagram')VENN.LIST=list(RNA_seq = RNA_seq$`gene name`,               RIP = RIP$`Gene name`)venn.plot <- venn.diagram(VENN.LIST, NULL,                          fill=c('RoyalBlue', 'Salmon'),                           alpha=c(0.8,0.8),                           cex = 2,cat.cex=1.5)grid.draw(venn.plot) 

# PD-L1敲除后下调的DNA damage基因与RIP-seq的DNA damage基因的重叠情况VENN.LIST=list(RNA_seq = RNA_seq_gene$...2,               RIP = RIP_gene$...2)venn.plot <- venn.diagram(VENN.LIST, NULL,                          fill=c('RoyalBlue', 'Salmon'),                           alpha=c(0.8,0.8),                           cex = 2,cat.cex=1.5)grid.draw(venn.plot)

GO富集分析图

图中展示的是受PD-L1调控的基因的GO功能富集分析,也就是:与PD-L1抗体结合的基因和PD-L1敲除后下调的基因的交集。

GO富集分析的R包和网页工具很多,我习惯用clusterProfiler包,因为它提供了很多画图函数,比较方便。

genes <- intersect(RIP$`Gene name`,RNA_seq$`gene name`) #1756个基因
library(clusterProfiler)
library(org.Hs.eg.db)
res <- enrichGO(genes, 
                OrgDb = org.Hs.eg.db, 
                keyType = 'SYMBOL', 
                ont = 'BP',
                pvalueCutoff = 0.05
                )
head(res@result,n=20) # 查看结果
# 画图(这个R包提供了多种绘图函数,感兴趣的可以看看说明书自行尝试)
barplot(res, showCategory=15) #横轴显示的是富集的基因数目

因为用的方法不同,和原文中富集的terms有一定出入,但总体结果是类似,都在细胞代谢、转录、蛋白质修饰等途径中有富集。

作者是在Gene Ontology Consortium website上做的分析,而且文章的图看起来是作者手动选择了一些自己感兴趣的显著terms(所以要搞清楚自己课题的需求)

# 将需要的基因写入文件write.table(genes,file = './GO_genes.txt', quote = F, row.names = F, col.names = F)

# 将基因上传到http://geneontology.org/上,下载分析结果,读入R (记得删除文件最上面几行的注释)df_go <- read.delim('./analysis.txt',header = T, stringsAsFactors = F)

# 挑选文章中用的GO-termsdf <- df_go[c(274,174,198,378,269,182,138,305,107,163,395,81,116,75,393),c(1,7)]df$upload_1..raw.P.value. <- -log10(df$upload_1..raw.P.value.)colnames(df) <- c('terms','val')

# 按照pvalue排序画barplotlibrary(forcats)library(ggplot2)ggplot(df, aes(x=fct_reorder(terms,val), y=val)) +  geom_bar(stat='identity') +  labs(x=' ',y='-log10(p-val)') +  coord_flip() #翻转x,y轴

这张图看起来和文中的差不多了,虽然有些terms的p值顺序不大一致,但因为都是显著的,也不影响结论。

是不是很激动,自己的转录组数据马上就能用起来啦,如果你完全看不懂上面的图表和代码,那么你距离成文还差一个学习班!

(0)

相关推荐

  • 差异分析要的是表达量矩阵,基因名字并不重要啊

    太多人咨询基因的各种ID转换问题,在非模式生物的物种里面更麻烦,因为数据库注释资源并不权威. 但是实际上这样的基因ID转换也不是必须的,因为差异分析要的是表达量矩阵,基因名字并不重要啊,后面的注释也是 ...

  • 茶树挥发物如何响应茶绿叶蝉的采食

    Formation of volatiles in response to tea green leafhopper (Empoasca onukii Matsuda) herbivory in te ...

  • 转录组讲师带你读文献(8)-RNA-Seq与表观组学结合

    我在我在04-转录组笔记推文任务列表(半年期)里面安排了6个经典综述和10篇转录组应用文献给大家,可惜愿意沉下心了认真苦学的并不多.(https://share.mubu.com/doc/14uneH ...

  • 好的Idea+多数据库结合免疫组化发10分SCI!

    Enhanced B7-H4 expression in gliomas with low PD-L1 expression identifies super-cold tumors在PD-L1低表达 ...

  • 高通量测序技术极简介绍

    我们在介绍公共数据库的时候,经常会提到RNA-seq.Chip-seq.甲基化芯片等,对于不了解高通量测序的同学而言,不是很清楚这些都具体是什么.这里就很简单,目的性极强的介绍一下. 测序技术分类 高 ...

  • 吐血整理!一文带你解锁各类核酸互作

    蛋白核酸互作是指蛋白和DNA或者RNA之间的相互作用.主要的互作类型有蛋白和蛋白.蛋白和DNA.蛋白和RNA.RNA和小RNA之间的互作模式.作为中心法则的三大成员,他们之间的互作关系以及调控关系是后 ...

  • 单细胞RNA

    一.单细胞single cell RNA-seq简介 1.Bulk RNA-seq(大量RNA-seq) Measures the average expression level for each ...

  • lncRNA研究的常见思路与策略

    lncRNA起初被认为是基因组转录的"噪音",是RNA聚合酶II转录的副产物,不具有生物学功能.然而大量研究表明,lncRNA在细胞核内.核外,通过染色质修饰,转录调控,转录后调控 ...

  • Kaplan-meier Plotter数据库

    今天我们再介绍一款生存分析的经典数据库,Kaplan-meier Plotter数据库,其操作上的选择更为丰富,图片可以直接用于论文无需后期处理,可以与PrognoScan数据库进行相互补充,称得上预 ...

  • 技术贴 | 快速绘制韦恩图——TBtool

    本文由沐子星根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 韦恩图是科研中常见的一种图形,直观的展示出两组或者多组数据集之间的关系(交集和并集).今天推荐一款做韦恩图的软件-- ...

  • UpSet|多集合可视化,韦恩图?upSet!

    介绍一个R包UpSetR,专门用来集合可视化,当多集合的韦恩图不容易看的时候,就是它大展身手的时候了. 一 载入R包 数据 #安装及加载R包#install.packages("UpSetR ...

  • 韦恩图的在线绘制网站,必备!

    看到下面这个图,想必大家不会陌生,都能想到是韦恩图嘛,毕竟是科研文章中最常见的图形了,可以表示多个数据集之间的交互作用.但是具体怎么画呢?很复杂吗?其实不需要用R语言,只要几个简单的在线网站就可以搞定 ...

  • 乌龟图:IATF单一过程分析图 ← 德信诚学员天地 ← 好好学习社区

    乌龟图: 为了保证过程有效运行和控制,组织应确定所需的准则及方法,这些准则和方法形成文件就是公司或企业的管理体系文件.在体系建设初期,公司必须建立管理文件体系,来保证公司达到所要求的(产品)质量和预期 ...

  • 画韦恩图那么容易,为什么拿到指定元素却有问题

    学员交流群有提问,说他虽然会绘制韦恩图了,但是想提取图中指定的元素,自己弄的代码非常笨拙,感觉是R语言学的不够好,希望我可以秀一秀高阶代码.恰好今天没有什么可以分享的,就写这个教程吧! 首先设置4个随 ...

  • 自己写代码计算单细胞转录组数据的CNV及绘制热图

    前面我们提到过broad开发了工具来对单细胞转录组数据计算CNV及绘制热图,因为这个方法学本来就是他们建立起来的. 单细胞转录组数据分析CNV 使用broad出品的inferCNV来对单细胞转录组数据 ...

  • WonderfulVenn - 操作简便到极致的可交互的韦恩图工具,支持2~6个集合

    只要拖拖拖,就能画Venn,支持最高6组数据, 还能交互操作. 写在前面 今天在测序行业爆料微信群,看到有两三人推了Venn图绘制的R包,强大,无话可说.见Y蜀黍公众号.但是相比之下,R包是需要使用者 ...

  • 所有人!瞬间掌握-无限个列表的-‘韦恩图’(Venn)绘制!

    写在前面 <-零命令行-生信下游数据分析>的第四帖主题,定为韦恩图绘制 总的来说,凡是相对不简单的分析,无论是否涉及到组学数据,韦恩图(Venn)都是常见的操作之一. 目前关于韦恩图绘制, ...

  • Upset plot展示韦恩图

    前文写道:对于集合的可视化,大多数使用的是韦恩图.一般集合不超过5个的时候,韦恩图可视化效果往往还是很不错的(无论是视觉效果,还是理解数据).对于多余5个集合的数据,建议使用集合可视化神包:UpSet ...