巨噬细胞极化(Macrophage Polarization)是指巨噬细胞在不同微环境信号刺激下,分化为不同功能表型的过程。通常,巨噬细胞可以分为两种主要的极化表型:
目前的单细胞测序背景下,特别是针对不同类型的TME,研究者更倾向于将巨噬细胞分类为更精细的亚群,这有利于后续的轨迹分析。
但巨噬细胞极化是巨噬细胞共有的一个表型,我们如何对10多个macro亚型进行极化的评估呢?
从这样的散点图,我们就更能更直观地观察到macro亚群向M1或M2极化的趋势。
如何实现呢?首先需要一个做好细胞注释的seurat对象,然后:
# 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
macro_cells <- AddModuleScore(macro_cells, features = list(m1_genes), name = "M1_score")
macro_cells <- AddModuleScore(macro_cells, features = list(m2_genes), name = "M2_score")
# 定义颜色映射
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"
)
# 加载 ggplot2 包
library(ggplot2)
# 创建数据框
plot_data <- data.frame(
M1_score = macro_cells$M1_score1,
M2_score = macro_cells$M2_score1,
celltype = macro_cells$celltype
)
# 使用 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)