前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >乳腺癌第一层次降维聚类分群复现

乳腺癌第一层次降维聚类分群复现

作者头像
生信技能树jimmy
发布2024-03-18 10:24:13
1250
发布2024-03-18 10:24:13
举报
文章被收录于专栏:单细胞天地单细胞天地

最近在复现一篇文章《A comprehensive single-cell map of T cell exhaustion-associated immune environ- ments in human breast cancer》,它配套的数据在 E-MTAB-10607 中可以看到。这篇推文主要记录了文献中的第一次降维聚类分群的命名的过程。

文献中的第一次亚群命名

The main cell types were annotated based on the expression of established marker genes:

  • EPCAM/CDH1 for epithelial cells
  • CD3/CD4/CD8/NCR1 for the T and NK cell fraction
  • CD14/ITGAX/HLADRA for myeloid cells
  • PECAM1/VWF for endothelial cells
  • PDGFRB/FAP for fibroblasts
  • MS4A2 for mast cells and basophils
  • MS4A1 for B cells
  • Ig-encoding transcripts for plasma cells

实战 - 第一次亚群命名(0.1分辨率)

命名主要按照文章中的基因列表:

以及曾老师总结的marker基因列表:

命名代码如下:

代码语言:javascript
复制
# 文章中的基因marker:
 epithelial=c("EPCAM","CDH1")
  T_NK='CD3/CD4/CD8/NCR1';T_NK=trimws(strsplit(T_NK,'/')[[1]])
  myeloid='CD14/ITGAX/HLADRA';myeloid=trimws(strsplit(myeloid,'/')[[1]])
  endothelial='PECAM1/VWF';endothelial=trimws(strsplit(endothelial,'/')[[1]])
  fibroblasts='PDGFRB/FAP';fibroblasts=trimws(strsplit(fibroblasts,'/')[[1]])
  mast='MS4A2'
  B_cell='MS4A1'
  Plasma='IG'  # Ig-encoding transcripts???
  
  gene_list = list(
    Epithelial=epithelial,
    Endothelial=endothelial,
    Fibroblast=fibroblasts,
    'T and NK cell'=T_NK,
    Myeloid=myeloid,
    'B cell'=B_cell,
    'Mast cell/basophil'=mast,
    'Plasma cell'=Plasma
  )
  p2 = DotPlot( sce.all.int,  features = gene_list, 
                group.by = 'RNA_snn_res.0.1') + 
    theme(axis.text.x = element_text(angle = 45, vjust = 0.5, hjust=0.5))
  p2    
  ggsave('paper-marker-0.1.pdf',width=12,height=10)
 #定义细胞亚群
 # 0.1 的分辨率
  celltype[celltype$ClusterID %in% c( 2,9,11 ),2]='Epithelial'  
  celltype[celltype$ClusterID %in% c( 3 ),2]='Endothelial'  
  celltype[celltype$ClusterID %in% c( 4,6 ),2]='Fibroblast'
  celltype[celltype$ClusterID %in% c( 10,0 ),2]='T and NK cell' # 0 有 CD3E,CD3D
  celltype[celltype$ClusterID %in% c( 1 ),2]='Myeloid'
  # celltype[celltype$ClusterID %in% c( 4 ),2]='B cell'
  celltype[celltype$ClusterID %in% c( 7 ),2]='Mast cell/basophil'
  celltype[celltype$ClusterID %in% c( 8 ),2]='Plasma cell' # IGHG1, MZB1, SDC1, CD79A(https://www.jianshu.com/p/15dddefc7038)

存在一些问题:

cluster5 的marker 基因是 TOP2A MKI67, 这两个是哪个细胞类型的marker基因?

好像是增殖性的marker基因,与细胞周期有关吗?那这个细胞类型要保留吗?目前的处理是没有命名。

缺少了B cell的细胞亚群

尝试用ACT自动注释,也没有B cell

对比文章已有的注释和我的注释

发现B cell 在T and NK cell中,可能是分辨率不够的原因。cluster5在文章中是好几个细胞亚群,也有可能是分辨率的问题。

实战 - 探索合适的分辨率

尝试 0.2 的分辨率

B cell的marker 基因为:MS4A1和CD79A。在这个分辨率下,没有 B cell。

尝试 0.5 的分辨率

B cell 终于被注释出来了,是 cluster 8,所以后续更正采取0.5分辨率进行命名:

实战 - 第一次亚群命名(0.5分辨率)

0.5分辨率下有25个cluster。命名主要按照文章中的基因列表:

以及曾老师总结的marker基因列表:

最终注释得到的UMAP图如下:

命名如下:

代码语言:javascript
复制
# 文章中的基因marker:
 epithelial=c("EPCAM","CDH1")
  T_NK='CD3/CD4/CD8/NCR1';T_NK=trimws(strsplit(T_NK,'/')[[1]])
  myeloid='CD14/ITGAX/HLADRA';myeloid=trimws(strsplit(myeloid,'/')[[1]])
  endothelial='PECAM1/VWF';endothelial=trimws(strsplit(endothelial,'/')[[1]])
  fibroblasts='PDGFRB/FAP';fibroblasts=trimws(strsplit(fibroblasts,'/')[[1]])
  mast='MS4A2'
  B_cell='MS4A1'
  Plasma='IG'  # Ig-encoding transcripts???
  
  gene_list = list(
    Epithelial=epithelial,
    Endothelial=endothelial,
    Fibroblast=fibroblasts,
    'T and NK cell'=T_NK,
    Myeloid=myeloid,
    'B cell'=B_cell,
    'Mast cell/basophil'=mast,
    'Plasma cell'=Plasma
  )
  p2 = DotPlot( sce.all.int,  features = gene_list, 
                group.by = 'RNA_snn_res.0.5') + 
    theme(axis.text.x = element_text(angle = 45, vjust = 0.5, hjust=0.5))
  p2    
  ggsave('paper-marker-0.5.pdf',width=12,height=10)
  
celltype=data.frame(ClusterID=0:24 ,
                        celltype= 0:24 )
    #定义细胞亚群
    celltype[celltype$ClusterID %in% c( 1,11,12,18,20,23,24,7 ),2]='Epithelial'
    celltype[celltype$ClusterID %in% c( 10,14,15,16,21,22 ),2]='Endothelial'
    celltype[celltype$ClusterID %in% c( 5,6,9,19 ),2]='Fibroblast'
    celltype[celltype$ClusterID %in% c(0  ),2]='T and NK cell' # 0 有 CD3E,CD3D
    celltype[celltype$ClusterID %in% c( 2,3,4 ),2]='Myeloid'
    celltype[celltype$ClusterID %in% c( 8 ),2]='B cell'
    celltype[celltype$ClusterID %in% c( 13 ),2]='Mast cell/basophil'
    celltype[celltype$ClusterID %in% c( 17 ),2]='Plasma cell' # IGHG1, MZB1, SDC1, CD79A(https://www.jianshu.com/p/15dddefc7038)
 
    head(celltype)
    celltype
    table(celltype$celltype)
    sce.all.int@meta.data$celltype = "NA"

对比文章已有的注释和我的注释

和原文的注释差别不大了呢,有进步

有疑惑的 cluster 命名

  • cluster 19 应该是Fibroblast还是Myeloid?看图像是Fibroblast,看marker基因像是 Myeloid。我最终鉴定为Fibroblast,这与文章中的相符合。
  • cluster 7 通过marker基因无法确定。
    • ACT自动注释为:Endothelial cell of artery,也就是Endothelial。
    • 从UMAP图中观察,我把它命名为了Epithelial。
    • 与文章中的注释比较,在文章中被注释为了三个细胞亚群:Epithelial,Myeloid,T/NK cell。

从下图中观察,如果增加分辨率,0.5分辨率下的cluster 7还可以细分,所以有可能这样会解决问题。

命名小结

分辨率:

分辨率不够的时候,可能会漏掉一些细胞亚群。这个时候,有相关的生物学背景是很有帮助的,因为会发现一些不合理的地方,比如这里,当0.1的分辨率的时候,发现没有B cell。另外使用clustree函数可以得到不同分辨率之间,亚群之间的关系,这个也可以帮助我们去判断是否需要更高的分辨率。

命名小技巧:

  • 首先参考文献中命名的marker基因(因为是做文献的复现)。
  • 然后结合生信技能树单细胞流程代码生成的marker基因。
  • 结合UMAP图,相同或相似的细胞类型的距离会更接近。
  • 结合自动注释工具,比如ACT(虽然在这里没有参考价值)。

另外,之前曾老师也复现了这篇文献的第一次降维聚类分群的命名以及代码分享,有兴趣的小伙伴也可以一起看看:降维聚类分群的umap图真的重要吗

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文献中的第一次亚群命名
  • 实战 - 第一次亚群命名(0.1分辨率)
    • 存在一些问题:
    • 实战 - 探索合适的分辨率
      • 尝试 0.2 的分辨率
        • 尝试 0.5 的分辨率
        • 实战 - 第一次亚群命名(0.5分辨率)
          • 对比文章已有的注释和我的注释
            • 有疑惑的 cluster 命名
            • 命名小结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档