GOstats运行报错:无法找到适配character类型的geneIdType方法求助
解决GOstats
geneIdType 针对character类型的报错问题 问题背景
使用DESeq2得到RNA测序结果后,运行GOstats富集分析命令时出现报错:
运行的命令
GO.params.bp <- GSEAGOHyperGParams(name="GOstats", geneSetCollection=gene_annotations, geneIds = ensembl_gene_ids, universeGeneIds = NULL, ontology = "BP", pvalueCutoff = cutoff, conditional = FALSE, testDirection = "over")
报错信息
Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘geneIdType’ for signature ‘"character"’
基因ID的结构
str(ensembl_gene_ids) # chr [1:3] "ENSG00000100592" "ENSG00000101336" "ENSG00000134285" class(ensembl_gene_ids) # [1] "character"
解决方案
GOstats无法直接识别纯字符向量类型的基因ID,需要明确指定ID类型,通过geneIdType参数传入对应的GeneIdentifierType对象,具体步骤如下:
加载必要的包
加载GOstats、对应物种的注释包(以人类为例用org.Hs.eg.db)及AnnotationDbi:library(GOstats) library(org.Hs.eg.db) # 小鼠替换为org.Mm.eg.db,其他物种对应注释包 library(AnnotationDbi)创建基因ID类型对象
针对Ensembl基因ID生成对应的标识符对象:gene_id_type <- EnsemblGeneIdentifier()修改富集分析参数调用
在原命令中添加geneIdType参数,传入创建好的ID类型对象:GO.params.bp <- GSEAGOHyperGParams(name="GOstats", geneSetCollection=gene_annotations, geneIds = ensembl_gene_ids, universeGeneIds = NULL, ontology = "BP", pvalueCutoff = cutoff, conditional = FALSE, testDirection = "over", geneIdType = gene_id_type)
额外注意事项
- 替换注释包时要确保与研究物种匹配
- 确认
gene_annotations是与Ensembl ID匹配的GeneSetCollection对象 - 若
universeGeneIds设为NULL,GOstats会用注释包内所有基因作为背景集,需保证注释包版本与基因ID版本一致
内容的提问来源于stack exchange,提问作者aleksk31
相关产品推荐
相关产品推荐

