GEO 数据库全景:从仓库到挖掘
各位好,咱们直接开干。GEO 数据库,全称是 Gene Expression Omnibus,说白了就是一个公共的基因表达数据仓库。你上传数据、下载数据、分析数据,都离不开它。我做生信这么多年,每次拿到一个新的芯片或测序项目,第一件事不是跑代码,而是先上 GEO 逛一圈——看看有没有现成的数据集能对比。节省的时间,少说一个礼拜。
1.1 发展历史:一个数据仓库的进化
2000 年,NCBI 推出了 GEO。那个时候,基因芯片刚火起来,大家急需一个地方存放微阵列数据。我那时候还在读书,记得第一次用 GEO 时界面简陋得很,搜索功能也弱。现在二十年过去,GEO 已经收录了超过 200 万个样本、5000 多个平台,还整合了高通量测序数据。进化的核心逻辑就一个:跟着技术走。
关键节点速览
- 2000 年:GEO 上线,主营芯片数据
- 2008 年:加入 NGS 测序数据支持
- 2015 年:整合 RNA-seq 标准流程
- 2020 年:总样本量突破 200 万
1.2 数据规模到底有多大?
咱们用数字说话。截至 2025 年初,GEO 里大概有:
| 维度 | 数值 | 说明 |
|---|---|---|
| Series | ~200,000 | 一个研究项目的数据集合 |
| Platforms | ~20,000 | 芯片类型或测序平台 |
| Samples | ~5,000,000 | 单个实验样本 |
| DataSets | ~5,000 | 手工整理的精选集 |
| Profiles | ~2,000,000 | 基因在不同条件下的表达模式 |
嗯,这里要注意:DataSets 和 Profiles 是 GEO 里比较特殊的概念,后面会细说。很多人只盯着 Series 和 Samples,忽略了 Profiles 的预分析价值。
1.3 五种核心数据类型及其关系
理解这五个东西怎么串起来,是 GEO 挖掘的第一步。我习惯用一张关系图来记:
简单解释一下这张图:一个 Platform(比如 Affymetrix Human Genome U133 Plus 2.0)定义了芯片上检测哪些探针;一个 Sample 用这个平台跑了一个单独的芯片或测序样品;多个相关 Sample 组成一个 Series,代表一个完整的实验项目。而 DataSet 是 NCBI 工作人员从 Series 里挑选并标准化的精简子集,方便跨实验对比;Profile 则是 DataSet 里每个基因在不同样本间的表达量变化线。
避坑指南:我曾经以为 GDS 就是 GSE 的简化版,后来发现不对。GDS 里的数据已经过标准化处理,而且缺失了原始 CEL 文件。如果你想跑自己的差异分析流程,必须去下载 GSE 下的原始数据,而不是直接用 GDS。记住:GDS 更适合快速浏览,GSE 才适合深入挖掘。
1.4 怎么用 ID 区分?
GEO 的 ID 命名规则很固定,看前缀就知道是什么类型:
| ID 前缀 | 含义 | 示例 |
|---|---|---|
| GPLxxx | Platform | GPL570 |
| GSMxxx | Sample | GSM100852 |
| GSExxx | Series | GSE10000 |
| GDSxxx | DataSet | GDS4105 |
| GDPxxx | Profile | GDP123456 |
搜索的时候直接用这些 ID 就能定位。我个人习惯用 GSE 作为入口,因为一个 GSE 里通常包含实验组和对照组的全部样本,拿到直接练手。
1.5 数据结构:从下载到分析
你从 GEO 下载一个 Series 的数据,通常解压后是这样的:
GSE10000_RAW/
├── GSM100852.cel.gz
├── GSM100853.cel.gz
├── GSM100854.cel.gz
├── GSM100855.cel.gz
└── GSE10000_series_matrix.txt.gz
.cel 文件是芯片原始信号文件,series_matrix.txt 是标准化后的表达矩阵。我建议新手先下载矩阵文件快速上手,等熟悉了再挑战原始 CEL 文件的重标准化。
注意:不是所有 Series 都提供原始 CEL 文件。很多只上传了矩阵。如果你买的课程或教程里只教了读取 CEL 文件,遇到没有 CEL 的数据集就傻眼了。最好两种方法都会——矩阵读取和原始文件处理都要练。
1.6 实战小贴士:怎么搜索最有效率?
GEO 官网的搜索框在 https://www.ncbi.nlm.nih.gov/geo/。直接搜关键词,比如 "breast cancer",出来一堆结果。但这样太粗了,我一般用高级搜索:
- 指定类型:加上
AND "GSE"[Data Type]只搜 Series - 限制平台:比如
AND "GPL570"[Platform] - 限制物种:
AND "Homo sapiens"[Organism]
举个例子,你如果想找 Affymetrix U133 Plus 2.0 平台下的人类乳腺癌数据,可以这样写搜索词:
breast cancer[Title] AND "Homo sapiens"[Organism] AND "GPL570"[Platform]
嗯,这样出来的结果就精准多了,不会混入小鼠或别的平台数据。
1.7 本章小结
我们理清了 GEO 的五种核心数据实体以及它们的关系。下一步,你就可以用这些知识去搜索感兴趣的数据集了。不过,千万别急——拿到数据后怎么读、怎么处理,才是重头戏。下一章我们会手把手教你用 Python 读取 GEO 矩阵文件,并做初步的质量控制。
好了,这章就到这里。记住:理解数据结构是挖掘的基础。下次你再看到 GSE12345,脑子里应该立刻浮现出 Platform、Sample、Series 那个关系图,而不是两眼一抹黑。