听说你想把 fgsea 结果用 GseaVis 美化?

引言


粉丝觉得 fgsea 画的图不好看,于是自己构建了 gsearesult 格式的对象,但是传入 gseaNb 画图报错。不排除他构建的对象是存在问题的,这里我给个解决方案。之前写过 听说你只有富集表格还想画 GSEA 图? ,介绍如何把富集表格转为 gseaResult 对象,fgsea 输出结果也是一个表格,那么就可以使用这个方法。
尝试

首先自己下载基因集合,这我们新加了一个 GO ID 到通路名称前面,后面需要用到:
library(fgsea)
library(msigdbr)

load test data

data(geneList, package=”DOSE”)

msigdb.hs <- msigdbr(species = “Homo sapiens”, category = “C5”, subcategory = “BP”) %>%
mutate(id = paste(gs_exact_source,gs_name,sep = “|”))

然后构建通路列表:
pathway_list <- msigdb.hs %>%
select(id, entrez_gene) %>%
as.data.frame() %>%
split(., .$id) %>%
lapply(., function(x)(x$entrez_gene))

check

head(pathway_list,1)

$GO:0000002|GOBP_MITOCHONDRIAL_GENOME_MAINTENANCE

[1] 10000 10000 1763 2021 201163 3980 9361 4205 92667 4358 4976 142 80119 11232

[15] 11232 10891 201973 83667 83667 84275 55186 291 219736 7156 7156 7157 1890

跑 fgsea 分析,得到富集表格:
fgseaRes0 <- fgsea(pathways = pathway_list,
stats = geneList,
minSize = 15,
maxSize = 500)

处理一下表格,使其类似于 gseGO/gseKEGG 输出类似的东西:
fgseaRes <- fgseaRes0 %>%
tidyr::separate_wider_delim(pathway,delim = “|”,names = c(“ID”,”Description”)) %>%
rowwise() %>%
mutate(leadingEdge =paste0(unlist(leadingEdge),collapse = “/”))

enrich_df <- data.frame(ID = fgseaRes$ID,
Description = fgseaRes$Description,
setSize = fgseaRes$size,
enrichmentScore = fgseaRes$ES,
NES = fgseaRes$NES,
pvalue = fgseaRes$pval,
p.adjust = fgseaRes$padj,
core_enrichment = fgseaRes$leadingEdge)

rownames(enrich_df) <- enrich_df$ID

然后就可以转换了,顺便把 ID 转换一下:
en <- GseaVis::dfGO2gseaResult(enrich.df = enrich_df,
geneList = geneList,
OrgDb = org.Hs.eg.db)

class(en)

[1] “gseaResult”

attr(,”package”)

[1] “DOSE”

en <- setReadable(x = en,OrgDb = org.Hs.eg.db,keyType = “ENTREZID”)

画图看看:
enrichplot::gseaplot2(x = en,geneSetID = enrich_df$ID[1])

gseaNb 画个看看:
gseaNb(object = en,geneSetID = enrich_df$ID[1])


OK,问题不大。
结尾


路漫漫其修远兮,吾将上下而求索。
欢迎加入生信交流群。加我微信我也拉你进 微信群聊 老俊俊生信交流群 (微信交流群需收取 20 元入群费用,一旦交费,拒不退还!(防止骗子和便于管理)) 。QQ 群可免费加入, 记得进群按格式修改备注哦。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/419787.html

(0)
联系我们
联系我们
分享本页
返回顶部