10X单细胞(10X空间转录组)数据分析之寻找最佳的聚类数k

相信大家在分析数据的时候,都不太清楚聚多少个类算合理的,都是按照默认参数来分析数据,那么,今天,我来分享一个方法,帮助大家选择最好的k值。我们边分享代码,边介绍。文献在MultiK: an automated tool to determine optimal cluster numbers in single-cell RNA sequencing data,影响因子13分(Genome Biology)

简单看一下原理

1、First, MultiK takes a gene expression matrix as input, in which cells are the columns and genes are the rows. Each entry of the input matrix corresponds to the expression of a gene in each cell. MultiK subsamples 80% of the cells from the input preprocessed data matrix and applies the standard Seurat pipeline on the subsampled data matrix 100 times over 40 resolution parameters (from 0.05 to 2.00 with step size 0.05; thus, 4000 subsampling runs in total: 40 resolution parameters × 100 subsamples).. During each run, features are reselected each time to cluster the cells. Then, for each K, MultiK aggregates all the clustering runs that give rise to the same K groups regardless of the resolution parameter and computes a consensus matrix.MultiK then evaluates the consensus of clustering using two metrics: (1) for each K, the frequency of runs where that K is observed
图片.png
and (2) the relative proportion of ambiguous clustering PAC (rPAC(relative Proportion of Ambiguous Clustering)) score for each K,which is a variation of the PAC score。(PAC quantifies the proportion of entries in the consensus matrix strictly between the lower and upper bounds that determine ambiguity.)The rPAC criterion addresses the upward bias of PAC towards higher K by better handling the proportion of zeros in the consensus matrix. Combining both measures, MultiK produces a scatter plot that shows the relationship between the frequency of K and (1 – rPAC) for each observed K.
图片.png
To determine several multi-scale optimal K candidates (mostly 2 and up to 3), MultiK applies a convex hull approach [24]. This is based on the upper right of the smallest convex polygon that encloses all the points. MultiK takes extreme points from this set and uses a frequency cutoff of 100 to select candidate Ks。
2、Once candidate Ks are determined, MultiK then performs a second step: label each cluster as either a class or subclass using Statistical Significance of Clustering (SigClust)
图片.png
MultiK first constructs a dendrogram of the cluster centroids using hierarchical clustering. Then, MultiK runs SigClust on each pair of terminal clusters. Significant terminal pairs in the dendrogram determine classes, and non-significant pairs are subclasses. For consistency of the whole dendrogram, when any split is significant, all parent splits are also considered to be significant. In this way, MultiK assigns class and subclass labels to each terminal cluster (i.e., the leaves of the dendrogram) based on the SigClust significance. This assessment of cluster significance, after deciding on the value of optimal K, helps elucidate the structural relationships between the identified clusters as well.

第一步,加载R包

library(Seurat)
library(sigclust)
###devtools::install_github("siyao-liu/MultiK")
library(MultiK)
MultiK()是实现Seurat聚类在多个分辨率参数上的子采样和应用的主要函数。
主函数 MultiK( ) 接受一个 Seurat 对象,该对象具有归一化的表达式矩阵和其他参数,如果未指定,则默认值设置。 MultiK 在 Seurat 聚类中探索了一系列分辨率参数(从 0.05 到 2.00,步长为 0.05),并聚合所有产生相同 K 组的聚类运行,而不管分辨率参数如何,并为每个 K 计算一致矩阵 .
图片.png
注意:MultiK 在每次子采样运行中重新选择高度可变的基因。 此外,默认情况下,MultiK 在 Seurat 聚类中使用 30 个主成分和 20 个 K 最近邻。

运行代码

seu = readRDS(sc_RDS)
步骤 1:运行 MultiK 主算法以确定最佳 Ks
运行子采样和一致性聚类以生成用于评估的输出(此步骤可能需要很长时间)。 出于演示目的,在这里运行 10 次。 对于真实的数据练习,建议至少使用 100 次。
multik <- MultiK(seu, reps=10)
Make MultiK diagnostic plots:
DiagMultiKPlot(multik$k, multik$consensus)
图片.png

Step 2: Assign classes and subclasses

Get the clustering labels at optimal K level:
clusters <- getClusters(seu, 3)
Run SigClust at optimal K level:
pval <- CalcSigClust(seu, clusters$clusters)
制作诊断图(这包括在节点上映射成对 SigClust p 值的聚类质心树状图,以及成对 SigClust p 值的热图)
PlotSigClust(seu, clusters$clusters, pval)
图片.png

对,这才是我们想要的结果

生活很好,有你更好

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

推荐阅读更多精彩内容