「付费」【代码-13】探索数据降维的神秘之美:概率主成分分析(PPCA)解析与R实践






「付费」【代码-13】探索数据降维的神秘之美:概率主成分分析(PPCA)解析与R实践

小果  生信果  2023-11-15 19:00:44

嗨,小果又和大家见面了!概率主成分分析(Probabilistic Principal Component Analysis,PPCA)是一种在降维分析中经常使用的技术。它结合了主成分分析(PCA)和概率建模,可以帮助我们从高维数据中提取有用的信息,并且在考虑噪声的同时进行降维。在生物信息学领域,高维度的基因表达数据常常使研究人员感到头疼。在这个教程中,我将带你一步步了解如何利用概率主成分分析(PPCA)这一强大的降维技术,从生物数据中揭示出隐藏的潜在特征。我们将结合R语言来进行建模和可视化,帮助你更好地理解这个过程。
在这个教程中,我将带你一步步了解PPCA的概念、原理,并且会演示如何在R语言中使用它进行建模和可视化,通过使用R语言,我们将使用一个名为wulffenTable的基因数据框,该数据框包含了不同样本中多个基因的表达数据。
概率主成分分析的原理
概率主成分分析基于以下假设:
1.数据在一个低维的潜在空间中生成,潜在变量(latent variables)符合多维正态分布。
2.通过一个线性映射将潜在变量投影到高维空间,并添加噪声项,得到观测数据。
数学上的表示为:
·潜在变量:,表示从多维正态分布中采样潜在变量。
·映射:
其中是投影矩阵,是均值向量,是噪声项。下图来自于mlapp,PPCA生成过程的说明,其中我们有L=1个潜在维度生成D=2个观察维度。(即原始数据具有2维,生成的主成分具有1维)    
假设我们有一个基因表达数据集,其中每一行代表一个基因,每一列代表一个样本(如不同的细胞或实验条件)。每个元素表示基因在特定样本中的表达水平。由于高通量测序技术的进步,我们可以获得大量的基因表达数据,但同时也面临着高维数据和噪声的挑战。
在这种情况下,PPCA可以帮助我们提取数据的主要变化模式,同时降低数据维度,以便更好地理解和解释生物学现象。
·潜在生物学意义:在生物信息学中,每个样本代表了一个生物学实体,如细胞或生物样本。PPCA可以将每个样本映射到一个低维的潜在空间中,这个潜在空间可以表示样本之间的生物学差异,如不同细胞状态、表型变化等。
·基因模式的发现:PPCA可以揭示基因表达数据中的主要变化模式,这对于发现共同调控基因、功能相关基因等非常有用。降维后的潜在变量可能对应于某些生物学特征,如细胞周期、信号转导通路等。
·数据可视化:PPCA可以将高维的基因表达数据降低到二维或三维空间,从而可以更容易地进行数据可视化。我们可以在散点图中显示样本,颜色表示不同生物学特征,以便更好地理解数据的结构。
·噪声处理:基因表达数据通常受到噪声的影响,而PPCA考虑了噪声的存在,可以更准确地建模数据。这对于减少噪声对生物学结论的影响非常重要。
·生物分类和聚类:在低维空间中,样本之间的距离可以用来进行生物分类和聚类。这对于确定不同细胞类型、疾病子型等具有重要意义。    
那么小果就开始带领大家进行具体的建模吧!

安装R包
 

1.# 安装和加载pcaMethods包  2.BiocManager::install("pcaMethods")    3.library(pcaMethods)  4.library(ggplot2)

pcaMethods包需要通过BiocManager安装,在此之前,没有安装BiocManager的小伙伴们要先安装BiocManager包哦!(另外,我们需要edgeR包进行基因数据的处理,ggplot2包进行数据可视化)

加载数据
 

使用readxl包中的read_excel()函数来加载基因表达数据。该数据集来自于 von Wulffen 等人的研究,研究了大肠杆菌(E. coli)在从厌氧条件转变为好氧条件时的基因表达变化,其中行名为不同的基因,列为不同的样本。
1.# 加载数据  2.# 使用readxl包中的read_excel函数读取Excel文件中的数据,文件路径需要根据你的实际情况修改。3.wulffenTable <- read_excel("C:/Users/17240/Desktop/GSE71562_E14R012_raw_counts.xlsx")  4.  5.# 显示数据的前几行  6.head(wulffenTable)      7.  8.# 选择需要分析的数据,这里选择了第2到19列的数据  9.X = wulffenTable[2:19]
模型通过对基因表达数据进行概率主成分分析(PPCA)来降低维度,从而将复杂的高维数据转化为更简洁的二维表示。在该模型中,两个主成分(PC1和PC2)解释了总方差的53.47%和11.18%,累积解释了总方差的53.47%和64.65%。数据中有4319个基因,18个样本,没有缺失值。概率主成分分析的得分和载荷结构分别表示了样本在两个主成分上的得分和每个基因在这两个主成分上的贡献。通过这个模型,我们可以更清晰地了解样本之间的差异,并用较低的维度呈现复杂的基因表达数据。
    
通过可以看出,不同的基因的第二主成分随着第一主成分的变换有着相似的变化模式,而且显然,pc1与时间有着很强烈的关系,每一类的序列都从t10倒着走向t0,可以认为是一种时间序列的变换,说明ppca捕捉到了基因数据集的时间序列规律。

往期推荐

1.搭建生信分析流水线,如工厂一样24小时运转Snakemake——进阶命令
2.比blast还优秀的序列比对工具?HMMER来了
3.对单细胞分析毫无头绪?让popsicleR领你入门
4.小果带你绘制ROC曲线评估生存预测能力
5.软件包安装、打怪快又好,1024G存储的生信服务器;还有比这更省钱的嘛!!!
如果需要完整的代码可以点击付费获取哦!今天小果的分享就到这里,如果小伙伴有其他数据分析需求,可以尝试本公司新开发的生信分析小工具云平台,季代码完成分析,非常方便奥!
(扫码领取整理好的输入文件,代码文件及示例结果)