news 2026/2/10 9:19:37

如果我想批量下载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/2/3 8:19:54

从延迟2秒到20毫秒,Open-AutoGLM调用优化全解析,速看!

第一章&#xff1a;从延迟2秒到20毫秒的性能飞跃在现代高并发系统中&#xff0c;响应延迟是衡量用户体验的核心指标。某电商平台曾面临接口平均延迟高达2秒的问题&#xff0c;用户流失率显著上升。经过架构优化与代码重构&#xff0c;系统最终将核心接口延迟压缩至20毫秒以内&a…

作者头像 李华
网站建设 2026/2/9 20:59:46

Linly-Talker在燃气泄漏报警系统中的语音提示升级

Linly-Talker在燃气泄漏报警系统中的语音提示升级 在厨房里炒菜正酣&#xff0c;突然传来一声尖锐的蜂鸣——又是燃气报警器响了。你皱眉停下锅铲&#xff0c;心里却在嘀咕&#xff1a;是真的泄漏&#xff0c;还是油烟误报&#xff1f;要不要关火&#xff1f;该往哪儿跑&#…

作者头像 李华
网站建设 2026/2/5 15:06:40

破局之路:遗留系统自动化测试的渐进式实践指南

为何要挑战遗留系统测试&#xff1f; 在软件迭代日益加速的2025年&#xff0c;遗留系统如同数字时代的"考古层"--它们承载着业务核心逻辑&#xff0c;却因技术债务累积而变得脆弱。数据显示&#xff0c;全球仍有68%的企业核心系统运行在超过10年历史的代码基础上。对…

作者头像 李华
网站建设 2026/2/8 23:19:20

为什么顶尖团队都在用Open-AutoGLM做高效推理?真相终于揭晓

第一章&#xff1a;Open-AutoGLM推理引擎效率提升的核心价值Open-AutoGLM作为新一代开源大语言模型推理引擎&#xff0c;其核心价值在于显著提升推理效率的同时降低资源消耗。通过动态批处理、算子融合与内存优化等关键技术&#xff0c;该引擎能够在高并发场景下维持低延迟响应…

作者头像 李华