一、生信分析的目的
计算出肿瘤突变负荷,便可预测其免疫治疗准确性。肿瘤突变负荷 又可进一步分析其生存相关性以探究其预后价值。突变负荷生存分析 突变负荷增加,其肿瘤细胞更易激活免疫系统,使得患者生存预后向好的方面发展。 伴随着免疫系统的激活,其肿瘤的分型也会有所改变 对肿瘤突变负荷进行临床相关性分析,可直观地说明该潜在功能
二、具体的代码
remove(list = ls()) ##清空当前环境
setwd("D:/生信代码复现/35.肿瘤突变与临床相关性分析/35.肿瘤突变与临床相关性分析") ##💚💚💚设置路径
#引用包
library(limma)
library(ggpubr)
expFile="TMB.txt" #💛💛💛这个是肿瘤突变负荷打分文件
cliFile="clinical.txt" #💛💛💛这个是临床数据文件
rt=read.table(expFile, header=T, sep="\t", check.names=F, row.names=1)
gene=colnames(rt)[1]
tumorData=as.matrix(rt[gene])
#rownames(tumorData)=gsub("(.*?)\\-(.*?)\\-(.*?)\\-.*", "\\1\\-\\2\\-\\3", rownames(tumorData))
data=avereps(tumorData)
Type=ifelse(data[,gene]>median(data[,gene]), "High", "Low")
Type=factor(Type, levels=c("Low","High"))
data1=cbind(as.data.frame(data), Type)
data1=data1[order(data1[,gene]),]
#读取临床数据文件
cli=read.table(cliFile, header=T, sep="\t", check.names=F, row.names=1)
cli[,"Age"]=ifelse(cli[,"Age"]=="unknow", "unknow", ifelse(cli[,"Age"]>65,">65","<=65"))
#合并数据
samSample=intersect(row.names(data), row.names(cli))
data=data[samSample,,drop=F]
cli=cli[samSample,,drop=F]
rt1=cbind(data, cli)
#临床相关性分析,输出图形结果
for(clinical in colnames(rt1[,2:ncol(rt1)])){
data=rt1[c(gene, clinical)]
colnames(data)=c(gene, "clinical")
data=data[(data[,"clinical"]!="unknow"),]
#设置比较组
group=levels(factor(data$clinical))
data$clinical=factor(data$clinical, levels=group)
comp=combn(group,2)
my_comparisons=list()
for(i in 1:ncol(comp)){my_comparisons[[i]]<-comp[,i]}
#绘制箱线图
boxplot=ggboxplot(data, x="clinical", y=gene, fill="clinical",
xlab=clinical,
ylab=paste(gene, " expression"),
legend.title=clinical)+
stat_compare_means(comparisons = my_comparisons)
#输出图片
pdf(file=paste0(gene,"_clinicalCor_", clinical, ".pdf"), width=5.5, height=5) #💜💜💜最终输出箱线图
print(boxplot)
dev.off()
}
三、最终的效果
①R语言中的效果:

②文件效果:

这样就可以得到肿瘤突变负荷与各个临床性状之间的相关性同学们需要注意,这里给大家的示例文件是随机整理的,会有一些性状存在无对照组的情况,因此代码运行到后面会有报错,同学们替换自己的数据之后这个报错就不会出现了。
四、遇到的问题
Error in combn(group, 2) : n < m
但是好像问题不大
五、参考
①具体代码参考——公众号《叉叉滴同学的生信笔记》