junjunlab/GseaVis

添加geneSetID后找不到对象'plabel'

Closed this issue · 3 comments

俊俊老师您好,使用GseaVis绘图时,发现如果添加geneSetID就会报错

因为我就选了一条通路,用以下代码提取出基因名,手动检查了一下也都是一一对应的

gse_hallmark <- GSEA(gsea_gene, TERM2GENE = hallmark_gene, pvalueCutoff = 1)
gse_hallmark <- setReadable(gse_hallmark, 'org.Hs.eg.db', 'ENTREZID') 
gse_hallmark@result %>% filter(p.adjust < 0.05)
# 记下有意义的通路
gs_id <- c("HALLMARK_OXIDATIVE_PHOSPHORYLATION")
# 拆分注释基因
gs_gene <- gse_hallmark@result %>% 
  filter(ID == gs_id) %>% 
  .$core_enrichment %>% 
  strsplit("/") %>% 
  unlist()

不加入geneID时用以下代码绘图没问题

# 作图
library(GseaVis)
gseaNb(object = gse_hallmark,
       geneSetID = gs_id,
       newGsea = T, addPoint = F,
       addPval = T, pHjust = 0, pvalX = 0.05,pvalY = 0.15,
       newHtCol = c("#ce4a35","white", "#4ca8be"))

但是加入后就出现报错,直接在addGene里输入一个基因也不行

gseaNb(object = gse_hallmark,
+        geneSetID = gs_id,
+        addGene = gs_gene, arrowType = 'open', geneCol = 'black',
+        newGsea = T, addPoint = F,
+        addPval = T, pHjust = 0, pvalX = 0.05,pvalY = 0.15,
+        newHtCol = c("#ce4a35","white", "#4ca8be"))
Your gene is not in this pathway! Please choose again!
Error in gseaNb(object = gse_hallmark, geneSetID = gs_id, addGene = gs_gene,  : 
  找不到对象'plabel'

求解,感谢!!

已解决,添加kegg = T即可,再次感谢大神的包!

我用的是GO,kegg = T还会产生报错“Error in data.frame(.) : row names contain missing values”

我知道了,是这里的原因,我用fgsea转换的clusterprofiler格式,但是没有把object@geneList转换成gene_sample,并且代码里也没有:
gsdata <- purrr::map_df(geneSetID,function(setid){
gsInfo(object,geneSetID = setid) %>%
dplyr::mutate(id = setid)
})
gsdata1 <- gsdata %>%dplyr::mutate("gene_name" = names(object@geneList)) %>%dplyr::filter(position == 1)

gsdata1 <- purrr::map_df(unique(gsdata$Description),function(setid){
tmp <- gsdata %>%
dplyr::filter(Description == setid) %>%
dplyr::mutate("gene_name" = names(object@geneList)) %>%
dplyr::filter(position == 1)
})