KEGG结果可视化
2020-07-08 本文已影响0人
胡童远
导读
要点:
- !duplicate函数去重做索引
- table函数去重统计
- order函数进行排序
- ggplot geom_bar()绘图
- coord_flip图片旋转
一、输入数据
KEGG分类注释结果
head(data)
二、统计level_2的数量
1 保留level_1作为分组,对level_2进行去重计数
data = data[, c(2, 3)]
df <- data[!duplicated(data[, 2]),] # 去重,不排序
df$count <- table(data[, 2])[df[, 2]] # 去重计数,【排序+索引】=不排序,赋值到新列
df = na.omit(df) # 删除含NA的行
head(df)
2. 排序:先level_1字符排序,再count数值排序
data = df
data_sort = df[order(data[,1], data[,3], decreasing=F),]
三、可视化
1. 绘图和保存
library(ggplot2)
## 调节画板大小
high = 7
if(length(df[,1]) >= 26)
{
high = round(length(df[,1])/40)*7
}
## 画图
result = ggplot(data_sort, aes(x = level_2, y = count, fill=level_1)) +
geom_bar(stat = "identity") +
coord_flip() +
labs(x = "KEGG level2", y = "KEGG level2 count", fill = "KEGG level1") +
scale_x_discrete(limits=factor(data_sort[, 2])) +
theme(panel.grid=element_blank(), panel.background=element_rect(color='black', fill='transparent'))
## 保存
ggsave(result, filename = paste(args[2], "pdf", sep="."), height = high, width = 7)
ggsave(result, filename = paste(args[2], "png", sep="."), height = high, width = 7)
2. 结果