You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ClusterProfiler进行GSEA分析时输入基因报错求助

DESeq2结果做GSEA报错:无基因可映射的原因及解决办法

报错核心原因

你当前构建的gene_list_GSEA只是单纯的统计量数值向量,没有为向量添加基因名作为名称属性。gseGO要求输入的基因列表必须是「基因ID为名称、对应统计量为值」的命名向量——没有基因名的话,工具无法将数值与具体基因关联,自然找不到可映射的基因。

解决步骤及修正代码

关键修正点

给提取的stat向量添加基因名(DESeq2的res结果行名默认就是基因ID,这里你指定了keyType="SYMBOL",所以行名应为基因符号):

# 整理DESeq2结果
res.df <- as.data.frame(res)
res.df <- na.omit(res.df)
res.ordered <- res.df[order(-res.df$stat),]

# 构建带基因名的命名向量(核心修正)
gene_list_GSEA <- res.ordered$stat
names(gene_list_GSEA) <- rownames(res.ordered)

# GSEA分析
gse <- gseGO(gene_list_GSEA, 
             ont="ALL", 
             keyType="SYMBOL", 
             OrgDb=org.Hs.eg.db,  # 建议直接用对象而非字符串,避免加载问题
             minGSSize=3, 
             maxGSSize=800, 
             pvalueCutoff=0.05, 
             verbose=TRUE
             )

额外排查项

  • 确认res的行名确实是基因SYMBOL:如果行名是ENSEMBL ID,需将keyType改为"ENSEMBL",或者先通过org.Hs.eg.db把ENSEMBL转成SYMBOL。
  • 更新org.Hs.eg.db包:若包版本过旧,可能存在基因映射关系缺失,执行BiocManager::install("org.Hs.eg.db")更新后重试。

内容的提问来源于stack exchange,提问作者MarieSN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 00:38:23