R语言绘图课程 | PCA图
卖萌控的博客
点击这里进入电脑版页面!体验更好
R语言绘图课程 | PCA图
2022-6-17 萌小白


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图形已绘制完成。下期,我们将为大家展出,如何对每一组数据设置不同的颜色,如何用图框来设置每一组内间的相互关系?更细致的修饰,我们下期见



发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容