10X单细胞(10X空间转录组)SeuratPCA分析之三---维度的选取

hello,大家好,今天我们来分享一下有关PCA维度选取的知识,深入探讨一下PCA维度选取的原理,我们首先需要知道的是单细胞PCA分析的降维原理 ,以及10X单细胞10X空间转录组降维分析之PCA轴的秘密,接下来我们就要进行下游的非线性降维,其中有一个参数dim,有的选择1:20,有的选择1:30,那么到底这个数值应该选择多少呢?今天我们来深入分析一下,我们就从PCA完成降维的部分开始

其实有关PCA轴的选取,存在于两个流派,我们首先来看官方的选择方法;

To overcome the extensive technical noise in any single feature for scRNA-seq data, Seurat clusters cells based on their PCA scores, with each PC essentially representing a ‘metafeature’ that combines information across a correlated feature set. The top principal components therefore represent a robust compression(压缩,浓缩) of the dataset. However, how many components should we choose to include? 10? 20? 100?

we implemented a resampling test inspired by the JackStraw procedure. We randomly permute a subset of the data (1% by default) and rerun PCA, constructing a ‘null distribution’ of feature scores, and repeat this procedure. We identify ‘significant’ PCs as those who have a strong enrichment of low p-value features.

我们来解决一下基础知识,什么是null distribution ?

零分布就是在H0假设条件成立的条件下数据的分析,通常在置换检验中用到,我们这里举一个例子
Permutation Test 置换检验

显著性检验通常可以告诉我们一个观测值是否是有效的,例如检测两组样本均值差异的假设检验可以告诉我们这两组样本的均值是否相等(或者那个均值更大)。我们在实验中经常会因为各种问题(时间、经费、人力、物力)得到一些小样本结果,如果我们想知道这些小样本结果的总体是什么样子的,就需要用到置换检验

Permutation test 置换检验是Fisher于20世纪30年代提出的一种基于大量计算(computationally intensive),利用样本数据的全(或随机)排列,进行统计推断的方法,因其对总体分布自由,应用较为广泛,特别适用于总体分布未知的小样本资料,以及某些难以用常规方法分析资料的假设检验问题。在具体使用上它和Bootstrap Methods类似,通过对样本进行顺序上的置换,重新计算统计检验量,构造经验分布,然后在此基础上求出P-value进行推断。

下面通过一个简单例子来介绍Permutation test的思想。

假设我们设计了一个实验来验证加入某种生长素后拟南芥的侧根数量会明显增加。A组是加入某种生长素后,拟南芥的侧根数量;B是不加生长素时,拟南芥的侧根数量(均为假定值)。

A组侧根数量(共12个数据):24 43 58 67 61 44 67 49 59 52 62 50

B组侧根数量(共16个数据):42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28

我们来用假设检验的方法来判断生长素是否起作用。我们的零假设为:加入的生长素不会促进拟南芥的根系发育。在这个检验中,若零假设成立,那么A组数据的分布和B组数据的分布是一样的,也就是服从同个分布。

接下来构造检验统计量——A组侧根数目的均值同B组侧根数目的均值之差。

statistic:= mean(Xa)-mean(Xb)

对于观测值有 Sobs:=mean(Xa)-mean(Xb)=(24+43+58+67+61+44+67+49+59+52+62+50)/12-(42+43+65+26+33+41+19+54+42+20+17+60+37+42+55+28)/16=14

我们可以通过Sobs在置换分布(permutation distribution)中的位置来得到它的P-value。

Permutation test的具体步骤是:

1.将A、B两组数据合并到一个集合中,从中挑选出12个作为A组的数据(X'a),剩下的作为B组的数据(X'b)。

Gourp:=24 43 58 67 61 44 67 49 59 52 62 50 42 43 65 26 33 41 19 54 42 20 17 60 37 42 55 28

挑选出 X'a:=43 17 44 62 60 26 28 61 50 43 33 19

X'b:=55 41 42 65 59 24 54 52 42 49 37 67 67 20 42 58

2.计算并记录第一步中A组同B组的均值之差。Sper:=mean(X'a)-mean(X'b)= -7.875

3.对前两步重复999次(重复次数越多,得到的背景分布越”稳定“)

这样我们得到有999个置换排列求得的999个Sper结果,这999个Sper结果能代表拟南芥小样本实验的抽样总体情况。


图片.png

如上图所示,我们的观测值 Sobs=14 在抽样总体右尾附近,说明在零假设条件下这个数值是很少出现的。在permutation得到的抽样总体中大于14的数值有9个,所以估计的P-value是9/999=0.01

最后还可以进一步精确P-value结果(做一个抽样总体校正),在抽样总体中加入一个远大于观测值 Sobs=14的样本,最终的P-value=(9+1)/(999+1)=0.01。(为什么这样做是一个校正呢?自己思考:))结果表明我们的原假设不成立,加入生长素起到了促使拟南芥的根系发育的作用。

这里需要我们注意的点很多,首先一个重采样测试,随机置换了数据的一部分(1%),重新运行PCA,从而构建出来的null distribution,然后重复此过程。 我们将“重要”的PC识别为具有丰富的低P值功能的PC。

其实这个检验过程跟cellphoneDB对配受体的置换检验原理是一样的

代码是
pbmc <- JackStraw(pbmc, num.replicate = 100)
pbmc <- ScoreJackStraw(pbmc, dims = 1:20)
JackStrawPlot(pbmc, dims = 1:15)

我们来挨个看看,首先看看函数JackStraw

Randomly permutes(排列) a subset of data, and calculates projected PCA scores for these 'random' genes. Then compares the PCA scores for the 'random' genes with the observed PCA scores to determine statistical signifance. End result is a p-value for each gene's association with each principal component.

这里需要注意一下,PCA scores即降维之后的结果矩阵

这一步我们得到了Returns a Seurat object where JS(object = object[['pca']], slot = 'empirical') represents p-values for each gene in the PCA analysis. If ProjectPCA is subsequently run, JS(object = object[['pca']], slot = 'full') then represents p-values for all genes

图片.png

这部分结果就是每个PCA轴中每个基因的显著性,看来抽取数据的过程中,是对基因进行了置换检验。

下一个函数ScoreJackStraw

Significant PCs should show a p-value distribution that is strongly skewed to the left compared to the null distribution(就是置换检验). The p-value for each PC is based on a proportion test(比例检验) comparing the number of features with a p-value below a particular threshold (score.thresh), compared with the proportion of features expected under a uniform distribution of p-values.算法的精髓,醍醐灌顶的感觉
看看参数

help(ScoreJackStraw)
#注意其中的一个参数
score.thresh: Threshold to use for the proportion test of PC significance (see Details)
默认值是1e-05

接下来就是画图的结果

看看画图函数的解释Plots the results of the JackStraw analysis for PCA significance. For each PC, plots a QQ-plot comparing the distribution of p-values for all genes across each PC(所有基因), compared with a uniform distribution. Also determines a p-value for the overall significance of each PC

图片.png

当然,我们如果选择显著性小于0.01的PC轴,那么dim就选择1:13,现在这个流派终于理解了吧

第二个流派,贡献度,这个也是大部分公司选择的方法

我们在运行PCA的时候会得到这样一张图,


图片.png

不知道大家理解了没有,看过我之前关于PCA分享的文章应该都知道,一般的选择是拐点出,人工判断一下就选择了,这里大概就是10,但是这样不够严谨,通常的做法是,选择的维度代表的差异占总差异的85%以上,就是刚好累加差异贡献度超过总差异度的85%,我们来逐步看一下。

首先是计算stdev
data.use <- Stdev(object = pbmc, reduction = 'pca')
图片.png

累加这个贡献度,占总贡献度的85%以上,我们来看一下:


图片.png

这里应该选多少个PC轴呢?? 大家自己算一下把。

好了,这次分享的内容就这么多,大家好好学习,科研顺利

生活很好,有你更好

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

推荐阅读更多精彩内容