临床特征相关性

临床特征相关性分析是指通过统计方法或可视化手段,探索不同临床特征(如年龄、性别、病理分期、风险评分等)之间的关系,以及这些特征与患者结局(如生存时间、生存状态等)的关联。这种分析可以帮助研究人员理解哪些临床特征对患者的预后有重要影响,从而为临床决策提供依据。以下是分析实现:

#临床特征相关性
rm(list = ls())
# 加载所需的包
library(ComplexHeatmap)
library(tidyverse)
setwd("~/mnt/Data/script")

# 读取数据
clinical_data <- read.table("../anno/Risk_Group_survival.xls", sep='\t', header = T, row.names = 1)

# 数据预处理
# 将Risk_Group中的类别映射为更简洁的表述,这里假设High Risk为高风险组,Low Risk为低风险组
clinical_data$Risk_Group[clinical_data$Risk_Group == "High Risk"] <- "high"
clinical_data$Risk_Group[clinical_data$Risk_Group == "Low Risk"] <- "low"

# 将os_status中的0和1映射为Alive和Dead
clinical_data$os_status[clinical_data$os_status == 0] <- "Alive"
clinical_data$os_status[clinical_data$os_status == 1] <- "Dead"
# 合并病理分期
clinical_data$ajcc_pathologic_stage[clinical_data$ajcc_pathologic_stage=='Stage IIA'|clinical_data$ajcc_pathologic_stage=='Stage IIB'] <- "Stage II"
clinical_data$ajcc_pathologic_stage[clinical_data$ajcc_pathologic_stage=='Stage IIIA'|clinical_data$ajcc_pathologic_stage=='Stage IIIB'|clinical_data$ajcc_pathologic_stage=='Stage IIIC'] <- "Stage III"
clinical_data$ajcc_pathologic_stage[clinical_data$ajcc_pathologic_stage=='Stage IVA'|clinical_data$ajcc_pathologic_stage=='Stage IVB'] <- "Stage IV"

# 将age_at_index按照65岁进行分组
clinical_data$age_at_index[clinical_data$age_at_index <= 65] <- "<=65"
clinical_data$age_at_index[clinical_data$age_at_index > 65] <- ">65"

# 获取原列名
old_names <- colnames(clinical_data)
# 修改部分列名
old_names[4:10] <- c("Risk", "Risk_Score", "OS", "os_time", "age", "gender", "stage")
# 重新赋值列名
colnames(clinical_data) <- old_names
# 根据Risk列对数据框进行排序
clinical_data <- clinical_data[order(clinical_data$Risk, decreasing = T), ]
# 准备热图注释数据
survdata <- data.frame(row.names = rownames(clinical_data), os_time = clinical_data$os_time)
data <- clinical_data[, c("age", "gender", "stage", "Risk", "OS")]
#data <- na.omit(data)

# 定义热图注释
ha <- HeatmapAnnotation(
  survival_time = anno_points(survdata, size = unit(0.1, 'cm'), gp = gpar(col = "black")),
  df = data,
  col = list(
    age = c(">65" = "#DC143C", "<=65" = "#0000FF"),
    gender = c("female" ='steelblue', "male" = 'brown'),
    stage = c(
      "Stage I" = "#87CEEB", "Stage II" = "#008B8B", "Stage IIIA" = "#FFE4B5", "Stage IIIC" = "#20B2AA", "Stage IIB" = "#9370DB", 
      "Stage 0" = "#98FB98", "Stage IIIB" = "#8B4513", "Stage III" = "#FFFF00", "Stage IV" = "#808000", "Stage IVA" = "#EE82EE", 
      "N/A" = "#D2B48C"
    ),
    Risk = c("high" = "#f87669", "low" = "#2874C5"),
    OS = c("Alive" = "#0099ff", "Dead" = "#ff9900")
  )
)

# 绘制热图
heat <- Heatmap(matrix(nrow = 0, ncol = nrow(data)), top_annotation = ha)

# 输出热图为PDF文件
pdf(file = "Clinical_features_correlation.pdf", onefile = F, width = 8, height = 6)
draw(heat, merge_legend = TRUE, 
     heatmap_legend_side = "bottom", 
     annotation_legend_side = "bottom",
     height = unit(0.5, "cm"))
dev.off()
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容