细胞通讯分析
大家好,我是晨曦,不知道大家对于上一篇推文的学习有没有一些收获呢,今天我们继续学习单细胞转录组第二个高阶分析——细胞通讯分析,相比于细胞轨迹分析,细胞通讯分析可以选择的工具就比较多了,这里我们也会简单的介绍几种常用的。
其实对于细胞通讯分析,我们首先需要知道一些基本的背景知识,而要了解背景知识,读上一篇高质量的综述,应该是最为快捷的途径了
那么就让晨曦引导大家开始今天的学习之旅吧~
首先学习细胞通讯分析,我们需要了解一下基本的背景知识,而这篇发表在Nature上的综述,成为了我们学习背景知识的最好途径
晨曦解读
这篇文献的内容中有很多关于CellOhoneDB的算法以及相关计算的内容,个人感觉对于我们学习的提升不是十分的巨大,在这里我们需要掌握一个基本知识。
不同细胞与细胞之间的相互作用可以协调生物的发育,而细胞与细胞之间的相互作用是通过介质来传递信号的,这些介质可以是离子、蛋白、外泌体等等。
即细胞通讯就是指一个细胞通过介质传递一个信号给另一个细胞,然后另一个细胞接受信号,并产生相应表达的过程,而配体-受体复合物配体-受体复合物介导的细胞-细胞通讯对协调发育、分化和炎症等多种生物学过程具有至关重要的作用。
复杂的细胞外反应始于配体与其同源受体的结合和特定细胞信号通路的激活,定位这些配体-受体相互作用是理解细胞行为和对邻近细胞反应的基础。随着单细胞RNA测序的日益流行,RNA测序数据量的指数增长,使得测量多种细胞类型中配体和受体的表达,并系统地解码细胞间通信网络,最终解释组织在稳态中的功能及其在疾病中的变化成为可能。
这里就有一个需要注意,单细胞转录组分析的细胞通讯,仅限于蛋白质配体-受体复合物介导的细胞通讯,也可以这么说,scRNA-seq中的细胞通讯分析是通过比较不同样品组的细胞在各细胞类型之间的配体与受体基因表达差异,所以如果介质是离子或者外泌体,那么细胞通讯分析就不是十分的适用。
这个分析的基础是基因表达数据和配体-受体数据库,其实也很好理解,如果我们测得转录组数据表达细胞A和细胞B分别表达基因A和基因B,然后我们通过配体-受体数据库查询得到基因A和基因B是配体和受体的关系,那么我们就可以推断细胞A和细胞B之间必然存在联系,且这个联系是通过基因A和基因B来实现的。
当然说了这么多还是比较笼统,接下来根据网络上的一些相关教程,我们也可以总结出来,现在主流的细胞通讯工具,我们通过实际演示可能会让大家掌握的更加顺利!
细胞通讯目前主流工具
1. CellPhoneDB——权威(人家都发了Nature了,拿什么比啊~)、提供网页版和Python版
2. iTALK——可视化好看、提供R语言版本
3. celltalker——提供R语言版本
4. CellChat
5. NicheNet
晨曦解读
令人遗憾的是,因为scRNA-seq数据集的大小,CellPhoneDB网站无法在线分析scRNA-seq,必须要使用Python
既然工具不允许我们只好更换一个可以基于R的细胞通讯工具
也把学习链接放在这里,方便感兴趣的同学进行后续进一步的学习
CellPhoneDB - Welcome
接下来我们开始学习iTALK,毕竟人靠衣装,先学一个可视化最好看的
#准备工作#因为我们最常用的就是Seurat来分析单细胞,所以我们这里用Seurat数据为例library(iTALK)library(Seurat)library(Matrix)library(dplyr)#读取数据pbmc <- readRDS(file = "scRNA_final.rds")#这里我们需要探究iTALK的输入数据是什么形式,所以这里我们找到示例数据求证data<-read.table('example_data.txt',sep='\t',header=T,stringsAsFactors = F)#iTALK要求的矩阵为观测为细胞,变量基因,其实是我们常规表达矩阵转置后的结果
晨曦解读
因为这个R包并没有写一个完整的流程文档,只是在github上有一个代码和示例数据,所以这里我们是对示例数据进行的探索得到的iTALK的数据格式
#从Seurat中提取原始数据并转置iTalk_data <- as.data.frame(t(pbmc@assays$RNA@counts))#这样我们就获得了输入数据,观测为细胞ID,变量为Gene ID#iTALK还要求有细胞亚群信息,也就是分组信息,这里提取Seurat_cluster或者active.ident都可以iTalk_data$cell_type <- pbmc@active.ident#iTALK还要求提供分组信息(这一步是对应多样本而言,即使不是多样本,也得有这一步,否则会报错)pbmc[["group"]] <- pbmc$orig.ident#这里不是多样本所以我创建了一个单样本,多样本直接提取赋值即可iTalk_data$compare_group <- pbmc@meta.data$group
晨曦解读
不知道同学们有没有这样的疑问,多样本提取原始数据,如何去除批次效应,因为晨曦看后续的代码并没有去除批次效应的过程,所以也是上网查询相关答案,很显然下面这位外国友人也有了同样的疑惑
作者并没有对此做出回应,但是网上大多教程都没有处理批次效应,晨曦在这里保留观点,先选择了单样本,但是同学们如果后续多样本分析,也可以选择性忽略这点
#检查数据是否导入成功unique(iTalk_data$cell_type)unique(iTalk_data$compare_group)
晨曦解读
数据处理完毕
#先定义颜色,示例代码后期会有颜色设置,但是需要确定细胞类型的数量,这里我们先定义一堆,然后后期用简单的函数调用解开#这里推荐与ColorSpace连用mycolors <- c('#43A926', '#00A254', '#00987C', '#008C9E', '#006DBC', '#4A6A3D', '#E0F8D4', '#004E72', '#CCF6FF', '#527C96')#find top 50 percent highly expressed geneshighly_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(mycolors[1:length(cell_types)], names=cell_types)#find significant ligand-receptor pairs and do the plottingiTalk_res <- NULLfor(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,]
晨曦解读
探索一下
datatype参数如果是多组比较且你想知道特定两组之间的调控,就需要求出两组DEGs,且这里的参数要设置为DEG,这里我们使用平均表达量计算
iTALK软件是使用的基因的平均表达量进行筛选,比如先筛选基因在每个亚群中的平均表达量,平均表达量前百分之多少的才保留,这里默认的为50%的基因保留。
作者将细胞受体配体分成了四个种类,分别为growth factor,cytokine,other,checkpoint,后续结果也将分成了四类进行分析展示。
#可视化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])
晨曦解读
只要前面的输入数据处理好,后面的代码基本上是不用大规模修改的
这样的话iTALK进行细胞通讯就给大家介绍到这里
关学习链接:iTALK/example_code.r at master · Coolgenome/iTALK · GitHub
参考文献:iTALK: an R Package to Characterize and Illustrate Intercellular Communication
我在百度云内放了示例代码以及打包好的iTALK官网学习资料,大家可以评论区留言获取
那么就这样,下期再给大家介绍另一种细胞通讯的分析方法
我是晨曦,我们下次再见
Ps:回复“细胞通讯”即可以获得全部示例数据和代码哦~
考虑到很多小伙伴可能没有留存自己单细胞标准流程的数据,获取的代码为直接使用SeuratData包内置的scRNA数据并且简化了代码流程,方便各位小伙伴进行copy
晨曦单细胞文献阅读系列

非肿瘤单细胞分析模板已到位!眼馋单细胞的小伙伴快来看!手把手教你产出第一篇单细胞SCI!

晨曦碎碎念系列传送门(未完待续...)
晨曦单细胞笔记系列传送门
晨曦从零开始学画图系列传送门
晨曦单细胞数据库系列传送门

END

撰文丨晨   曦
排版丨四金兄
主编丨小雪球
欢迎大家关注解螺旋生信频道-挑圈联靠公号~
继续阅读
阅读原文