从这节开始,就逐渐涉及转录组的基本可视化了,我们的可视化要做到CNS级别的图,争取做好分析,一步到位,让您有真正的收获!
PCA(主成分分析),具体的原理就不说了,自行百度。简单理解,PCA就是降维,将多维数据在2为平面理解和可视化。在转录组中的作用则是可以看出样本组间是否有差异,或者样本的一致性。组间差异大则两组分的开,反之则是差别不是很大。
示例数据用上节下载的GSE125424芯片数据表达矩阵,读入数据,并对数据进行初步的处理。
setwd("F:/生物信息学")
A <- read.table("GSE125424_series_matrix.txt",header = T,
row.names = 1,sep = "\t",comment.char = "!")#这里注意,下载的芯片数据开有结尾包含有注释行,都是以!开头,所以要去除这些行
data <- t(A)#PCA分析需要将表达矩阵转置
PCA分析很简单,只需要一个函数就可以搞定。prcomp()就可以,然后导出分析结果。
###PCA分析
data.pca <- prcomp(data, scale. = T) #这是后续作图的文件
#输出特征向量
write.table(data.pca$rotation, file="PC.xls", quote=F, sep = "\t")
#输出新表
write.table(predict(data.pca), file="newTab.xls", quote=F, sep = "\t")
#输出PC比重
pca.sum=summary(data.pca)
write.table(pca.sum$importance, file="importance.xls", quote=F, sep = "\t")
接着就是PCA分析结果的可视化了,这里我们提供了两种方法。
1、factoextra包
加载包:
library(factoextra)
设置分组:
group=c(rep("Control",3),rep("Test",3))
可视化,由于factoextra是ggplot2的,所以在画完图后可以用ggplot2的方式进行修饰。
fviz_pca_ind(data.pca,
col.ind=group,
mean.point=F,
addEllipses = T,
legend.title="Groups",
ellipse.type="confidence",
ellipse.level=0.9,
palette = c("#CC3333", "#339999"))+ #Cell配色哦
theme(panel.border = element_rect(fill=NA,color="black", size=1, linetype="solid"))#加个边框
结果很完美,非常满意!
2、ggbiplot包
看这包的名字就知道和ggplot2脱不了干系,先安装:
library(devtools)
install_github("vqv/ggbiplot")
library(ggbiplot)
画图,画图数据和上一个一样:
ggbiplot(data.pca,obs.scale = 1,var.scale = 1,
groups = group,ellipse = T,var.axes = F) +
scale_color_brewer(palette = "Set1") +
theme(legend.direction = 'horizontal',legend.position = 'top') +
geom_vline(xintercept = c(0), linetype = 6,color = "black") +
geom_hline(yintercept = c(0),linetype = 6,color = "black") +
theme_bw() + theme(panel.grid = element_line(colour = NA))
同样看起来非常完美,赏心悦目有没有!
PCA分析和作图就是这么简单,你学会了吗?
这里不得不提一个问题,PCA分析适用于小样本的分析,对于大样本,可能效果不是很明显,所以需要其他的降维方法,那就是下节的内容---UMAP分析及其可视化!
请多多支持,点赞+关注!更多精彩等着你!
网友评论