正文
今天再给大家安利一个专业绘制火山图的高颜值R包:
EnhancedVolcano
,非常快捷即可获得超高颜值火山图!
一整个狠狠爱住了!且这个包仅在今年(2021)年就被引用了
632次
!使用人数像是坐火箭般的蹭蹭上涨~
# 利用BioManager安装EnhancedVolcano包并载入
if(!requireNamespace("BiocManager",quietly=TRUE))
install.packages("BiocManager")
BiocManager::install("EnhancedVolcano")
library(EnhancedVolcano)
#设置工作目录并载入本地数据:
setwd("C:/Users /Desktop/ EnhancedVolcano")
data<-read.table("volcano.xls",header=T)
使用的数据data如下,我们绘图仅需要id、log
2
FC、Pvalue(或FDR)这三列数据即可。
#默认原始参数绘制基本火山图:
EnhancedVolcano(data,
x="log2FC",
y ="Pvalue",
lab=data$id)
EnhancedVolcano包可以
自动为选定的差异显著性检验P值或FDR值取对数,即计算-log
10
(p)/-
log
10
(FDR)作为纵坐标
,这让我们能够少敲几行代码,还是非常不错滴!
从下文就正式开始各项参数的配置啦,整个绘图过程只用到EnhancedVolcano()一个函数,我们根据需求在函数内添加各类参数(每段新添加的会放在最后)即可实现不同的效果。
#首先按需求设定x和y轴的阈值线:
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff
=10e-1/20,#y轴阈值线(水平,0.05)
FCcutoff=1.5,#x轴阈值线(垂直,-1.5~1.5)
pointSize=3,#散点大小
labSize=5,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100)) #限制Y轴范围
#调整散点的颜色和透明度:
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff=10e-1/20,#y轴阈值线(水平)
FCcutoff=1.5,#x轴阈值线(垂直)
pointSize=3,#散点大小
labSize=5,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100),#限制Y轴范围
####↓新加入↓####
col=c('#b5b5b5','#b5b5b5','#4D4398','#F18D00'),#调整颜色
colAlpha=0.6)#调整透明度
现在只能按照NS/
log
2
FC/p-value/p-value and
log
2
FC的顺序指定颜色,如何自定义我们在后文会提到。
#只显示所关注变量(基因名)的标签:
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff=10e-1/20,#y轴阈值线(水平)
FCcutoff=1.5,#x轴阈值线(垂直)
pointSize=3,#散点大小
labSize=5,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100),#限制Y轴范围
col=c('#b5b5b5','#b5b5b5','#4D4398','#F18D00'),#调整颜色
colAlpha=0.6,#调整透明度
####↓新加入↓####
selectLab=c('novel_circ_022837','novel_circ_016586','novel_circ_024554','novel_circ_019332','novel_circ_008986'),#使用selectLab参数选定所关注标签
xlab=bquote(~Log[2]~'fold change'))#将内容传递给xlab
除了只显示关注基因,当然也可以按需自行设定显著上/下调Top5/10的基因等等。
#标签美化:
downvals<-c('novel_circ_022837','novel_circ_016586','novel_circ_024554')
upvals<-c('novel_circ_019332','novel_circ_008986')
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff=10e-1/20,#y轴阈值线(水平)
FCcutoff=1.5,#x轴阈值线(垂直)
pointSize=3,#散点大小
labSize=4,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100),#限制Y轴范围
col=c('#b5b5b5','#b5b5b5','#4D4398','#F18D00'),#调整颜色
colAlpha=0.6,#调整透明度
selectLab=c(downvals,upvals),#使用selectLab参数选定所关注的标签
xlab=bquote(~Log[2]~'fold change'),#将内容传递给xlab
####↓新加入↓####
labCol='black',#标签颜色
labFace='bold',#标签字体
boxedLabels=TRUE,#是否在框中绘制标签
drawConnectors=TRUE,#是否通过连线将标签连接到对应的点上
widthConnectors=0.8,#连线的宽度
endsConnectors="last",#连线绘制箭头的方向,可选first、both、last
colConnectors='black')#连线的颜色
# EnhancedVolcano()+coord_flip()可翻转坐标轴:
即我们在上一段的代码后直接+coord_flip()可实现炫酷的翻转~
#自定义颜色,现在将log2FC>1.5(up)指定为橙色,将log2FC<-1.5(down)指定为蓝色,其余(nodiff)为灰色:
#指定标签向量group,通过ifelse条件判断函数指定标签和对应颜色
group<-ifelse(
data$log2FC<(-1.5)&data$Pvalue<0.05,'#4D4398',
ifelse(data$log2FC>(1.5)&data$Pvalue<0.05,'#F18D00',
'#b5b5b5'))
group[is.na(group)]<-'#b5b5b5'
names(group)[group=='#F18D00']<-'Up'
names(group)[group=='#b5b5b5']<-'Nodiff'
names(group)[group=='#4D4398']<-'Down'
downvals<-c('novel_circ_022837','novel_circ_016586','novel_circ_024554')
upvals<-c('novel_circ_019332','novel_circ_008986')
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff=10e-1/20,#y轴阈值线(水平)
FCcutoff=1.5,#x轴阈值线(垂直)
pointSize=3,#散点大小
labSize=4,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100),#限制Y轴范围
selectLab=c(downvals,upvals),#使用selectLab参数选定所关注的标签
xlab=bquote(~Log[2]~'fold change'),#将内容传递给xlab
labCol='black',#标签颜色
labFace='bold',#标签字体
boxedLabels=TRUE,#是否在框中绘制标签
drawConnectors=TRUE,#是否通过连线将标签连接到对应的点上
widthConnectors=0.8,#连线的宽度
endsConnectors="last",#连线绘制箭头的方向,可选first、both、last
colConnectors='black',#连线的颜色
####↓新加入↓####
colCustom=group,#用group覆盖默认配色方案
colAlpha=0.6)#调整透明度
##标题、副标题、图例、阈值线等的美化:
EnhancedVolcano(data,
x="log2FC",
y="Pvalue",
lab=data$id,
pCutoff=10e-1/20,#y轴阈值线(水平)
FCcutoff=1.5,#x轴阈值线(垂直)
pointSize=3,#散点大小
labSize=3.5,#标签大小
xlim=c(-6, 6),#限制X轴范围
ylim=c(0,100),#限制Y轴范围
selectLab=c(downvals,upvals),#使用selectLab参数选定所关注的标签
xlab=bquote(~Log[2]~'fold change'),#将内容传递给xlab
labCol='black',#标签颜色
labFace='bold',#标签字体
boxedLabels=TRUE,#是否在框中绘制标签
drawConnectors=TRUE,#是否通过连线将标签连接到对应的点上
widthConnectors=0.8,#连线的宽度
endsConnectors="last",#连线绘制箭头的方向,可选first、both、last
colConnectors='black',#连线的颜色
colCustom=group,#用group覆盖默认配色方案
colAlpha=0.6,#调整透明度
####↓新加入↓####
cutoffLineType='longdash',#阈值线类型,可选“blank”、“solid”、“dashed”、“dotted”、“dotdash”、“longdash”和“twodash”
cutoffLineCol='pink',#阈值线颜色
cutoffLineWidth=0.88,#阈值线粗细
title="Volcano Plot Exp",#主标题
subtitle="Differential expression",#副标题
caption=bquote(~Log[2]~"fold change cutoff,1;p-value cutoff,0.05"),#注释说明
legendPosition='right',#图例位置
legendLabSize=12,#图例文字大小
legendIconSize=6)#图例符号大小