复现《nature communications》图表(一):一模一样的Figure1

近期,看到一篇发表在NC上的文章,是关于新冠多组学的文章,因为看到这篇文章提供了详细的数据,所以对其进行复现下,从nature子刊出发,循序渐进。读这篇文献我们也应该感受到,现如今发文章要这么多个组学(全转录组、蛋白组、代谢组、全基因组)才能发出好文章。

图片

(图片来源:文章截图)

本次复现系列分为五个部分:

  • 模式图与柱状图

  • 批量箱线图并加显著性

  • 样本时间序列图

  • 多组GO分析气泡图

  • GWAS基本数据作图

复现这些部分主要是这些图值得我们学习,也是这篇文章中的一些主要内容。当然,除此之外的部分也值得去深究,单会在下一个系列---转录组系列体现。敬请期待!!!

首先看Figure1,看起来很简单,但是有很多东西能够学习,小编也能为大家拓展介绍更多内容。包括---模式图制作、韦恩图和柱状图制作!

图片


1、模式图

其实NC文章这个模式图很简单,涉及到4个图形,人、DNA、RNA和密度图的模式图,网上找素材或者自己画都比较简介。不过这里小编要介绍的是一个SCI论文专用的模式图素材库,能够满足你所有的需求。

网址:https://scidraw.io/

图片

                                    (图片来源:网站截图)

网站首页已经显示了常用的一些素材,如果需要则自己搜索,因为是外文网站,所以搜索关键词要用英语。在搜索前,勾选vectors only,检索的就是矢量图,下载后导入AI修饰。

虽然网站免费,但是如果使用请注明来源和引用或者致谢,尊重知识产权!


2、韦恩图

韦恩图就不多说了,有很多在线工具可以实现,可以检索一下,不一定非要用R语言,不然只会增加自己工作量。这里列举几个常见的:

http://bioinfogp.cnb.csic.es/tools/venny/index.html

http://www.biovenn.nl/index.php

http://www.pangloss.com/seidel/Protocols/venn4.cgi

https://bioinfogp.cnb.csic.es/tools/venny/index.html

http://jvenn.toulouse.inra.fr/app/example.html

3、柱状图的实现

做柱状图的数据很简单,整理下一下如下:

图片

文章中的柱状图是用barplot化的,比较简单。

setwd("D:/生物信息学")#设置工作路径
A <- read.csv("普通柱状图.csv",header = T)#读取数据
barplot(A$number~A$Group,#画图数据及x轴分组
        ylab="Increased",#y轴title
        col="red", #柱状图颜色
        main="mRNAs",#柱状图title
        border = "white")#柱状边框颜色

结果如下,可以说与文章里的图片一摸一样。

图片

如果说到这里文章结束了,那么也太草率了,接下来我们利用ggplot2画一下柱状图,毕竟ggplot2是画图界的天花板。使用ggplot2一方面巩固之前的一些内容,第二对于后续的内容理解上会有帮助。

library(ggplot2)
ggplot(A,aes(x=Group,y=number,fill="red"))+
  theme_bw()+#去掉背景色
  geom_bar(stat="identity")+
  theme(axis.text.x = element_text(size = 10,angle = 90,vjust = 1,hjust = 1))+ #x轴元素大小、方向设置
  theme(legend.position = "NA")+#取消legend
  labs(x=NULL,y="Increased",size=10,title = "mRNAs")+#x,y,titile设置
  theme(panel.grid = element_blank())+#去掉网格
  theme(plot.title = element_text(hjust = 0.5))#标题居中

 

图片

看到这里相信大家发现一个问题,x轴组别的排序和文章中不一样,也和我们提供的顺序不一样,这是因为ggplot默认按照首字母排序的,所以需要解决这个问题。使用forcats包将其转化为因子,进行固定排序即可!


install.packages("forcats") 
library(forcats)
A$Group <- as.factor(A$Group)
A$Group <- fct_inorder(A$Group)

 

这样重新画图就解决了,记住这一点能够解决不少烦恼。

图片

其他图的画法和这个一样,依次完成,然后排版即可

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值