R注释和富集orthofinder

KEGG结果可视化

2020-07-08  本文已影响0人  胡童远

导读

要点:

  1. !duplicate函数去重做索引
  2. table函数去重统计
  3. order函数进行排序
  4. ggplot geom_bar()绘图
  5. 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. 结果

上一篇下一篇

猜你喜欢

热点阅读