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
优雅小猫|撰文
小久|排版
欢迎转发到朋友圈
本文系鹿明生物原创
转载请注明本文转自鹿明生物
我知道你在看哟
点击“阅读原文”了解更多
04-15 牛津仪器
线上研讨会 | 利用BEX实现SEM中的先进EDS分析:材料科学与电池应用04-14 牛津仪器
Moxi Go II库尔特流式细胞仪应用于类风湿性关节炎疗法的研究04-14 环亚生物
Moxi系统助力CAR T细胞在实体瘤微环境中的功能障碍研究04-14 APGBio
Moxi GO II 库尔特流式细胞仪在CAR-T疗法中的应用04-14 环亚生物
Moxi库尔特细胞计数及流式细胞分析仪在PBMC检测中的应用04-14 环亚生物
线粒体“重启”疗法|攻克儿童神经母细胞瘤,这项研究带来颠覆性突破04-14 安捷伦科技
不容小觑!复杂宠物食品基质中多类别真菌毒素检测04-14 安捷伦科技
药物分析排忧解难系列 | 中药检验时间紧任务重,究竟该咋办04-14 安捷伦科技
助力嫦娥探月,安捷伦串联无机质谱破解月球身世密码04-14 安捷伦科技
婴幼儿奶粉维生素 K1 异构体分析-安捷伦国产柱 ValueLab GP‑C3004-14 安捷伦科技
“老友”记 | 寻找安捷伦 6890 金牌守护者,一键解锁专属福利04-14 安捷伦科技
廿载深耕创变 智汇赋能全球|哈希中国研发20周年庆典彰显本土创新硬实力04-14 哈希公司
“我以为没有明天了”,CAR-T带来重生04-13 创造奇迹的
赛默飞与新加坡精准健康研究院达成战略合作04-13
开班通知|真机实操,真材实料,纽迈分析2026第一届核磁应用培训班硬核启航04-13 纽迈分析
缘起南开聚滨海 共探纯化新高度 —— 南开大学生物医药企业家校友考察团走进博蕴生物04-13
ArrayJet微阵列生物芯片点样仪制备植物糖芯片助力土壤盐碱化研究04-13 环亚生物
ArrayJet生物芯片点样仪助力SARS-CoV-2与甲型流感病毒感染的体液免疫差异化研究04-13 环亚生物
ArrayJet生物芯片点样仪制备蛋白芯片助力马哮喘研究04-13 环亚生物









