TME 已成为肿瘤进展、免疫逃避和抗肿瘤治疗耐药机制出现的关键调节剂。TME 包括多种细胞类型,例如肿瘤细胞、异质免疫细胞和非免疫基质成分。肿瘤细胞与这些非肿瘤成分动态地协调和相互作用,它们之间的串扰被认为提供了可以指导和促进肿瘤细胞生长和迁移的关键信号。通过这种细胞间通讯,肿瘤细胞可以引起其他 TME 细胞(例如肿瘤相关成纤维细胞、巨噬细胞和 T 细胞)的深刻表型变化,并对 TME 进行重新编程,以逃避免疫监视以促进生存。因此,更好地理解细胞间通讯信号可能有助于确定新的调节治疗策略,以获得更好的患者优势
1. iTALK
iTALK,旨在分析和可视化配体-受体介导的细胞间的交叉信号,其中内置了2,648个非冗余且已知相互作用的配体-受体对,根据配体的主要功能将其进一步分为4类:细胞因子/趋化因子、免疫检查点基因、生长因子、其他,后续结果也将分成了四类进行分析展示。
原理是基于受配体平均表达量进行筛选,比如先筛选基因在每个亚群中的平均表达量,平均表达量前百分之多少的才保留(默认的为50%的基因保留),输出可以以多种格式可视化,包括网络图、circos 图、误差条图,并且数值也可以导出为表格格式:
1)网络图:基于"igraph"包,通过分别标记前向(从信号细胞到靶细胞)和后向信号,显示网络中每两种不同细胞类型之间检测到的配体-受体相互作用的数量。还测量每种细胞类型内的自分泌信号。网络图的节点按细胞类型进行颜色编码,边缘按比例缩放并标记为信号传导和靶细胞之间相互作用的数量
2)circos 图:基于"circlize"包,显示每个配体-受体基因对的名称并显示每个相互作用的方向。可以选择要在 circos 图中显示的细胞类型、基因类别和数字交互作用。circos 图的外环显示细胞类型,circos 图的内环显示每个相互作用的配体-受体对的详细信息。两者均采用颜色编码。circos图中的线条和箭头被缩放以分别指示配体和受体的相对信号强度,并且不同颜色和类型的线条用于说明各种类型的可能改变
![](https://img.haomeiwen.com/i28812576/589a46fc11e5b01f.jpg)
1.1 数据读入
# 安装并加载所需的R包
# if(!require(devtools)) install.packages("devtools");
# devtools::install_github("Coolgenome/iTALK", build_vignettes = TRUE)
library(iTALK)
library(Seurat)
library(Matrix)
library(dplyr)
# 构建数据、设置细胞及分组,设置颜色,寻找高变基因
iTALK_data <- as.data.frame(t(scRNA_harmony@assays$RNA@counts))
iTALK_data$cell_type <- scRNA_harmony@meta.data$celltype
iTALK_data$compare_group <- scRNA_harmony5@meta.data$Group
unique(iTALK_data$cell_type)
## [1] plasma Macrophage Naive B CD8 TEM Monocytes memory B
## Levels: plasma Macrophage Monocytes memory B CD8 TEM Naive B
unique(iTALK_data$compare_group)
## [1] Normal Mild Severe
## Levels: Normal Mild Severe
1.2 配体-受体概览
my10colors <-c('#E5D2DD', '#53A85F', '#F1BB72', '#F3B1A0', '#D6E7A3', '#57C3F3', '#476D87', '#E95C59', '#E59CC4', '#AB3282')
# 找TOP 50(%)高表达的基因
highly_exprs_genes <- rawParse(iTalk_data, top_genes=50, stats="mean")
# 从高表达基因中找到配体-受体对
comm_list<-c('growth factor','other','cytokine','checkpoint')
cell_types <- unique(iTalk_data$cell_type)
cell_col <- structure(my10colors[1:length(cell_types)], names=cell_types)
1.3 分析,并对每种类型的互作进行可视化
par(mfrow=c(1,2))
res<-NULL
for(comm_type in comm_list){
res_cat <- FindLR(highly_exprs_genes_50, datatype = 'mean count', comm_type = comm_type)
res_cat <- res_cat[order(res_cat$cell_from_mean_exprs*res_cat$cell_to_mean_exprs, decreasing = T),]
# plot by ligand category
# overall network plot
NetView(res_cat,col=cell_col,vertex.label.cex=1,arrow.width=1,edge.max.width=5)
# top 20 ligand-receptor pairs
LRPlot(res_cat[1:20,],datatype='mean count',cell_col=cell_col,link.arr.lwd=res_cat$cell_from_mean_exprs[1:20],link.arr.width=res_cat$cell_to_mean_exprs[1:20])
title(comm_type)
res<-rbind(res,res_cat)
}
![](https://img.haomeiwen.com/i28812576/db2b7219e6bbb9e2.png)
1.4 可视化一下整体的互作效果
res <- res[order(res$cell_from_mean_exprs*res$cell_to_mean_exprs,decreasing=T),]
NetView(res,col = cell_col, vertex.label.cex = 1, arrow.width = 1, edge.max.width = 5)
LRPlot(res[1:20,], datatype = 'mean count', link.arr.lwd = res$cell_from_mean_exprs[1:20], link.arr.width = res$cell_to_mean_exprs[1:20])
![](https://img.haomeiwen.com/i28812576/6473fa50e1d109fd.png)
2. celltalker
celltalker,通过寻找细胞群内和细胞群之间已知的配体和受体对的表达来评估细胞之间的通讯。可以使用任何一组已知的配体和受体。 Ramilowski等人 (Nature Communications,2015年)的出色工作为细胞通讯的分析准备了一套配受体。可使用此配体和受体列表作为起点,再选择自己的已知配体和受体列表。
cell talker 主要步骤如下:
1)使用标准的Seurat工作流程对数据进行聚类
2)使用Celltalker建立样品组中一致表达的配体和受体的列表
3)确定与一组的假定配体/受体相互作用
4)评估组之间唯一表达的配体/受体对
5)识别和可视化一组中独特的配体/受体对
2.1 数据读入
# 安装并加载所需的R包
# if(!require(devtools)) install.packages("devtools");
# devtools::install_github("arc85/celltalker")
library(celltalker)
library(Seurat)
library(dplyr)
library(tidyverse)
library(magrittr)
head(scRNA_harmony) # 需包含后续所需分组(这里是细胞类型)
## orig.ident nCount_RNA nFeature_RNA percent.mt percent.HB RNA_snn_res.0.8 seurat_clusters RNA_snn_res.0.6 celltype Group
## ACAAGCTTACGGAGGTG N11 500 244 0.600000 0 4 5 5 plasma Normal
## ATAGGCTGCTGCACGCT N11 500 258 1.200000 0 4 11 11 plasma Normal
## ATTCAGGGCTATTCACG N11 500 242 1.200000 0 0 0 0 plasma Normal
## CTTTCAAATGCATGAAT N11 500 272 1.600000 0 0 0 0 plasma Normal
## GGATGTTTACACGATAC N11 500 261 3.600000 0 4 11 11 plasma Normal
## TCCTCCCGCTTTGCAGT N11 500 256 1.400000 0 0 0 0 plasma Normal
## TCCTCTTATGGATATAC N11 500 260 1.400000 0 4 5 5 plasma Normal
## AAACGAAGCTGAATTGA N11 501 259 1.397206 0 0 0 0 plasma Normal
## ATTCCATATGGTAGCCG N11 501 260 1.996008 0 4 5 5 plasma Normal
## CACTGAACGACTTGAAC N11 501 281 1.397206 0 0 5 5 plasma Normal
2.2 分析及可视化
# 运行 celltalker
combin_inter <- celltalk(input_object = scRNA_harmony,
metadata_grouping = "celltype",
ligand_receptor_pairs = ramilowski_pairs,
number_cells_required = 100,
min_expression = 1000,
max_expression = 20000,
scramble_times = 10)
# 确定具有统计显着性的最重要交互作用
top_stats <- combin_inter %>%
mutate(fdr = p.adjust(p_val, method = "fdr")) %>%
filter(fdr < 0.05) %>%
group_by(cell_type1) %>%
top_n(3, interact_ratio) %>%
ungroup()
#配色后绘制圈图
library(RColorBrewer)
n_colors <- max(6, length(unique(scRNA_harmony$celltype))) # 依据细胞类型最少需要 6 种颜色
palette <- rep(brewer.pal(n = 8, name = "Set2"), length.out = n_colors) # 重复使用 Set2 调色板,使用brewer.pal函数从Set2调色板中选择8种颜色,并将其重复使用以满足所需的颜色数量
colors_use <- palette[1:n_colors] # 选择需要的颜色数量
circos_plot(ligand_receptor_frame = top_stats, #顶级互作框
cell_group_colors = colors_use,
ligand_color = "blue",
receptor_color = "red",
cex_outer = 0.7,
cex_inner = 0.5)
![](https://img.haomeiwen.com/i28812576/eaa2449913edc5f5.png)
网友评论