混合到同一个10X样品里面的多个细胞系如何注释

我们七月份的学徒培养专注于单细胞数据处理,第一个学徒选择的文章很有意思,标题是:《Single-cell transcriptomic heterogeneity in invasive ductal and lobular breast cancer cells》,这个单细胞文章仅仅是单个10X样品,但是测8个细胞系,Number of cells:

  • MCF7 (n=977)
    • T47D WT (n=509)
    • T47D KO (n=491)
    • MM134 (n=439)
    • SUM44 (n=314)
    • BCK4 (n=512)
    • MCF10A (n=491)
    • HEK293T(n=881).

可以看到,不同细胞系,降维聚类分群后,泾渭分明。但是没办法从单个或者多个标记基因的角度来对细胞系进行命名:

标记基因不明显

可以看到不同细胞系各自的高表达量基因并不是非常特异性,不同细胞系仅仅是某些基因的表达高低而不是表达与否的差异。

我给学徒的建议是根据文章里面的描述,去CCLE数据库,以及GEO数据库,找到里面的各种细胞系的芯片或者测序的表达量矩阵,然后对这个单细胞降维聚类分群后的8个细胞亚群取表达量平均值。把全部的细胞系和全部的单细胞亚群的表达相关性矩阵(Pearson correlation coefficient)热图可视化即可。

首先拿到细胞亚群基因表达量平均值

使用 AverageExpression 函数即可:

 sce <- readRDS("../step1_聚类/sce_all.Rds")
 query <- AverageExpression(sce, group.by = "RNA_snn_res.0.2",
 features = rownames(reference) ,
 slot = "data")
 query <- as.data.frame(query[["RNA"]])
 head(query)

如下所示 的矩阵,就是 细胞亚群基因表达量平均值 :

细胞亚群基因表达量平均值

然后 拿到多个细胞系的表达量矩阵,这个 epxr_reference.csv 是自己去 去CCLE数据库,以及GEO数据库,找到里面的各种细胞系的芯片或者测序的表达量矩阵哦,其中的艰难险阻,省略五千字。

如下所示 :

 reference <- read.csv("../6个参考数据集/epxr_reference.csv",
 row.names = 1)
 reference <- textshape::column_to_rownames(reference, loc =1)
 head(reference)
 colnames(reference)

sce_tmp <- CreateSeuratObject(counts = reference)
 sce_tmp <- NormalizeData(sce_tmp)

reference <- as.data.frame(sce_tmp@assays[["RNA"]]@data)

细胞系表达量矩阵如下所示:

细胞系表达量矩阵

有了这两个数据集,就可以计算 相关性矩阵(Pearson correlation coefficient),代码如下 :

 load(file = 'for_cor.Rdata')
 head(reference)
 head(query)
 reference$X=rownames(reference)
 query$X=rownames(query)
 identical(query$X, reference$X)
 data_merged <- dplyr::full_join(reference, query, by = "X")
 head(data_merged)
 data_merged <- textshape::column_to_rownames(data_merged, loc = 'X')
 head(data_merged)

# step3.计算相关性
 colnames(data_merged)
 head(data_merged)
 str(data_merged)
 tmp=apply(data_merged, 2,as.numeric)
 colnames(tmp)=colnames(data_merged)
 rownames(tmp)=rownames(data_merged)

tt <- cor(tmp,
 method = "pearson")
 heatmap(tt)
 tt1 <- tt[1:12,13:20]
 tt2 <- tt1[sort(rownames(tt1)),]

pheatmap::pheatmap(tt2)

如下可视化 得到的 达相关性矩阵(Pearson correlation coefficient) :

达相关性矩阵(Pearson correlation coefficient) 的热图

是不是很容易看到各个亚群各自最相关的细胞系啊,就可以进行命名了!

手动注释如下:

 # st ep4. 手动注释细胞类型------
 # cluster0 MCF7
 # cluster1 HEK293
 # cluster2 T47D
 # cluster3 BCK4 # 排除法
 # cluster4 T47D
 # cluster5 MCF10A
 # cluster6 MM134
 # cluster7 SUM44

可以看到,cluster2和cluster4都是T47D细胞系,这个时候需要根据CDH1基因表达量进行进一步区分。另外,cluster3 对应的 BCK4 也是没办法命名,因为我们整理好的细胞系矩阵里面本来就没有它。

原文方法描述

这个文献及其数据处理也会纳入我们的两个b站单细胞栏目,持续更新半年,基本上涵盖了大家需要的技能:

如果是简单的降维聚类分群,可以参考前面的例子:人人都能学会的单细胞聚类分群注释 ,我们演示了第一层次的分群。

如果你对单细胞数据分析还没有基础认知,可以看基础10讲:

Comments are closed.