一行代码绘制火山图的R包诞生了!在过去的一年中,师兄先后生信绘图系列和高分SCI复现系列中更新了多种不同的火山图的绘制方法,包括普通的火山图、渐变火山图、以及包含GO通路信息的火山图!但是很多小伙伴反应,代码太难,看不懂,套在自己的数据上总是出错!于是这么为粉丝着想的师兄,又肝了一个晚上,将之前的代码整理封装成了现在的R包 – ggVolcano.

有了它,大家只需要安装载入后,就可以实现一行代码绘制火山图了,而且该包还配备和很多可供调节的参数,方便大家进行个性化设置,如:修改颜色,描边,散点大小等等!

为了方便大家更好的使用,师兄也对这个R包的重要函数和参数做了很清晰的说明!希望大家多多点赞、在看支持!点赞越多,师兄的生产就越快哈!开发更好的工具,帮助大家实现更加精美的可视化效果!

ggVolcano简介

ggVolcano的目标是帮助用户更轻松地制作出漂亮的火山图,该包主要配置了三个函数:

  • 普通火山图:ggvolcano
  • 渐变色火山图:gradual_volcano
  • GO通路火山图:term_volcano

附上师兄的github链接,有兴趣探索学习源码的可以参考:https://github.com/BioSenior/ggVolcano

安装

# install.packages("devtools")
devtools::install_github("BioSenior/ggVolcano")

使用ggvolcano函数制作一张普通的火山图。

基础用法

  • 确保你有一个包含差异表达基因信息的DEG结果数据(数据需要包括:GeneName、Log2FC、pValue、FDR)。
  • 如果你的数据没有名为 "regulate "的列,你可以使用add_regulate函数来添加,使用方法如下。
  • 使用函数ggvolcano来制作一般的火山图。你可以使用?ggvolcano来查看该函数的参数。
library(ggVolcano)## basic example code
# load the data
data(deg_data)# use the function -- add_regulate to add a regulate column
# to the DEG result data.
data <- add_regulate(deg_data, log2FC_name = "log2FoldChange",fdr_name = "padj",log2FC = 1, fdr = 0.05)# plot
ggvolcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)

  • 你必须将xy参数设置为你数据中的相对应的列名。
  • 如果你想在这些点上添加标签,请将label参数设置为您数据中相应的列名。此外label_number参数可以调整显示的标签数量。(按照FDR值从小到大排序,选择前label_number个基因)。

修改散点的颜色和描边

# Change the fill and color manually:
p1 <- ggvolcano(data, x = "log2FoldChange", y = "padj",fills = c("#e94234","#b4b4d8","#269846"),colors = c("#e94234","#b4b4d8","#269846"),label = "row", label_number = 10, output = FALSE)p2 <- ggvolcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)+ggsci::scale_color_aaas()+ggsci::scale_fill_aaas()
#> Scale for 'colour' is already present. Adding another scale for 'colour', which
#> will replace the existing scale.
#> Scale for 'fill' is already present. Adding another scale for 'fill', which
#> will replace the existing scale.library(patchwork)
p1|p2

使用gradual_volcano函数来制作一个渐变色火山图。

基础用法

  • 确保你有一个包含差异表达基因信息的DEG结果数据(数据需要包括:GeneName、Log2FC、pValue、FDR)。
  • 如果你的数据没有名为 "regulate "的列,你可以使用add_regulate函数来添加,使用方法如下。
  • 使用函数gradual_volcano来制作一般的火山图。你可以使用?gradual_volcano来查看该函数的参数。
# plot
gradual_volcano(deg_data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)

修改散点的颜色和描边

library(RColorBrewer)# Change the fill and color manually:
p1 <- gradual_volcano(data, x = "log2FoldChange", y = "padj",fills = brewer.pal(5, "RdYlBu"),colors = brewer.pal(8, "RdYlBu"),label = "row", label_number = 10, output = FALSE)p2 <- gradual_volcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)+ggsci::scale_color_gsea()+ggsci::scale_fill_gsea()
#> Scale for 'colour' is already present. Adding another scale for 'colour', which
#> will replace the existing scale.
#> Scale for 'fill' is already present. Adding another scale for 'fill', which
#> will replace the existing scale.library(patchwork)
p1|p2

  • 如果你想调整点的大小范围,你可以使用pointSizeRange = c(min_size, max_size)。其中min_size, max_size代表散点的最小尺寸和最大尺寸。

使用term_volcano函数来绘制GO通路相关火山图。

基本用法

  • 确保你有一个包含差异表达基因信息的DEG结果数据(数据需要包括:GeneName、Log2FC、pValue、FDR)。
  • 除了DEG结果数据,你还需要一个通路数据,这是一个包含一些基因的GO通路信息的两列数据框。
  • 如果你的数据没有名为 "regulate "的列,你可以使用add_regulate函数来添加,使用方法如下。
  • 使用函数term_Volcano来制作GO通路相关火山图。你可以使用?term_Volcano来查看该函数的参数。
data("term_data")# plot
term_volcano(deg_data, term_data,x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)

修改散点颜色和描边

library(RColorBrewer)# Change the fill and color manually:
deg_point_fill <- brewer.pal(5, "RdYlBu")
names(deg_point_fill) <- unique(term_data$term)term_volcano(data, term_data,x = "log2FoldChange", y = "padj",normal_point_color = "#75aadb",deg_point_fill = deg_point_fill,deg_point_color = "grey",legend_background_fill = "#deeffc",label = "row", label_number = 10, output = FALSE)

以上就是本期的全部内容啦!欢迎点赞,点在看!师兄会尽快更新哦!制作不易,你的打赏将成为师兄继续更新的十足动力!

最后再附上师兄的github链接,有兴趣探索学习源码的可以参考:https://github.com/BioSenior/ggGantt

往期文章

生信常用分析图形绘制01 – 各种类型的热图!你学会了吗?
生信常用分析图形绘制02 – 解锁火山图真谛!
生信常用分析图形绘制03 – 富集分析圈图

再肝一个R包!一行代码绘制精美火山图!相关推荐

  1. 把函数包起来就是一个R包 - 完整开发指南

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

  2. 一个R包玩转单细胞免疫组库分析,还能与Seurat无缝对接

    单细胞免疫组库数据分析 NGS系列文章包括NGS基础.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞测序分析  ...

  3. 一行代码绘制高分SCI火山图

    一.概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图.渐变火山图.以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用 ...

  4. 安装pkgconfig_一个R包怎么也安装不上,憋着急!

     今天是生信星球陪你的第505天 大神一句话,菜鸟跑半年.我不是大神,但我可以缩短你走弯路的半年~ 就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~ 这里有豆豆和花花的学习历程,从新 ...

  5. R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值、标题、色彩配置)、ggmosaic包绘制Marimekko图

    R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值.标题.色彩配置).ggmosaic包绘制Marimekko图 目录

  6. 在Rstudio中点一点就出来了一个R包

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

  7. r语言绘制精美pcoa图_R语言绘制交互式热图

    热图 通过热图可以简单地聚合大量数据,并使用一种渐进的色带来优雅地表现,最终效果一般优于离散点的直接显示,可以很直观地展现空间数据的疏密程度或频率高低.但也由于很直观,热图在数据表现的准确性并不能保证 ...

  8. R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)

    R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts) 目录 R语言ggplot2可视化绘制累积计数图(累加图,cumulative counts)

  9. python中数据用折线图表示_使用PyQtGraph进行Python数据可视化:绘制精美折线图(以 上证指数走势为例)...

    在前两篇文章中,我们介绍了: 在了解了基本的PyQtGraph模块绘制图形功能之后,我们通过几个常用常见的数据可视化图形来演示使用PyQtGraph进行Python数据可视化. 本篇,我们介绍使用Py ...

最新文章

  1. 虚拟机的操作系统的安装
  2. 牛客网刷题(纯java题型 181~210题)
  3. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态...
  4. R语言学习 - 热图美化 (数值标准化和调整坐标轴顺序)
  5. mangTomany 自关联之个人感悟
  6. pandas AttributeError: ‘Styler‘ object has no attribute ‘style‘解决方法
  7. linux怎么获取目录名,linux下如何获取目录名?(四种方法)
  8. 《Android Studio开发实战 从零基础到App上线》源码运行问题解答
  9. Lintcode 730 所有子集的和
  10. html div 时间,HTML DIV
  11. 销售订单的 状态 变更
  12. Lingo软件入门【数学建模】
  13. 致敬学习者丨黑马2020年度TOP榜视频教程,一键领!
  14. 最新Latex安装详细教程
  15. 信息安全从业者工作规划及能力建设
  16. 【Unity3D插件】AnyPortrait插件分享《(二)制作角色动画》
  17. 首次!让我们出一个基于延迟的同行 IP 库数据评估来打个样~
  18. html中文网页设计作品
  19. Android逆向工程:MIUI系统大揭秘:去不掉的小米账号!
  20. Push rejected: Push master to origin/master was rejected by remote

热门文章

  1. DWG格式的数据如何转换投影?
  2. 基于stm32的四轴无人机和智能车编程实践目录
  3. JMeter发送数据到Kafka
  4. 一个acmer的感悟
  5. Calander 类的使用
  6. 紫薇星上的数据结构(7)
  7. 一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈
  8. 传真百科:电子邮件能取代传真吗
  9. deepin安装tftp服务器_Win10频发蓝屏,深度Deepin系统,调试华为AC和AP
  10. hbase 使用lzo_装配HBase LZO