Estimate包计算多种得分并用ggplot实现可视化:从免疫基质得分到彩虹之桥!






Estimate包计算多种得分并用ggplot实现可视化:从免疫基质得分到彩虹之桥!

小果  生信果  2023-05-26 19:00:55

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

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

  • 嘿大家!好久不见,今天我们来学习一个新的R包,它可以用来进行免疫得分的计算,并绘制箱线图进行结果展示。感兴趣的话就和小果一起学起来吧!


什么是estimate包?

在这之前,小果先给大家对estimate包做一个简单的介绍。

estimate是一个在肿瘤组学研究中常用的R包,其主要功能是用于评估肿瘤组织中免疫细胞浸润的程度,并对免疫相关的信号通路进行分析。estimate基于基因表达数据进行计算,主要利用了免疫和肿瘤细胞特异的基因表达标记,并根据这些标记的表达水平估算组织中免疫和非免疫细胞的数量。最终,estimate会输出三个指标:ImmuneScore、StromalScore和ESTIMATEScore,用于评估免疫和成纤维细胞浸润的程度及其影响。

小果提醒,今天我们要学的就是通过estimate计算ImmuneScore值并将其可视化,同时在学会计算ImmuneScore(免疫得分)的基础上小果还会向大家介绍如何计算StromalScore(基质得分),那么大家就和小果一起来看一下吧!


数据导入及预处理

首先我们需要安装并载入一个叫做“estimate”的包,这个包可以用来计算Immune Score的分值哦。

library(estimate)

接下来我们来导入我们准备好的数据:

rawdata_file <- "tumor_all_gene_exp.txt"

接下来我们使用“filterCommonGenes”函数对数据集进行过滤,并将结果保存到“my.gct”的文件中。在这个函数中,我们还要指定“GeneSymbol”作为基因的ID:

filterCommonGenes(input.f=rawdata_file,                   output.f="my.gct",                   id="GeneSymbol")


计算免疫得分

然后我们需要使用“estimateScore”函数来计算免疫得分。在这个函数中,我们需要指定输入文件的路径,以及输出文件的路径。我们还要指定数据的平台(例如affymetrix):

estimateScore(input.ds = "my.gct",              output.ds="estimate_score.gct",               platform="affymetrix")

接下来,我们需要读取输出文件“estimate_score.gct”中的数据,并将其保存到名为“raw_data”的数据集中:

raw_data = read.table("estimate_score.gct",skip = 2,header = F,quote = '',sep = 't',stringsAsFactors=FALSE)rownames(raw_data)=raw_data[,1]raw_data= as.data.frame(t(raw_data[,3:ncol(raw_data)]))row.names(raw_data)<-c(1:nrow(raw_data))colnames(raw_data)[1] <- c("sample")for(i in 2:5){    raw_data[,i] <- as.numeric(as.character(raw_data[,i]))}

我们一起来看下输出的数据吧:

然后,我们需要读取准备好的“group.txt”的文件,这个文件包含了每个样本的名称以及其对应的集群,我们需要将其与上面的结果文件合并才能方便之后的可视化工作:

phenotype_file <- read.table('group.txt',header = T,sep = 't',quote = '',stringsAsFactors=FALSE)phenotype_file <- phenotype_file[phenotype_file[,1] %in% raw_data[,"sample"],]merge_matrix <- left_join(phenotype_file,raw_data,by="sample") #合并数据集my_comparisons <- list( c("cluster1", "cluster2"),c("cluster2","cluster3"),c("cluster1", "cluster3"))


计算结果可视化

在上面的步骤中,我们成功的计算出了Immune Score的值,现在我们通过我们熟悉的ggplot2包来实现计算结果的可视化:

设置my_labely标签

max_labely <- max(merge_matrix[,"ImmuneScore"])min_labely <- min(merge_matrix[,"ImmuneScore"])my_labely <- c(max_labely+1350, max_labely+1000, max_labely+650, max_labely+300)


绘制箱线图
ggboxplot(merge_matrix, x = "Group", y = "ImmuneScore",        color = "black",alpha = 0.8,size=.3,         add = "jitter",        add.params = list(color = "Group",alpha = .5,size = 0.8)) +stat_compare_means(comparisons = my_comparisons,method = "t.test",                   label.y = my_labely,na.rm=TRUE)+      stat_summary(fun.y = "mean",                 geom = "point",                color = "#485c70",                 shape = 8,                 size = 3) +


添加标题和调整绘图细节

ggtitle("Immune Score") +theme_bw()+theme(legend.position="none",       plot.title = element_text(size=15,face="bold",hjust = 0.5),       axis.text.x=element_text(colour="black"),        axis.text.y=element_text(colour="black"),panel.grid.major = element_blank(),          panel.grid.minor = element_blank()) +


设置x轴和y轴名称以及y轴显示范围

ylab("Immune Score") +xlab("Group") +ylim(min_labely-500, max_labely+1500)box_plot_pdf <- "path/to/immune_score_box.pdf"ggsave(box_plot_pdf,width=17.8,height=17.8,units = 'cm', dpi = 500)


最后,我们使用 ggsave 函数将绘制好的图保存为 PDF 格式。

现在和效果一起来看下最后绘制好的图长什么样吧!

怎么样,你学会怎么使用estimate包了嘛? 更多学习资源请大家移步小果专属云生信平台搜索更多资源哦!

StromalScore

有了计算ImmuneScore的基础,计算StromalScore也是同样的计算方法和可视化方法,只要提取的是结果文件中的StromalScore列即可:

那么我们再来看看最后StromalScore的可视化结果:

怎么样,今天的图你学会怎么绘制了吗?

微信号 | 18502195490

知乎 | 生信果

点击“阅读原文”立刻拥有

↓↓↓