这里做生存分析,已经不需要正常样本的表达矩阵了,所以需要过滤。
而且临床信息,有需要进行整理。
survival analysis only for patients with tumor.
![在这里插入图片描述](https://img-blog.csdnimg.cn/7d905011db75426583c21954ec207daf.png)
数据准备:
1.phe 临床信息 dataframe格式 。行名顺序要与表达矩阵样本顺序一致 , #####至少包括是否死亡event 生存时间time 以及分类标准(基因高低 肿瘤分期 是否转移等)
2.表达矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/06af90ca675e4ee58fdbe5b46ac83356.png)
临床信息 meta信息 给感兴趣的指标进行赋值 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b76301d858c84369bac91174446640c2.png)
画生存曲线 存活分析
library(survival)
library(survminer)
# 利用ggsurvplot快速绘制漂亮的生存曲线图
sfit median(exprSet[eachgene,]),'high','low')
p=ggsurvplot(survfit(mySurv~group, data=phe), conf.int=F, pval=TRUE)
pdf(paste0(eachgene, "_surv.pdf"),width = 5, height = 5)
print(p, newpage = FALSE)
dev.off()
方法二
#批量输出 成功! 不推荐这个方法
if(1==2){
dir.create("G:/r/duqiang_IPF/GSE70866—true—_BAL_IPF_donors_RNA-seq/survival_for_genes-1")
setwd("G:/r/duqiang_IPF/GSE70866—true—_BAL_IPF_donors_RNA-seq/survival_for_genes-1")
mySurv=with(phe,Surv(time, event))
for (eachgene in gene_interested) {
phe[eachgene]=ifelse(exprSet[eachgene,]>median(exprSet[eachgene,]),'high','low')
p=ggsurvplot(survfit(mySurv~phe[,eachgene], data=phe), conf.int=F, pval=TRUE)
pdf(paste0(eachgene, "_surv.pdf"),width = 5, height = 5)
print(p, newpage = FALSE)
dev.off()
}
批量生存分析 使用 coxph 回归方法
colnames(phe)
mySurv=with(phe,Surv(time, event))
cox_results median(gene),'high','low')
survival_dat |