一、生信分析的目的
肿瘤突变负荷是评价基因突变频率高低的指标。肿瘤基因突变越多,其细胞表面所带抗原数量就会提高。这样的肿瘤细胞就越容易被免疫系统识别。因此,检测恶性肿瘤的肿瘤突变负荷,就可以预测患者对免疫治疗的效果。 此外,其对免疫系统的刺激也能间接提高肿瘤患者生存预后。在肿瘤突变负荷相关性分析之后进行其相关的生存分析,能更进一步地验证其结果所对应地价值。
在肿瘤突变负荷相关性分析之后进行其相关的生存分析,能更进一步地验证其结果所对应地价值。
二、具体的代码
remove(list = ls()) ##清空当前环境
setwd("D:/生信代码复现/33.肿瘤突变负荷与生存相关性分析/33.肿瘤突变负荷与生存相关性分析") ##💚💚💚设置路径
#引用包
library(limma)
library(survival)
tmbFile="TMB.txt" #💛💛💛这个是肿瘤突变的打分文件
cliFile="time.txt" #💛💛💛这个生存曲线文件,需要到网站下载,然后自己通过excel进行整理
#读取TMB文件,并对输入文件整理
rt=read.table(tmbFile,sep="\t",header=T,check.names=F,row.names=1)
data=as.matrix(rt)
row.names(data)=gsub("(.*?)\\-(.*?)\\-(.*?)\\-(.*?)\\-.*","\\1\\-\\2\\-\\3",row.names(data))
data=avereps(data)
#读取生存数据
cli=read.table(cliFile,sep="\t",check.names=F,header=T,row.names=1)
#数据合并并输出结果
sameSample=intersect(row.names(data),row.names(cli))
data=data[sameSample,]
cli=cli[sameSample,]
surData=cbind(cli,TMB=data)
surData$futime=surData$futime/365
var="TMB"
a=ifelse(surData[,var]<=median(surData[,var]),"Low","High")
diff=survdiff(Surv(futime, fustat) ~a,data = surData)
pValue=1-pchisq(diff$chisq,df=1)
if(pValue<0.001){
pValue="p<0.001"
}else{
pValue=paste0("p=",sprintf("%.03f",pValue))
}
fit <- survfit(Surv(futime, fustat) ~ a, data = surData)
#绘制生存曲线
pdf(file="TMBsurvival.pdf", width=5, height=5) #💜💜💜最终会生成目标基因的肿瘤突变负荷和生存曲线之间的
plot(fit,
lwd=2,
col=c("red","blue"),
xlab="Time (year)",
mark.time=T,
ylab="Survival rate",
main=paste0(var,"(",pValue,")") )
legend("topright",
c("High TMB","Low TMB"),
lwd=2,
col=c("red","blue"))
dev.off()
#查看高低TMB组五年生存率
summary(fit)
三、最终的效果
①R语言中的效果:

结果显示突变负荷高低组之间的生存状态存在差异。
且高突变组生存状态高于低突变组,这结果正符合了本文开篇所提及的“免疫系统刺激”。
肿瘤突变负荷不仅仅局限于为免疫治疗提供参考,其免疫调动效应对肿瘤患者的生存预后往往是具有价值的,但常常被研究者们忽略。
②文件效果:

四、遇到的问题
无
五、参考
①具体代码参考——公众号《叉叉滴同学的生信笔记》