SC3 : 单细胞转录组聚类分析R包

Kiselev VY, Kirschner K, Schaub MT, Andrews T, Yiu A, Chandra T, Natarajan KN, Reik W, Barahona M, Green AR, Hemberg M (2017). “SC3 - consensus clustering of single-cell RNA-Seq data.” Nature Methods.

一开始我觉得这么火的单细胞数据分析,一定很高大上吧!当我知道单细胞一个主要的功能是揭示细胞异质性,而这个异质性是有聚类算法来实现的。一听聚类,我乐了。关于聚类我能说出一本书啊:

所谓聚类, 就是将一个数据单位的集合分割成几个称为簇或类别的子集 , 每个类中的数据都有相似性,它的划分依据就是“物以类聚”。数据聚类分析是根据事物本身的特性, 研究对被聚类的对象进行类别划分的方法 。聚类分析依据的原则是使同一聚簇中的对象具有尽可能大的相似性, 而不同聚簇中的对象具有尽可能大的相异性, 聚类分析主要解决的问题就是如何在没有先验知识的前提下, 实现满足这种要求的聚簇的聚合。聚类分析称为无监督学习 (Unsuper-vised Study),主要体现在聚类学习的数据对象没有类别标记,需要由聚类学习算法自动计算 。

在我做过的上百场的培训中,每每讲到聚类,我都会提到一句话:说到聚类,有一个概念一定要像思想钢印一样刻在脑子里:距离。不管哪种算法,都需要一个统计量来判断对象之间的远近(或相似性)关系,这个就是距离。同样的对象,不同的距离来度量亲疏不同,就像现在我站你面前,距离很近,但是血缘关系来讲呢,就没有那么近了。

今天我们来认识一种聚类算法(其实是一种组合的聚类算法, Nature Methods,2017)单细胞RNA-seq能够基于转录组特征对细胞类型进行定量表征。我们提出了单细胞一致性聚类(single cell consensus clustering, SC3),这是一种用户友好的无监督聚类工具,它通过一致方法将多个聚类解决方案组合在一起,从而得到高精度和鲁棒性的分群结果(http://bioconductor.org/packages/SC3)。这中聚类算法允许用户自定义聚类的个数,这个自由不是任何人都消受得起的:一些人根本不知道聚多少类是合适自己的。

我是SC3聚类的一般流程

(a)使用SC3框架进行聚类的概述(参见方法)。用Treutlein数据举例说明了一致步骤。
(b)用于设置SC3参数的已发布数据集。N是数据集中的细胞数;k为作者最初确定的簇数;单位:RPKM是每千碱基每百万次读的转录本,RPM是每百万次读的转录本,FPKM是每千碱基每百万次读的转录本片段,TPM是每百万次读的转录本片段。
(c) ARI>处d值的直方图。金标准数据集达到95。黑色竖线表示细胞总数N的d = 4-7%,分类准确率高。
(d) (b)中所示数据集的SC3聚类的100个实现。条对应点的中位数。红色和灰色分别对应有一致步长和无一致步长时的聚类。这条黑线对应的ARI=0。8。黑色虚线分隔了金和银标准数据集。

文献用到的数据集包含了420个细胞中20000余个基因的表达信息,直接进行聚类资源消耗较大且由于数据噪声过大会导致效果不佳。其实,先降维(特征选择)再聚类已经是通识了。SC3算法的第一步也是要进行基因过滤,文中将表达率低于6%和高于94%的基因都从数据集中去除,将数据集的规模减少了50%。不同的是,SC3第二步会计算细胞与细胞之间的“距离”,为了算法的普适性,这里一共计算了三种距离,分别是欧氏距离,皮尔森相关系数与斯皮尔曼相关系数,最终得到了三个420维的距离矩阵。基于距离矩阵来做pca降维,而后再用k-means聚类。所以SC3与其说优化了聚类算法,不如说是调整了降维的算法。

实现起来是很简单的,因为已经有成熟的R包了:SC3。下载安装就可以用来解锁细胞异质性啦!

卑微小王就不再一步一步跑官网的教程了,SC3也是基于SingleCellExperiment对象,如果是10X的数据可以直接用Seurat过滤QC一下,转化为SingleCellExperiment即可分析。

library(Seurat)
library(SingleCellExperiment)
library(SC3,lib.loc = "D:/R-3.5.1/library")
library(scater,lib.loc = "D:/R-3.5.1/library")
pbmc <- readRDS(file = "D:\\Users\\Administrator\\Desktop\\Novo周运来\\SingleCell\\scrna_tools/pbmc3k_final.rds")

sce <- SingleCellExperiment(
  assays = list(
    counts = as.matrix(pbmc@assays$RNA@counts),
    logcounts = as.matrix(pbmc@assays$RNA@data)
  ), 
  colData = pbmc@meta.data
)

当然,也可以用seurat直接转:

sce <- as.SingleCellExperiment(pbmc)
library(future)
# check the current active plan
plan()
# change the current plan to access parallelization
plan("multiprocess", workers = 4)
plan()
sce <- sc3(sce, ks = 2:10, biology = TRUE) # too time
sc3_plot_expression(
    sce, k = 3, 
    show_pdata = c(
        "cell_type1", 
        "log10_total_features",
        "sc3_3_clusters", 
        "sc3_3_log2_outlier_score"
    )
)
我只是官网示例


SC3聚类算法实现初探
vignettes||SC3
SC3: consensus clustering of single-cell RNA-seq data

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,335评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,895评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,766评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,918评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,042评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,169评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,219评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,976评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,393评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,711评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,876评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,562评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,193评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,903评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,699评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,764评论 2 351

推荐阅读更多精彩内容

  • 1. 章节主要内容 “聚类”(clustering)算法是“无监督学习”算法中研究最多、应用最广的算法,它试图将数...
    闪电随笔阅读 5,032评论 1 24
  • 前言 这篇笔记是StatQuest系列教程的第47,48,49节。第47节与第48节有很在一部分内容是重复的,主要...
    backup备份阅读 2,269评论 1 11
  • 本篇结构 简介 聚类算法的分类 K-Means聚类算法 DBSCAN聚类算法 本篇介绍了聚类算法的种类,重点关注K...
    w1992wishes阅读 7,454评论 0 14
  • 无形的力量:真正的兴趣爱好,去一路跟随它(也就是天命所在,说的通俗一点就是,我知道了我是谁,我应该做什么) 所谓的...
    边柳_d637阅读 940评论 0 4
  • 一提到心里,或者说心理医生,我们就会想到很多,和他本来不一样的。 今天我有幸走进心理学,揭开她美丽的面纱进一步了解...
    lygly9阅读 199评论 0 0