从TCGA下载的临床数据处理
2020-10-30 本文已影响0人
谢京合
下载的临床数据因为我分析的比较简单,所以就只讲KM生存分析和阶段分析。
1、数据下载
image.png
这个很简单,你选择你关心的肿瘤类型,然后加入购物车,然后点击途中的clinical即可。
下载完成之后先解压缩,会得到四个文件。
主要用的就是clinical.tsv
2、KM绘图
第一步:筛选出存活时间这一信息。
第二步:将存活时间和你所关心的基因的表达量进行合并
(合并方法上一篇已经讲过,用apply。)
第三步:绘图(脚本如下)
#install.packages("survminer")
library(survival)
library(survminer)
library(dplyr)
library(export)
library(ggplot2)
#这一步骤是什么意思呢?
require("survival")
setwd("E:/clinical.cart.2020-09-28")
##读入数据。
imm_info <- read.csv("KM_survival.csv", header=T, row.names=1)
##提取对应的数据
imm_info <- imm_info %>% dplyr::select(ITB_FPKM, status, live.time)
##将此数据的名称修改为你关注的。
names(imm_info)[1] <- 'ITB1'
#删除空值
imm_info <- na.omit(imm_info)
#按照中位数,将ITB的表达量分为高和低。
#imm_info$ITB1 <- ifelse(imm_info$ITB1 > median(imm_info[,"ITB1"]), 'high', 'low')
#imm_info$ITGB1
#按照分位数,将将ITB的表达量分为高和低。
imm_info$ITGB1 <- ifelse(imm_info$ITB1 > quantile(imm_info[,"ITB1"],.75), 'high', 'low')
#high <- imm_info[1:64,3]
#low <- imm_info[65:130,3]
#wilcox.test(high,low)
##利用fit构建模型
fit <- survfit(Surv(live.time, status) ~ ITB1, data=imm_info)
summary(fit)#查看完整fit分布
summary(fit)$table #输出表格
##绘图
ggsurv <- ggsurvplot(fit, data=imm_info, pval=T, conf.int = TRUE, xlim=c(0,2000), break.time.by=500, xlab="Time in days", palette=c("red","blue"))
ggsurv
rm(list=ls())
ggsurv <- ggsurvplot(fit, data=imm_info, pval=F, conf.int = TRUE, xlim=c(0,2000), break.time.by=500, xlab="Time in days", palette=c("red","blue"))##不显示秩和检验的结果
ggsurv
这里,KM曲线就完成了。
3、阶段绘图
因为病人的病情在临床信息里面会分为stageI/stageII/stageIII等等。
还是需要从clinical.tsv文件当中把stage信息提取出来。
然后绘图
setwd("E:/clinical.cart.2020-09-28")
library(ggplot2)
library(export)
input <- read.csv("clinic_data_stage.csv")
P1 <- ggplot(input,aes(x=lable, y=log(value)))+
stat_boxplot(geom = "errorbar",width=0.1,aes(color="black"))+
geom_boxplot(size=0.5,fill="white",outlier.fill="white",outlier.color="white")+
geom_jitter(aes(fill=lable),width =0.3,shape=21,size=2.5)+
theme_bw()+
theme(legend.position="none", #不需要图例
axis.text.x=element_text(colour="black",family="Times",size=14), #设置x轴刻度标签的字体属性
axis.text.y=element_text(family="Times",size=14,face="plain"), #设置x轴刻度标签的字体属性
axis.title.y=element_text(family="Times",size = 14,face="plain"), #设置y轴的标题的字体属性
axis.title.x=element_text(family="Times",size = 14,face="plain"), #设置x轴的标题的字体属性
plot.title = element_text(family="Times",size=15,hjust = 0.5), #设置总标题的字体属性
panel.grid.major = element_blank(), #不显示网格线
panel.grid.minor = element_blank())+
ylab("Expression of log()")+
xlab("TCGA database") #设置x轴和y轴的标题
P1
graph2ppt(file="clinic_data_stage.pptx", width=9, aspectr=1.5)
然后,也就搞定啦。