前面介绍了通过 RNAseq|oncoPredict 药物反应预测,+基因,+分型,+模型 的联合可视化 预测患者对 小分子药物的反应。那如果预测当前临床治疗上常用的免疫疗法(PD1, PD-L1 ,CTLA4)反应呢?
前面介绍的RNAseq|免疫浸润也杀疯了,cibersoert?xCELL?ESTIMATE?你常用哪一个可以看患者的整体的免疫浸润程度,单独的PD1,PD-L1 响应则可以使用免疫表型评分(IPS)进行量化,这里提供两种场景数据的IPS分析
(1)如果是TCGA样本 可以直接下载TCIA数据库中的IPS评分结果。
(2)非TCGA样本 以及 TCIA中没有的癌种,使用IOBR 预测IPS评分。
一 TCIA数据库
TCIA(https://tcia.at/home)上提供了TCGA中的20种实体瘤分析后的IPS结果 ,可以直接下载使用。
点击官网https://tcia.at/home进去后如下图所示的交互,鼠标悬停在需要的癌种上点击即可,也可以在左边进行筛选。
点击癌种柱子后,会出现如下表格,可以点击2处直接在下载。
点击1处的饼图,会出现如下的图,可以看到红框中的IPS主要由抗原呈递(MHC-MHC molecules)、效应细胞(EC-effector cells)、抑制性细胞(SC-suppressor cells)、检查点(CP-immune checkpoints)这四部分评分组成。
箭头处给出的为IPS总评分,分为ips_ctla4_neg_pd1_neg,ips_ctla4_neg_pd1_pos,ips_ctla4_pos_pd1_neg和ips_ctla4_pos_pd1_pos 四种,也就是 2处 下载的csv文件中的后面几列,还有更多的列此处未展示。
barcode | ips_ctla4_neg_pd1_neg | ips_ctla4_neg_pd1_pos | ips_ctla4_pos_pd1_neg | ips_ctla4_pos_pd1_pos |
TCGA-06-0145 | NA | NA | NA | NA |
TCGA-06-0146 | NA | NA | NA | NA |
TCGA-28-2513 | 7 | 6 | 6 | 5 |
TCGA-26-5136 | 9 | 8 | 8 | 7 |
TCGA-28-1747 | 8 | 8 | 8 | 7 |
注:TCIA还有其他很多的信息,以待大家去探索。
二 IOBR 预测
如果是非TCGA样本 以及 TCIA中没有的癌种,可以使用IOBR-R 包来预测患者的IPS评分。
注:该包整合了很多分析内容,如之前介绍过的Immune ,Xcell 和 Cibersort 等均可以一行代码实现,整体功能很强大建议试一下,此处仅介绍IPS评分部分。感兴趣其他内容的可以留言,会出整体详尽的介绍。
1,安装R包
IOBR包整合了很多免疫浸润的内容,因此涉及到的R包也比较多,但是安装好之后使用很友好。
转录组数据仍然使用之前保存的SKCM的数据
# options("repos"= c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
# options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/")
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
depens<-c('tibble', 'survival', 'survminer', 'sva', 'limma', "DESeq2","devtools",
'limSolve', 'GSVA', 'e1071', 'preprocessCore', 'ggplot2', "biomaRt",
'ggpubr', "devtools", "tidyHeatmap", "caret", "glmnet", "ppcor", "timeROC","pracma")
for(i in 1:length(depens)){
depen<-depens[i]
if (!requireNamespace(depen, quietly = TRUE))
BiocManager::install(depen,update = FALSE)
}
if (!requireNamespace("IOBR", quietly = TRUE))
devtools::install_github("IOBR/IOBR")
library(IOBR)
library(tidyverse)
library(ggpubr)
load("RNAseq.SKCM.RData")
fpkm[1:4,1:4]
fpkm_in <- fpkm %>%
column_to_rownames("gene") %>%
as.matrix()
输入的矩阵信息为行名为基因,列为样本的matrix格式。
2,IOBR-IPS计算
ips<-deconvo_tme(eset = fpkm_in, method = "ips", plot= FALSE)
head(ips)
# A tibble: 6 × 7
# ID MHC_IPS EC_IPS SC_IPS CP_IPS AZ_IPS IPS_IPS
# <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 TCGA-EE-A2GJ-06A 4.44 1.41 -1.78 -0.723 3.35 10
#2 TCGA-EE-A2GI-06A 4.95 1.39 -1.46 -0.673 4.20 10
#3 TCGA-WE-A8ZM-06A 3.46 0.695 -0.682 0.181 3.66 10
#4 TCGA-DA-A1IA-06A 3.85 0.627 -0.839 0.0836 3.72 10
#5 TCGA-D3-A51H-06A 5.06 1.85 -2.08 -0.865 3.96 10
#6 TCGA-XV-A9VZ-01A 3.43 0.821 -0.747 0.184 3.68 10
注:这里的method 可以有多种选择,感兴趣的也可以计算estimate 或者 cibersort ,与之前RNAseq|免疫浸润也杀疯了,cibersoert?xCELL?ESTIMATE?你常用哪一个的结果进行比较。
3,分型,预后模型 + 可视化
以一致性聚类结果为示例,
km <- read.csv("resultstrain.k=2.consensusClass.csv",header = T,stringsAsFactors = F ,check.names = F)
names(km) <- c("sample","cluster")
fpkm_km_IPS <- km %>%
inner_join(ips,by = c("sample" = "ID"))
fpkm_km_IPS[1:4,1:4]
ggboxplot(fpkm_km_IPS, x="cluster", y="AZ_IPS", width = 0.6,
color = "black",#轮廓颜色
fill="cluster",#填充
palette = "npg",
xlab = F, #不显示x轴的标签
bxp.errorbar=T,#显示误差条
bxp.errorbar.width=0.5, #误差条大小
size=1, #箱型图边线的粗细
legend = "right") #图例放右边
根据课题需要自行结合更多的分析方式。
参考资料:
https://github.com/IOBR/IOBR
https://github.com/IOBR/IOBR/tree/master/vignettes
◆ ◆ ◆ ◆ ◆
精心整理(含图PLUS版)|R语言生信分析,可视化(R统计,ggplot2绘图,生信图形可视化汇总)