rm(list = ls()) load(file = "step1output.Rdata") load(file = "step2output.Rdata") #输入数据:exp(表达矩阵)和group_list(分组信息) #Principal Component Analysis(PCA图,主成分分析图) #PCA代码来源:http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/112-pca-principal-component-analysis-essentials dat=as.data.frame(t(exp)) library(FactoMineR) #画主成分分析图需要加载这两个包。 library(factoextra) #画主成分分析图需要加载这两个包。 # pca的统一操作 dat.pca <- PCA(dat, graph = FALSE) pca_plot <- fviz_pca_ind(dat.pca, geom.ind = "point", #仅显示点(但不是“文本”)(show points only (nbut not "text"))。 col.ind = group_list, #按分组信息赋予颜色(color by groups)。 #palette = c("#00AFBB", "#E7B800"), #如需设置非默认颜色,将此行代码的“#”去掉并修改颜色,颜色个数需与分组个数相同。 addEllipses = TRUE, #浓度椭圆(Concentration ellipses)。 legend.title = "Groups" #注释标题。 ) pca_plot ggsave(plot = pca_plot,filename = paste0(gse,"PCA.png")) #保存PCA图(.png格式)。 save(pca_plot,file = "pca_plot.Rdata") #保存PCA对象 。 #热图 cg=names(tail(sort(apply(exp,1,sd)),1000)) #取表达矩阵exp中标准差最大的1000个探针的名字。 n=exp[cg,] #取表达矩阵exp中标准差最大的1000个探针。 #绘制热图 annotation_col=data.frame(group=group_list) #生成含有一列值的数据框,列名为“group”,值为分组信息(group_list)。 rownames(annotation_col)=colnames(n) #行名为表达矩阵exp中标准差最大的1000个探针的名字。 library(pheatmap) pheatmap(n, show_colnames =F, #不显示列名。 show_rownames = F, #不显示行名。 annotation_col=annotation_col, #按分组进行列注释。 scale = "row") #按行标度。 dev.off() #关闭画板。若运行代码后不出图也不报错,可能是画板被占用,运行此行代码即可。
PCA代码来源:http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/112-pca-principal-component-analysis-essentials