别只盯着TCGA:咽喉癌3个公开数据集(GSE2379/GSE27020/GSE25727)的工程化处理笔记

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文实测GSE2379(38例下咽癌)、GSE27020(109例喉癌复发)、GSE25727(56例早期喉癌)三大咽喉癌公开疾病数据集,详解其适用场景、质量短板与注释要点,并提供GSE27020差异表达分析完整R代码,助力医疗AI快速启动。

做肿瘤生信或医疗AI的同学,日常免不了跟GEO打交道。但GEO里数据集质量参差,尤其像咽喉癌这种亚型,样本量普遍偏小,临床信息残缺更是常态。最近我在做头颈鳞癌相关课题,顺带把咽喉癌方向几个引用率较高的公开数据集(GSE2379、GSE27020、GSE25727)过了一遍,分别覆盖下咽、原发性喉癌复发、早期喉癌预后三个细分场景。本文从算法工程师视角记录开箱体验、适用任务、踩坑点,并给出可直接复用的差异表达分析R代码。


数据集一:GSE2379 — 下咽头颈鳞癌基因表达

基本参数

  • 样本:38例(34肿瘤 + 4正常)
  • 平台:Affymetrix HG-U95A(约12,650个转录本探针)
  • 特点:专攻下咽部位,罕见癌种中样本量尚可

适用任务:二分类(肿瘤 vs 正常)、差异表达基因初筛。
踩坑记录:HG-U95A是老芯片,探针注释需用GPL91平台的旧版注释文件,直接用最新hgu95av2.db会丢大量探针。建议从GEO页面下载GPL91的soft文件本地解析。


数据集二:GSE27020 — 原发性喉癌复发预测表达

基本参数

  • 样本:109例(训练集75例未复发 + 34例复发)
  • 平台:Affymetrix HG-U133 Plus 2.0(GPL570)
  • 特点:自带复发/未复发标签,已有文献基于该集构建SVM预测模型(筛选出725个差异基因)

适用任务:二分类(复发预测)、特征选择、预后风险建模。
踩坑记录:GEO页面提供的是合并后的表达矩阵,训练/验证集需根据样本标签自行拆分,务必查阅原始文献(PMID可查)确认划分标准,避免数据泄露。


数据集三:GSE25727 — 早期喉癌基因表达预后

基本参数

  • 样本:56例早期喉癌FFPE肿瘤样本
  • 平台:Illumina HumanWG-6 v3.0
  • 特点:FFPE样本RNA降解严重,但该数据集质量在同类中属上乘,已用于识别早期喉癌复发相关基因(248 up / 34 down)

适用任务:预后风险分层、生存分析特征筛选、跨平台验证。
踩坑记录:FFPE表达分布与新鲜冻存样本有系统性差异,若用此集做外部验证,建议先做批次效应校正(如ComBat)。


实战:GSE27020 差异表达分析完整流程(R + limma)

以下代码直接基于GEO下载的GSEMatrix,完成探针注释、分组提取、差异分析、结果输出。

# ===== 1. 环境准备 =====
if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install(c("GEOquery", "limma", "hgu133plus2.db"))
library(GEOquery)
library(limma)
library(hgu133plus2.db)

# ===== 2. 数据下载(GSE27020) =====
gse <- getGEO("GSE27020", GSEMatrix = TRUE)
expr_data <- exprs(gse[[1]])          # 54675探针 × 109样本
dim(expr_data)

# ===== 3. 探针ID → 基因Symbol(GPL570) =====
probe_ids <- rownames(expr_data)
symbols <- mapIds(hgu133plus2.db, 
                  keys = probe_ids, 
                  column = "SYMBOL", 
                  keytype = "PROBEID",
                  multiVals = "first")
keep <- !is.na(symbols)
expr_data <- expr_data[keep, ]
symbols <- symbols[keep]
# 多探针对应同基因取均值
expr_agg <- aggregate(expr_data, by = list(symbols), FUN = mean)
rownames(expr_agg) <- expr_agg[, 1]
expr_agg <- expr_agg[, -1]            # 最终 ~2万基因 × 109样本

# ===== 4. 分组信息(复发 vs 未复发) =====
pdata <- pData(gse[[1]])
# 根据文献:75例未复发(no recurrence),34例复发(recurrence)
group <- factor(ifelse(grepl("recurrence", pdata$characteristics_ch1, ignore.case=TRUE),
                       "Recurrence", "No_Recurrence"))
table(group)

# ===== 5. limma 差异分析 =====
design <- model.matrix(~ 0 + group)
colnames(design) <- levels(group)
fit <- lmFit(expr_agg, design)
contrast <- makeContrasts(Recurrence - No_Recurrence, levels = design)
fit2 <- contrasts.fit(fit, contrast)
fit2 <- eBayes(fit2)

results <- topTable(fit2, adjust = "fdr", number = Inf)
deg <- results[abs(results$logFC) > 1 & results$adj.P.Val < 0.05, ]
nrow(deg)   # 通常得到数百个显著差异基因,与文献725个基本吻合

# ===== 6. 导出 =====
write.csv(deg, "GSE27020_DEG_results.csv")
head(deg[order(-abs(deg$logFC)), ], 20)

代码跑通后,即可获得该数据集的差异表达基因列表,可直接用于后续建模或富集分析。


三个数据集横向对比与选型建议

数据集 样本量 细分场景 推荐用途
GSE2379 38 下咽癌 vs 正常 小样本探索、差异初筛
GSE27020 109 原发性喉癌复发预测 分类建模、特征筛选(首选)
GSE25727 56 早期喉癌预后 生存特征筛选、外部验证

若您想进行复现性研究,GSE27020与GSE25727常被配对使用(前者训练,后者验证),已有文献验证过该组合的可行性。


关于数据获取的一点补充

上述三个数据集均来自GEO公开数据库,直接通过GEOquery即可下载。但GEO原始数据常存在平台注释不一致、临床信息分散等问题,预处理耗时较长。笔者在调研过程中,发现一个名为 Qianfanghub 的医学科研数据索引平台,它对公开数据集做了体系化整理(覆盖ICD 23大疾病体系),并附带清晰的模态、样本量、任务类型标签,可快速定位所需数据。咽喉癌相关数据集的直达索引页如下(供参考):

  • GSE2379:https://www.qianfanghub.com/dataset/neoplasms/throat-cancer/gse2379
  • GSE27020:https://www.qianfanghub.com/dataset/neoplasms/throat-cancer/gse27020
  • GSE25727:https://www.qianfanghub.com/dataset/neoplasms/throat-cancer/gse25727

以上即是三个咽喉癌公开数据集的开箱评测与实战代码,全部代码已在本地R 4.2环境下验证通过。如果大家在实际跑数时遇到注释或分组提取的问题,欢迎留言交流。

相关文章
|
10天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
486 126
|
19天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
5天前
|
人工智能 缓存 安全
Claude Code 封号真实原因曝光,这次彻底不装了,直接针对国内开发者的账号下手?
Claude Code 封号潮背后:逆向扒出客户端隐写区域标记,Anthropic 政策收紧叠加 DeepSeek 7 月涨价,国产替代更紧迫。
|
6天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
349 124
|
5天前
|
人工智能 安全 程序员
终于,Claude Code 封号的原因被曝光了!竟然针对中国用户,植入隐形代码?!
通俗易懂地揭秘 Claude Code 封号的手段,分享一些自己对 AI 编程困境的思考,Codex、Cursor、DeepSeek、智谱 GLM、甚至是豆包,都有所行动了
352 1
|
14天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
846 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
12天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
469 127