【文献重复】如何证明肿瘤相关巨噬细胞是两面派?
在上次的推文中,我们介绍了肿瘤相关巨噬细胞呈现出一种M1和M2亚型的混合状态,有小伙伴要问了,这个结论真的是一种普遍规律吗?会不会是一种偶然现象?
的确,如果你是做基础研究的,尤其是做巨噬细胞研究的,仅仅靠一份数据很难相信这样一种过于颠覆传统的认知。可能你已经做了好几年肿瘤相关巨噬细胞研究了,可以接受M1和M2的极化模型,也可以接受M1和M2之间有多种细胞类型的异质化模型,但一时间还无法接受M1和M2共存在同一个细胞上的模型。因为从潜意识里我们认为M1和M2之间的关系类似于水和火,常言道水火不容啊,怎么可能共存呢?
因此,我们找到了一篇发表在cell上的乳腺癌单细胞文献,他也得出来了这个结论:M1和M2是可以共存的。
俗话说:耳听为虚,眼见为实。因此,我们尝试使用自己的数据来重复一下这个结论。
此处所用的数据是GSE103322,是一份头颈部鳞状细胞癌的数据,具体可见上次的介绍:单细胞转录组分析肿瘤异质性
options(stringsAsFactors=FALSE)
library(scater)
library(scran)
library(stringr)
library(reshape2)
library(plyr)
####################################################################
#读取数据,简单整理
raw_tpm_file <- "./HNSCC_all_data.txt"
tmp_data <- read.table(raw_tpm_file,head=T,sep="\t",row.names=1,quote="\'",stringsAsFactors=F)
tumor <- sapply(str_split(colnames(tmp_data),"_"),function(x) x[1])
tumor <- str_sub(tumor,-2,-1)
tumor <- paste0("MEEI",str_replace(tumor,"C",""))
table(tumor)
cell_type <- as.character(tmp_data[5,])
malignant <- as.character(tmp_data[3,]) == "1"
cell_type[malignant] <- "Malignant"
cell_type[cell_type==0] <- "Unknow"
table(cell_type)
cell_type[cell_type =="-Fibroblast"]<-"Fibroblast"
table(cell_type)
col_data <- data.frame(tumor=tumor,cellType=cell_type,
lymph=as.integer(tmp_data[2,]),
row.names=colnames(tmp_data))
#移除注释,构建表达矩阵
remove_rows <- c(1,2,3,4,5)
all_data <- tmp_data[-remove_rows,]
####################################################################
#过滤细胞数较少的样本和细胞类型
all_data <- data.matrix(all_data)
all_data[1:6,1:6]
ncol(all_data)
nrow(all_data)
all_data=all_data[apply(all_data,1, function(x) sum(x>0) > ncol(all_data)/2),]
nrow(all_data)
sce <- SingleCellExperiment(
assays = list(exprs=all_data),
colData = col_data
)
table(sce$tumor)
sce<-sce[,!sce$cellType == "Unknow"]
nontumor_stats <- table(sce$cellType)
nontumor_select <- names(nontumor_stats)[nontumor_stats>=50]
selected_nontumor_sce <- sce[,sce$cellType %in% nontumor_select]
tumor_sample_stats <- table(sce$tumor)
tumor_sample_select <- names(tumor_sample_stats)[tumor_sample_stats>=200]
selected_sce <- sce[,sce$tumor %in% tumor_sample_select]
table(selected_sce$tumor)
table(selected_sce$cellType)
selected_tumor_sce <- selected_sce[,selected_sce$cellType=="Malignant"]
selected_nontumor_sce <- selected_sce[,selected_sce$cellType!="Malignant"]
####################################################################
#选择巨噬细胞
table(selected_sce$cellType)
Macrophage <- selected_sce[,selected_sce$cellType == "Macrophage"]
dim(assay(Macrophage))
#以下基因纯手工整理。
M1_marker<-c("IL12","IL23","IL12","TNF","IL6","CD86","MHCII","IL1B","MARCO","iNOS",
"IL12","CD64","CD80","CXCR10","IL23","CXCL9","CXCL10","CXCL11",
"CD86","IL1A","IL1B","IL6","TNFa","MHCII","CCL5","IRF5","IRF1","CD40",
"IDO1","KYNU","CCR7","CD45","CD68","CD115","HLA-DR","CD205","CD14")
M2_marker<-c("ARG1","ARG2","IL10","CD32","CD163","CD23","CD200R1","PD-L2","PDL1",
"MARCO","CSF1R","CD206","IL1RN","IL1R2","IL4R","CCL4","CCL13","CCL20",
"CCL17","CCL18","CCL22","CCL24","LYVE1","VEGFA","VEGFB","VEGFC","VEGFD",
"EGF","CTSA","CTSB","CSTC","CTSD","TGFB1","TGFB2","TGFB3","MMP14","MMP19",
"MMP9","CLEC7A","WNT7B","FASL","TNFSF12","TNFSF8","CD276","VTCN1","MSR1",
"FN1","IRF4","CD45","CD68","CD115","HLA-DR","CD205","CD14")
#只剩4个了,可见基因常用名和通用名经常不一致。
M1_marker<-M1_marker[M1_marker%in%rownames(Macrophage)]
M1_marker
#只剩7个基因了。
M2_marker<-M2_marker[M2_marker%in%rownames(Macrophage)]
M2_marker
M1_sce<-Macrophage[M1_marker,]
M1_assay<-assay(M1_sce)
M1_expression<-colSums(M1_assay)/4
M2_sce<-Macrophage[M2_marker,]
M2_assay<-assay(M2_sce)
M2_expression<-colSums(M2_assay)/7
result<-as.data.frame(cbind(M1_expression,M2_expression))
cor.test(result[,1],result[,2])
library(ggpubr)
p<-ggscatter(result,x="M1_expression", y="M2_expression",
add = "reg.line", conf.int = T,cor.coef = T)
ggsave("M1_M2_expression.pdf",p,width=4,height=3)
从以上结果来看,p值小于0.05,确实有统计学意义,然而相关系数不大,考虑我们的标志物过滤太多,或者我们使用的细胞过少,至少M1与M2应该是正相关,而非负相关关系。因此,我们大致还原了文献中的结论。若想要更加精确的结果,可以尝试换一个巨噬细胞数量较多的数据集或者将大多数基因名换成HUGO注释哦。