PCA(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图形已绘制完成。下期,我们将为大家展出,如何对每一组数据设置不同的颜色,如何用图框来设置每一组内间的相互关系?更细致的修饰,我们下期见。
- 本文固定链接: https://maimengkong.com/image/991.html
- 转载请注明: : 萌小白 2022年6月17日 于 卖萌控的博客 发表
- 百度已收录