时间:2018-04-29 点击: 次 来源:网络 作者:佚名 - 小 + 大
ggbiplot简介ggbiplot是一款PCA分析结果可视化的R包工具,可以直接采用ggplot2来可视化R中基础函数prcomp() PCA分析的结果,并可以按分组着色 、分组添加不同大小椭圆、主成分与原始变量相关与贡献度向量等。 An implementation of the biplot using ggplot2. The package provides two functions: ggscreeplot() and ggbiplot(). ggbiplot aims to be a drop-in replacement for the built-in R function biplot.princomp() with extended functionality for labeling groups, drawing a correlation circle, and adding Normal probability ellipsoids. ggbiplot安装和官方示例R包,建议在Rstudio中使用更方便 # 安装包,安装过请跳过 install.packages("devtools", repo="http://cran.us.r-project.org") library(devtools) install_github("vqv/ggbiplot")# 最简单帅气的例子 data(wine) wine.pca <- prcomp(wine, scale. = TRUE) # 演示样式 ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE) + scale_color_discrete(name = '') + theme(legend.direction = 'horizontal', legend.position = 'top') # 基本样式 plot(wine.pca$x) # 原始图,大家可以尝试画下,不忍直视 看,是不是一条命令就把prcomp()得到的主成分分析PCA的结果展示的淋漓尽致。是不是瞬间有了高分文章的B格。 主要结果说明:
OTU表实战本实战,基于本公众号之前发布文章 《扩增子分析教程-3统计绘图-冲击高分文章》中提供测试数据的OTU表、实验设计和物种注释信息,需要者可前往下载。 PCA分析OTU表和可视化 # 菌群数据实战 # 读入实验设计 design = read.table("design.txt", header=T, row.names= 1, sep="\t") # 读取OTU表 otu_table = read.delim("otu_table.txt", row.names= 1, header=T, sep="\t") # 过滤数据并排序 idx = rownames(design) %in% colnames(otu_table) sub_design = design[idx,]count = otu_table[, rownames(sub_design)] # 基于OTU表PCA分析 otu.pca <- prcomp(t(count), scale. = TRUE) # 绘制PCA图,并按组添加椭圆 ggbiplot(otu.pca, obs.scale = 1, var.scale = 1, groups = sub_design$genotype, ellipse = TRUE,var.axes = F) 可以看到三个组在第一主轴上明显分开。 展示主要差异菌与主成分的关系 # 显著高丰度菌的影响 # 转换原始数据为百分比 norm = t(t(count)/colSums(count,na=T)) * 100 # normalization to total 100 # 筛选mad值大于0.5的OTU mad.5 = norm[apply(norm,1,mad)>0.5,] # 另一种方法:按mad值排序取前6波动最大的OTUs mad.5 = head(norm[order(apply(norm,1,mad), decreasing=T),],n=6) # 计算PCA和菌与菌轴的相关性 otu.pca <- prcomp(t(mad.5)) ggbiplot(otu.pca, obs.scale = 1, var.scale = 1, groups = sub_design$genotype, ellipse = TRUE,var.axes = T) 我们仅用中值绝对偏差(mad)最大的6个OTUs进行主成分分析,即可将三组样品明显分开。图中向量长短代表差异贡献,方向为与主成分的相关性。可以看到最长的向量Streptophyta与X轴近平行,表示PC1的差异主要由此菌贡献。其它菌与其方向相反代表OTUs间可能负相关;夹角小于90%的代表两个OTUs有正相关。 ggbiplot官网简介ggbiplotAn implementation of the biplot using ggplot2. The package provides two functions: ggscreeplot() and ggbiplot(). ggbiplot aims to be a drop-in replacement for the built-in R function biplot.princomp() with extended functionality for labeling groups, drawing a correlation circle, and adding Normal probability ellipsoids. ggbiplot使用和参数 ?ggbiplot |
上一篇:R语言之dplyr 数据清理