查看原文
其他

每天学习一点R:21.玫瑰图在生物研究中的实际应用

红皇后学术 红皇后学术 2023-08-18

最近由于人民日报的一张图,直接导致玫瑰图大火,我在之前也对人民日报的疫情玫瑰图进行了仿制

但是实话说,在我们平时的科研数据展示的过程中,玫瑰图的使用频率还是相对比较低的,今天就介绍一个适合用玫瑰图进行展示的数据类型。

我们平时无论是做转录组、蛋白质组还是宏基因组等,其中都会有一项结果就是COG数据库注释,COG将所有基因按照功能分为26个大类,以26个英文字母表示,而通常测序公司给我们的图是这个样子的。

今天我们使用玫瑰图的形式来展示这个数据,首先需要将数据格式条形为如下形式:

数据共分3列,第一列是COG功能对应的英文字母,第二列是注释到该功能基因的数目,第三类是该分类的详细名称。

接下来我们进行绘图。

#载入绘图包library(ggplot2)#导入绘图数据f<-read.table("cog_lab", header=T, sep="\t")#对图例标签进行处理myLabel = as.vector(f$lab)#根据数据计算每个功能分类所占的比例并添加到图例标签中myLabel = paste(myLabel, " (", round(f$mag / sum(f$mag) * 100, 2), "%) ", sep = "")#绘制图像p<-ggplot(f, aes(x=dir, y=factor(mag), fill=dir))+geom_bar(stat='identity')+coord_polar()+labs(x = "", y = "Number of Unigenes", title = "COG Function Classification of Unigene Sequence")+theme(axis.ticks = element_blank())+theme(legend.title = element_blank())+theme(panel.background=element_blank())+scale_fill_discrete(breaks = f$dir, labels = myLabel)#图像输出png("COG.png",width = 8200,height = 5400,res = 600,type = "cairo")pdev.off()

由于图例中有26个参数,如果把图例设置调整为1列会导致字体过小看不清楚,因此正常的出图是这个样子的。

之后手动PS一下,把图例调整为一列,最终得到的图像是下面这个样子。

关注公众号“红皇后学术”,后来回复“COG玫瑰图”获取示例数据和绘图代码。

扩展阅读




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存