今天我们来深入探讨一下有关PCA轴的秘密,有关高维数据进行PCA线性降维的的分析原理我之前分享过,文章在单细胞PCA分析的降维原理,而看过我分享的文章10X单细胞(空间转录组)数据整合分析批次矫正之liger也应该对PCA的轴记忆犹新,因为其中的分析某些PCA轴(Factors)跟一些功能密切相关,而今天,我们深入参透这个PCA轴的秘密。
简单看一下PCA的原理
PCA的原理就是将原来的样本数据投影到一个新的空间中,相当于我们在矩阵分析里面学习的将一组矩阵映射到另外的坐标系下。通过一个转换坐标,也可以理解成把一组坐标转换到另外一组坐标系下,但是在新的坐标系下,表示原来的原本不需要那么多的变量,只需要原来样本的最大的一个线性无关组的特征值对应的空间的坐标即可。
比如,原来的样本是30*1000000的维数,就是说我们有30个样本,每个样本有1000000个特征点,这个特征点太多了,我们需要对这些样本的特征点进行降维。那么在降维的时候会计算一个原来样本矩阵的协方差矩阵,这里就是1000000*1000000,当然,这个矩阵太大了,计算的时候有其他的方式进行处理,这里只是讲解基本的原理,然后通过这个1000000*1000000的协方差矩阵计算它的特征值和特征向量,最后获得具有最大特征值的特征向量构成转换矩阵。比如我们的前29个特征值已经能够占到所有特征值的99%以上,那么我们只需要提取前29个特征值对应的特征向量即可。这样就构成了一个1000000*29的转换矩阵,然后用原来的样本乘以这个转换矩阵,就可以得到原来的样本数据在新的特征空间的对应的坐标。30*1000000 * 1000000*29 = 30 *29, 这样原来的训练样本每个样本的特征值的个数就降到了29个。
一般来说,PCA降维后的每个样本的特征的维数,不会超过训练样本的个数,因为超出的特征是没有意义的。
我们的分析就从单细胞或者空间转录组RunPCA这一步开始解析
pbmc <- RunPCA(object = pbmc, features = varFet, do.print = F)
跑完这一步,我们会显示一下信息
会显示每个PC轴的Positive和Negative的基因列表,这里我们就需要知道这里的Positive和Negative基因到底是什么意思,这个疑问我们先留着。,在往下看看PCA都得到了什么结果。
head(pbmc@reductions$pca@cell.embeddings)
这部分结果就是每个细胞在低维PCA轴上的映射坐标。
head(pbmc@reductions$pca@feature.loadings)
这部分结果展现的是每个基因对应在PC轴上的映射,可以看到,有正有负,基因的维度跟我们高变基因的数量是一致的。
这里可以解释一下Positive和Negative的意义了,说白了就是PC轴的正负映射关系,正值为Positive,负值为Negative。
接下来是这个
ElbowPlot(pbmc)
这张图上y轴是standard deviations,这个怎么来的呢?我这里分析了一下,是对所有细胞在每个PC轴坐标的标准差,标准差越大,说明细胞在该轴上的映射越分散,反正越集中,这也是我们要选择前多少个主成分进行下游分析的原因。
至于PCA热图就非常简单了
那么PC轴的秘密是什么呢?
借用昨天分享的结果
每个PC轴(Fctor)有一个Positive和Negative的基因列表,这个基因列表所富集的功能,其实就是隐藏在我们PC轴上的秘密
生活很好,有你更好