查看原文
其他

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

生信技能树 单细胞天地 2022-08-10

我们七月份的学徒培养专注于单细胞数据处理,第一个学徒选择的文章很有意思,标题是:《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站单细胞栏目,持续更新半年,基本上涵盖了大家需要的技能:

  • https://www.bilibili.com/video/BV1DK4y1X7bb/  更新至第8篇,「生信技能树」100个单细胞文献解读(8/100)
  • https://www.bilibili.com/video/BV19Q4y1R7cu/  section 3已更新,「生信技能树」单细胞公开课2021

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

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


往期回顾

一模一样又有何难

我以为我画错了

这算是不一样吗

OSCA单细胞数据分析笔记13—Multi-sample comparison






如果你对单细胞转录组研究感兴趣,但又不知道如何入门,也许你可以关注一下下面的课程



看完记得顺手点个“在看”哦!


生物 | 单细胞 | 转录组丨资料每天都精彩

长按扫码可关注


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存