多种方法在火山图上标记感兴趣基因(差异基因,或者通路)

您所在的位置:网站首页 origin添加标注点 多种方法在火山图上标记感兴趣基因(差异基因,或者通路)

多种方法在火山图上标记感兴趣基因(差异基因,或者通路)

2023-03-15 04:31| 来源: 网络整理| 查看: 265

健明

全国巡讲课程结束后的一个月持续答疑环节,被问的最多的问题居然是如何在差异分析后的火山图上面标记出来感兴趣的基因,这里有必要派我们杰出能干的小洁老师出马!

要玩图,离不开哈德雷大神的ggplot2,《R数据科学》第1章和21章是专门讲图的,我写过对应的笔记:

R数据科学--详解ggplot2R数据科学--第21章 图形化沟通完整的R数据科学笔记目录(点击这里)

关于火山图加标签的需求,这里有几种方法来实现。

示例数据

方法一的示例数据是data.Rdata,方法二三的示例数据是test.Rdata。我将数据打包放在了“生信技能树”公众号后台,回复“火山图”即可获得。你解压后双击文件夹里的volcano.Rproj,复制粘贴运行本文代码即可。

方法一:利用空字符串“”原理:空字符串“”=nothing

关于空字符串,我曾写过一篇文章来讲他:R数据框里的空格子不是NA是什么

这种方法的参照是帮助文档里的一段代码: (先准备好包)

if(!require(ggplot2)) install.packages("ggplot2") if(!require(ggrepel)) install.packages("ggrepel") if(!require(dplyr))install.packages("dplyr") library(ggplot2) library(ggrepel) library(dplyr) 代码来源

下面代码来源于geom_text_repel的帮助文档

p % filter(row_number(desc(hwy)) == 1) ggplot(mpg, aes(displ, hwy)) + geom_point(aes(color = class)) + geom_point(size = 3, shape = 1, data = best_in_class) + ggrepel::geom_label_repel( aes(label = model), data = best_in_class )

这个方法适用于较大的数据。

端详代码找思路

1.从原来数据中挑选了一部分,生成新数据 2.用新数据作图,向原数据做的点图上叠加两个图层,一个空心点图,一个geom_label_repel。

step1:先把火山图画出load("test.Rdata") p 4& `-log10(P.value)`> -log10(0.000001)) step3:新图层叠加到原图上去p + geom_point(size = 3, shape = 1, data = for_label) + ggrepel::geom_label_repel( aes(label = symbol), data = for_label, color="black" )

加号连接两句代码就实现了图层的叠加,如果对ggplot2不了解,请看R数据科学第1章和第21章。但21章是整本书的错误重灾区,请看我的笔记有改正后的代码。

方法三:ggpubr的函数有现成的参数

这个函数叫ggscatter,还是用刚才的test数据来做。

代码来源

当然是群主在GitHub的的800M的GEO数据挖掘代码啦,还有配套视频:

由于ggpubr写纵坐标时直接写-log10(P.value)不识别,可采取迂回策略,改列名,完事再在图上改纵轴标签。

load("test.Rdata") if(!require(ggpubr))install.packages("ggplubr") library(ggpubr) colnames(test)[4]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3