首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >🤩 scRNA-seq | 吐血整理的单细胞入门教程(共识聚类)(十二)

🤩 scRNA-seq | 吐血整理的单细胞入门教程(共识聚类)(十二)

作者头像
生信漫卷
发布2022-10-31 17:24:39
发布2022-10-31 17:24:39
1.2K0
举报

1写在前面

当完成了对scRNAseq数据的Normalization混杂因素去除后,我们就可以开始正式分析了。😘 本期我们介绍一下常用的聚类方法(clustering),主要是无监督聚类,包括:👇

  • hierarchical clustering
  • k-means clustering
  • graph-based clustering

1.1 hierarchical clustering

Raw data

The hierarchical clustering dendrogram


1.2 k-means clustering

k-means


1.3 graph-based clustering

graph_network


2聚类工具

2.1 SINCERA

  • 基于hierarchical clustering;
  • 在聚类前需要进行z-scores转换。

2.2 SC3

  • 基于PCA降维;
  • k-means
  • 共识聚类(consensus clustering)。🌟

SC3 pipeline


2.3 tSNE + k-means

  • tSNE maps;
  • k-means

2.4 Seurat clustering

Seurat clustering主要是基于community的识别进行聚类,这里我们不做具体介绍了,后面会做Seurat包的详细教程。🤩

2.5 Comparing clustering

当我们需要比较两个聚类结果的时候,我们可以使用adjusted Rand index,区间在0~1,大家可以简单理解为,1表示聚类相同,0表示偶然相似,即adjusted Rand index越大,聚类结果越相似。🤗

3用到的包

代码语言:javascript
复制
rm(list = ls())
library(pcaMethods)
library(SC3)
library(scater)
library(SingleCellExperiment)
library(pheatmap)
library(mclust)
library(ggsci)

4示例数据

这里我为大家准备了一个小鼠的胚胎scRNAseq数据,文件格式为.rds

代码语言:javascript
复制
dat <- readRDS("./deng-reads.rds")
dat

dat

5数据初探

我们先看下细胞类型。

代码语言:javascript
复制
table(colData(dat)$cell_type2)

Cell Type


PCA 🥳 这里看到有的细胞类型是分的很开的,有明显的区分。

代码语言:javascript
复制
dat <- runPCA(dat)
plotPCA(dat, colour_by = "cell_type2")+
  scale_fill_npg()+
  scale_color_npg()

PCA1

6SC3

这里我们只介绍一下SC3的方法进行聚类,其他方法耗时过长。

SC3的输入数据直接是SingleCellExperiment,非常方便。😁

6.1 sc3_estimate_k

代码语言:javascript
复制
dat <- sc3_estimate_k(dat)

6.2 查看聚类结果

我们看一下sc3提供的聚类方法,帮我们聚成了几类~

代码语言:javascript
复制
metadata(dat)$sc3$k_estimation

k

Note! 这里只帮我们聚了6类,但我们实际上不只6类啊。🫠

但是, 如果我们不考虑early, mid, late这种时间点的话,正好的6类。Nice !~🥳

6.3 可视化一下

代码语言:javascript
复制
plotPCA(dat, colour_by = "cell_type1")+
  scale_fill_npg()+
  scale_color_npg()

PCA2


6.4 生物学分组聚类

这里我们将生物学分组纳入考虑中,进行聚类。

代码语言:javascript
复制
dat <- sc3(dat, 
           ks = 10, # a range/single of the number of clusters k used for clustering 
           biology = TRUE, 
           n_cores = 4 # 默认是1
           )

6.5 通过Shiny结果可视化

SC包提供了一种交互的方式进行结果展示,就和网页工具一样简单。

代码语言:javascript
复制
sc3_interactive(dat)

shiny


🤨 这里我们只讲一下如何使用代码实现结果可视化

6.6 Consensus Matrix

代码语言:javascript
复制
sc3_plot_consensus(
    dat, 
    k = 10, 
    show_pdata = c(
        "cell_type2")
)

Consensus Matrix


6.7 Silhouette Plot

代码语言:javascript
复制
sc3_plot_silhouette(dat, k = 10)

Silhouette Plot


6.8 Expression Matrix

代码语言:javascript
复制
sc3_plot_expression(
    dat, k = 10, 
    show_pdata = c(
        "cell_type2")
)

Expression Matrix


6.9 DE genes

代码语言:javascript
复制
sc3_plot_de_genes(
    dat, k = 10, 
    show_pdata = c(
        "cell_type2")
)

DE genes


6.10 Marker Genes

代码语言:javascript
复制
sc3_plot_markers(
    dat, k = 10, 
    show_pdata = c(
        "cell_type2")
)

Marker Genes


最后祝大家早日不卷!~


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

本文分享自 生信漫卷 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
    • 1.1 hierarchical clustering
    • 1.2 k-means clustering
    • 1.3 graph-based clustering
  • 2聚类工具
    • 2.1 SINCERA
    • 2.2 SC3
    • 2.3 tSNE + k-means
    • 2.4 Seurat clustering
    • 2.5 Comparing clustering
  • 3用到的包
  • 4示例数据
  • 5数据初探
  • 6SC3
    • 6.1 sc3_estimate_k
    • 6.2 查看聚类结果
    • 6.3 可视化一下
    • 6.4 生物学分组聚类
    • 6.5 通过Shiny结果可视化
    • 6.6 Consensus Matrix
    • 6.7 Silhouette Plot
    • 6.8 Expression Matrix
    • 6.9 DE genes
    • 6.10 Marker Genes
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档