肿瘤免疫微环境

基于基因表达数据通过mMCP-counter估计小鼠样本组织浸润

2023-07-29  本文已影响0人  劝人学医TDLP

引言

在生物信息学分析中,相信目前估计样本免疫细胞浸润是必不可少的。目前,在R中有多种方法可以实现上述目的,例如ESTIMATE、CIBERSORT、xCell、MCPcounter、TIMER和ssGSEA等算法,以下是对这些算法的简单介绍。

ESTIMATE(Estimation of STromal and Immune cells in MAlignant Tumor tissues using Expression data)是一种基于基因表达数据估计肿瘤组织中免疫和间质细胞浸润水平的方法。其原理为利用肿瘤组织中基因表达的信号,通过估计免疫和间质组分的相对含量,来反映免疫细胞浸润的程度。

CIBERSORT(Cell-type Identification By Estimating Relative Subsets Of RNA Transcripts)是一种用于定量估计复杂混合组织样本中免疫细胞亚群的方法。其原理是基于基因表达数据,通过使用已知免疫细胞类型的基因表达签名,推断样本中免疫细胞亚群的相对比例。

xCell是一种基于基因表达数据的计算工具,用于预测免疫细胞类型的相对丰度。其原理是通过使用已知免疫细胞类型的基因表达特征,结合机器学习算法,预测样本中免疫细胞类型的相对含量。

MCPcounter(Microenvironment Cell Populations counter)通过基因表达数据对肿瘤组织中的免疫和非免疫细胞进行定量估计。其原理是基于免疫和非免疫细胞类型的基因表达特征,通过线性回归模型,估计肿瘤组织中不同细胞类型的含量。

TIMER(Tumor IMmune Estimation Resource)是一个在线工具,用于估计肿瘤组织中免疫细胞浸润水平,并提供相应的R软件包。其原理是基于基因表达数据,通过统计方法和基于免疫细胞标记基因的算法,估计肿瘤组织中免疫细胞的含量。

ssGSEA(single-sample gene set enrichment analysis)是一种基于基因集富集分析的方法,用于评估单个样本中的免疫细胞浸润程度。其原理为通过将样本的基因表达数据与预定义的免疫细胞相关基因集进行比较,计算样本中各免疫细胞类型的富集得分。

当然,以上算法的使用对象主要基于人,那如何实现小鼠样本的免疫细胞浸润估计呢?今天我们向大家介绍一个R包—mMCP-counter,可以通过小鼠的基因表达矩阵来估计样本中组织浸润免疫细胞和基质细胞的丰度。其实这项工作已于2020年发表于Genome Medicine。

Petitprez, F., Levy, S., Sun, CM. et al. The murine Microenvironment Cell Population counter method to estimate abundance of tissue-infiltrating immune and stromal cell populations in murine samples using gene expression. Genome Med 12, 86 (2020).

我们只需要提供自己测序样本的表达矩阵,进行简单的标准化之后就可以估计每个样本中免疫细胞和基质细胞的浸润情况,运行速度很快,输出结果为数据框,可以供我们进一步可视化。

我们主要看看mMCP-counter的工作原理以及实际操作。

背景

对于许多疾病,如炎症性疾病或癌症,准确确定疾病发展过程中组织中的细胞组成(免疫和间质细胞种群)通常至关重要。有多种方法可从人体样本中获取这些数据,包括IHC或FCM,或通过转录组学数据进行估计。

对于肿瘤研究,分析组织中的免疫和间质组成尤为重要。事实上,肿瘤是高度异质的组织,有各种免疫和间质细胞浸润。研究表明,免疫细胞浸润密度通常与疾病预后有关。例如,在大多数癌症中,CD8+ T细胞浸润密度与患者的生存期延长相关,而极化为M2表型的巨噬细胞通常与不良预后相关。

组织样本的转录组测序可以得到样本中所有细胞的基因的平均表达情况。由于一些基因在特定细胞亚群中独特表达,因此可以利用它们的表达量来确定潜在细胞亚群的丰度。基于这一特点,作者既往开发了MCP-counter算法,用于定量人体组织中的免疫浸润,并且该算法具有良好的表现性能。

虽然小鼠模型被广泛用于解析各种疾病(包括炎症性疾病和癌症)的病理生理机制,但与人体样本相比,目前用于测量小鼠组织免疫和间质细胞组成的计算方法非常有限,如DCQ(Digital Cell Quantification)和基于CIBERSORT算法改进的ImmuCC算法等。

因此,作者基于MCP-counter方法开发了适用于小鼠免疫和基质细胞组成估计的算法—小鼠微环境细胞种群计数器(mMCP-counter)。mMCP-counter可以作为R软件包使用(https://github.com/cit-bioinfo/mMCP-counter)。它的输入文件为基因表达矩阵,输出文件为样本中16种细胞的RNA丰度。其工作原理如下图。

mMCP-counter的工作原理

主要结果

mMCP-counter可以鉴定哪些细胞类型

基于mMCP-counter可以鉴定16中细胞亚群,其中12种为免疫细胞成分(T cells, CD8+ T cells, NK cells, B-derived cells, memory B cells, monocytes/macrophages, monocytes, granulocytes, mast cells, eosinophils, neutrophils, 和basophils),4种为基质细胞成分(vessels, lymphatics, endothelial cells, 和fibroblasts),每种细胞的marker如下。

免疫/间质细胞marker

流式细胞验证

那么mMCP-counter的表现能力如何呢?其结果是否可靠?作者同其他已发表的方法做了比较。此外,作者也通过小鼠组织进行了验证。作者使用流式细胞术和RNA-Seq分析了14个样本,包括脾脏(n=4),外周血(n=4),腹腔(n=4)和TC1肿瘤(n=2),并使用FCM估计的每种细胞类型的比例作为参考。不考虑组织来源,作者将所有样本合并,使用mMCP-counter算法基于RNA-Seq数据估计了免疫细胞组成,并计算了流式细胞术估计值与mMCP-counter评分之间的相关性。作者发现大多数细胞亚群的mMCP-counter的评分与流式细胞术得到的比例之间存在良好的一致性,相关性介于0.629(嗜酸性粒细胞)和0.975(CD8+ T细胞)之间。

流式细胞验证

mMCP-counter区分肿瘤类型和对免疫检查点阻断的应答

基于小鼠的临床前研究模型在药物临床试验中发挥着至关重要的作用。免疫治疗在多种肿瘤中显示出良好的抗肿瘤有效性,并且改变了多种肿瘤的治疗格局,那么mMCP-counter能否预测免疫治疗的应答呢。因此,作者将mMCP-counter应用于接受了CTLA-4和PD-L1联合阻断治疗的肾癌和间皮瘤小鼠模型,以研究mMCP-counter是否能够检测到在免疫检查点阻断中与治疗应答与否相关的肿瘤微环境组成的差异。结果表明mMCP-counter可以很好的区分不同肿瘤类型以及对免疫治疗应答与否的患者。通过mMCP-counter发现在两种肿瘤模型中对治疗应答的肿瘤具有更高水平的T细胞、CD8+ T细胞和单核细胞/巨噬细胞浸润。然而,对于不同的肿瘤类型,对治疗应答的肿瘤与非应答的肿瘤具有不同的微环境组成。

mMCP-counter区分肿瘤类型和对免疫检查点阻断的应答

mMCP-counter识别早期阿尔茨海默病发病的免疫和基质相关因素

最后,作者在AD动物模型中验证了mMCP-counter的表现性能。首先作者从CK-p25小鼠的海马体中获取了RNA-seq数据,随后将其标记为AD小鼠,并在神经退行性发生的2或6周时获取了相似的对照CK小鼠的数据。使用mMCP-counter,作者观察到样本的免疫和基质组成可以很好地将AD小鼠与CK小鼠区分开,表明AD影响了海马体的免疫浸润和血管生成。

mMCP-counter识别早期阿尔茨海默病发病的免疫和基质相关因素

mMCP-counter的实际应用

我们基于RNAseq数据看下mMCP-counter的具体使用方法。
首先我们安装mMCP-counter包并加载相关包

library(devtools)
install_github("cit-bioinfo/mMCP-counter")
library(mMCPcounter)
library(tidyverse)

读入数据并做预处理

#读入数据
expressionData <-read.table("Expression.csv",header = T,sep = ",",row.names =NULL)
#去除重复基因名
expressionData<-expressionData[!duplicated(expressionData$Name),]
#第一列转换为行名
rownames(expressionData) <- expressionData[,1]
expressionData <- expressionData[,-1]
#标准化+log2转化
#去除在所有样本里表达量都为零的基因
expressionData<-expressionData[rowSums(expressionData)>0,]
expressionData <- log(expressionData+1)

接下来是重点,估计免疫细胞浸润

Immune<- mMCPcounter.estimate(expressionData, features =c("Gene.Symbol","ENSEMBL.ID","Probes")[1])

通过以上步骤我们就得到了每个样本16种细胞的浸润水平。


16种免疫/间质细胞浸润水平

然后我们就可以进行相关的可视化了,这里我选择用热图可视化。

#绘制免疫细胞浸润热图
library(pheatmap)
#列注释
annol_col<-data.frame(Group=factor(rep(c("A","B"),each=3)))
row.names(annol_col)=colnames(Immune)
annol_color<-list(Group=c(A='#66C2A5',B="#FC8D62"))

pheatmap(Immune,
         scale = "row",
         cluster_cols = F,
         cluster_rows = F,
         show_colnames = F,
        annotation_col = annol_col,
        annotation_colors = annol_color,
        gaps_col = 3,
        border_color = "black",
        fontsize =10,
        cellwidth =20,
        cellheight = 15,
        color = colorRampPalette(colors = c("#66C2A5","white","#FC8D62"))(100))
上一篇下一篇

猜你喜欢

热点阅读