一、生信分析的目的
前面从009到011我们都是围绕免疫浸润展开的,免疫浸润相关性分析之后紧接着的就是免疫治疗方面的分析了,免疫治疗可以从检查点,突变负荷等方面进行阐述,然后这一章节我们就是分析免疫检查点。
免疫检查点(Immune Checkpoint)是一类免疫抑制性分子,在免疫细胞上表达、能调节免疫激活程度,它们对防止自身免疫作用的发生起着重要作用,通俗的理解就是免疫细胞产生的调节自身免疫功能的蛋白小分子。通过免疫检查点免疫疗法就是通过共抑制或共刺激信号等一系列途径以调节T细胞活性来杀伤肿瘤细胞的治疗方法。免疫检查点分子使免疫系统活化时能够保持在正常的范围之内,这样,免疫系统就不会过度活化。
免疫检查点分子的表达和功能异常是很多疾病发生的重要原因之一,如:免疫检查点分子过度表达或功能过强,免疫功能受到抑制,机体的免疫力就低下,就易患肿瘤等疾病;反之,免疫检查点分子的这种免疫抑制功能如果太差,机体的免疫功能也会异常。肿瘤细胞会表达一些物质,来激活免疫检查点,后者一旦被激活,使抗原不能被提呈至T细胞,阻断了肿瘤免疫中的提呈抗原过程,从而抑制T细胞的免疫功能,自己就能逃脱监视、存活下来。
二、具体的代码
remove(list = ls()) ##清空当前环境
setwd("D:/生信代码复现/17.免疫检查点相关性/17.免疫检查点相关性") ##💚💚💚设置路径
#引用包
library(limma)
library(reshape2)
library(ggplot2)
library(ggpubr)
library(corrplot)
pFilter=0.05 #💚💚💚相关性检验pvalue的过滤条件
geneName="TSPAN6" #💚💚💚目标基因名字,我们想要研究的目的基因名称
expFile="combined_RNAseq_counts.txt" #💛💛💛表达数据文件,基因表达矩阵的文件
geneFile="gene.txt" #💛💛💛免疫检查点的基因列表文件,免疫检查点基因列表(这个是从许多个文献中搜集的,同学们也可以更换为自己要研究的免疫检查点基因)
#读取基因表达文件,并对数据进行处理
rt=read.table(expFile, header=T, sep="\t", check.names=F)
rt=as.matrix(rt)
rownames(rt)=rt[,1]
exp=rt[,2:ncol(rt)]
dimnames=list(rownames(exp),colnames(exp))
data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
data=avereps(data)
#读取基因文件,获取免疫检查点相关基因的表达量
gene=read.table(geneFile, header=F, sep="\t", check.names=F)
sameGene=intersect(row.names(data), as.vector(gene[,1]))
data=t(data[c(geneName, sameGene),])
data=log2(data+1)
#删除正常样品
group=sapply(strsplit(row.names(data),"\\-"),"[",4)
group=sapply(strsplit(group,""),"[",1)
group=gsub("2","1",group)
data=data[group==0,]
row.names(data)=gsub("(.*?)\\-(.*?)\\-(.*?)\\-.*", "\\1\\-\\2\\-\\3", row.names(data))
data=t(avereps(data))
#对免疫检查点基因进行循环,找出与目标基因具有相关的免疫检查点
x=as.numeric(data[geneName,])
outTab=data.frame()
for(i in sameGene){
if(i==geneName){next}
y=as.numeric(data[i,])
corT=cor.test(x, y, method = 'pearson')
cor=corT$estimate
pvalue=corT$p.value
if(pvalue<pFilter){
outTab=rbind(outTab, cbind(Query=geneName, Gene=i, cor, pvalue))
}
}
#输出相关性结果文件
write.table(file="corResult.txt", outTab, sep="\t", quote=F, row.names=F) #💜💜💜输出相关性结果文件,corResult.txt
#相关性矩阵
data=t(data[c(geneName, as.vector(outTab[,2])),])
M=cor(data)
#绘制相关性图形
pdf(file="corpot.pdf",width=15,height=15) #💜💜💜绘制相关性的图案
corrplot(M,
order="original",
method = "color",
number.cex = 0.7,
addCoef.col = "black",
diag = TRUE,
tl.col="black",
col=colorRampPalette(c("blue", "white", "red"))(50))
dev.off()
三、最终的效果
①R语言中的效果:

②文件效果:

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