TCGA数据挖掘(4):什么是ROC分析?如何评价单基因的诊断效能

生信学长
2025年08月04日
TCGA数据挖掘
TCGA数据挖掘(4):什么是ROC分析?如何评价单基因的诊断效能

大家好,今天我们来探索一种超级实用的生物统计学工具—— ROC曲线分析 !我们将聚焦明星基因 SERPINE1 ,通过时间依赖的ROC曲线,深入挖掘该基因在 癌症预后预测 中的诊断价值。与传统的生存分析不同,ROC分析能告诉我们这个基因到底有多"准",能否成为临床医生手中的"预后神器"。

本次分析基于TCGA数据库,通过简洁的R代码,带你一步步掌握时间依赖ROC曲线的绘制与解读。

1. 时间依赖ROC分析:评估SERPINE1的预测准确性

我们使用timeROC包来计算并绘制SERPINE1基因在1年、3年、5年生存期的ROC曲线,评估其作为生存预测标志物的性能。

library(survival)
library(survminer)
library(timeROC)

rt <- read.table("data/expression_futime_matrix.tsv", header = TRUE, sep = "\t", check.names = FALSE, row.names = 1)
gene <- colnames(rt)[3]

ROC_rt <- timeROC(
T = rt$futime,
  delta = rt$fustat,
  marker = rt[, gene],
  cause = 1,
  weighting = 'aalen',
  times = c(135),
  ROC = TRUE
)

png(file = "picture/1_roc_curve.png", width = 800, height = 600, res = 150)
plot(ROC_rt, time = 1, col = 'green', title = FALSE, lwd = 2)
plot(ROC_rt, time = 3, col = 'yellow', add = TRUE, lwd = 2)  
plot(ROC_rt, time = 5, col = 'red', add = TRUE, lwd = 2)
legend('bottomright',
       c(paste0('AUC at 1 years: ', sprintf("%.03f", ROC_rt$AUC[1])),
         paste0('AUC at 3 years: ', sprintf("%.03f", ROC_rt$AUC[2])),
         paste0('AUC at 5 years: ', sprintf("%.03f", ROC_rt$AUC[3]))),
       col = c("green"'yellow''red'), lwd = 2, bty = 'n')
dev.off()

📈 运行结果

图1:SERPINE1基因的时间依赖ROC曲线
图1:SERPINE1基因的时间依赖ROC曲线

结果解读:

从ROC曲线可以看出, SERPINE1 基因在不同时间点的预测性能呈现递增趋势:

  • 1年AUC = 0.627 :中等预测能力
  • 3年AUC = 0.647 :预测能力略有提升
  • 5年AUC = 0.725 :具有较好的长期预后预测价值

这一结果提示,SERPINE1基因在 长期生存预测 方面表现更佳,随着随访时间的延长,其作为预后标志物的价值逐渐凸显。

2. ROC性能指标详细分析

我们进一步提取各时间点的详细性能指标,包括敏感性、特异性等关键参数。

roc_data <- data.frame(
  Time_Point = c("1 year""3 years""5 years"),
  AUC = ROC_rt$AUC,
  Sensitivity = c(ROC_rt$TP[1,ncol(ROC_rt$TP)], ROC_rt$TP[2,ncol(ROC_rt$TP)], ROC_rt$TP[3,ncol(ROC_rt$TP)]),
  Specificity = c(1-ROC_rt$FP[1,ncol(ROC_rt$FP)], 1-ROC_rt$FP[2,ncol(ROC_rt$FP)], 1-ROC_rt$FP[3,ncol(ROC_rt$FP)])
)
write.csv(roc_data, "tables/1_roc_metrics.csv", row.names = FALSE)

📊 性能指标总览

时间点
AUC值
敏感性
特异性
1年
0.627
0.000
1.000
3年
0.647
0.005
1.000
5年
0.725
0.005
1.000

结果解读:

从性能指标表可以看出,SERPINE1基因表现出 高特异性、低敏感性 的特点,这意味着:

  • 特异性接近100% :能够很好地识别低风险患者
  • 敏感性较低 :对高风险患者的识别能力有限
  • AUC随时间递增 :长期预后预测价值更高

总结一下

总结一下,通过本次基于TCGA数据的时间依赖ROC分析,我们全面评估了 SERPINE1 基因作为癌症预后标志物的诊断价值:

  1. 时间依赖性 :该基因的预测能力随时间推移而增强,5年AUC达到0.725,显示出良好的长期预后预测潜力。
  2. 高特异性特征 :接近100%的特异性使其在排除低风险患者方面表现优异,适合作为"排除性"标志物。
  3. 临床应用前景 :虽然敏感性有待提升,但其在长期预后评估中的价值不容忽视。

ROC分析为我们提供了一个量化评估生物标志物性能的有力工具。在实际临床应用中,建议将SERPINE1与其他标志物联合使用,以提高预测的综合准确性!