生信分析工作室
TCGA
卵巢癌
ESTIMATE
WGCNA
LASSO-Cox
ROC

TCGA 卵巢癌多组学实战(下)

免疫浸润 · WGCNA · miRNA-mRNA · LASSO-Cox 预后模型

15 分钟阅读
TCGA 卵巢癌多组学实战(下)

上篇把 TCGA-OV 带到了通路层面 —— 4 个分子亚型在 EMT、免疫激活、细胞周期上呈现非常清晰的分工。这一篇我们继续往后推四件事:(1)免疫浸润有多大差异?(2)共表达网络上『一团』的基因有没有跟亚型强相关?(3)miRNA 和 mRNA 能不能联合起来形成结构?(4)最实用的一步 —— 用一组基因构建 LASSO-Cox 风险评分,在测试集上有没有保留判别力?

第五步 · 免疫浸润:ESTIMATE + 28 种免疫细胞 ssGSEA

卵巢癌的免疫治疗反应在不同分子亚型间差异很大,所以免疫浸润是这一步的重点。ESTIMATE 给出 Stromal / Immune / 综合三套打分(基于基质 + 免疫两套基因签名);随后用 Charoentong 2017 提出的 28 种免疫细胞签名做 ssGSEA,把每个样本的免疫『指纹』拉出来。

R · 06_immune_infiltration.R
# ESTIMATE
estimate::filterCommonGenes(input.f = tmp_in, output.f = tmp_gct, id = "GeneSymbol")
estimate::estimateScore(input.ds = tmp_gct, output.ds = tmp_out, platform = "illumina")

# 28 种免疫细胞 ssGSEA
ssg_par <- GSVA::ssgseaParam(exprData = as.matrix(expr),
                             geneSets = immune_sets, normalize = TRUE)
ssg <- GSVA::gsva(ssg_par)

5.1 ESTIMATE 三套打分(亚型差异极强)

ESTIMATE 三个评分按亚型分组
图 1 · ESTIMATE 三个评分按亚型分组。三组 Kruskal-Wallis 的 p 值都在 10⁻³⁷ 量级 —— 亚型间免疫 / 基质组成差异极其显著。Mesenchymal 同时具备最高的基质评分和较高的免疫评分,Proliferative 则是『冷肿瘤』表现,三项评分都最低。

5.2 28 种免疫细胞的亚型差异(Top 6)

最显著的 6 种免疫细胞按亚型箱线图
图 2 · Kruskal-Wallis 排序后最显著的 6 种免疫细胞按亚型箱线图:Memory B 细胞、Effector memory CD8、Monocyte、Macrophage、Activated DC、Activated CD8 T 细胞 —— 所有 p < 10⁻³⁰。Mesenchymal / Immunoreactive 在所有细胞类型上都显著高于 Proliferative / Differentiated。
26 种免疫细胞 ssGSEA 平均评分热图
图 3 · 26 种免疫细胞 ssGSEA 平均评分的 z-score 热图(按亚型聚合)。颜色由蓝(低)到粉(高)。Immunoreactive 列在 T / NK / DC 等适应性免疫细胞上整体显红,Mesenchymal 在巨噬 / 单核 / 中性粒等髓系细胞上突出。

第六步 · WGCNA:找出『成团』的基因模块

WGCNA 把基因按表达模式聚成『模块』,再用每个模块的代表表达值(module eigengene)跟性状做相关,得到模块-性状关系热图。我们在 top-5000 方差基因上构 signed 网络,软阈值由 scale-free 拟合给出。

R · 07_WGCNA.R
sft <- pickSoftThreshold(dat, powerVector = c(1:10, seq(12, 20, 2)))
net <- blockwiseModules(dat, power = sft$powerEstimate,
                        networkType = "signed", TOMType = "signed",
                        minModuleSize = 30, mergeCutHeight = 0.25)
MEs <- moduleEigengenes(dat, labels2colors(net$colors))$eigengenes
模块-性状相关热图
图 4 · 模块 - 性状相关热图(cor 与 p 都标注在格子里,p<0.05 才显示)。MEturquoise 与 Proliferative 的 r = 0.74、与 Immunoreactive 的 r = -0.43;MEbrown 与 Mesenchymal r = 0.70;MEblue 与 Proliferative r = -0.65、与 Immunoreactive r = +0.51。
模块大小条形图
图 5 · 模块大小条形图。turquoise / blue / brown 三个最大的模块刚好对应 Proliferative / Immunoreactive / Mesenchymal 三个亚型。

第七步 · miRNA-mRNA 多组学整合

把 mRNA 和 miRNA 共有的 304 例样本拿出来,分别取 1,000 个高方差 mRNA 和 200 个高方差 miRNA,跑 Pearson 相关;然后把两套数据 z-score 拼起来做联合 PCA,看亚型在多组学空间能不能被分开。

miRNA + mRNA 联合 PCA
图 6 · miRNA + mRNA 联合 PCA。4 个亚型在 PC1-PC2 空间各成一团,Mesenchymal(粉)与 Immunoreactive(紫)在 PC1 上分得最开,Proliferative(珊瑚)在 PC2 上单独成区。
Top 30 miRNA × Top 50 mRNA 相关系数热图
图 7 · Top 30 miRNA × Top 50 mRNA 的相关系数热图(按平均 |r| 排序)。蓝色 = 负相关(典型 miRNA → mRNA 抑制关系)、粉色 = 正相关。可以看到几条非常稳定的负相关条带,是后续机制研究的好起点。
最强负相关 miRNA-mRNA 对的散点图
图 8 · 最强负相关 miRNA-mRNA 对的散点图(按亚型上色)。斜率显著为负,亚型在该对上的位置呈现明显梯度。

第八步 · 生存分析:亚型 KM + Top-Cox 基因

做完表达 / 通路 / 网络 / 免疫,最后要落到『有没有临床价值』。第一步看亚型本身的预后差异:

OS Kaplan-Meier by Subtype
图 9 · OS Kaplan-Meier by Subtype(log-rank p = 0.012)。Immunoreactive 的整体生存最好;Mesenchymal 最差;Differentiated / Proliferative 在两者之间。
单变量 Cox 前 15 个最显著基因森林图
图 10 · 单变量 Cox 在 ~15,400 个高方差基因上扫描后,前 15 个最显著基因的森林图。粉色 = 风险型(HR>1),蓝色 = 保护型(HR<1)。ARHGEF38(HR=0.76)与 CYTH3(HR=1.58)是后续 LASSO 模型里的核心特征之一。

第九步 · LASSO-Cox 预后模型 + 时间依赖 ROC

最后一步:用单变量 Cox p<0.01 的 ~500 个基因做候选池,70/30 切训练-测试集(固定随机种子 20260527),在训练集上跑 10-fold cross-validated LASSO-Cox,取 λ.min 处的非零系数作为最终 signature。

R · 09_prognostic_model.R
cv_fit <- cv.glmnet(x_tr, y_tr, family = "cox", alpha = 1, nfolds = 10)
risk_tr <- x_tr %*% coef(cv_fit, s = "lambda.min")
risk_te <- x_te %*% coef(cv_fit, s = "lambda.min")
grp_tr  <- ifelse(risk_tr >= median(risk_tr), "High", "Low")
LASSO-Cox 10-fold CV 偏似然偏差曲线
图 11 · LASSO-Cox 10-fold CV 偏似然偏差曲线。lambda.min 与 lambda.1se 都用虚线标出。
最终 signature 非零系数条形图
图 12 · 最终 signature 的非零系数条形图。粉 = 风险型基因(系数为正),蓝 = 保护型基因(系数为负)。CARD17、NPEPL1、ARHGEF38 是保护型权重最大的;MEP1B、AGPAT6、TMEM181 是风险型权重最大的。

9.1 训练 / 测试集 KM 与风险分布

训练集 Kaplan-Meier
图 13 · 训练集 Kaplan-Meier。高/低风险组按训练集中位数切分,log-rank p 远小于 10⁻¹⁰,HR 巨大。
测试集 Kaplan-Meier
图 14 · 测试集 Kaplan-Meier。高/低风险组依然在测试集分开,保留了模型的判别力。
训练集风险评分排序 + 生存状态
图 15 · 训练集风险评分排序 + 生存状态(点 = 患者)。上:风险评分;下:生存时间(月)+ 死亡/存活状态。可以直观看到高风险段死亡事件更密集。
测试集风险评分排序 + 生存状态
图 16 · 测试集风险评分排序 + 生存状态。趋势与训练集一致,保留了风险分层能力。

9.2 时间依赖 ROC(1 / 3 / 5 年)

训练 / 测试集 1/3/5-yr ROC
图 17 · 训练集 1/3/5-yr AUC 分别为 0.83 / 0.92 / 0.93;测试集为 0.61 / 0.65 / 0.65。训练-测试间存在 over-fit 的『裂口』,但测试集 AUC 仍稳定 ≥ 0.6,且 3yr / 5yr 优于 1yr,符合多基因模型在长期预后上的典型表现。

9.3 多变量 Cox:风险评分 vs 临床因子

单变量 / 多变量 Cox 森林图
图 18 · 单变量 / 多变量 Cox 森林图(横轴 log HR)。RiskScore 单变量 HR=4.02(p~10⁻³³);多变量校正年龄 + 分期后仍有 HR=3.85(p~10⁻²⁹),保持显著独立预后价值。年龄与分期反而在校正后失去显著性。

两篇总结 · 一份可直接复用的范式

把上下两篇合起来看,TCGA-OV 给我们呈现的整体画面是:

① 4 个分子亚型在 EMT / 免疫激活 / 细胞周期上分别极化;

② 无监督共识聚类能以 ARI 0.39 还原原始亚型,证明这 4 个名字不是人为划的;

③ 免疫浸润亚型差异极强(p~10⁻⁴⁰),WGCNA 模块与亚型对应一致(r=0.70~0.74);

④ LASSO-Cox 训练 1/3/5-yr AUC 0.83-0.93,测试集 0.61-0.65,多变量 HR=3.85 (p~10⁻²⁹)。

整套 R 脚本(00 utils + 01-09 + run_all + README)已经被模板化,把 5 张表换成其他 TCGA 癌种(LIHC / COAD / KIRC 都已经在用),只需要改一下 00_utils.R 中的文件路径,重新跑 00_run_all.R 即可。全部图表都是 PDF + PNG 双格式输出,英文图例,可以直接拿去投稿、做汇报。

本文相关服务

生存分析 / 数据库挖掘

想把类似的分析跑在你自己的数据上?可以直接看服务详情或发起咨询。

更多案例