重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(4)

7.5 使用SingleR进行细胞类型注释
基于我们找到的marker,我们可以挖掘文献并鉴定每种观察到的细胞类型。我们也可以尝试使用SingleR进行自动注释。
首先从celldex包中获取参考数据集。注意有两种细胞类型标签,label.mainlabel.fine。我们将只基于Monaco免疫数据库运行注释,您也可以使用另外两个数据库以比较生成的自动注释结果。

> monaco.ref <- celldex::MonacoImmuneData()

为了方便起见,我们将Seurat对象转换为SCE对象,这样使用SingleR会变得非常容易:

> sce <- as.SingleCellExperiment(DietSeurat(srat))
> sce
class: SingleCellExperiment 
dim: 36601 8824 
metadata(0):
assays(2): counts logcounts
rownames(36601): MIR1302-2HG FAM138A ... AC007325.4 AC007325.2
rowData names(0):
colnames(8824): AAACCCACATGTAACC-1 AAACCCAGTGAGTCAG-1 ...
  TTTGTTGTCGTTATCT-1 TTTGTTGTCTTTGCTA-1
colData names(18): orig.ident nCount_RNA ... SCT_snn_res.0.9 ident
reducedDimNames(0):
mainExpName: RNA
altExpNames(1): SCT
> monaco.main <- SingleR(test = sce,
                         assay.type.test = 1,
                         ref = monaco.ref,
                         labels = monaco.ref$label.main)
> monaco.fine <- SingleR(test = sce,
                         assay.type.test = 1,
                         ref = monaco.ref,
                         labels = monaco.ref$label.fine)

细胞类型注释的结果与我们的预期十分吻合。

> table(monaco.main$pruned.labels)

        B cells    CD4+ T cells    CD8+ T cells Dendritic cells       Monocytes 
            740            2343            1404             202            2986 
       NK cells     Progenitors         T cells 
            305              18             725

追求更精细的细胞类型注释,就越难获得更可靠的结果。这时,比较多个数据库以及使用文献中的单个marker就变得非常有价值。

> table(monaco.fine$pruned.labels)

   Central memory CD8 T cells           Classical monocytes 
                          158                          2453 
  Effector memory CD8 T cells             Exhausted B cells 
                           31                            33 
    Follicular helper T cells        Intermediate monocytes 
                          250                           348 
                   MAIT cells       Myeloid dendritic cells 
                          131                           137 
                Naive B cells             Naive CD4 T cells 
                          354                          1236 
            Naive CD8 T cells          Natural killer cells 
                         1237                           294 
      Non classical monocytes   Non-switched memory B cells 
                          153                           253 
           Non-Vd2 gd T cells                  Plasmablasts 
                          150                            12 
 Plasmacytoid dendritic cells              Progenitor cells 
                           78                            15 
      Switched memory B cells            T regulatory cells 
                           82                           262 
Terminal effector CD4 T cells Terminal effector CD8 T cells 
                           42                            83 
                    Th1 cells                Th1/Th17 cells 
                          163                           212 
                   Th17 cells                     Th2 cells 
                          184                           220 
               Vd2 gd T cells 
                          157

将注释添加到Seurat对象元数据中,以便使用它们:

> srat@meta.data$monaco.main <- monaco.main$pruned.labels
> srat@meta.data$monaco.fine <- monaco.fine$pruned.labels

最后,让我们将精细的注释可视化。

> srat <- SetIdent(srat, value = "monaco.fine")
> DimPlot(srat, label = T , repel = T, label.size = 3) + NoLegend()
Warning message:
ggrepel: 7 unlabeled data points (too many overlaps). Consider increasing max.overlaps

比较从三个来源获得的标签,可以看到许多有趣的差异。整理这些差异需要人工处理,也反映出许多信息丰富的注释。例如,cluster 17被重复识别为浆B细胞,这个独特的亚群显示CD38和CD59等marker。

> FeaturePlot(srat,"CD38") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))
> FeaturePlot(srat,"CD59") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))

类似地,cluster 16被鉴定为MAIT细胞。文献表明,血液MAIT细胞的特点是高表达CD161(KLRB1)和CXCR6等趋化因子。事实似乎确实如此;但这种细胞类型更难评估。

> FeaturePlot(srat,"KLRB1") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))
> FeaturePlot(srat,"CXCR6") + 
    scale_colour_gradientn(colours = rev(brewer.pal(n = 11, name = "Spectral")))

总的来说,即使是PBMC这样的简单示例也表明细胞类型注释有多么复杂,以及需要付出多少努力。有一本关于如何使用singleR进行细胞类型注释/标签转移的详细书籍可供参考(https://bioconductor.org/books/3.12/SingleRBook/)。

往期内容:
重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(1)
重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(2)
重生之我在剑桥大学学习单细胞RNA-seq分析——7. 使用Seurat进行单细胞RNA测序分析(3)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容