如何用ggVolcano包画出简单火山图

作为一名自来水用户,翻到了大佬自创R包画火山图,真正实现了一行代码画出火山图。👍👍👍

我花了10分钟学会了如何用,那就再花30分钟写一篇如何用吧。以此向大佬致敬。

一、安装和试用

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

先直接用
devtools::install_github(“BioSenior/ggVolcano”)
安装试试,如果安装报错或安装不上,把devtools安装上,即运行install.packages(“devtools”)
如果还有问题,那么就需要自行百度根据具体问题具体解决了。

安装成功后,运行

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)

这四步都能运行出来,那么恭喜你距离成功又进了一步。

二、使用细节
写前我不得不多说一句。
其实作为用户,一般报错都是因为细节没注意到位,或者说是,没有按照R包的说明来使用R包
进入正题。
画图前你肯定有这么个数据集。
在这里插入图片描述
我这个是csv格式的文件,其实不论有几列,用这个R包画火山图的核心在于有ID列(即基因名),log2FoldChange列和padj列,其他的有没有都不重要。

  1. 读取数据集
data1 <- read.csv('user_ 4M _vs_ CK .csv')

#txt格式的就用
#data1 <- read.table("all_counts.txt",header = T)
  1. 用add_regulate()函数添加regulate列,判定基因属于Down,Normal还是Up
data <- add_regulate(data1, log2FC_name = "log2FoldChange",
                     fdr_name = "padj",log2FC = 1, fdr = 0.05)

这里我觉得只有一个细节值得说,就是log2FC_name和fdr_name这两个引号里的内容是你的原数据里对应的列名。如果一样就照搬代码;如果不一样,比如有些"log2FoldChange",在原数据里写的是”log2FC“,那么这里的代码就是log2FC_name = “log2FC”,或者更推荐的办法是直接进入原数据,把对应列名改成"log2FoldChange"。

  1. 画图
ggvolcano(data, x = "log2FoldChange", y = "padj",label="ID",
          label_number = 0, output = FALSE)

这里的label是根据个人数据的基因列名改的,我的是"ID";
label_number = 0,我设成了0,因为我不需要在火山图里展示基因名,这里的数字个数就是展示的基因名个数。

稍微改动,换个颜色

ggvolcano(data, x = "log2FoldChange", y = "padj",label="ID",
          label_number = 0, output = FALSE,
          fills = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"),
          colors = c("#357EBDFF", "#B8B8B8FF", "#D43F3AFF"))

颜色顺序从左到右对应的是Down,Normal和Up.
成图如下:
在这里插入图片描述

  1. 其他细节

换图例位置,用(但是换到哪都是在图内显示)

legend_position	#the position of legend. You can choose one from "UL" – Up Left, "UR" – Up Right, "DL" – Down Left, "DR" – Down Right

可以改x或y轴名称,图例名称,点的大小和性状

pointSize	size of the point.

pointShape	shape of the point.

x_lab	label of x-axis.

y_lab	label of y-axis.

legend_title	title of the legend.

这些都是查看函数的帮助信息看到的,直接运行👇看更多细节调整

?ggvolcano

但是好像无法直接改横纵坐标的尺度,比如x轴,当下是0,5,10。我想改成0,2,4,6,8,10该如何改动呢。

  1. 遇到过的报错/警告

① 一个报错

在这里插入图片描述

Error in data$label[order(data$y)[1:label_number]] <- data$geneName[order(data$y)[1:label_number]] : 
  replacement has length zero

这里是由于label = “row”,没改成我的列名,label=“ID”

② 一个警告
在这里插入图片描述

Warning message:
ggrepel: 9 unlabeled data points (too many overlaps). Consider increasing max.overlaps 

这里是由于我的基因名太长,导致展示时有很多重叠,所以有个Warning,我把abel_number 设成0就没有警告了。其实不管也不影响图的输出。

写完了,其实使用还是非常简单的,按照作者的教程来就行。更多高阶用法看原博主
再肝一个R包!一行代码绘制精美火山图!
如果大家还遇到什么报错,欢迎补充和描述最后的解决办法。
最后,致敬大佬,感谢大佬🍻

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值