R语言如何绘制PCA图(四)

PCA(主成分分析)是一种常用的数据降维方法,通过线性变换将高维数据转换为低维空间,保留主要信息。在本文中,我们将探讨PCA图的绘制过程,数据准备包括从定量表中获取数据,以及如何使用R语言的ggplot2和ggbiplot库进行可视化。PCA图有助于区分样本组,聚集的样本表示差异性小,而远离的样本则表示差异性大。此外,介绍了在线平台BioLadder生信云用于便捷绘制PCA图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.什么是PCA?

人眼一般能感知的空间为二维和三维。高维数据可视化的重要目标就是将高维数据呈现于二维或三维空间中。高维数据变换就是使用降维度的方法,使用线性或非线性变换把高维数据投影到低维空间,去掉冗余属性,但同时尽可能地保留高维空间的重要信息和特征。

主成分分析法,也被称为主分量分析法,是很常用的一种数据降维方法。主成分分析法采用一个线性变换将数据变换到一个新的坐标系统,使得任何数据点投影到第一个坐标(第一主成分)的方差最大,在第二个坐标(第二主成分)的方差为第二大,以此类推。因此,主成分分析可以减少数据的维数,并保留对方差贡献最大的特征。

本文我们就来讨论一下PCA图是如何绘制的以及如何对其进行解读。

2.绘图前的数据准备

demo数据可以在https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/PCA/PCA.rar下载。

2.1 PCA数据

数据来源一般是搜库结果定量表。包含2个维度的数据,一般情况下,每一行是一个基因,每一列是一个样本。

Control_1Control_2Control_3a_1a_2a_3b_1b_2b_3
P15.4441527456.5667855736.8122334343.8115353375.1310834815.1252305424.4089005244.6297753695.214981331
P20.1342163880.1423886910.3518984710.3219260030.429229130.3433327190.3769035150.4622130280.342565149
P31.6093078761.4220108342.257983981.5722620192.2327531081.5343046852.1042632762.2541766912.254898187
P40.4290612570.3775135420.5307396230.8628609410.875126110.9629288090.7386761410.614350280.636783556
P50.0393237870.6141894570.0588141060.0549560592.0498756661.3049612690.4542483176.1898230394.288463759
P60.9834526650.4388162240.3514407570.2736947050.4581740670.3963666540.3030590881.00591370.739135456
P70.1675417660.6507861010.426089670.6196957390.3712397870.4635189970.2999027670.2127515570.082936218
P80.5732219570.3070418810.293831270.3375600030.349214920.4322298050.4014360510.4118678750.385195735
P90.1710898970.1277473910.5096223860.0834650320.1093541740.0813463670.3548840690.2037685790.464355826
P1051.6523468679.4107543947.1902631934.8836865884.038365942.7240870566.901271567.3981966662.25990223

2.2 分组数据(可选)

行名的名称和个数要和之前的PCA数据保持一致,列名为分组名称,可以包含不止一个分组。

SampleGroup
Control_1Control
Control_2Control
Control_3Control
a_1a
a_2a
a_3a
b_1b
b_2b
b_3b

3. R语言怎么画PCA

# 加载R包,没有安装请先安装  install.packages("包名") 
library(ggplot2)
library(ggbiplot)
​
# 读取PCA数据文件
df = read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/PCA/data.txt",# 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件
                header = T,    # 指定第一行是列名
                row.names = 1  # 指定第一列是行名
                )
df=t(df) # 对数据进行转置,如果想对基因分组则不用转置
​
# 读取样本分组数据文件
dfGroup = read.delim("https://www.bioladder.cn/shiny/zyp/bioladder2/demoData/PCA/sample.class.txt",
                header = T,
                row.names = 1
)
​
# PCA计算
pca_result <- prcomp(df,
                     scale=T  # 一个逻辑值,指示在进行分析之前是否应该将变量缩放到具有单位方差
                     )
​
# 绘图
ggbiplot(pca_result, 
         var.axes=F,            # 是否为变量画箭头
         obs.scale = 1,         # 横纵比例 
         groups = dfGroup[,1],  # 添加分组信息,为分组文件的第一列
         ellipse = T,           # 是否围绕分组画椭圆
         circle = F)+ 
geom_text(                      # geom_text一个在图中添加标注的函数
          aes(label=rownames(df)),   # 指定标注的内容为数据框df的行名
          vjust=1.5,            # 指定标记的位置,vjust=1.5 垂直向下1.5个距离。   负数为位置向上标记,正数为位置向下标记
          size=2                # 标记大小
  )
​
# 更多请 ?ggbiplot 获取帮助

4.BioLadder生信云平台在线绘制PCA图

不想写代码?可以用BioLadder生信云平台在线绘制PCA。

网址:BioLadder-生物信息在线分析可视化云平台

5.PCA结果解读

是主成分分析的PC1和PC2的结果,横纵坐标分别为前两个主成分,括号内的百分比为该主成分能解释的变量的百分比。PCA得分图能将对照组和实验组样本区分开。在PCA图中,如果样本之间聚集在一起,说明这些样本差异性小;反之样本之间距离越远,说明样本之间差异性越大。不同颜色的散点表示不同实验分组的样本。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值