生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

318

主题
发表于 2021-11-11 11:23:21 | 查看: 3054| 回复: 2
本帖最后由 生信喵 于 2021-11-11 11:51 编辑

可视化第二弹,作图专题呢,没有看到大家的索图评论,就随缘更新吧

此次带来的是带标签的火山图,众所周知我们在差异分析后会得到logFC和P值的表格,继而就是经典的火山图了。那么如何做出一张好看的火山图呢?


好看:颜色顺眼 + 重点突出。颜色众口难调,重点就是你想要聚焦的哪些基因咯,如何把他们标注在图上呢?


简单的推导过程得出公式:好看的火山图=标注基因


好的,目的明确,下面开始主线内容:

  1. library(ggplot2)
  2. library(ggthemes)#载入R包
复制代码
  1. df <- read.table('all.txt',sep = '\t',header = T)#读入实例数据
  2. df$change = ifelse(df$fdr < 0.05,ifelse(df$logFC > 0 ,'Up','Down'),'Stable')#指定分组
  3. df$v <- -log10(df$fdr)#对fdr值做-log10转换
复制代码

这是示例数据格式。文末也会分享给大家联系。

  1. eg <- df[order(abs(df$logFC)),]#对数据排序
  2. for_label <- eg[88:97,]#选取要标注的top10,也可以自己指定基因的数据
复制代码
  1. ggplot(data = df,aes(x = logFC,y = v)) + #读入数据,指定xy轴
  2.   geom_point(alpha=1, size=1,aes(color=change)) + #画点
  3.   scale_color_manual(values=c("#4DBBD5", "grey","#E64B35"))+ #设定颜色,顺序为分组首字母的排序
  4.   geom_vline(xintercept=0,lty=4,col="black",lwd=0.8) + #画虚线
  5.   geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8) + #画虚线
  6.   theme_few() + #ggtheme的主题之一
  7.   labs(y="-log10(FDR)") + #设置y轴标题
  8.   geom_point(size = 3, shape = 1, data = for_label) + #画标注点的外圈
  9.   ggrepel::geom_label_repel(aes(label = gene),data = for_label,color="black") #画标注点的文本
复制代码

最后就是结果展示了,好看你就拿走吧,学习的同时别忘了分享此文章出去哦,这也是更新的动力来源啦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

发表于 2022-10-11 09:22:32
点开之前:能有多好看,╭(╯^╰)╮
点开之后:跪谢大佬!代码抱走了!

回复 显示全部楼层 道具 举报

发表于 2021-11-11 11:44:56
本帖最后由 生信喵 于 2021-11-11 12:05 编辑

代码中需要用到的输入数据:差异的结果(我瞎编的数据啦)。获取示例数据请在公众号"生信喵实验柴"后台回复“20211111”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-23 20:02 , Processed in 0.106388 second(s), 40 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表