赞
踩
对TCGA数据进行差异基因分析后,如果也下载到了相应的临床数据,如有必要,可以绘制差异基因所对应的生存曲线。如果差异基因比较多,一个一个的提取数据绘制生存曲线费事、费力,结果也不肯定。所以,有没有懒省事的方法?如果能够实现批量绘制生存分析那就太好了。其实对于任何一个结果的得到,都需要自己的一些数据处理,数据处理的前体是你需要对数据分析的格式、目的或者概念有清晰的认识,这样才能做出符合要求的结果。本次批量生存分析前就需要数据处理:得到差异基因、生存资料和差异基因信息相匹配、差异基因表达信息相匹配、计算各个差异基因在样本中的均值,并根据均值进行分组为high和low组,最后才是批量生存分析。既让我能得出结果,说明这些代码是可行,如果你一次两次没有得出结果,建议一步一步操作。相信别人,更相信你自己。
- ##更改正确的工作路径(略)
- ##数据加载
- load("lung.RData")##加载生存资料信息
- load("TCGA_data_exp.RData")##加载表达矩阵及差异分析结果
- colnames(lung)##生存资料信息
- ##得到差异基因
- deg=tT[which(tT$FDR<0.01 & abs(tT$logFC)>5),]
######
- gene=deg$GENEs
- n=rownames(lung)
- gene_exp=exp[gene,n]##得到差异基因的表达数据并匹配到含有生存数据的数据框中
- gene_exp=data.frame(gene_exp)
- gene_exp=t(gene_exp)
- #rownames(gene_exp)=gsub(".","-",rownames(gene_exp))##不需要运行
- lung=data.frame(lung,gene_exp[match(rownames(lung),rownames(gene_exp)),])
##
- m=lung##
- ##计算每个基因在所有样本中的均值,赋值到数据框a中
- a <- apply(m[,3:46], 2, mean) #按列,求均值,1:2位genesymbol、geneid,后面的是每个基因表达数据
- a=data.frame(a)
- ##根据均值,将样本分为高低表达组,此处46需要根据自己的数据修改,或改成length(colnames(lung))
- for (i in 3:46) {
- n=colnames(lung)[i]
- lung[,n]=ifelse(lung[,n]>=a[n,],"high","low")
- }
- print(lung)
##colnames(lung)[16]="TRHDE-AS1调整用,不需运行
- ####批量生存曲线
- library(survival)
- library(survminer)
- ### 批量绘图
- vars=deg$GENEs
- for (i in vars){
- splots <- list()
- km_fit <- survfit(Surv(time,status)~lung[,i], data=lung)
- splots[[1]]<-ggsurvplot(km_fit,
- xlab = "Time_days",
- ylab="ROS",##根据需要调整
- pval = T,
- conf.int= F,
- risk.table = T,
- legend.title = i,
- legend.labs = levels(lung[[i]]),##
- #surv.median.line = "hv",# 中位生存
- palette="lancet")
- ## width=6.95,height=6.5
- res<-arrange_ggsurvplots(splots, print = F,
- ncol = 1, nrow = 1, risk.table.height = 0.25)
- ggsave(paste(i,"All_surv.pdf",sep = "_"), res,width=7,height = 6)
- }
学习的过程就是分享的过程,分享的过程也是交流的过程,交流的过程就是进步的过程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。