添加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)
})