常用的细胞通讯软件:
- CellphoneDB:是公开的人工校正的,储存受体、配体以及两种相互作用的数据库。此外,还考虑了结构组成,能够描述异构复合物。(配体-受体+多聚体)
- iTALK:通过平均表达量方式,筛选高表达的胚体和受体,根据结果作圈图。(配体-受体)
- CellChat:CellChat将细胞的基因表达数据作为输入,并结合配体受体及其辅助因子的相互作用来模拟细胞间通讯。(配体-受体+多聚体+辅因子)
- NicheNet // NicheNet多样本分析 // 目标基因的配体和靶基因活性预测:通过将相互作用细胞的表达数据与信号和基因调控网络的先验知识相结合来预测相互作用细胞之间的配体-靶标联系的方法。( 配体-受体+信号通路)
附:NicheNet使用的常见问题汇总其它细胞互作软件还包括
Celltalker
,SingleCellSignalR
,scTensor
和SoptSC
(这几个也是基于配体-受体相互作用)
iTALK软件是使用的基因的平均表达量进行筛选,比如先筛选基因在每个亚群中的平均表达量,平均表达量前百分之多少的才保留,这里默认的为50%的基因保留。
作者将细胞受体配体分成了四个种类,分别为growth factor,cytokine,other,checkpoint,后续结果也将分成了四类进行分析展示。
载入注释好的数据,读入iTALK(示例数据集见monocle2)
pbmc <- readRDS("pbmc.rds")
library(iTALK)
library(Seurat)
library(dplyr)
library(Matrix)
iTALK_data <- as.data.frame(t(pbmc@assays$RNA@counts))
给pbmc加入两列数据:cell.types, group
pbmc[['cell_types']] <- pbmc@active.ident
pbmc[["group"]] <- pbmc$orig.ident #该数据没有分组
将pbmc的cell.type和group两列数据加入到iTALK_data中
iTALK_data$cell_type <- pbmc@meta.data$cell.types
iTALK_data$compare_group <- pbmc@meta.data$group
检查数据是否导入成功
unique(iTALK_data$cell_type)
unique(iTALK_data$compare_group)
绘图
my10colors <- my36colors <- c('#E5D2DD', '#53A85F', '#F1BB72', '#F3B1A0', '#D6E7A3', '#57C3F3', '#476D87', '#E95C59', '#E59CC4', '#AB3282')
head(my10colors)
highly_exprs_genes <- rawParse(iTALK_data,top_genes = 50,stats = "mean")
head(highly_exprs_genes,5)
# 通讯类型
comm_list <- c('growth factor','other','cytokine','checkpoint')
cell_types <- unique(iTALK_data$cell_type)
head(cell_types,5)
cell_col <- structure(my10colors[1:length(cell_types)],names=cell_types)
head(cell_col,5)
iTalk_res <- NULL
for (comm_type in comm_list){
res_cat <- FindLR(highly_exprs_genes,datatype = 'mean count', comm_type = comm_type)
iTalk_res <- rbind(iTalk_res, res_cat)
}
iTalk_res <- iTalk_res[order(iTalk_res$cell_from_mean_exprs*iTalk_res$cell_to_mean_exprs,decreasing=T),][1:20,]
NetView(iTalk_res, col = cell_col,vertex.label.cex = 1, arrow.width = 1, edge.max.width = 5)
LRPlot(iTalk_res[1:20,],datatype = "mean count", cell_col = cell_col,link.arr.lwd =
iTalk_res$cell_from_mean_exprs[1:20],link.arr.width = iTalk_res$cell_to_mean_exprs[1:20])