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

封面

一行代码绘制火山图的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)
ggvolcano_1
  • 你必须将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
ggvolcano_2

使用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)
gradual_volcano_1

修改散点的颜色和描边

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
gradual_volcano_2
  • 如果你想调整点的大小范围,你可以使用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)
term_volcano_1

修改散点颜色和描边

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)
term_volcano_2

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

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

往期文章

1. 生信常用分析图形绘制01 -- 各种类型的热图
2. 生信常用分析图形绘制02 -- 解锁火山图真谛
3. 生信常用分析图形绘制03 -- 富集分析圈图
4. 生信常用分析图形绘制04 -- 桑基图

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容