自从前面分享了一篇关于中性粒细胞的文章后:中性粒细胞的质量值到底是多低呢?,这篇帖子我虽然只是留下了对这个细胞亚群的第一印象:细胞中的基因表达数,UMI count数相比其他亚群都低得多,但是总在脑海里如幽灵般时而浮现,为什么呢?后面万能的网友在留言区告诉我,是因为中性粒细胞的半衰期短(细胞死得快),短到什么程度呢?你去查一下肯定吓一跳!
今天分享的一篇文章,本来是看看肾脏组织中的各种上皮细胞的分类,但是注释的时候却有个小插曲,下面来看看~
这篇文献于2023年10月4号发表在Mol Ther(12.4/Q1),文献标题为:《Single-cell dissection of cellular and molecular features underlying mesenchymal stem cell therapy in ischemic acute kidney injury》。
文献中注释到了九种不同的细胞:
数据总共为13个样本,可以在这里下载:https://ngdc.cncb.ac.cn/omix/release/OMIX004421
数据读取见之前的推文,这里还可以学到一个技巧:创建Seurat对象时忽略的两个参数竟然有这样的功能?
然后经过简单的质控、降维聚类分群以及harmony去批次,umap结果如下:
rm(list=ls())
library(Seurat)
library(ggplot2)
library(SCP) # https://zhanghao-njmu.github.io/SCP/index.html
# https://scillus.netlify.app/vignettes/plotting
library(Scillus) # https://mp.weixin.qq.com/s/Z69GmXORqKczTsMQ68D4Vw
# https://samuel-marsh.github.io/scCustomize/
library(scCustomize)
library(qs)
library(stringr)
###### step4: 看标记基因库 ######
# 原则上分辨率是需要自己肉眼判断,取决于个人经验
sce.all.int <- qread("2-harmony/sce.all_int.qs")
sce.all.int
table(Idents(sce.all.int))
table(sce.all.int$seurat_clusters)
table(sce.all.int$RNA_snn_res.0.1)
table(sce.all.int$RNA_snn_res.0.3)
dir.create('3-check-by-0.3')
select_idet <- "RNA_snn_res.0.3"
sce.all.int$RNA_snn_res.0.3
sce.all.int <- SetIdent(sce.all.int, value = select_idet)
table(sce.all.int@active.ident)
head(sce.all.int@meta.data)
# 美化版
p <- CellDimPlot(sce.all.int, group.by = select_idet, reduction = "UMAP", label = T,label.size = 4, label_repel = T, label_insitu = T,label_point_size = 1, label_point_color =NA ,label_segment_color = NA)
ggsave(plot=p, filename="3-check-by-0.3/Dimplot_resolution_0.3.pdf",width = 6.5, height = 6.5)
################################ 本数据marker:OMIX004421
cell_types <- list(
TECs = c("Lrp2"),
LOH = c("Slc12a1"),
DT = c("Slc12a3"),
IC_PC = c("Aqp2","Atp6v1g3"),
MES = c("Pdgfrb"),
ENDO = c("Emcn"),
T = c("Cd3d"),
B = c("Cd79a"),
Myeloid = c("Cd68")
)
# Print the list to verify
print(cell_types)
p <- DotPlot(sce.all.int, features = cell_types, assay='RNA',group.by = select_idet,cols = c("grey", "red") ) +
ggtitle(paste0(select_idet, ": OMIX004421")) +
xlab("") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 更改x轴标签角度
p[["theme"]][["strip.text"]]$angle <- 90
p[["theme"]][["strip.text"]]$hjust <- 0
p
ggsave(filename = "3-check-by-0.3/Markers_OMIX004421_dotplot.pdf", plot=p, width=15, height = 8,bg="white")
中性粒细胞的质量值到底是多低呢?里面的marker全画一遍,但是有一群细胞没有注释出来 cluster 9,但是可以肯定的是这群是免疫细胞,看一下top10基因:
"S100a8,S100a9,Il1b,Hdc,Csf3r,Clec4d,Mmp9,Il1r2,Cxcr2,Tyrobp"
table(Idents(sce.all.int))
# 差异分析
sce.markers <- FindAllMarkers(sce.all.int, only.pos = TRUE, min.pct = 0.2, return.thresh = 0.01)
head(sce.markers)
save(sce.markers, file = "3-check-by-0.3/sce.markers.RData")
# 查看top10
top10 <- sce.markers %>%
group_by(cluster) %>%
dplyr::filter(avg_log2FC > 1) %>%
slice_head(n = 10) %>%
ungroup() %>%
as.data.frame()
paste0(as.character(top10[top10$cluster==9, 'gene']), collapse = ",")
高表达以下基因的细胞类型主要是中性粒细胞(Neutrophils),这些基因的高表达与中性粒细胞的激活、炎症反应和免疫调节密切相关:
那再来验证一下看看中性粒细胞是不是质量QC指标还是很低:
#######################################
sce.all <- sce.all.int
# 1.计算线粒体基因比例
mito_genes <- grep("^MT-", rownames(sce.all),ignore.case = T, value = T)
# 可能是13个线粒体基因
print(mito_genes)
sce.all <- PercentageFeatureSet(sce.all, features = mito_genes, col.name = "percent_mito")
fivenum(sce.all@meta.data$percent_mito)
# 2.计算核糖体基因比例
ribo_genes <- grep("^Rp[sl]", rownames(sce.all),ignore.case = T, value = T)
print(ribo_genes)
sce.all <- PercentageFeatureSet(sce.all, features = ribo_genes, col.name = "percent_ribo")
fivenum(sce.all@meta.data$percent_ribo)
# 3.计算红血细胞基因比例
Hb_genes <- grep("^Hb[^(p)]", rownames(sce.all),ignore.case = T,value = T)
print(Hb_genes)
sce.all <- PercentageFeatureSet(sce.all, features=Hb_genes, col.name="percent_hb")
fivenum(sce.all@meta.data$percent_hb)
# 可视化细胞的上述比例情况
# pic2
p2 <- VlnPlot(sce.all, group.by = "celltype", features = c("nFeature_RNA", "nCount_RNA","percent_mito", "percent_ribo", "percent_hb"), pt.size = 0, ncol = 5) + NoLegend()
p2
w <- length(unique(sce.all$orig.ident))/1.5+10;w
ggsave(filename="3-check-by-0.3//Vlnplot2.pdf",plot=p2,width = w,height = 5)