背景:
在腫瘤微環(huán)境中呛凶,除了免疫浸潤(rùn)細(xì)胞亩码,還存在大量的腫瘤細(xì)胞和基質(zhì)細(xì)胞弹谁。
不同類型的免疫細(xì)胞在抗腫瘤和腫瘤免疫逃逸過程中又發(fā)揮了不同的作用瞬场,腫瘤的生長(zhǎng)买鸽、侵襲和轉(zhuǎn)移與腫瘤的生長(zhǎng)、侵襲和轉(zhuǎn)移贯被,無不與免疫細(xì)胞相關(guān)眼五。其次就是基質(zhì)細(xì)胞,基質(zhì)細(xì)胞也被認(rèn)為在腫瘤生長(zhǎng)彤灶、疾病進(jìn)展和耐藥性中起重要作用看幼。
ESTIMATE(Estimation of STromal and Immune cells in MAlignant Tumour tissues using Expression data)利用癌癥樣本轉(zhuǎn)錄譜的來推斷腫瘤細(xì)胞的含量,以及浸潤(rùn)的免疫細(xì)胞和基質(zhì)細(xì)胞幌陕。能夠把腫瘤組織中與腫瘤微環(huán)境相關(guān)的免疫細(xì)胞诵姜、基質(zhì)細(xì)胞和腫瘤細(xì)胞的比例或者豐度計(jì)算出來。
與上述CIBERSORT和ssGSEA不同的是:
(1)除了免疫細(xì)胞搏熄,還能分析腫瘤細(xì)胞純度和基質(zhì)細(xì)胞的豐度棚唆;(2)ESTIMATE暇赤,對(duì)于免疫細(xì)胞,僅能計(jì)算一個(gè)總的免疫細(xì)胞評(píng)分宵凌,而無法給出每種免疫細(xì)胞的具體比例鞋囊。
ESTIMATE分析流程如下:
簡(jiǎn)單總結(jié)一下,作者從TCGA等公共數(shù)據(jù)庫(kù)中篩選了不同平臺(tái)的數(shù)據(jù)瞎惫,包括Agilent, Affymetirx, Illumina RNASeq等平臺(tái)溜腐,從中篩選出兩個(gè) signature,一個(gè)是Stromal signature(基質(zhì)細(xì)胞特征基因)微饥,另一個(gè)是Immune signature(免疫細(xì)胞特征基因)逗扒。兩個(gè)標(biāo)簽分別有141個(gè)基因。然后通過ssGSEA分別計(jì)算基質(zhì)得分和免疫得分欠橘。最后聯(lián)合這兩個(gè)得分生成一個(gè)ESTIMATE score矩肩,并用于分析腫瘤純度。
ESTIMATE官網(wǎng)(https://bioinformatics.mdanderson.org/estimate/index.html)
代碼實(shí)戰(zhàn)
使用的數(shù)據(jù)肃续,是前期整理的數(shù)據(jù)黍檩,即數(shù)據(jù)分析標(biāo)準(zhǔn)的格式
加載R包
library(ggsci)
library(tidyr)
library(ggpubr)
library(utils) #這個(gè)包應(yīng)該不用下載,自帶的
#rforge <- "http://r-forge.r-project.org"
#install.packages("estimate", repos=rforge, dependencies=TRUE)
library(estimate)
library(tidyverse)
#讀取腫瘤患者01A表達(dá)譜
expr <- read.table("LIHC_fpkm_mRNA_01A.txt",sep = "\t",row.names = 1,check.names = F,stringsAsFactors = F,header = T)
#計(jì)算免疫評(píng)分
filterCommonGenes(input.f = "LIHC_fpkm_mRNA_01A.txt",#輸入文件名
output.f = "LIHC_fpkm_mRNA_01A.gct",#輸出文件名
id = "GeneSymbol") #行名為gene symbol
estimateScore("LIHC_fpkm_mRNA_01A.gct", #剛才的輸出文件名
"LIHC_fpkm_mRNA_01A_estimate_score.txt", #新的輸出文件名(即估計(jì)的結(jié)果文件)
platform="affymetrix") #默認(rèn)平臺(tái)
#3. 輸出每個(gè)樣品的打分
result <- read.table("LIHC_fpkm_mRNA_01A_estimate_score.txt",sep = "\t",row.names = 1,check.names = F,stringsAsFactors = F,header = T)
result <- result[,-1]
colnames(result) <- result[1,]
result <- as.data.frame(t(result[-1,]))
write.table(result, file = "LIHC_fpkm_mRNA_01A_estimate_score.txt",sep = "\t",row.names = T,col.names = NA,quote = F) # 保存并覆蓋score
可視化
a <- result #由于后面代碼都是a,所以將result賦值給a.
identical(rownames(a),rownames(group)) # 樣品組別信息提前處理好
a$group <- group$group
a <- a %>% rownames_to_column("sample")
b <- gather(a,key=category,value = score,-c(group,sample))
#將得分由字符型變量轉(zhuǎn)變成數(shù)值型變量始锚。
b1=as.data.frame(lapply(b$score,as.numeric)) %>% t() %>% as.data.frame()
b$score <- b1$V1
#畫圖
ggboxplot(b, x = "category", y = "score",
fill = "group", palette = "lancet")+
stat_compare_means(aes(group = group),
method = "wilcox.test",
label = "p.signif",
symnum.args=list(cutpoints = c(0, 0.001, 0.01, 0.05, 1),
symbols = c("***", "**", "*", "ns")))+
theme(text = element_text(size=10),
axis.text.x = element_text(angle=45, hjust=1))
結(jié)果輸出
致謝: