跳到主要内容

04 分析路线设计:先用便宜的看大方向

探索完数据确认质量没问题之后,很多人的下一步是"把所有能做的分析全跑一遍"。这是效率最低的做法 — 跑完一周发现 80% 的结果用不上,剩下 20% 还需要重跑。

正确的做法是:先用最便宜(最快、最简单)的分析确认信号存在,再决定往哪个方向深入

"便宜"和"贵"的分析

分析时间成本信息量什么时候做
PCA + 临床变量相关5 分钟整体方向最先
简单 DESeq2(tumor vs normal)10 分钟差异信号强度确认数据能用
单变量 Cox(top DE 基因)15 分钟预后信号是否存在确认选题可行
LASSO Cox 建 signature1-2 小时核心结果主线分析
CIBERSORT 免疫浸润30 分钟免疫微环境主线分析
外部队列验证2-3 小时结果可靠性主线完成后
WGCNA 模块分析3-4 小时共表达网络补充分析
单细胞反卷积半天细胞组成锦上添花

原则:从上往下做,每一步的结果决定下一步要不要做。

TCGA-LIHC 的快速筛选

我们的选题是"免疫相关基因 + 预后 + 浸润"。在正式跑 LASSO 之前,先花 30 分钟确认三件事:

确认 1:tumor vs normal 差异信号存在

# 快速 DESeq2(不做 shrinkage,只看 summary)
dds <- DESeqDataSet(se, design = ~ sample_type)
dds <- DESeq(dds)
res <- results(dds)
summary(res)
# 如果 padj < 0.05 的基因 > 3000 个,信号很强,可以继续

TCGA-LIHC 的 tumor vs normal 差异非常明显(几千个 DE 基因),这一步基本不会失败。

确认 2:免疫基因里有预后信号

# 从 ImmPort 或 MSigDB 拿免疫相关基因列表(约 2000 个)
immune_genes <- readLines("data/immune_gene_list.txt")

# 对每个免疫基因做单变量 Cox
library(survival)
cox_results <- lapply(immune_genes, function(g) {
expr <- assay(vsd)[g, ]
group <- ifelse(expr > median(expr), "high", "low")
fit <- coxph(Surv(OS.time, OS) ~ group, data = clin)
data.frame(gene = g, HR = exp(coef(fit)), p = summary(fit)$coefficients[5])
})
cox_df <- bind_rows(cox_results)
sum(cox_df$p < 0.05)
# 如果 > 100 个免疫基因和 OS 显著相关,信号够做 signature

确认 3:免疫浸润评分和分期相关

# 用 ESTIMATE 快速算免疫评分(比 CIBERSORT 快 10 倍)
library(estimate)
# ... 算出 ImmuneScore
kruskal.test(ImmuneScore ~ stage, data = clin)
# p < 0.05 说明免疫浸润和分期有关,值得深入

三个确认都通过 → 正式开始主线分析。任何一个不通过 → 回头调整选题方向。

主线分析路线图

确认信号存在后,画一张路线图:

Step 1: DESeq2 差异分析(tumor vs normal)
↓ 取显著 DE 基因 ∩ 免疫基因列表
Step 2: LASSO Cox 筛选 prognostic signature
↓ 得到 N 个基因的 risk score 公式
Step 3: KM 生存验证(TCGA 内部 train/test split)
↓ 确认 signature 能分预后
Step 4: 外部验证(ICGC-LIRI)
↓ 确认不是过拟合
Step 5: CIBERSORT 免疫浸润 vs risk score
↓ 解释 signature 的生物学意义
Step 6: 临床亚组分析 + 多变量 Cox
↓ 确认 signature 独立于分期/年龄

每一步预计时间:Step 1-2 半天,Step 3-4 半天,Step 5-6 半天。总计 1.5-2 天跑完主线。

时间预算的经验法则

一个完整的组学项目(从数据到投稿)的时间分配:

阶段占比说明
选题 + 文献15%想清楚比跑快更重要
数据获取 + 探索15%本专栏 01-03 章
主线分析30%本专栏 04-05 章
验证 + 补充20%本专栏 06 章
写作 + 图表20%本专栏 07-10 章

新手最常见的时间分配错误:把 80% 时间花在"跑分析"上,写作只留 2 天。结果图表粗糙、Discussion 空洞、Methods 缺版本号。

常见坑

坑 1:跳过快速筛选直接做 LASSO

LASSO Cox 跑 1-2 小时,如果免疫基因里根本没有预后信号,这 2 小时白费。先花 15 分钟做单变量 Cox 扫一遍,确认有信号再上 LASSO。

坑 2:所有分析都用全部样本

LASSO 建模和验证不能用同一批样本。一开始就把 TCGA 样本 7:3 split 成 train/test,train 上建模、test 上验证。不 split 的结果审稿人不认。

坑 3:路线图没有"停止条件"

"如果外部验证 AUC < 0.6 怎么办?" — 要提前想好。每一步都设一个"不通过就回头"的标准,避免沉没成本陷阱。

坑 4:补充分析做太多

WGCNA + 单细胞反卷积 + 药物敏感性 + ceRNA 网络 — 全做完要两周,但审稿人可能只看主线。补充分析最多做 2 个,选和主线最相关的。

坑 5:不记录分析决策

"为什么用 LASSO 不用 Random Forest?" "为什么阈值选 0.05 不选 0.01?" — 这些决策写论文时要解释。每做一个选择就在 README 里记一行,不然三个月后自己也忘了。

下一步

接着深入

横向延伸

参考资源

AI 陪学

让 AI 陪我学这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步陪你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。