【单细胞高级绘图】07.KEGG富集结果展示

alt 这一节画的图是比较新的,图中我用红色箭头标出的是pathway一级注释信息(big annotation,自己想的,非专有名词),纵轴花花绿绿的标注是pathway的二级注释(small annotation)。「如何获取注释」算一个难点,我上一讲也已经讲过:KEGG通路的从属/注释信息如何获取。

整个图反映的是有多少基因落到了对应的分类里面。

「辩证地看」,整张图都是pathway注释,没有具体的pathway名称,跟平常做的富集分析很不一样。把图里面的二级注释换成具体的pathway会更好。另外,这个图中横坐标是基因数,但我觉得在富集分析中这个数值并不重要(基因ratio比单个数值重要),我们可以换成p值


在开始画图之前,需要整理一个表格,表格中至少包含:「pathway ID、pathway description、pathway注释/big annotation、几个富集指标、被富集到的基因」

  • 「前三个信息」,上一讲的表格已经整理好了,可以拿来用;
  • 「几个富集指标」clusterprofiler的输出结果中也有;
  • 「被富集到的基因」貌似clusterprofiler做kegg富集不能直接显示基因symbol,所以返回的结果需要稍微加工一下。

整理表格的代码名称为run.R,如下所示:

library(Seurat)
library(tidyverse)
library(xlsx)

testseu=readRDS("testseu.rds")
Idents(testseu)="anno_new"

### 找差异基因 #########################################################################
marker_celltype=FindAllMarkers(testseu,logfc.threshold = 0.8,only.pos = T)
# 过滤
marker_celltype=marker_celltype%>%filter(p_val_adj < 0.01)
marker_celltype$d=marker_celltype$pct.1-marker_celltype$pct.2
marker_celltype=marker_celltype%>%filter(d > 0.2)
marker_celltype=marker_celltype%>%arrange(cluster,desc(avg_log2FC))
marker_celltype=as.data.frame(marker_celltype)
write.xlsx(marker_celltype,file = "markers_log2fc0.8_padj0.01_pctd0.2.xlsx",row.names = F,col.names = T)

### 富集分析 ###########################################################################
library(clusterProfiler)
library(org.Hs.eg.db)
R.utils::setOption("clusterProfiler.download.method","auto"#https://github.com/YuLab-SMU/clusterProfiler/issues/256

source("syEnrich.R")
syEnrich(marker_celltype,outpath = "markers_log2fc0.8_padj0.01_pctd0.2")

### 挑一类细胞来作为演示 #######################################################
kegg.res=read.xlsx("markers_log2fc0.8_padj0.01_pctd0.2.KEGG.xls",sheetIndex = 1,as.data.frame = T,header = T)
kegg.res=kegg.res%>%filter(p.adjust < 0.05)
kegg.res=kegg.res%>%filter(cluster == "Endothelial")

# 导入上一讲的文件
kegg_info=read.xlsx("kegg_info.xlsx",sheetIndex = 1,startRow = 3)
kegg_info=kegg_info[,c("ID","Pathway","big.annotion")]

# 合并两个表格
kegg.res$ID=str_replace(kegg.res$ID,"hsa","")
kegg.res=kegg.res%>%inner_join(kegg_info,by = "ID")
write.table(kegg.res,file = "kegg.res.txt",quote = F,sep = "\t",row.names = F,col.names = T)

我以单细胞分析中的kegg富集分析作为演示,只取其中一个cluster的富集结果来画图。

上述代码中间用到的富集代码叫syEnrich.R,这个文件只需要输入单细胞seurat对象运行FindAllMarkers得到的差异基因,就可以返回GO/KEGG富集结果,同时被富集到某个通路的基因symbol也会被列出。

运行run.R之后,最终的表格如下图所示: alt


然后开始画图,代码名称为3.plot.R,这里就不演示了,最终可以得到的图如下:

alt

获取代码

包含这张图会用到的所有代码,数据整理以及画图,超贴心有没有!

这个系列都会采取「限时公开」的方式共享代码,24小时内是免费的。超过这个时间如何获取,后台回复2022A可知(可能需要你动动小手转发一下)。

代码和测试数据的网盘链接如下: 链接:https://pan.baidu.com/s/1hebbeQH4DgYA8JqFWXO4dg 提取码:abo5

觉得代码有用的话,可以给个三/二/一连(文末点赞分享点下小广告) 帮帮忙好嘛:(前几次涨粉少得可怜

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
go富集分析kegg富集分析是生物信息学中常用的两种功能注释方法,用于解释大规模基因表达数据中的生物学意义和功能。这些分析通常用于分析基因列表中富集的功能类别或代谢通路。 在go富集分析中,通常使用Gene Ontology(GO)数据库来标注基因的功能、细胞组分和生物过程。分析过程包括将基因列表与注释数据库中的功能类别进行比较,并计算富集程度。富集程度由P值来衡量,P值越小表示富集程度越高,代表该功能类别在基因列表中出现的概率较小。 解读go富集分析结果时,需要关注具有显著富集的功能类别,这些功能类别指示了基因列表中的生物学过程和功能。此外,还需要考虑功能类别的层级关系,例如,富集于更高级别的功能类别可能表示更广泛的生物学过程。结合基因列表的背景信息和研究问题的特点,进一步挖掘和解释功能类别的生物学意义。 对于kegg富集分析,是基于KEGG(Kyoto Encyclopedia of Genes and Genomes)数据库中的代谢通路信息进行注释和富集分析富集程度也是通过计算P值来量化,P值越小表示富集程度越高,代表该代谢通路在基因列表中出现的概率较小。 解读kegg富集分析结果时,可关注具有显著富集的代谢通路,这些通路是基因列表中可能参与的生物化学反应网络。进一步分析这些富集的代谢通路可以帮助理解基因表达数据中的代谢变化和生物过程的调控机制。 综上所述,go和kegg富集分析结果的解读需要结合P值和功能/通路的生物学意义,通过综合分析得出准确的结论。这两种方法在生物信息学研究中具有重要的应用价值,可以帮助揭示基因表达数据中的生物学过程、功能和代谢调控机制。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值