只需5分钟掌握肿瘤生信文章必备分析内容,亚型间免疫检查点基因显著差异分析

今天小果带来的分享为首先利用ConsensusCluster对肿瘤样本进行分型,然后亚型间免疫检查点基因表达矩阵显著差异分析,该分析在肿瘤预后相关生信文章中出现的频率非常高,值得小伙伴们学习奥,接下来跟着小果开启今天的学习之旅吧!

  1. 如何进行亚型间免疫检查点基因表达显著差异分析?

在进行该分析之前,小果为小伙伴简单介绍一下需要注意的要点,第一点首先对肿瘤样本进行分型,第二点准备好免疫检查点基因,最后利用ggpubr包进行亚型间免疫检查点基因表达矩阵显著差异分析,筛选出在不同亚型间有显著差异的免疫检查点基因,这就是大概的分析步骤,下面和小果一起开始今天的实操吧!

2.准备需要的R包

#安装需要的R包

install.packages(“tidyverse”)

install.packages(“ggplot2”)

install.packages(“ggsci”)

BiocManager::install(“ConsensusClusterPlus”)

#加载需要的R包

library(reshape2)

library(ggpubr)

library(ggplot2)

library(tidyverse)

library(ggsci)

library(ConsensusClusterPlus)

3.ConsensusCluster一致性聚类分析

#筛选出的有预后的TEX基因表达矩阵文件,行名为基因名,列为样本名

expr1<- read.table(file = “expr_cluster.txt”,#工作目录下的文件名

header = T,#设置有列名

sep = “\t”,#分隔符

row.names = 1,#设置行名

check.names=F)#不检查行名

Dingtalk_20230710100242

dir.create(‘ConsensusCluster/’)#构建文件夹

#ConsensusCluster一致性聚类

results = ConsensusClusterPlus(as.matrix(expr1),

maxK=6,

reps=100,

pItem=0.8,

pFeature=1,

title=’ConsensusCluster/’,

clusterAlg=”km”,

distance=”euclidean”,

seed=123456,

plot=”pdf”)

icl <- calcICL(results,title = ‘ConsensusCluster/’,plot = ‘pdf’)

Kvec = 2:6

x1 = 0.1; x2 = 0.6

PAC = rep(NA,length(Kvec))

names(PAC) = paste(“K=”,Kvec,sep=””)

for(i in Kvec){

M = results[[i]]$consensusMatrix

Fn = ecdf(M[lower.tri(M)])

PAC[i-1] = Fn(x2) – Fn(x1)

}

optK = Kvec[which.min(PAC)]

optK

PAC <- as.data.frame(PAC)

PAC$K <- 2:6

#绘制PAC验证曲线

ggplot(PAC,aes(factor(K),PAC,group=1))+

geom_line()+

theme_bw()+theme(panel.grid = element_blank())+

geom_point(size=4,shape=21,color=’darkred’,fill=’skyblue’)+

ylab(‘Proportion of ambiguous clustering’)+

xlab(‘Cluster number K’)

ggsave(“PAC.pdf”)

#最小值也就是最佳K,仍然为3.

#提取分型信息,k=3

clusterNum=3 #k值变化调整

cluster=results[[clusterNum]][[“consensusClass”]]

sub <- data.frame(Sample=names(cluster),Cluster=cluster)

sub$Cluster <- paste0(‘C’,sub$Cluster)

table(sub$Cluster)

write.table(sub,file = “K3.txt”,sep=”\t”,quote=F)#输出结果

4.亚型间免疫检查点基因表达矩阵差异分析

#EXP.txt,基因表达矩阵文件,行名为基因名,列名为样本信息。

exp<-read.table(“EXP.txt”,header=T,row.names=1,sep=”\t”,check.names=F)

Dingtalk_20230710100348

#提取免疫检查点基因表达矩阵文件

df<-filter(exp,rownames(exp)%in% c(“LAG3″,”CD47″,”TIGIT”,”SIRPA”,”TNFRSF4″,”VTCN1″,”HAVCR2″,”ICOS”,”CTLA4″,”CD274″,”PDCD1″,”BTLA”,”TNFRSF9″))

#行列转置

df<-as.data.frame(t(df))

#将行名转化为列名

df<-rownames_to_column(df,var=”Sample”)

#修改基因名

df<-rename(df,c(PD1=PDCD1,TIM3=HAVCR2,MYD1=SIRPA))

##连接亚型分组信息和免疫检查点基因表达矩阵文件

immunegene<-left_join(df,sub,by=”Sample”)

#长宽数据转化

immunegene<-melt(immunegene,id.vars=c(“Sample”,”Cluster”))

#设置列名

colnames(immunegene)<-c(“Sample”,”Cluster”,”Gene”,”Expression”)

#绘制显著差异小提琴+箱线图

boxplot_immunegene<- ggplot(immunegene, aes(x = Gene, y =Expression ))+

labs(y=”Expression”,x= “”)+

geom_boxplot(aes(fill = Cluster),position=position_dodge(0.5),width=0.5)+

scale_fill_npg()+

#修改主题

theme_classic() +

theme(axis.title = element_text(size = 12,color =”black”),

axis.text = element_text(size= 12,color = “black”),

panel.grid.minor.y = element_blank(),

panel.grid.minor.x = element_blank(),

axis.text.x = element_text(angle = 45, hjust = 1 ),

panel.grid=element_blank(),

legend.position = “top”,

legend.text = element_text(size= 12),

legend.title= element_text(size= 12)

) +

stat_compare_means(aes(group = Cluster),

label = “p.signif”,#添加星号标签

method = “kruskal.test”,#kruskal.test多组检验

hide.ns = F)#显示不显著的

#保存图片

ggsave(file=”immunegene.pdf”,boxplot_immunegene,height=10,width=15)

  1. 结果文件
  2. immunegene.pdf

该结果图片为亚型间免疫检查点基因差异分析小提琴+箱线图,*表示p小于0.05,**表示p小于0.01,***表示p小于0.001,ns表示不显著。

Dingtalk_20230710094807

2.K3.txt

该结果文件为利用ConsensusCluster一致性聚类分析,K=3时亚型分组信息文件,第一列为样本名,第二列为分组信息。

Dingtalk_20230710095556

最终小果成功的完成了亚型间免疫检查点基因表达显著差异分析,看起来图片效果非常不错,欢迎大家和小果一起讨论学习呀!免疫浸润相关分析内容,例如单样本富集算法分析免疫浸润丰度(http://www.biocloudservice.com/106/106.php),计算64种免疫细胞相对含量(http://www.biocloudservice.com/107/107.php)等都可以用本公司新开发的零代码云平台生信分析小工具,一键完成该分析奥,感兴趣的小伙伴欢迎来尝试奥,网址:http://www.biocloudservice.com/home.html。今天小果的分享就到这里,下期在见奥。