前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >胃癌单细胞数据集GSE163558复现(三):细胞分群注释

胃癌单细胞数据集GSE163558复现(三):细胞分群注释

作者头像
生信技能树jimmy
发布2024-06-25 20:37:16
1580
发布2024-06-25 20:37:16
举报
文章被收录于专栏:单细胞天地单细胞天地

前言

Hello小伙伴们大家好,我是生信技能树的小学徒”我才不吃蛋黄“。今天是胃癌单细胞数据集GSE163558复现系列第三期。第二期我们走了Seurat V5标准流程,利用harmony整合去批次后,按标准流程进行了降维聚类分群。本期,我们将在第二期基础上选择合适的分辨率,对细胞亚群进行注释。

1背景介绍

Bulk转录组的诞生,使我们能够快速的获取组织和细胞大量的RNA-seq数据。相较于传统的RNA检测方法(pcr),这种高通量测序手段更高效,数据维度更高,数据量更大。但是,组织中包含有各种不同类型的细胞,如肿瘤组织中除了肿瘤细胞,还有正常上皮细胞、免疫细胞、成纤维细胞等等。Bulk转录组(组织)的最大缺陷在于我们获取到的RNA-seq数据反映的是不同类型细胞平均的RNA水平,因此掩盖了部分细胞表达特征。单细胞转录组测序(scRNA-seq)则很好的弥补了这一缺陷,它在单个细胞水平上构建每个细胞的基因表达谱。

在第二期,我们最终获取到了45548个细胞的RNA-seq数据。我们需要弄清楚这45548个细胞分别是哪种类型,挨个细胞鉴别显然不太现实。我们对细胞进行了降维聚类分群,每一群的细胞具有相似的特征,可以粗略的将其归类为同一类细胞(细致的话需要再次降维聚类分群后分亚群,后续有推文会专门介绍,敬请关注)。每一群细胞都有特征的表达基因,我们可以根据这些特征基因将这群细胞归类为某一类型,这一过程被称为“细胞类型注释”。

通常我们第一层次降维聚类分群,会将细胞划分为三大类,分别是

  • immune (CD45+,PTPRC)
  • epithelial/cancer (EpCAM+,EPCAM)
  • stromal (CD10+,MME,fibro or CD31+,PECAM1,endo)

常见的细胞群的maker基因分别是:上皮细胞(EPCAM、KRT19、CLDN4)、基质(PECAM1、CLO1A2、VWF)、增殖性(MKI67、STMN1、PCNA)、T(CD3D、CD3E、CD2)、B(CD79A,IGHG1,MS4A1),NK(KLRD1、GNLY、KLRF1)和髓系(CSF1R、CSF3R、CD68)细胞。

原文中也有提供分群maker:

2细胞类型注释

选择分辨率

在第二期中细胞分群时我们可以看到,分辨率设置越高,分群数量越多。

Tree_diff_resolution

在这里,我们选择0.5分辨率。

代码语言:javascript
复制
rm(list=ls())
sce.all.int = readRDS('2-harmony/sce.all_int.rds') 
sel.clust = "RNA_snn_res.0.5"
sce.all.int <- SetIdent(sce.all.int, value = sel.clust)
table(sce.all.int@active.ident) 
colnames(sce.all.int@meta.data) 

此时,细胞分为了14群。

接着,我们在此工作目录下创建了新的文件夹”3-Celltype“。

代码语言:javascript
复制
dir.create("./3-Celltype")
setwd("./3-Celltype")
scRNA=sce.all.int

绘制气泡图展示maker基因在各分群的表达:

代码语言:javascript
复制
genes_to_check = c('EPCAM','KRT19','CLDN4',  #上皮
                   'PECAM1' , 'CLO1A2', 'VWF',  #基质
                   'CD3D', 'CD3E', 'CD8A', 'CD4','CD2', #T
                   'CDH5', 'PECAM1', 'VWF',  #内皮
                   'LUM' , 'FGF7', 'MME',  #成纤维
                   'AIF1', 'C1QC','C1QB','LYZ',  #巨噬
                   'MKI67', 'STMN1', 'PCNA',  #增殖
                   'CPA3' ,'CST3', 'KIT', 'TPSAB1','TPSB2',#肥大
                   'GOS2', 'S100A9','S100A8','CXCL8', #中性粒细胞
                   'KLRD1', 'GNLY', 'KLRF1','AREG', 'XCL2','HSPA6', #NK
                   'MS4A1','CD19', 'CD79A','IGHG1','MZB1', 'SDC1',  #B
                   'CSF1R', 'CSF3R', 'CD68') #髓系
p = DotPlot(scRNA, features = unique(genes_to_check),
                assay='RNA'  )  + coord_flip()
p

DotPlot

再次查看分群TSNE图:

代码语言:javascript
复制
mycolors <-c('#E64A35','#4DBBD4' ,'#01A187'  ,'#6BD66B','#3C5588'  ,'#F29F80'  ,
             '#8491B6','#91D0C1','#7F5F48','#AF9E85','#4F4FFF','#CE3D33',
             '#739B57','#EFE685','#446983','#BB6239','#5DB1DC','#7F2268','#800202','#D8D8CD'
)


tsne =DimPlot(scRNA, reduction = "tsne",cols = mycolors,pt.size = 0.8,
                  group.by = "RNA_snn_res.0.5",label = T,label.box = T)
tsne

TSNE

结合DotPlot和TSNE图给各细胞群命名:

代码语言:javascript
复制
####细胞生物学命名
celltype=data.frame(ClusterID=0:13,
                    celltype= 0:13) 

这里强烈依赖于生物学背景,看dotplot的基因表达量情况来人工审查单细胞亚群名字。

代码语言:javascript
复制
celltype[celltype$ClusterID %in% c( 4,6,13),2]='Myeloid'
celltype[celltype$ClusterID %in% c( 5,11,12 ),2]='Epithelial'
celltype[celltype$ClusterID %in% c(0,1),2]='T'
celltype[celltype$ClusterID %in% c( 8 ),2]='Fibro'
celltype[celltype$ClusterID %in% c( 9 ),2]='Proliferative'
celltype[celltype$ClusterID %in% c(3,7 ),2]='B'
celltype[celltype$ClusterID %in% c( 2 ),2]='NK'
celltype[celltype$ClusterID %in% c( 10 ),2]='endothelial'

然后将细胞类型信息添加到meta.data:

代码语言:javascript
复制
scRNA@meta.data$celltype = "NA"
for(i in 1:nrow(celltype)){
  scRNA@meta.data[which(scRNA@meta.data$RNA_snn_res.0.5 == celltype$ClusterID[i]),'celltype'] <- celltype$celltype[i]}
table(scRNA@meta.data$celltype)

查看不同类型细胞的数量:

可视化细胞类型:

代码语言:javascript
复制
th=theme(axis.text.x = element_text(angle = 45, 
                                    vjust = 0.5, hjust=0.5)) 
library(patchwork)


celltype_tsne =DimPlot(scRNA, reduction = "tsne",cols = mycolors,pt.size = 1,
                    group.by = "celltype",label = T)
celltype_tsne

celltype_tsne

综合看样本类型、患者、细胞类型TSNE图:

代码语言:javascript
复制
sample_tsne =DimPlot(scRNA, reduction = "tsne",cols = mycolors,pt.size = 0.2,
                         group.by = "sample") 
patient_tsne =DimPlot(scRNA, reduction = "tsne",cols = mycolors,pt.size = 0.2,
                     group.by = "patient") 
sample_tsne + patient_tsne+celltype_tsne 

sample_tsne + patient_tsne+celltype_tsne

保存rds对象:

代码语言:javascript
复制
saveRDS(scRNA, "sce_celltype.rds")

3结语

本期,我们选择resolution=0.5对细胞进行了手工分群注释。细胞注释的方式有很多,详情请参照单细胞天地前期推文:单细胞测序最好的教程(六):细胞类型注释。在本系列后续推文“细胞亚群细分”中,我们还将使用singleR自动注释,并与手工注释对比,干货满满,敬请期待。下一期,我们将在本期基础上对细胞类型及基因进行可视化,使用DimPlot,FeaturePlot,ggplot,DoHeatmap等绘制多类型图,使你的Figure更精致,欢迎大家持续追更,谢谢!

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

本文分享自 单细胞天地 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1背景介绍
  • 2细胞类型注释
  • 3结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档