分享

单细胞组学 | 第19期. 单细胞数据分析的核心环节,这学!

 新用户4064dVjo 2024-04-27 发布于北京
    本系列推送旨在带领生信零基础的科研人一起入门单细胞(核)转录组数据分析。

往期回顾:

MASCU

第1期.单细胞测序:揭开生命奥秘的钥匙

第2期.下游数据质控知多少

第3期.Seurat之PBMC分析标准化流程

第4期.写文章时需要用到的单细胞转录组测序原理

第5期.单细胞测序文件面面观

第6期.10X genomics 上游分析-cellranger介绍

第7期.10X genomics 上游分析-cellranger应用

第8期.一文打通单细胞测序研究思路

第9期.Zenodo一个宝藏公共数据库和单细胞的不解之缘

第10期.生物信息学必须了解的数据库

第11期.不会还有人不知道这个免费一年的云服务吧!?

第12期.单细胞分析数据下载、导入和合并

第13期.单细胞测序中竟然存在双细胞?

第14期.想发单细胞测序文章?这一步必学!

15.一份强烈推荐收藏的细胞周期校正宝典!

16.不可不知的单细胞流程

第17期. 找到Cluster的领头羊

18. 单细胞注释不再是烦恼!

Introduction 

在本系列的推送中,我们之前给大家分享了:

①单细胞(核)RNA测序的原理;

②基于Cellranger的上游分析;

③数据下载/导入/合并;

数据质控(包括细胞质控和基因质控);并铺垫了细胞注释前几个数据处理技能(包括细胞周期矫正、去批次、差异分析)。

本期实际上和上一期的目的是一样的 —— 细胞注释

本期将给大家分享以下3个问题:

1. 什么是细胞注释(What)

2. 为什么要进行细胞注释(Why)

3. 如何完成细胞注释(How

TS

01

什么是细胞注释

要回答这个问题,我们先进入一个熟悉的背景:我们前期对4个主动脉组织进行了scRNA-seq,完成了数据质控后得到了41798个细胞。摆在我们面前的一个最大的问题就是:这里面的每个细胞叫什么名字?

scRNA-seq技术出现前,传统的细胞生物学已经确定了“粗糙的细胞名称”比如非免疫细胞(内皮细胞、成纤维细胞、平滑肌细胞等)、免疫细胞(巨噬细胞、T淋巴细胞、B淋巴细胞等),但上述每一个细胞群体仍然具有较大的异质性,可以被进一步细分,比如巨噬细胞包括促炎型巨噬细胞(又称为M1型)和抗炎型细胞(又称为M2型);scRNA-seq的出现可以给细胞取一个“更加具体的名字”。

因此,细胞注释的过程可以理解为给不同的单细胞群体取名字的过程。接下来,我们结合clustree来理解上述过程(clustree的生成详见16. 不可不知的单细胞流程

图1. Clustree

如上图所示,为了将质控后的41798个细胞划分为不同的细胞群体(即细胞分群),我们通过clustree呈现不同分辨率的细胞分群情况(从上往下,分辨率逐渐变大,即划分得更细),每行代表一个分辨率的细胞分群情况,每行里面的每个球代表一个细胞群(球的大小代表细胞数量,球里面的数字代表尚未注释的细胞名称)。

而细胞注释就是将数字变成文字,比如0群代表髓系细胞,12群代表CD4+ T细胞,15群代表分泌型的平滑肌细胞。问题来了:我们为什么要费这么力气去进行细胞注释呢?

TS

02

为什么要进行细胞注释(Why)

我们可以从3个角度来回答这个问题。

1.生物学意义角度
scRNA-seq的一个重大使命就是在细胞水平解析生命的奥秘,回答一个科学问题——一个具体的组织里面究竟包括哪些类型的细胞?(我们总不能说:主动脉组织里有0,1,2,3…15这些类型的细胞吧~

2.数据分析角度
scRNA-seq数据的分析内容是丰富多样的,其中很多数据分析的基础就是细胞注释,换句话说,“细胞注释可以为很多数据分析提供方向”:
(举例1)你开展的某个研究想重点关注巨噬细胞,那你在数据分析的时候可以重点分析巨噬细胞,但前提是你需要知道哪些细胞群是巨噬细胞;
(举例2)进行拟时序分析Slingshot的时候,可以指定拟时序的起点,而起点的确定往往需要基于细胞注释的结果。

3.文章写作角度
scRNA-seq相关研究在写作上,大部分作者都是基于细胞大类将文章分为不同的section,因此需要先知道你分析的数据里面包括哪些大类细胞。那如何才能知道呢?

TS

03

如何完成细胞注释(How)

这是本期分享的核心,我们将

1)介绍细胞注释的整体策略;
2)细胞注释方法:自动注释 vs 人工注释;

3)将细胞注释结果可视化。

1.细胞注释的整体策略
2种,一种是“一步到位”,即把细胞分群做到很细,直接注释到亚群水平(如下图A

另一种是“两步走”,即先注释到大群水平,然后针对每个大群进一步拆分成不同亚群(如下图B

图2. 细胞注释整体策略

上述两种策略都是被认可的,接下来我将重点说明“两步走”策略的第一步:大群细胞的注释


2.细胞注释方法:
2种,即自动和人工,前者是基于算法,后者是基于手工整理。接下来我们将演示
1)准备工作:初步确定分辨率;
2)基于SingleR算法进行自动注释;
3)基于先验知识进行人工注释。

1)初步确定分辨率
主要基于3个因素,即测序组织中细胞组成的先验知识 + 不同分辨率下的细胞分群数及相互关系(clustree + UMAP初步验证。比如我们分析的人主动脉组织:
先验知识显示其主要包括大约8种大类细胞(平滑肌细胞、成纤维细胞、内皮细胞、巨噬细胞、T细胞、NK细胞、肥大细胞、B细胞)。因此我们选择的分辨率对应的大群数目应该大于或等于8
结合上图1可知,分辨率需要大于等于0.05(分辨率为0.05, 0.1, 0.2 时对应的大类细胞数分别为8, 9, 12)。

③分别呈现上述3个分辨率对应的UMAP

图3. 不同分辨率对应的UMAP

我们暂定分辨率为0.2(对应12个细胞大群),来演示后续的细胞注释(当然,也可以选择另外两种分辨率)。

2)基于SingleR算法进行自动注释

#BiocManager::install("celldex")
library(celldex)
library(SingleR)

##获取参考数据库hpca.se(celldex包中一共有7个库,5个human,2个mouse,其中,human最常用的是Human Primary Cell Atlas Data库)
ref.data <- celldex::HumanPrimaryCellAtlasData()

##初步注释
testdata <- GetAssayData(Hu_AO_db_QC2, slot="data")
cellpred <- SingleR(test = testdata,  
                    ref = ref.data, 
                    labels = hpca.se$label.main,
                    clusters = Hu_AO_db_QC2@active.ident)

##导出注释结果(一表一图)
###表
celltype = data.frame(ClusterID = rownames(cellpred), 
                      celltype = cellpred$labels
                      stringsAsFactors = F)
#write.csv(celltype, "../result/8.Major_cell_annotation/SingleR细胞注释.csv")
###图
plotScoreHeatmap(cellpred)

图4. 基于SingleR的注释结果

及不同cluster与ref.data中细胞群的相似度热图

可以看出,SingleR会将每个cluster的转录谱与参考数据集中不同celltype的转录谱进行比对,生成上方热图,并选择相似度最大的celltype作为cluster的最终注释结果。但是这个结果并不一定是符合我们预期的,我们一般情况下还需要人工检查

3)基于先验知识的进行人工注释

常见的大类细胞都有经典的标记基因(cell marker),所以我们可以对比“差异分析得到的每个clustertop gene”和“既往报道的大类细胞的cell marker”进行对比,以此来确定每个cluster属于哪类细胞。

前者我们可以从Rdata中导出excel方便查找(5),后者我们需要人工整理(大家也可以参考我们上一次的推送“18单细胞注释不再是烦恼!”),为了节省大家时间,我们整理如下6

图5. 各大群间的差异基因表格

图6. 既往报道的大群细胞的marker gene

我们手工对比上图5和图6,确定了最终的细胞注释:0-11群分别对应"Macrophage", "FB", "T" , "SMC", "EC", "SMC" , "FB", "Mono", "NK", "FB", "Mast", "Neuron"。(可以发现:这与上述singleR自动注释的结果并不完全相同)。

确定了最终的细胞注释结果,就可以进行可视化了!

3.细胞注释结果可视化:UMAP

levels(Hu_AO_db_QC2@active.ident) <- c("Macrophage""FB""T" , "SMC""EC""SMC" , "FB""Mono""NK""FB""Mast""Neuron")

table(Hu_AO_db_QC2@active.ident)

### 保存至meta.data

Hu_AO_db_QC2@meta.data$Major_celltype <- Hu_AO_db_QC2$active.ident

###生成人工注释的UMAP

DimPlot(Hu_AO_db_QC2, reduction = "umap",group.by = "active.ident",label = T)

Summary

总结一下,本期推送旨在针对scRNA-seq的细胞注释回答3个问题:什么是细胞注释?为什么要进行细胞注释?如何完成细胞注释?

1)什么是细胞注释?—— 是给不同的单细胞群体取名字的过程。
2)为什么要进行细胞注释?—— 因为细胞注释是scRNA-seq的使命、为后续的数据分析提供方向、是文章写作的基础。
3)如何完成细胞注释?—— 可以先基于R包如singleR自动注释、再基于先验知识人工注释,最后确定最终的细胞注释结果。

以上就是本期推送的全部内容,大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话”栏目中提出,我们会尽快回复!


参考文献:

1. Hu Z, Liu W, Hua X, et al. Single-Cell Transcriptomic Atlas of Different Human Cardiac Arteries Identifies Cell Types Associated With Vascular Physiology. Arterioscler Thromb Vasc Biol. 2021;41(4):1408-1427.

2. Bost P, Giladi A, Liu Y, et al. Host-Viral Infection Maps Reveal Signatures of Severe COVID-19 Patients. Cell. 2020;181(7):1475-1488.e12.
3. Cheng S, Li Z, Gao R, et al. A pan-cancer single-cell transcriptional atlas of tumor infiltrating myeloid cells. Cell. 2021;184(3):792-809.e23.

期待已久~|R语言与组学互助交流群来啦!

(欢迎大家入群交流~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章