这篇文章中有一张图很有趣,如下:

作者使用Hallmarks通路进行GSEA富集分析,共发现26条通路显著与两种表型相关,与stemness表型相关的有16条通路,与cancer表型相关的有10条通路。

本次演练中,我们选择MSIDB数据库中的50条Hallmarks通路进行示例,通路信息下载链接:http://www.gsea-msigdb.org/gsea/downloads.jsp

下面我们用我们自己的数据来做一下这张图:

rm(list = ls())
library(edgeR)
library(DESeq2)
library(fgsea)
library(clusterProfiler)
library(enrichplot)
library(ggplot2)
load('data.rda') ## 加载我们的数据 包括临床数据clin和表达数据expr
head(expr)

表达矩阵为 raw read count data

head(clin)

第一列为expr每一列对应的ID,第二列为分组信息。

table(clin$Group)

0和1分别有223个和135个

##构建分组信息
group <- factor(rep(c('1','0'),times=c(135,223)))
colData <- data.frame(row.names=rownames(clin),group)
##保留在50%以上的样本中count>=1的基因
keep <- rowSums(expr>=1) >= ncol(expr)*0.5
table(keep)
cc <- expr[keep,]
##差异分析
dds <- DESeqDataSetFromMatrix(round(cc), colData, design= ~group)
dds <- DESeq(dds)
res<- results(dds,contrast=c("group","1","0"),independentFiltering=FALSE)
##差异分析结果
alldiff <- as.data.frame(res)%>%na.omit()
alldiff$type <- ifelse(alldiff$padj>0.05,'No-Sig',ifelse(alldiff$log2FoldChange>1,'Up',ifelse(alldiff$log2FoldChange< -1,'Down','No-Sig')))table(alldiff$type)

## 顺手画个火山图
ggplot(alldiff,aes(log2FoldChange,-log10(padj),fill=type))+geom_point(shape=21,aes(size=-log10(padj),color=color))+scale_fill_manual(values=c('seagreen','gray','orange'))+scale_color_manual(values=c('gray60','black'))+geom_vline(xintercept=c(-1,1),lty=2,col="gray30",lwd=0.6) +geom_hline(yintercept = -log10(0.05),lty=2,col="gray30",lwd=0.6)+theme_bw(base_rect_size = 1)+theme(axis.title = element_text(size = 15),axis.text = element_text(size = 12),legend.title = element_blank(),legend.text = element_text(size = 12),panel.grid = element_blank(),plot.title = element_text(family = 'regular',hjust = 0.5),legend.position = c(0.5, 1),legend.justification = c(0.5, 1),legend.key.height = unit(0.5,'cm'),legend.background = element_rect(fill = NULL, colour = "black",size = 0.5))+xlim(-4,4)+guides(size=F,color=F)+ylab('-log10 (FDR)')+xlab('log2 (Fold Change)')

接下来开始重头戏,开始画GSEA table

## 根据logfc降序排列基因
alldiff <- alldiff[order(alldiff$log2FoldChange,decreasing = T),]
## fgsea中输入的关键基因信息
id <- alldiff$log2FoldChange
names(id) <- rownames(alldiff)
## fgsea中输入的关键通路信息
gmtfile <- "./h.all.v7.4.symbols.gmt"
hallmark <- read.gmt(gmtfile)
hallmark$term <- gsub('HALLMARK_','',hallmark$term)
hallmark.list <- hallmark %>% split(.$term) %>% lapply( "[[", 2)
## Perform the fgsea analysis
fgseaRes <- fgsea(pathways = hallmark.list, stats = id,minSize=1,maxSize=10000,nperm=10000)
sig <- fgseaRes[fgseaRes$padj<0.05,]
sig <- sig[order(sig$NES,decreasing = T),]
## 最后一步 开始绘图
plotGseaTable(hallmark.list[sig$pathway],id, fgseaRes,gseaParam = 0.5)

这样子基本上画完了,但是貌似不是很好看,可以保存为PPT格式再处理一下

library(export)
graph2ppt(file = 'GSEA-table.pptx',height = 7,width = 8.5)

其中每个元素都可以调整哦

调整完之后如下所示:

加编者微信入群 "生信交流群-医学僧"

加微信时请备注 "学校-专业-姓名"

往期精品(点击图片直达文字对应教程)

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

这篇Cell里面的GSEA展示很不错!相关推荐

  1. IOS -- UICollectionView里面的cell点击,点击一个cell改变其他cell的状态

    view.m - (void)initWithCreatorCollectView {//模拟数据 [self imitateData];float width = ([UIScreen mainSc ...

  2. Netty里面的Boss和Worker【Server篇】

    转载地址:https://my.oschina.net/bieber/blog/406799 最近在总结Dubbo关于Netty通信方面的实现,于是也就借此机会深入体会了一下Netty.一般启动Net ...

  3. app里面的h5的定位方式(夜神模拟器篇)

    一.首先确定模拟器是否与电脑连接 输入命令adb connect 127.0.0.1:62001(如图所示) 输入adb devices查看是否连接成功 二.开发在打包代码时,让开发人员开启webvi ...

  4. 长隆大马戏机器人_2021出来便是侏罗纪公园,这里面的恐龙真的很逼真,刚进去的我着实被吓了一跳!侏罗纪公园里的傻机器人_长隆野生动物世界-评论-去哪儿攻略...

    吃了中午饭,我们便回到酒店退了房,因为我们这两天都在长隆玩,所以我们提前在去哪儿上面订了长隆附近的酒店,拧着大包小包,我们坐地铁到了长隆,这时已经两点了,野生动物园六点关门,我们来不及去酒店放行李了, ...

  5. iOS开发学无止境 - Cell 里的视图控制器

    在每个 iOS 开发者的生涯中,总有一些时候想把一个视图控制器放到一个 tableView 的 cell 中.因为这是一个有用的工具去处理我在视图控制器中的各种复杂视图及繁琐操作,而且很容易想象的一种 ...

  6. 一篇生物学博士的自白,写的很不错,博士生的真实写照

    文章索引: 一.前言 二.读完博士能够干什么? 三.怎样的人适合读博士? 四.怎样读博士? 五.在美国读博士 六.结语--关于事业 正文: 这篇文章说明了男怕入错行. 一.前言 原先我是准备等到毕业的 ...

  7. 26岁一年发4篇Cell,他说搞科研要有“十诫”

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

  8. 那个一年发4篇cell的研究生后来怎样了?

    每天太忙,没时间看书 怎么利用碎片化时间 看到好内容? 今天给大家推荐 一批优质公众号 资料经验啥都有 有深度有内容! 赶紧关注吧! 科奖在线 查看全文 http://www.taodudu.cc/n ...

  9. 亲身历时两个月,这可能是一篇最全面的2021大厂技术岗实习面经

    亲身历时两个月,这可能是一篇最全面的2021大厂技术岗实习面经 本篇仅从个人经历角度讲述2021春季日常实习的求职经历,涉及到微软.商汤.字节跳动.依图.寒武纪.百度.腾讯.旷视.轻舟智航等企业的面试 ...

最新文章

  1. 军哥lnmp一键安装包nginx支持pathinfo配置
  2. problem-solving-with-algorithms-and-data-structure-usingpython(使用python解决算法和数据结构) -- 基本数据结构(一)...
  3. Mysql 主从复制常用管理任务介绍
  4. 大学计算机专业全英文论文,计算机专业大学生英文简历模板
  5. docker --- 使用docker-compose.yml生成redis,并连接redis-cli
  6. 我和2035年有个约计算机论文,我和2035有个约
  7. 成都Uber优步司机奖励政策(3月23日)
  8. 重磅:向996开炮!携程带头居家办公。
  9. unix支持哪些原始文件系统操作_UNIX环境高级程序设计(APUE)第4章第1部分:文件系统基础知识...
  10. 学习数据库系统概论这一篇就够了
  11. VC中实现GB2312、BIG5、Unicode编码转换
  12. 报错信息为:value larger than specified precision allowed for this column
  13. ITIL事件管理流程关键知识
  14. 用上这个神器后,广告从此去无忧!(全平台免费支持,无需安装任何客户端软件)...
  15. mvc2 mvc_MVC之外的世界
  16. app目前第三方托管平台整理
  17. 在冰山一角之下:情绪分析研究的当前挑战和新方向。
  18. java 知网 语义 相似度,基于知网语义相似度的中文文本分类研究 论文笔记
  19. Linux 生产环境搭建
  20. Windows 下搭建Scratch环境

热门文章

  1. 【软件架构】三层架构和MVC的比较
  2. 【数字逻辑设计】Logisim构建四位行波进位加法/减法器
  3. 【独家】孙茂松:从机器翻译到古诗生成
  4. 【具体数学--读书笔记】1.1 The Power of Hanoi
  5. 从外网 SSH 进局域网,反向代理+正向代理解决方案
  6. C#基础系列——语法
  7. win7装ORACLE提示操作系统未验证或 Service Pack 未执行
  8. 金笛邮件中使用wap邮箱
  9. 毕业后想成为一名软件开发工程师,应该如何学习,大牛给出建议!
  10. 中国牛逼的程序员有哪些?入职华为两天转正,半个月升主任