手把手教您用R语言绘制双曲线火山图

2022-10-28 03:07:49, 多层组学定制服务 上海欧易生物医学科技有限公司



经过  往期火山图的学习,想必大家对绘制火山图都有一定的了解,火山图其实就是散点图的一种表示方式,是形如火山喷发的一种图形展示方法。典型的火山图一般横坐标表示Log2FC(即Log2 Fold Change),纵坐标表示-log10(Pvalue),再经过设置参数最终绘制出一张精美的火山图,那么不知道大家有没有遇到过双曲线火山图,如下图所示:

显而易见,双曲线火山图其实就是将Pvalue和FC的阈值线转换为双曲线,下面这张图是添加了阈值线和双曲线的火山图,从这张图可以清晰的看出双曲线作为阈值线的阈值标准:


双曲线火山图与常规火山图的区别是什么?为什么要绘制双曲线火山图呢?其实这样绘制的火山图更加有利于筛选差异更显著的蛋白或基因,讲了这么多理论,那到底怎么用代码实现呢?不要急,下面小鹿将一步一步带领大家征服双曲线火山图。


一、载入R包

在进行R图绘制前需要载入所需R包,没有安装过请先安装:

library(ggplot2)library(openxlsx)


二、读入数据,筛选显著蛋白

data <- read.xlsx(''data.xlsx'', sheet = 1,rowNames = TRUE)pv <- 0.05    #设置Pvaluefcv <- 2     #设置FCdata$sort <-as.factor(ifelse(data$`P-value`<=pv&data$FC>=fcv|data$`P-value`<=pv&data$FC<=1/fcv,ifelse(data$`P-value`<=pv&data$FC>=fcv,''up-regulated'',''down-regulated''),''non-significan''))                #按照FC及P值判断每个蛋白所属的上下调情况data$FC1 <- log2(as.numeric(data$FC))   #计算log2(FC)data$P1 <- -log10(data$`P-value`)   #计算-log10(Pvalue)


三、双曲线阈值方程式

scfun<-function(x) {  y=1/(abs(x)-log(2))-log10(0.05)}


四、绘制双曲线火山图

p <- ggplot(data,aes(x=FC1,y=P1,color=sort))+          geom_point(size=4,stroke = 0.5,alpha=0.9)+   stat_function(fun = scfun, colour="#dd7694",size=1,lty=4)+#重点在这里  scale_color_manual(values = c("#6c5ccc","gray50","#fc8474"))+   theme_linedraw()+  theme(panel.border = element_rect(fill=NA,color="black", size=1.5, linetype="solid"))+  theme(legend.text = element_text(size = 15))+  theme(legend.position = "right",legend.title = element_blank())+  theme(legend.background = element_rect(color="gray"))+  theme(panel.grid.major = element_blank(),        panel.grid.minor = element_blank())+  theme(axis.text = element_text(size = 18,family="Arial",colour = "black"),        axis.title = element_text(size = 18,family="Arial",colour = "black"))+  labs(x="log2(FC)",y="-log10(P-value)",title = "Volcano Plot")+  theme(plot.margin=unit(rep(5,11),''lines''))+  theme(plot.title = element_text(hjust = 0.5,size = 20))


经过以上几步就可以得到这张双曲线火山图了,是不是非常简单,重点就在于双曲线的方程式:y=1/(|x|-log(2))-log10(0.05),单看这个方程式是不是感觉很麻烦,但其实它就是我们初中学习的反比例函数y=1/x演变而来的,这样想想是不是就变得简单了。今天的双曲线火山图学习就到这里了,快用自己的数据试试吧!

如有问题,欢迎留言~

详情咨询鹿明生物技术工程师


猜你还想看


1、Blood | 血液科一区顶刊:急性淋巴细胞白血病的临床预后研究,选题思路精巧

2、Cell | 揭秘东亚非吸烟肺癌的蛋白质&基因组学描述发病机制和进展的分子特征

3、Nature子刊 | 口服Blautia wexlerae菌有望改善肥胖和2型糖尿病

4、项目文章 | 南昌大学陈明舜组应用黄酮酚靶向代谢组学对不同种黑桑椹价值进行评估

END

森淼|撰文

小久|排版

欢迎转发到朋友圈

本文系鹿明生物原创

转载请注明本文转自鹿明生物

我知道你在看

点击“阅读原文”了解更多


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2024 ANTPEDIA, All Rights Reserved