R语言利用for循环画基因矩阵的KM生存曲线并输出保存
时间: 2023-06-12 15:03:21 浏览: 62
以下是R语言代码,可以利用for循环画基因矩阵的KM生存曲线并输出保存:
```R
# 加载所需的库
library(survival)
library(survminer)
# 创建一个基因矩阵
gene_matrix <- matrix(rnorm(100), ncol = 10)
# 创建一个生存数据
surv_data <- data.frame(
time = runif(10, 0, 100),
status = sample(c(0, 1), 10, replace = TRUE)
)
# 创建一个基因列表
gene_list <- colnames(gene_matrix)
# 创建一个空的列表,用于保存生存曲线的数据
surv_curve_list <- list()
# 循环遍历基因列表
for(gene in gene_list) {
# 提取当前基因的表达数据
gene_expression <- gene_matrix[, gene]
# 合并基因表达数据和生存数据
data <- data.frame(gene_expression, surv_data)
# 创建适当的对象
surv_object <- Surv(data$time, data$status)
# 创建 KM生存曲线
p <- ggsurvplot(
survfit(surv_object ~ gene_expression, data = data),
data = data,
risk.table = TRUE,
pval = TRUE,
ggtheme = theme_classic(),
xlab = "Time",
ylab = "Survival probability",
legend.title = "Gene expression",
legend.labs = c("Low", "High"),
legend.position = "right"
)
# 将生存曲线数据保存到列表中
surv_curve_list[[gene]] <- list(
x = p$surv$plot_data$time,
y = p$surv$plot_data$surv,
upper = p$surv$plot_data$upper,
lower = p$surv$plot_data$lower
)
# 输出生存曲线
print(p)
# 保存生存曲线为PDF文件
ggsave(
paste0(gene, "_survival_curve.pdf"),
plot = p$plot,
device = "pdf",
width = 8,
height = 6
)
}
```
这段代码将会循环遍历基因列表,提取每个基因的表达数据,并且用survminer包中的ggsurvplot函数画出基因表达与生存之间的KM生存曲线。对于每个基因,生存曲线数据将会保存到一个列表中,并且将会输出生存曲线和保存到PDF文件中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)