news 2026/5/1 8:40:10

如果我想批量下载GEO的表达量矩阵,有没有什么好的办法?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如果我想批量下载GEO的表达量矩阵,有没有什么好的办法?

我们前面一篇文章介绍了 NCBI 下载测序数据的方法一篇果蝇多组学(ChIP-seq、RNA-seq、ATAC-seq)经典文章,模式生物,附代码,因此非常容易复现

那如果我们要直接下载 GEO 表达量数据呢?如果样本不多,到 GEO 网站直接下载即可。

比如这个数据集:GSE1563,我们到 GEO 网站(https://www.ncbi.nlm.nih.gov/geo/)上搜索:

可以看到这个数据集有 62 个样本,其名称以 GSM 开头。

我们要知道 GEO 数据库有这几种数据组织结构:

  • 平台文件(GPL):描述芯片设计、探针或可检测元件

  • 样本文件(GSM):包含个体实验测量数据

  • 系列文件(GSE):将相关样本分组,通常代表完整研究

  • 数据集文件(GDS):由 GEO 工作人员整理,代表具有生物学和统计学可比性的数据集

我们先下载系列矩阵文件。点击下方的:Series Matrix File(s),进入 FTP 下载页面:

下载后解压,可以看到这个文件前面是感叹号(!)开头的注释信息,包括系列的主题、GEO 访问号以及样本的临床信息等。

最后 !series_matrix_table_begin 和 !series_matrix_table_end 之间的是基因的表达量矩阵:行为基因,列为样本。

理想情况下,我们可以从这个文件中解析出样本的注释信息以及基因的表达量矩阵。但有些时候,这些信息却分散在 SOFT 格式文件或 Supplementary file 中,自行解析比较繁琐。

比较方便的做法是使用 GEOquery 这样的工具协助下载数据。

安装 GEOquery

# 1. 安装BiocManager(若未安装) if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager") # 2. 安装GEOquery BiocManager::install("GEOquery") # 3. 加载GEOquery library(GEOquery)

下载表达矩阵+样本注释

参数GSEMatrix = TRUE(默认值)会优先下载标准化的GSExxxx_series_matrix.txt.gz文件,该文件已整合表达矩阵与核心样本注释,解析速度快,适合绝大多数基础分析。

gse <- getGEO( GEO = "GSE1563", # GEO数据集编号 destdir = ".", # 数据保存路径("."代表当前工作目录) GSEMatrix = TRUE, # 优先下载series matrix文件 getGPL = TRUE, # 同时下载芯片平台注释(可选,默认FALSE) AnnotGPL = TRUE # 获取详细的平台注释(可选,默认FALSE) ) # getGEO 返回的是一个列表,因为一个 GSE 可能包含多个平台 # 通常我们取第一个 gse_data <- gse[[1]]
  • • 下载后,当前目录会生成GSE1563_series_matrix.txt.gz文件(若设置getGPL = TRUE,还会生成平台文件如GPL96_family.soft.gz);

  • 数据本地缓存:使用 destdir = "." 参数可以将下载的数据保存在当前目录。下次运行时,getGEO 会优先读取本地文件,避免重复下载。

深入理解 ExpressionSet 对象

数据下载完成,它通常以 ExpressionSet 对象的形式存在。我们需要学会从中提取三类核心信息:

提取表达矩阵 (Expression Matrix)

这是进行定量分析的基础(如基因表达量)。

exp_matrix <- exprs(gse_data) # 查看前几行 head(exp_matrix[, 1:5])

显示:

> head(exp_matrix[, 1:5]) GSM26805 GSM26806 GSM26807 GSM26808 GSM26809 1000_at 954.9 1044.7 1112.5 1123.5 1021.0 1001_at 229.2 192.3 342.1 318.1 601.6 1002_f_at 521.3 365.6 300.1 302.3 321.9 1003_s_at 275.8 198.0 220.5 227.3 252.5 1004_at 718.0 785.1 824.7 745.5 587.3 1005_at 509.6 1323.1 957.5 1157.4 644.0 >
提取样本表型信息 (Metadata/Phenodata)

这里包含样本的分组、年龄、性别等临床指标。

sample_info <- pData(gse_data) sample_info

显示:

> sample_info title geo_accession status submission_date last_update_date type channel_count source_name_ch1 organism_ch1 GSM26805 C1PBL GSM26805 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26806 C2PBL GSM26806 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26807 C3PBL GSM26807 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26808 C4PBL GSM26808 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26809 C5PBL GSM26809 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26810 C6PBL GSM26810 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26811 C7PBL GSM26811 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26812 C8PBL GSM26812 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens GSM26813 AR2PBL GSM26813 Public on Jul 14 2004 Jul 14 2004 Mar 16 2009 RNA 1 PBL Homo sapiens
提取平台注释信息 (Feature Data)

将探针 ID 转换为基因 Symbol。

feature_info <- fData(gse_data) head(feature_info)

显示:

> head(feature_info) ID Gene title Gene symbol Gene ID UniGene title UniGene symbol UniGene ID 1000_at 1000_at mitogen-activated protein kinase 3 MAPK3 5595 1001_at 1001_at tyrosine kinase with immunoglobulin like and EGF like domains 1 TIE1 7075 1002_f_at 1002_f_at cytochrome P450 family 2 subfamily C member 19 CYP2C19 1557 1003_s_at 1003_s_at C-X-C motif chemokine receptor 5 CXCR5 643 1004_at 1004_at C-X-C motif chemokine receptor 5 CXCR5 643 1005_at 1005_at dual specificity phosphatase 1 DUSP1 1843

最后小结

上述是理想情况,很容易获得所需的全部信息。但是,如果你不幸运,GSExxxx_series_matrix.txt.gz文件提供的信息不全,那么你只有到SOFT formatted family file(s),以及Supplementary file中去找,慢慢拼接吧。

推荐阅读

中国银河生信云平台(UseGalaxy.cn)致力于零代码生信分析。平台拥有海量计算资源、3000 多个生信工具和数十条生信流程,并且为用户提供 200G 免费存储空间。进群交流请先加 usegalaxy 为好友。我们还为进阶用户提供高质量培训课程:

RNA-seq数据分析实战 | 2026年第1期,开启你的生信学习之旅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 9:37:48

Open-AutoGLM模型调参黑科技(自适应算法深度解析)

第一章&#xff1a;Open-AutoGLM模型自适应调整算法概述Open-AutoGLM 是一种面向大语言模型的自适应参数调整框架&#xff0c;专为动态任务环境下的高效微调而设计。该算法通过实时监测输入数据分布变化与模型输出性能波动&#xff0c;自动调节学习率、注意力头权重及前馈网络激…

作者头像 李华
网站建设 2026/4/15 7:27:10

揭秘Open-AutoGLM接口性能瓶颈:如何通过3步重构实现高效调用

第一章&#xff1a;揭秘Open-AutoGLM接口性能瓶颈&#xff1a;如何通过3步重构实现高效调用在高并发场景下&#xff0c;Open-AutoGLM 接口常因同步阻塞、重复请求和低效序列化导致响应延迟。通过对典型调用链路的分析&#xff0c;可定位三大核心瓶颈&#xff1a;未启用连接池的…

作者头像 李华
网站建设 2026/5/1 5:52:10

【未来已来】:Open-AutoGLM推动AI民主化的2个关键路径

第一章&#xff1a;Open-AutoGLM 打破行业壁垒影响Open-AutoGLM 作为一款开源的通用语言生成模型框架&#xff0c;正以强大的泛化能力和极低的接入门槛重塑人工智能行业的技术格局。其核心优势在于将复杂的模型训练、推理优化与部署流程标准化&#xff0c;使得中小企业和独立开…

作者头像 李华
网站建设 2026/4/27 15:53:21

Open-AutoGLM如何做到持续高效运行?内存碎片自愈技术首次公开

第一章&#xff1a;Open-AutoGLM如何实现持续高效运行&#xff1f;Open-AutoGLM 作为一款面向自动化生成语言模型任务的开源框架&#xff0c;其持续高效运行依赖于模块化架构设计、资源动态调度与异步任务处理机制。系统通过解耦模型推理、数据预处理与反馈优化三个核心流程&am…

作者头像 李华
网站建设 2026/4/24 22:54:40

错过等于损失:Open-AutoGLM推理引擎效率提升的6大核心秘诀

第一章&#xff1a;错过等于损失&#xff1a;Open-AutoGLM推理引擎效率提升的紧迫性在大模型应用迅速落地的今天&#xff0c;推理性能直接决定产品体验与部署成本。Open-AutoGLM作为新兴的开源推理引擎&#xff0c;正以极高的优化潜力吸引开发者关注。若企业或团队忽视其带来的…

作者头像 李华