您的位置:

ggbiplot:用于生成二维平面生物信息学数据可视化的R包

一、简介

ggbiplot是一个用于生成二维平面生物信息学数据可视化的R包,它可以通过ggplot2包来创建双主成分分析(Biplot),并且支持添加基于PCA、MCA、CA等降维方法的贡献率、类别等信息。ggbiplot可以帮助生物信息学研究者更好地理解其数据的分布情况,更加直观地展示生物样本之间的差异和相似性。

二、安装及库引入

1、安装

install.packages("devtools")
devtools::install_github("vqv/ggbiplot")
library(ggbiplot)

2、库引入

library(ggplot2)
library(ggbiplot)

三、基本绘图

在正式绘制Biplot之前需要进行PCAscores的计算,以下是实现Biplot绘制的R语言代码:

#导入数据
data(iris)
ir.species <- iris[, 5]
ir.features <- iris[, -5]
#PCA分析并纪录贡献率
set.seed(1)
ir.pca <- prcomp(ir.features, scale=T)
ir.pca$contrib <- (ir.pca$sdev ^ 2) / sum(ir.pca$sdev ^ 2)
#create Biplot
ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, labels = ir.species, circle = TRUE,ellipse = TRUE,
         alpha = 0.05, varname.size = 5, var.axes = TRUE)

上述代码会生成如下的Biplot图示:

四、ggbiplot的可选参数

ggbiplot的绘图参数可以帮助我们更好地定制Biplot图像,下面是一些重要的参数解释:

- obs.scale:测量向量是否缩放相同(默认:1)。 - var.scale:向量缩放是否具有等间隔空间(默认值:1)。 - var.axes:是否在Biplot上绘制变量向量(默认值:TRUE)。 - alpha:用于绘制数据的透明度,默认值为0.05。 - labels:一个向量或字符串,指示Biplot中哪些个体应该用什么标签表示。 - circle:是否在Biplot上绘制一个圆以指示单位距离(默认值:TRUE)。 - ellipse:是否在Biplot上绘制椭圆以显示方差(默认值:TRUE)。

五、应用实例

1. 比较样品

下面的代码将气候数据分为不同颜色,以比较两个状态下的样品分布情况:

data(climate)
states <- rep(c(rep("AL", 3), rep("CA", 2)), 3)
county <- levels(climate$station)[c(1, 2, 7, 8)]
colors <- c("black", "red")
names(colors) <- c("AL", "CA")
ggbiplot(prcomp(climate[, county]), labels = county, groups = states, ellipse = TRUE, circle = TRUE, 
         var.axes = FALSE, alpha = 0, size = 4, varname.size = 4, palette = colors)

2. 按类别绘制

下面的代码将用颜色按照花瓣的长度与宽度分类数据,并将species的名称添加到纵轴和横轴上以进行标记:

data(iris)
ggbiplot(prcomp(iris[, 1:4]), groups = iris$Species, varname.size = 3, var.axes = FALSE, alpha = 0)+ 
   scale_color_discrete(name = "")

3. 更改Biplot颜色

下面的代码将用颜色按照五角星和球形的颜色分类数据,并将其名称添加到Biplot上:

data(treepop)
ggbiplot(prcomp(treepop[, 1:6]),labels = treepop$species,groups = treepop$pop, ellipse = TRUE, circle = TRUE, var.axes = FALSE, alpha = 0, varname.size = 5,pch=c(5,16),color=c('red','blue'))

4. 更改Biplot字体

下面的代码将用颜色按照城市分类数据,并将其名称添加到Biplot上。此外,还将更改字体大小和字体类型:

library(extrafont)
data(usarrests)
usarrests <- data.frame(scale(usarrests, center = TRUE, scale = TRUE), check.names = FALSE)
ggbiplot(prcomp(usarrests), obs.scale = 1, var.scale = 1, alpha = 0.75, 
    groups = rownames(usarrests), ellipse = TRUE, circle = TRUE, var.axes = FALSE,
    labels = rownames(usarrests), varname.size = 9, varname.adjust = 1, font.family = "OpenSans", 
    fonts = c("plain", "italic", "bold", "bold.italic"))

六、总结

本文介绍了ggbiplot包的基本使用,包括安装和引用相应库、绘制Biplot的基本方法、Biplot的可选参数、以及ggbiplot在不同应用场景下的实际应用。ggbiplot的强大功能能够帮助生物信息学研究者更快、更好地理解其数据的分布情况,从而发现更多有价值的科研成果。