前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >从单细胞数据中捕捉巨噬细胞的极化信号

从单细胞数据中捕捉巨噬细胞的极化信号

作者头像
生信菜鸟团
发布2025-03-06 21:40:07
发布2025-03-06 21:40:07
8600
代码可运行
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团
运行总次数:0
代码可运行

巨噬细胞极化(Macrophage Polarization)是指巨噬细胞在不同微环境信号刺激下,分化为不同功能表型的过程。通常,巨噬细胞可以分为两种主要的极化表型:

  1. M1型巨噬细胞(经典激活型巨噬细胞):由IFN-γ、LPS等信号诱导,具有促炎、抗微生物和抗肿瘤的功能。
  2. M2型巨噬细胞(替代激活型巨噬细胞):由IL-4、IL-13、IL-10等信号诱导,具有抗炎、组织修复和促肿瘤的功能。

目前的单细胞测序背景下,特别是针对不同类型的TME,研究者更倾向于将巨噬细胞分类为更精细的亚群,这有利于后续的轨迹分析。

但巨噬细胞极化是巨噬细胞共有的一个表型,我们如何对10多个macro亚型进行极化的评估呢?

从这样的散点图,我们就更能更直观地观察到macro亚群向M1或M2极化的趋势。

如何实现呢?首先需要一个做好细胞注释的seurat对象,然后:

定义基因模块

代码语言:javascript
代码运行次数:0
复制
# M1 巨噬细胞基因模块
m1_genes <- c("CXCL9", "CCL19", "CXCL10", "IDO1", "EBI3", "TNFAIP6", "CCR7", "LAMP3", "CCL5", "CD40", "IRF8", "CD38", "CCL4", "APOL3", "CXCL11", "ADAMDEC1", "HCK", "BCL2A1", "RSAD2", "CYP27B1", "KYNU", "SIGLEC1", "SLAMF1", "SLC2A6", "IF144L", "SAMSN1", "LILRB2", "TLR2", "CCL8", "APOBEC3A", "AQP9", "C3AR1", "HLA-DQA1", "MNDA", "IL2RA", "SLC15A3", "CD80", "ADGRE1", "CHI3L1", "RASSF4", "IL4R", "AIM2", "PLA1A", "MMP9", "TLR8", "HESX1", "SOCS1", "LST1", "NOD2", "IL7R", "FLVCR2", "BIRC3", "PTGIR", "CHI3L2", "PLA2G7", "GPR183", "AIF1", "CD4", "HLA-DOB", "MSC", "ADGRE2", "CCR5", "CLEC2D", "INFRSF4", "CD86", "SPIB", "LAG3", "DHX58", "CLIC2", "ACHE", "CCL18", "LY86", "CCL14", "TNIP3", "Clorf54", "MMP25", "ACP5", "APOBEC3G")

# M2 巨噬细胞基因模块
m2_genes <- c("MMP9", "MS4A6A", "CCL18", "AIF1", "NCF2", "CD4", "ACP5", "CLEC4A", "CCL13", "LY86", "SLC15A3", "CLEC10A", "CCL23", "HLA-DQA1", "RNASE6", "ADAMDEC1", "HCK", "NPL", "TREM2", "IRF8", "SIGLEC1", "CCL4", "SAMSN1", "CLEC7A", "TLR2", "P2RY13", "CCL8", "CD86", "CD180", "CD68", "CD209", "C3AR1", "GPR183", "CCL14", "DPEP2", "FPR3", "CD37", "LST1", "CLIC2", "HRH1", "EGR2", "CHI3L1", "Clorf54", "CFP", "C5AR1", "MNDA", "PTGER2", "CD300A", "PIK3IP1", "IGSF6", "RENBP", "PLA2G7", "FCGR2B", "SLAMF8", "RASGRP3", "QPCT", "LILRB2", "ATP8B4", "PTGIR", "FRMD4A", "TLR8", "KYNU", "CHST15")

巨噬细胞的基因集来自:https://ars.els-cdn.com/content/image/1-s2.0-S0092867421000106-mmc5.xlsx

计算模块得分

代码语言:javascript
代码运行次数:0
复制
macro_cells <- AddModuleScore(macro_cells, features = list(m1_genes), name = "M1_score")
macro_cells <- AddModuleScore(macro_cells, features = list(m2_genes), name = "M2_score")

可视化

代码语言:javascript
代码运行次数:0
复制
# 定义颜色映射
library(paletteer)
paletteer_c("scico::berlin", 8)

celltype_colors <- c(
  "Macro-CCL3L1" = "#9EB0FFFF",
  "Macro-CXCL9" = "#4799C9FF",
  "Macro-FTH1" = "#225771FF",
  "Macro-IL1B" = "#00FF7FFF",
  "Macro-ISG15" = "#FAEFD1FF",
  "Macro-MT1X" = "#68240FFF",
  "Macro-RNASE1" = "#B36556FF",
  "Macro-SELENOP" = "#FFACACFF"
)

代码语言:javascript
代码运行次数:0
复制
# 加载 ggplot2 包
library(ggplot2)

# 创建数据框
plot_data <- data.frame(
  M1_score = macro_cells$M1_score1,
  M2_score = macro_cells$M2_score1,
  celltype = macro_cells$celltype
)

代码语言:javascript
代码运行次数:0
复制
# 使用 ggplot2 绘制散点图
p <- ggplot(plot_data, aes(x = M1_score, y = M2_score, color = celltype)) +
  geom_point(size = 1.5, alpha = 0.7) +  # 设置点的大小和透明度
  scale_color_manual(values = celltype_colors) +  # 使用自定义颜色映射
  labs(
    x = "M1 Score",  # x 轴标签
    y = "M2 Score",  # y 轴标签
    title = "M1 vs M2 Scores by Cell Type",  # 图表标题
    color = "Cell Type"  # 图例标题
  ) +
  theme_minimal() +  # 使用简洁的主题
  theme(
    plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),  # 标题居中加粗
    legend.position = "right",  # 图例放在右侧
    legend.text = element_text(size = 10),  # 图例文字大小
    panel.grid.major = element_blank(),  # 删除主要网格线
    panel.grid.minor = element_blank(),  # 删除次要网格线
    panel.border = element_rect(color = "black", fill = NA, size = 1),  # 添加边框
    axis.line = element_line(color = "black", size = 0.5)  # 添加坐标轴线
  ) +
  guides(color = guide_legend(override.aes = list(size = 4))) +  # 调整图例中点的大小
  geom_hline(yintercept = 0, color = "black", linetype = "dashed", size = 0.5) +  # 添加 y=0 的水平线
  geom_vline(xintercept = 0, color = "black", linetype = "dashed", size = 0.5) +  # 添加 x=0 的垂直线
  coord_cartesian(xlim = c(min(plot_data$M1_score), max(plot_data$M1_score)),  # 设置 x 轴范围
                  ylim = c(min(plot_data$M2_score), max(plot_data$M2_score)))  # 设置 y 轴范围
p
ggsave(p,filename = "Outplot/Step3.1.macro_Polarization.pdf",
       width = 11, height = 8)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义基因模块
  • 计算模块得分
  • 可视化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档