2022-09-27 17:28:12, 多层组学定制服务 上海欧易生物医学科技有限公司

火山图是散点图的一种,通过将统计测试中的统计显著性量度(如pvalue)与变化幅度相结合从而更快速直观的展示那些变化幅度较大且具有统计意义的数据点。
火山图应用很多,它能够清晰地展示显著上调和下调的蛋白/基因,样式繁多,本文展示渐变火山图的绘制方法,如下图:
NO.1
示例数据与R包载入
library(openxlsx)library(ggplot2)library(ggrepel) #用于标记的包data <- read.xlsx("data.xlsx")#读取数据head(data)#查看数据,Marker列为1的需要标记,Marker列为0的不用
NO.2
绘制简易火山图--首先绘制出图的大致形状,修改散点为渐变色,大小为渐变大小
ggplot(data,aes(log2(FC),-1*log10(PValue))) +#加载数据,定义横纵坐标geom_point(aes(color = -log10(PValue),size = -log10(PValue))) + #设置散点图geom_vline(xintercept = c(-log2(FC),log2(FC)),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于x轴的虚线geom_hline(yintercept = -log10(PValue),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于y轴的虚线,lty指定线条类型线,lwd是线条宽度annotate("text",x = 1.3,y = -log10(PValue) - 0.1,label = "P-value=0.05",colour = "black") +annotate("text",x = -0.37,y = 6.4,label = "FC=1/1.2",colour = "black") +annotate("text",x = 0.35,y = 6.4,label = "FC=1.2",colour = "black") +#annotate添加虚线标签scale_color_gradientn(values = seq(0,1,0.2),colors = c("#39489f","#39bbec","#f9ed36","#f38466","#b81f25")) +#指定颜色渐变模式scale_size_continuous(range = c(2,3)) +#指定散点大小渐变模式labs(title = "Volcano Plot",#主题x = "log2(FC)",#x轴标签y = "-log10(P-value)") +theme_bw() + #设置主题theme(panel.grid = element_blank())#移除网格
NO.3
为部分散点添加label
(一)根据Marker标记,新增一列用于存储label信息
data$label <- ifelse(data$Marker == 1,as.character(data$Accession),"")(二)根据PValue小于多少和log[2]FC的绝对值大于多少筛选出合适的点
#PvalueLimit = 0.01#FCLimit = 1data$label <- ifelse(data$PValue < PvalueLimit & abs(log2(data$FC)) >= FCLimit,as.character(data$Accession),"")#绘图ggplot(data,aes(log2(FC),-1*log10(PValue))) +#加载数据,定义横纵坐标geom_point(aes(color = -log10(PValue),size = -log10(PValue))) + #设置散点图geom_vline(xintercept = c(-log2(FC),log2(FC)),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于x轴的虚线geom_hline(yintercept = -log10(PValue),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于y轴的虚线,lty指定线条类型线,lwd是线条宽度annotate("text",x = 1.3,y = -log10(PValue) - 0.1,label = "P-value=0.05",colour = "black") +annotate("text",x = -0.37,y = 6.4,label = "FC=1/1.2",colour = "black") +annotate("text",x = 0.35,y = 6.4,label = "FC=1.2",colour = "black") +#annotate添加虚线标签scale_color_gradientn(values = seq(0,1,0.2),colors = c("#39489f","#39bbec","#f9ed36","#f38466","#b81f25")) +#指定颜色渐变模式scale_size_continuous(range = c(2,3)) +#指定散点大小渐变模式geom_text_repel(aes(label = label,color = -1*log10(PValue)),max.overlaps = 1000000) +#最大覆盖率,当点很多时,有些标记会被覆盖,调大该值则不会被覆盖labs(title = "Volcano Plot",#主题x = "log2(FC)",#x轴标签y = "-log10(P-value)") +theme_bw() + #设置主题theme(panel.grid = element_blank())#移除网格
也可以设置arrow = arrow(length = unit(0.015, "npc")添加箭头标注,如下图:
NO.4
添加边际密度图和直方图并设定颜色
data$label <- ifelse(data$Marker == 1,as.character(data$Accession),"")ggplot(data,aes(log2(FC),-1*log10(PValue))) +#加载数据,定义横纵坐标geom_point(aes(color = -log10(PValue),size = -log10(PValue))) + #设置散点图geom_vline(xintercept = c(-log2(FC),log2(FC)),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于x轴的虚线geom_hline(yintercept = -log10(PValue),lty = 2,col = "#999999",lwd = 0.8) +#添加垂直于y轴的虚线,lty指定线条类型线,lwd是线条宽度annotate("text",x = 1.3,y = -log10(PValue) - 0.1,label = "P-value=0.05",colour = "black") +annotate("text",x = -0.37,y = 6.4,label = "FC=1/1.2",colour = "black") +annotate("text",x = 0.35,y = 6.4,label = "FC=1.2",colour = "black") +#annotate添加虚线标签scale_color_gradientn(values = seq(0,1,0.2),colors = c("#39489f","#39bbec","#f9ed36","#f38466","#b81f25")) +#指定颜色渐变模式scale_size_continuous(range = c(2,3)) +#指定散点大小渐变模式geom_text_repel(aes(label = label,color = -1*log10(PValue)),max.overlaps = 1000000,#最大覆盖率,当点很多时,有些标记会被覆盖,调大该值则不会被覆盖arrow = arrow(length = unit(0.015, "npc")),#添加箭头box.padding = 1.2,segment.size = 0.65,#标记的边距和标记线条的大小show.legend = F,nudge_x = ifelse(log2(data$FC) < 0,-0.5,0.5)) +labs(title = "Volcano Plot",#主题x = "log2(FC)",#x轴标签y = "-log10(P-value)") +guides(col = guide_colourbar(title = "-Log10(P-value)"),size = "none")+#不显示部分图例theme_bw() + #设置主题theme(panel.grid = element_blank(),legend.position = "left"#改变图例位置)#移除网格q <- ggMarginal(p,type="densigram",#添加边际图xparams = list(fill ="orange"),yparams = list(fill ="skyblue"))
经过这四步渐变火山图就绘制完成了,但本系列还没有结束,后面小鹿将会用R语言绘制双曲线火山图,敬请期待~
文末福利
大家知道在KEGG PATHWAY Database里面,Map01100就是总的代谢图,但是下载下来的版本总是不清楚,看不清代谢物质,不满意。
划重点:请关注鹿明生物公众号,并在后台回复“通路图”免费领取高清版本,并附带翻译版本的总代谢物图
图 | 总代谢通路图
猜你还想看
1、新型单细胞技术 | 近40%发表于CNS等学术顶刊及其子刊上的技术应用研究策略~
2、J HAZARD MATER | 脂质组+空间代谢组学揭示双酚F在乳腺癌异种移植中的毒理学机制
4、Cell精选 |肠心轴研究:非靶+靶向+微生物组研究菌群代谢物苯乙酰谷氨酰胺是增加心血管疾病又一推手
END
优雅小猫|撰文
小久|排版
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点击“阅读原文”了解更多
08-06 市场部
专业之选 · 一站配齐 | Ellutia 色谱全线产品08-06 Ellutia
从一粒沙到一颗芯:LAUDA 如何用精准温控守护半导体未来08-06 LAUDA_China
Nature子刊|覆盖18大器官!同济大学田志新教授首次绘制人类器官N-糖蛋白全景图谱08-06
水汇青城,圆满落幕——北裕仪器“黑灯实验室”构建智慧监测新生态08-06
国仪量子扫描电镜助力岩爆防控!SEM3200揭示微波卸压下花岗岩损伤机制08-05 CIQTEK
低空经济起飞,测试如何跟上?《德思特低空经济发展白皮书》:洞察前沿趋势,解码落地方案08-05 德思特
肌苷的分析 参考《中国药典》(2025年版)二部08-05 YoYo老师
梅罗仰望的“千球大关”,三英精密已交卷!08-05
同样的设备,一个选原厂,一个选第三方——差距有多大?08-05
安图的“第一”系列 | 破解微生物药敏检测难题,打通精准诊疗“高速路”08-05 小安
TA FAQs【19】| TMA的微分曲线(DTMA曲线)代表什么?它又有哪些用途呢?08-05 日立分析仪器
直播邀约丨实例剖析七位半数字多用表的调整及验证过程08-05
有奖答题 |看不见的风险,你能提前发现吗?08-05
专家课堂 | 公司电脑USB全封?告别数据线,热像仪图片这样秒传!08-05
应用案例 | Fluke 2082定位仪查找地下铠装光缆08-05
积分商城 | 7月积分兑换名单08-05
一针致命!雅诗兰黛高管医美填充离世警示:填充剂微粒质控是生命防线08-04
产品推荐 | 让微弱脉冲信号更清晰——锁相放大器集成Boxcar平均器08-04 赛恩科仪
十一载薪火共振,深耕自旋新程|2026年EPR高级研讨班成功举办08-04 CIQTEK









