生物信息数据挖掘(学习记录)

02_PCA主成分分析

2021-05-14  本文已影响0人  生信小白

主成分分析(principal component analysis,PCA)是一种常见的数据降维方法:目的是减少数据集的维数,同时保持数据集中的对方差贡献最大的特征,即在“信息”损失较小的前提下,将高维的数据转换到低维,从而减小计算量。

实操前准备好表达矩阵以及样本信息两份文件:
准备文件的格式参考上一篇文章

  1. 表达矩阵
    2.样本信息

实操代码:

01_读入数据(表达矩阵和样本信息)

dat = read.table("GeneExpression.txt",header=TRUE,sep="\t")

traits = read.table('sampleTraits.txt',sep="\t",header= T)

02_定义颜色

blue = "#307eb9"

purple = "#974e9e"

red = "#e41e25"

orange = "#f57f21"

yellow = "#f4ed35"

lblue = "#74d7ff"

red2 = "#ff1751"

green = "#4cb049"

color = factor(traits$grade,

labels = c(lblue,purple,orange,yellow,red2,green,"black"),

levels = c("G1","G2","G3","G4","G5","G6","G7"))

03_主成分分析计算

pca <- princomp(dat)

04_可视化

0401_draw 3d plot--1" 交互式绘图

安装rgl R包

BiocManager::install("rgl")

install.packages("httpuv") ##⚠️安装此函数出现询问,选择none,否则可能报错

library(rgl)

plot3d(pca$loadings[,1:3],col=color,

type="s",radius=0.005,

grid=50L,pch=16)

0402_draw 3d plot--2 平面图

一个角度

BiocManager::install("scatterplot3d") ##下载scatterplot3d R包

library(scatterplot3d)

scatterplot3d(pca$loadings[,1:3],main='PCA',color=color,type='p',

highlight.3d=F,angle=60,grid=T,box=T,scale.y=1,

cex.symbols=0.8,pch=16,col.grid='lightblue')

legend("topright",paste("G",1:7,sep=""),fill=c(lblue,purple,orange,yellow,red2,green,"black"),box.col="grey")

多个角度

library(scatterplot3d)

首先定义一个绘图函数

pdf('pca.pdf',onefile=TRUE,width=8,height=8)

diffangle <- function(ang){

scatterplot3d(pca$loadings[,1:3],main='PCA',color=color,type='p',

highlight.3d=F,angle=ang,grid=T,box=T,scale.y=1,

cex.symbols=1.2,pch=16,col.grid='lightblue')

legend("topright",paste("G",1:7,sep=""),fill=c(lblue,purple,orange,yellow,red2,green,"black"),box.col="grey")

}

使用循环函数,从-360度到360度,每隔5度运行一次函数绘制一个图

sapply(seq(-360,360,5),diffangle)

dev.off()

上一篇 下一篇

猜你喜欢

热点阅读