天天看点

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

作者:云生信学生物信息学

尔云间 一个专门做科研的团队

原创 小果 生信果

欢迎点赞+收藏+关注[给你小心心]

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

(56线程,256G内存,个人存储1T)

  • hi!今天,小果要再给大家介绍一个好用的免疫浸润工具包。
  • 在这个教程中,我将介绍如何使用 GSVA 包实现对基因数据集的免疫浸润分析,并根据结果绘制 Boxplot 图,以比较不同样本分类之间的细胞浸润水平差异。感兴趣的话就和小果一起来看吧!

GSVA包的安装与导入

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("GSVA")
library(GSVA)           

准备数据

首先,我们需要准备两个数据文件:

一个包含基因表达信息的数据文件 :tumor_all_gene_exp.txt。该文件的每一列表示一个基因,在不同样本中的表达情况以数字表示。

一个包含基因集信息的符合 MMC3 数据库格式的文件:mmc3.csv。该文件包含多个基因集(pathway),每个基因集有一个唯一的编号和名称,每一条记录代表该基因集中的一个基因。

小果温馨提示,对于这两个文件,其行名和列名需与代码相应位置要求一致,否则后续操作可能会出错哦!

#读入基因表达数据和基因集信息:

uni_matrix=read.delim("tumor_all_gene_exp.txt",header=T,stringsAsFactors = FALSE,row.names=1,check.names = FALSE)
gene_set<-read.csv("mmc3.csv",header=T,stringsAsFactors = FALSE)           

数据预处理

将 gene_set 中的基因按照基因名称分组,以便后续直接输入 GSVA 函数中使用。

list<- split(as.matrix(gene_set)[,1], gene_set[,2])           

接下来,我们使用 gsva 函数计算基因集变化分析指标(GSVA),gsva()函数是一种基于非参数方法的通路富集分析(Pathway Enrichment Analysis)工具,而通路富集分析也是免疫浸润分析中常见的一个应用哦!它用于计算基因表达谱中每个样本与指定基因集的关联程度,将其转化为一个连续值得分。

最后,我们并结果存储到 cellInfiltration_matrix_score.csv 文件中。

gsva_matrix<- gsva(as.matrix(uni_matrix), list,method='ssgsea',kcdf='Gaussian',abs.ranking=TRUE)
write.csv(gsva_matrix,"cellInfiltration_matrix_score.csv")           

运行上述代码后,会在工作目录中生成一个名为 cellInfiltration_matrix_score.csv 的文件,其中包含了每个样本在不同基因集中的 GSVA 得分哦。

至此,我们已经完成了GSVA对基因表达数据的计算分析,我们先来看一下计算之后的部分结果是什么样吧!

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

绘制箱线图实现结果可视化

计算完成后,我们如何将结果可视化展示出来呢?和小果一起来看一下吧!

接下来,我们将使用 ggplot2、ggpubr 和 ggsignif 包进行绘图。

首先读入数据文件和样本信息文件:

data=read.csv("cellInfiltration_matrix_score.csv",header=T,row.names=1,stringsAsFactors=FALSE,check.names=FALSE)
group=read.delim("group.txt",header=T,stringsAsFactors=FALSE)
row.names(group)=group$sample
group=group[colnames(data),]
data=as.data.frame(t(data))           

将 data 中的 cluster 列替换为样本分组信息并调整列的顺序:

data$cluster=group$Group

data=data[,c(29,1:28)]

将调整后的数据存储到表格文件 中。

write.csv(data,"28cell_boxplot_data.csv")

读入上述表格文件:

data=read.csv("28cell_boxplot_data.csv",header=T,row.names=1,stringsAsFactors=FALSE,check.names=FALSE)
test=as.list(data[,-1])
height<-stack(test)
Group=rep(data$cluster,ncol(data)-1)
data1=as.data.frame(cbind(Group,height))           

使用 ggplot2、ggpubr、ggsignif 包生成 Boxplot 图,并设置 Boxplot 的相关参数与格式,最终输出 28cell_3cluster_boxplot.pdf 文件,具体的代码流程我们一起来看一下:

#导入所需R包

library(ggplot2)
library(ggpubr)
library(ggsignif)
colnames(data1)=c("group","Cell_infiltration_level","cell")
df=data1
pdf("28cell_3cluster_boxplot.pdf",height=6,width=15) #设置文件存储名称与格式
#绘制箱线图
p=ggplot(data=df,aes(x=cell,y=Cell_infiltration_level,fill=group))+
  geom_boxplot(width=0.3,
               position = position_dodge(0.5),outlier.colour =NA)+
  theme_bw()+
  theme(panel.grid = element_blank())+
  scale_fill_manual(values = c("#4DBBD5FF","#E64B35FF","#E18727FF"))+
  stat_compare_means(aes(group=group),
                     label="p.signif",
                     hide.ns = TRUE,
                     label.y = c(0.6))+
  theme(axis.text.x = element_text(size=12,colour="black",angle=60,hjust = 0.9),axis.text.y = element_text(size=12, angle=0),
        axis.title.x = element_text(size=15),axis.title.y = element_text(size=15))
print(p)
dev.off()           

运行上述代码后,会在工作目录中生成一个名为 28cell_3cluster_boxplot.pdf 的文件,其中包含了绘制好的 Boxplot 图哦!

小果再次提醒:以上代码仅为示例,实际使用时需要根据自己的数据、分析需求和环境对参数进行相应调整哦!

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

好啦,现在我们一起来看一下最后绘制的结果长什么样吧!

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

怎么样,今天的R包你学会怎么用了嘛?

关注小果,更多生信干货持续分享哦!

R语言GSVA包实现ssGSEA分析,带你探索肿瘤细胞免疫浸润的多样性

“生信果”,生信入门、R语言、生信图解读与绘制、软件操作、代码复现、生信硬核知识技能、服务器、生物信息学的教程,以及基于R的分析和可视化等原创内容,一起见证小白和大佬的成长。