前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >混合到同一个10X样品里面的多个细胞系如何注释

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

作者头像
生信菜鸟团
发布2021-07-29 11:32:22
4920
发布2021-07-29 11:32:22
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

我们七月份的学徒培养专注于单细胞数据处理,第一个学徒选择的文章很有意思,标题是:《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

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

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

本文分享自 生信菜鸟团 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先拿到细胞亚群基因表达量平均值
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档