GEO代码分析流程 - 3. 数据质控 - PCA、热图
2022/9/10 6:24:32
本文主要是介绍GEO代码分析流程 - 3. 数据质控 - PCA、热图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
3. 数据质控 - PCA、热图
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
这篇关于GEO代码分析流程 - 3. 数据质控 - PCA、热图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享