主要是利用了Seurat’里面AddModuleScore函数。
View(project_A33@meta.data)
?AddModuleScore
ILC1_feature <- list(c(
'IL7R',
'CCR6','KLRB1',
'IFNG','IFNGR1','IFNGR2'))
project_A33 <-
AddModuleScore(project_A33,ILC1_feature,nbin = 24,ctrl = 100,name = "ILC1_SCORE",
seed = 1
)
project_A33$ILC1_status <- ifelse(project_A33$ILC1_SCORE1 > median(project_A33$ILC1_SCORE1),'high','low')
#GPR34
p <- SpatialFeaturePlot(project_A33,features = 'GPR34')
m <- p$data
m$cellnames <- rownames(m)
project_A33@meta.data <- merge(project_A33@meta.data,m,by = 'cellnames')
project_A33$GPR34_level <- ifelse(project_A33$GPR34 > median(project_A33$GPR34),'high','low')
project_A33$ILC1_GPR34_LEVEL <- ''
project_A33$ILC1_GPR34_LEVEL[which(project_A33$ILC1_status == 'high' & project_A33$GPR34_level == 'high')] <- 'high-high'
project_A33$ILC1_GPR34_LEVEL[which(project_A33$ILC1_status == 'high' & project_A33$GPR34_level == 'low')] <- 'high-low'
project_A33$ILC1_GPR34_LEVEL[which(project_A33$ILC1_status == 'low' & project_A33$GPR34_level == 'high')] <- 'low-high'
project_A33$ILC1_GPR34_LEVEL[which(project_A33$ILC1_status == 'low' & project_A33$GPR34_level == 'low')] <- 'low-low'
project_A33$ILC1_GPR34_LEVEL <- factor(project_A33$ILC1_GPR34_LEVEL)
Idents(project_A33) <- 'area'
SpatialDimPlot(project_A33,cols = list('Tumor' = '#e6194b',
'Border' = '#3cb44b',
'Stroma' = '#ffe119'),image.alpha = 0)
Idents(project_A33) <- 'ILC1_GPR34_LEVEL'
SpatialDimPlot(project_A33
,cols = list('high-high' = '#e6194b',
'high-low' = '#3cb44b',
'low-high' = '#ffe119',
'low-low' = '#4363d8'),pt.size.factor = 1.7
,image.alpha = 0 )
#样本中都高的spot在tumor中的占比
length(which(project_A33$area == 'Tumor'& project_A33$ILC1_GPR34_LEVEL =='high-high')) / length(which(project_A33$area == 'Tumor'))
#样本中都高的spot在非tumor中的占比
length(which(project_A33$area != 'Tumor'& project_A33$ILC1_GPR34_LEVEL =='high-high')) / length(which(project_A33$area != 'Tumor'))
出图效果
最后通过HIGH-HIGH的spot所占cluster/区域的百分比,来统计比较不同区域之间某种特征细胞占比分布。