首页 > 科研绘图 > R语言绘图课程 | PCA图
2022
06-17

R语言绘图课程 | PCA图

66c8f4c32260701c1825bffbecd5d0fd.jpegPCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。在生物信息分析中,PCA常用于分析不同样本之间的相互关系,可以基于表达量或者SNP突变类型进行分析。

R语言是一门专门针对统计绘图等需求设计的编程语言,在R语言中,内置了PCA分析的函数prcomp。直接调用这个函数可快速针对一组数据进行PCA分析。配合ggplot2等绘图包,可以方便的生成PCA分析可视化结果。

以下是以一个真实数据集为例,为大家演示如何绘制PCA图--该数据共包含300个样品的转录本表达量数据。

读取数据

原始数据结构如下图,第一列为基因ID,第五列及以后为各个样本的表达量数据,数值以FPKM表示。

读取数据命令如下:

rawdata= read.csv( 'AllSample.genes_expression.csv',header = T)

数据清洗

原始数据中包含一些不参与分析的列,以及某些基因的表达量在所有样本中均为零,需要在分析前去除。操作代码如下:

#将第一列数据做为行名保存

row.names(rawdata) <- rawdata $Gene_ID

#删除第一列位置信息和第四列正负链的数据,并进行行列转置

tmp <- t(rawdata[,c(-1,-2,-3,-4)])

#删除在所有样本中表达量均为0的基因

cleandata <- tmp[,colSums(tmp != 0) > 0]

PCA分析

PCA分析可以直接调用内置函数prcomp,代码如下:

data.pca < -prcomp( cleandata, center= T,scale.= F)

#cleandat 为进行分析的数据集

#center 一个逻辑值,控制变量是否应该移位到零中心

#scale. 一个逻辑值,控制是否对数据进行标准化

prcomp 函数的返回值是一个特殊的对像,可以利用summary函数来查看分析的结果。

具体参数:

#Standard deviation 标准差,其平方为方差=特征值

#Proportion of Variance 方差贡献率

#Cumulative Proportion 方差累计贡献率

数据可视化

#加载ggplot软件包

library(ggplot2)

#根据PC1及PC2生成散点图,由于ggplot在绘图时只接收数据框格式的数据集,因些需要使用 as. data.frame函数来进行转换。

ggplot( as. data.frame( data.pca$x),aes(x=PC1,y=PC2)) + geom_point

图片生成:

到这呢,我们基本的PCA图形已绘制完成。下期,我们将为大家展出,如何对每一组数据设置不同的颜色,如何用图框来设置每一组内间的相互关系?更细致的修饰,我们下期见



最后编辑:
作者:萌小白
一个热爱网络的青年!

发布评论

表情