SuperAPI AI 工具集

geo-database

数据与分析

查看项目

更新于 10-15 09:25

技能介绍

用途

GEO Database 技能用于访问 NCBI 的基因表达综合数据库(Gene Expression Omnibus,GEO)。GEO 是 NCBI 的公共存储库,收录高通量基因表达和功能基因组学数据,包含超过 264,000 项研究、800 多万个样本,涵盖基于阵列和基于测序的实验。该技能适用于搜索基因表达数据集、获取实验数据、下载原始与处理后文件、查询表达谱,以及将 GEO 数据整合到计算分析流程中。

主要能力

理解 GEO 数据组织

GEO 使用不同的登录号类型分层组织数据:

  • Series(GSE):一个完整实验及其相关样本集合,例如 GSE123456,包含实验设计、样本和整体研究信息,是 GEO 中最大的组织单位,当前数量 264,928+ 个系列。
  • Sample(GSM):单个实验样本或生物学重复,例如 GSM987654,包含单个样本数据、实验方案和元数据,关联到平台和系列,当前数量 8,068,632+ 个样本。
  • Platform(GPL):所使用的微阵列或测序平台,例如 GPL570(Affymetrix Human Genome U133 Plus 2.0 Array),描述技术和探针/特征注释,在多个实验间共享,当前数量 27,739+ 个平台。
  • DataSet(GDS):格式一致的精选集合,例如 GDS5678,按研究设计组织的实验可比样本,经过处理用于差异分析,是 GEO 数据的子集(4,348 个精选数据集),适合快速比较分析。
  • Profiles:与序列特征关联的基因特异性表达数据,可按基因名称或注释查询,交叉引用到 Entrez Gene,支持跨所有研究的基因中心搜索。

搜索 GEO 数据

GEO DataSets 搜索:可按关键词、生物体或实验条件搜索研究。示例代码使用 Bio.Entrez 的 esearch 方法,db 参数设为 "gds"。示例查询包括 "breast cancer[MeSH] AND Homo sapiens[Organism]"、"GPL570[Accession]"、"expression profiling by array[DataSet Type]"。

GEO Profiles 搜索:查找基因特异性表达模式。示例代码使用 db="geoprofiles",查询格式为 "{gene_name}[Gene Name] AND {organism}[Organism]"。

高级搜索模式:可组合多个搜索词,使用 AND 等操作符。示例包括 RNA-seq[DataSet Type] + Homo sapiens[Organism] + 2024[Publication Date],以及 Smith[Author] + diabetes[Disease]。

使用 GEOparse 检索 GEO 数据(推荐)

GEOparse 是访问 GEO 数据的主要 Python 库。

安装命令:

uv pip install GEOparse

基本用法:使用 GEOparse.get_GEO(geo="GSE123456", destdir="./data") 下载并解析 GEO Series,可访问系列元数据(title、summary、overall_design)、样本信息(title、source_name_ch1、characteristics_ch1)和平台信息(title、organism)。

处理表达数据:可从系列矩阵文件提取表达矩阵(gse.pivot_samples('VALUE')),或从单个样本提取。

访问补充文件:使用 gse.download_supplementary_files() 下载补充文件,可设置 download_sra 参数。

过滤和子集化数据:可按元数据过滤样本,例如按标题中的 control 或 treatment 筛选,然后提取子集表达矩阵。

使用 NCBI E-utilities 访问 GEO

E-utilities 提供对 GEO 元数据的底层程序化访问。基本工作流程包括:

  • 搜索 GEO 条目:Entrez.esearch(db="gds", term=query, retmax=100, usehistory="y")
  • 获取摘要:Entrez.esummary(db="gds", id=ids)
  • 获取完整记录:Entrez.efetch(db="gds", id=ids, retmode="xml")

批量处理时需注意对 NCBI 服务器友好,time.sleep(0.34) 限制每秒最多 3 次请求。

通过 FTP 直接访问数据文件

GEO 数据可通过 FTP 直接下载。FTP 路径根据登录号类型构造,例如 GSE 系列文件路径为 /geo/series/GSE{base_num}/{accession}/。可下载的文件类型包括:

  • matrix:{accession}_series_matrix.txt.gz
  • soft:{accession}_family.soft.gz
  • miniml:{accession}_family.xml.tgz

也可使用 wget 或 curl 下载,示例命令:

wget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE123nnn/GSE123456/matrix/GSE123456_series_matrix.txt.gz

wget -r -np -nd ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE123nnn/GSE123456/suppl/

wget ftp://ftp.ncbi.nlm.nih.gov/geo/series/GSE123nnn/GSE123456/soft/GSE123456_family.soft.gz

分析 GEO 数据

质量控制与预处理:检查缺失值、进行对数转换(如需要)、绘制分布图。

差异表达分析:定义样本组,计算倍数变化和 p 值,进行多重检验校正(Benjamini-Hochberg),筛选显著基因。

相关性与聚类分析:绘制样本相关性热图,进行层次聚类。

批量处理多个数据集

可批量下载多个 GEO 系列,提取关键信息(标题、生物体、平台、样本数、提交日期),保存表达数据,并生成汇总表。

使用方式

该技能通过 Python 代码调用,主要依赖 Bio.Entrez、GEOparse、pandas、numpy、scipy、statsmodels、matplotlib、seaborn 等库。使用 Entrez 时需配置邮箱(Entrez.email)。数据下载可通过 GEOparse 库或 FTP 直接进行。

适用场景

  • 搜索基因表达数据集
  • 获取实验数据
  • 下载原始和处理后文件
  • 查询表达谱
  • 将 GEO 数据整合到计算分析流程
  • 差异表达分析
  • 样本相关性和聚类分析
  • 批量处理多个数据集

限制

资料中未明确说明该技能的具体限制、收费情况、价格、平台支持范围或使用效果。部分功能依赖 NCBI 服务器,需遵守请求频率限制(每秒最多 3 次请求)。