干货分享|使用ssGSEA分析肿瘤浸润免疫细胞
上次的干货分享我们给大家介绍的是如何利用TIDE预测肿瘤免疫逃逸(推文链接),本期推文更加重磅,我们将给大家详细讲解生信文章免疫分析必做的——肿瘤浸润免疫细胞。
在学习肿瘤浸润免疫细胞之前,我们需要先了解一下肿瘤微环境(tumor microenvironment, TME)。肿瘤微环境,顾名思义就是肿瘤细胞周围的环境,与肿瘤的发生发展密切相关,包括非细胞组分如生长因子、趋化因子等,还有细胞组分,主要由肿瘤细胞、免疫细胞、基质细胞组成。肿瘤微环境中的免疫细胞我们就称为肿瘤浸润免疫细胞。然而,并不是所有的免疫细胞都具有抗肿瘤的作用,比如据文献报道Treg细胞和M2型巨噬细胞就主要与肿瘤患者的不良预后有关。因此,分析肿瘤浸润免疫细胞对肿瘤研究具有重要意义。
进行肿瘤浸润免疫细胞分析的算法有很多,比如TIMER、CIBERSORT等,今天我们给大家介绍的是操作性更强并且也能用与其他分析的方法——ssGSEA。
进行ssGSEA,我们需要的输入数据有基因表达矩阵和肿瘤浸润免疫细胞基因集。
1.导入基因表达矩阵
图1 行为基因、列为样本(注意是matrix,不是data.frame)load("基因表达矩阵.rdata")
View(data)
2.导入肿瘤浸润免疫细胞基因集
文献中比较常见的用来做肿瘤浸润免疫细胞分析的基因集主要用两个:一个是来源于文献Classification of triple-negative breast cancers based on Immunogenomic profiling,其中不仅总结了16种肿瘤浸润免疫细胞的基因集,还有13种免疫功能的基因集;另一个就是TISIDB数据库总结的28种肿瘤浸润淋巴细胞的基因集。上述这三个基因集以及第一步的基因表达矩阵大碗已经给大家全部整理好了,移步gong zhong号后台回复“ssGSEA数据包”即可获取。接下来,我们以从文献中获得的16种肿瘤浸润免疫细胞的基因集为例进行ssGSEA分析。
图2 16种肿瘤浸润免疫细胞的基因集load("肿瘤浸润免疫细胞基因集.rdata")
View(geneset_cell)
3.进行ssGSEA分析
library(GSVA)
ssGSEA_matrix <- gsva(expr = data,
gset.idx.list = geneset_cell,
method = 'ssgsea',
kcdf = "Poisson",
abs.ranking = TRUE)
要注意一下①method参数默认为“gsva”,我们这里进行的是ssGSEA,因此设置为“ssgsea”。②“kdcf”参数默认为 "Gaussian",适用与经过对数转换的芯片数据和测序数据的log-CPMs, log-RPKMs 或者 log-TPMs,"Poisson"适用于测序数据的count格式。
分析的结果如图3,列为样本,行为16种肿瘤浸润免疫细胞,中间的数值为每种细胞在每个样本中的浸润分数。
图34.可视化
示例基因表达矩阵包括的是50例肿瘤样本与50例正常样本,接下来我们就通过绘制箱线图来比较16种肿瘤浸润免疫细胞在肿瘤组与正常组之间的差异。
①加载包
library(tibble)
library(magrittr)
library(reshape2)
library(ggplot2)
②准备数据:将ssGSEA的结果处理成图4的格式
图4 每个样本、每种肿瘤浸润免疫细胞对应的浸润分数tmp1 <- ssGSEA_matrix%>%t()%>%as.data.frame() %>%
rownames_to_column("Sample")
tmp1$Group <- c(rep("tumor",50),rep("normal",50))
tmp1 <- melt(tmp1)
colnames(tmp1) <- c("Sample","Group","Celltype","Score")
③绘制如图5的箱线图,展示16种肿瘤浸润免疫细胞在正常组与肿瘤组的浸润的差异。
图5 16种肿瘤浸润免疫细胞在正常组与肿瘤组的浸润情况pdf("16免疫细胞_箱线图.pdf",width = 12,height = 8)
ggplot(tmp1,aes(Celltype,Score)) +
geom_boxplot(aes(fill = Group),outlier.shape = 21)+
theme_bw() +
labs(x = NULL, y = "Score") +
scale_fill_manual(values = c("blue", "red"))+
stat_compare_means(aes(group = Group,label = after_stat(p.signif)),
method = "wilcox.test",
hide.ns = T)+
theme(plot.margin=unit(c(1,1,1,1),'cm'),
plot.title = element_text(size = 12,color="black",hjust = 0.5),
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))
dev.off()
到这里,使用ssGSEA分析肿瘤浸润免疫细胞及其可视化就结束了。除了箱线图,其实也可以用热图来展示各种肿瘤浸润免疫细胞在所有样本中的浸润情况。关于热图的绘制,我们“R语言——使用pheatmap包绘制热图”这篇推文已经详细讲解过。
还有,既然13种免疫功能的基因集也给到大家了,那为什么不再顺便给文章加个免疫功能的分析呢?快去试一试吧!