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

R语言中调用exprs获取GSE244858表达数据仅显示样本列表求助

解决GSE244858表达数据加载失败的问题

问题原因

GSE244858是单细胞RNA测序数据集,这类数据集的核心表达矩阵通常不会存储在getGEO默认下载的series matrix文件中,而是放在**补充文件(Supplementary Files)**里——这就是你调用exprs(gse)只看到样本编号的原因,当前gse对象里根本没有存储表达数值。

解决步骤

1. 下载补充文件

用GEOquery包的getGEOSuppFiles函数下载该数据集的补充文件:

library(GEOquery)
# 下载到当前目录的GSE244858文件夹下
getGEOSuppFiles("GSE244858", baseDir = "./")

2. 解压文件

下载完成后,会得到一个GSE244858_RAW.tar压缩包,用untar解压:

untar("GSE244858/GSE244858_RAW.tar", exdir = "./GSE244858_raw")

3. 读取表达矩阵

解压后会得到每个样本的h5格式计数文件,用Seurat包读取(单细胞分析常用工具):

library(Seurat)
# 读取单个样本的h5文件
sample_data <- Read10X_h5("./GSE244858_raw/GSM7830913_filtered_gene_bc_matrices_h5.h5")

# 如果要合并多个样本,先批量读取再合并
sample_files <- list.files("./GSE244858_raw", pattern = "*.h5", full.names = TRUE)
sample_names <- c("GSM7830913", "GSM7830914", "GSM7830915", "GSM7830916", "GSM7830917", 
                  "GSM7830918", "GSM7830919", "GSM7830920", "GSM7830921")

sample_list <- mapply(function(file, name) {
  data <- Read10X_h5(file)
  CreateSeuratObject(counts = data, project = name)
}, sample_files, sample_names, SIMPLIFY = FALSE)

# 合并所有样本到一个Seurat对象
seurat_obj <- merge(x = sample_list[[1]], y = sample_list[-1], add.cell.ids = sample_names)

4. 验证数据

读取完成后,用以下命令查看表达值:

# 查看前5个基因、前5个细胞的表达矩阵
head(seurat_obj@assays$RNA@data[, 1:5])

额外检查(可选)

如果想确认原gse对象的内容,可运行以下命令查看结构:

# 查看gse对象的整体结构
str(gse, max.level = 2)
# 查看样本的分组、处理等信息
head(pData(gse))
# 查看基因注释信息
head(fData(gse))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:42:07