CommPath—通路介导的细胞间通讯链分析(三):通路介导的细胞间通讯链的鉴定

西瓜站长 生信益站 2023-06-25 08:00 发表于湖北
图片

CommPath 是一个 R 包,用于从单细胞转录组学推断和分析通路介导的细胞间通讯链的 R 工具包。

引言

CommPath 前 2 篇推文回顾:

上一篇《CommPath—通路介导的细胞间通讯链分析(二):筛选与激活通路相关的 LR 对》提到,通过通路过滤后,筛选了功能性的 LR 对,并打通了通路-LR 对-细胞簇间的桥梁。

对于特定的细胞簇,此处以 B 命名进行说明,CommPath 识别上游细胞簇 A(配体) 向 B(受体) 发送信号,下游细胞簇 C(受体) 从 B(配体) 接收信号。可以看出来 A—>B—>C 的信号传递,细胞簇 B 是中转站。那么问题来了,细胞簇 B 是如何打通 ABC 之间的通信链呢?

别急别急,站长这就为你讲述。

加载 R 包

library(CommPath)

# 依赖的包
# library(Matrix)
# library(circlize)
# library(ggplot2)
# library(dplyr)
# library(reshape2)
# library(GSVA) # (suggested)

通路介导的细胞间通讯链的鉴定

对于特定的细胞簇,此处命名为 B 以进行演示,CommPath 识别上游簇 A 向 B 发送信号,下游簇 C 从 B 接收信号,以及 B 中显著激活的通路以调解 ABC 通信链。更准确地说,通过上述 LR 和通路分析,CommPath 能够识别 A 和 B 之间的 LR 对、B 和 C 之间的 LR 对以及 B 中激活的通路。然后 CommPath 筛选 B 中的通路,其中涉及与 A 相互作用的受体和与 C 相互作用的配体。

# 研究特定簇的激活通路和相关受体
select.ident = 'Endothelial'
pdf('pathPlot.Endothelial.pdf',height=6,width=10)
pathPlot(object = tumor.obj,
    select.ident = select.ident,
    acti.path.dat = acti.path.filtered.dat)
dev.off()
图片

在上面的线图中:

  • Upstream cluster 和 Receptor 之间的线宽代表了上游 cluster 和 Endothelial cells 通过特定受体的整体相互作用强度;

  • 受体列中点的大小和颜色代表将内皮细胞中的受体表达与所有其他细胞中的受体表达进行差异表达检验的平均 log2FC-log10(P)

  • Pathway 注释列中条形的长度和颜色表示将内皮细胞中的通路分数与所有其他细胞中的通路分数进行比较的平均差异和形成差异激活检验的-log10(P)

# 为中心细胞簇(B)选择自定义簇(A)
# 并按名称选择感兴趣的通路
# 同时根据交互强度选择前 N 个受体
select.ident = 'Endothelial' # 中心细胞簇,就是上文提到的中转细胞簇B
pdf('pathPlot.Endothelial.selectpathway.pdf',height=4,width=10)
pathPlot(object = tumor.obj,
    select.ident = select.ident,
    # 上游细胞簇,可以理解为上文的细胞簇A
    up.ident = c("Treg","Myeloid","Endothelial","Fibroblast","Hepatocyte"),
    select.path = c("JAK-STAT signaling pathway""MAPK signaling pathway""Ras signaling pathway""PI3K-Akt signaling pathway""AMPK signaling pathway"),
    top.n.receptor = 5,
    acti.path.dat = acti.path.filtered.dat)
dev.off()
图片
# 研究特定簇(B)的激活通路、相关受体和配体
pdf('pathChainPlot.Endothelial.pdf',height=6,width=14)
pathChainPlot(object = tumor.obj,
    select.ident = select.ident,  # 中转细胞簇B
    # 上游细胞簇A
    up.ident = c("Treg","Myeloid","Endothelial","Fibroblast","Hepatocyte"),
    # 下游细胞簇C
    down.ident = c("B","Myeloid","Endothelial","Fibroblast","Hepatocyte"),
    # 细胞簇B相关的激活通路
    select.path = c("JAK-STAT signaling pathway""MAPK signaling pathway""Ras signaling pathway""PI3K-Akt signaling pathway""AMPK signaling pathway"),
    acti.path.dat = acti.path.filtered.dat)
dev.off()
图片
  • 上述线图的图例与 pathPlot 中的前文的图大体相同。

图解:这是一个完整的细胞 A—>B—>C 间的细胞通讯链,展示了中心或者中转细胞簇 B 激活通路的激活程度(右侧条形图)、以及通路中配体、受体的差异程度(第 2-4 列散点图和相关的连线),还有和上游细胞簇 A,和下游细胞簇 C 间互作强度(第 1,5 列散点图和相关的连线)。

两种情况下细胞间通讯的比较

CommPath 还提供有用的实用程序来比较两种情况(例如疾病和正常)之间的细胞间通信。

例如,官方使用 CommPath 来比较 HCC 肿瘤细胞和正常组织细胞之间的细胞间通讯,并且已经按照上述步骤为正常样本预先创建了 CommPath 对象,数据下载:

  • https://figshare.com/articles/dataset/HCC_tumor_normal_3k_RData/19090553
load("path_to_download/HCC.normal.3k.RData")

该数据集由 3 个变量组成:

  • normal.expr:来自正常组织的细胞的表达矩阵;
  • normal.label:来自正常组织的细胞身份标签;
  • normal.obj:从 normal.exprnormal.label 创建的 CommPath 对象,并由上述 CommPath 步骤处理。

要比较 2 个 CommPath 对象,需要首先确定 2 个对象中同一细胞簇之间的差异激活通

select.ident <- 'Endothelial'
diff.path.dat <- comparePath(object.1 = tumor.obj,
  object.2 = normal.obj,
  select.ident = select.ident)

# Estimating GSVA scores for 177 gene sets.
# Estimating ECDFs with Gaussian kernels
#   |================================================================| 100%

# Screening pathways for cluster Endothelial...
图片

然后我们比较差异激活的通路和由这些通路介导的细胞间通讯链。

# 比较 2 个 CommPath 对象中所选簇之间的差异激活通路和涉及的受体
pdf('pathPlot.compare.Endothelial.pdf',height=6,width=10)
pathPlot.compare(object.1 = tumor.obj,
    object.2 = normal.obj,
    select.ident = select.ident,
    up.ident = c("Treg","Myeloid","Endothelial","Fibroblast","Hepatocyte"),
    diff.path.dat = diff.path.dat)
dev.off()
图片

在上面的线图中,

  • 上游簇和受体之间的线宽代表上游簇与内皮细胞之间通过特定受体的整体相互作用强度,颜色表示相互作用强度上调(红色)或下调(蓝色):肿瘤组织(object.1)/ 正常组织(object.2);

  • 受体列中点的大小和颜色表示与肿瘤组织中所有其他细胞相比,内皮细胞中受体表达的平均log2FC-log10(P)

  • Pathway 注释列中条形的长度和颜色代表肿瘤组织中内皮细胞的通路评分与正常组织相比,的平均差异和-log10(P)

# 比较 2 个 CommPath 对象之间特定簇的通路介导的细胞间通讯链
pdf('pathChainPlot.compare.Endothelial.pdf',height=6,width=14)
pathChainPlot.compare(object.1 = tumor.obj, # tumor obj
    object.2 = normal.obj,  # normal obj
    select.ident = select.ident,  # 中转细胞簇B
    # 上游细胞簇A
    up.ident = c("Myeloid","Endothelial","Fibroblast","Hepatocyte"),
    # 下游细胞簇B
    down.ident = c("CD8 T","CD4 T","Treg","NK","Endothelial","Fibroblast","Hepatocyte"),
    # 细胞簇激活通路
    select.path = c("Gastric cancer""Relaxin signaling pathway""Axon guidance"),
    diff.path.dat = diff.path.dat)
dev.off()
图片
  • 上述线图的图例与pathPlot.compare中的前一个图大体相同。

图解:这是一个完整的细胞 A—>B—>C 的肿瘤和正常组织间的比较细胞通讯链,展示了中心或者中转细胞簇 B 激活通路中配体、受体的差异程度(图片 2-4 列)、和 normal 相比通路的激活变化(右侧条形图)、以及和上游细胞簇 A,和下游细胞簇 C 间互作强度的变化(与 nomal 相比,蓝色下调,红色上调,1 & 5 列)。


OK,CommPath专题的分享到此为止,希望能对您有所帮助。您的关注、点赞、在看、转发是对益站最大的鼓励和支持哈。

图片

联系站长

对本篇文章有疑问,可以在益站发消息留言,也欢迎各位童鞋来 QQ837738558 进行交流学习

图片
我们的企鹅群

微信扫一扫
关注该公众号