本帖最后由 生信喵 于 2021-11-11 11:51 编辑
可视化第二弹,作图专题呢,没有看到大家的索图评论,就随缘更新吧 此次带来的是带标签的火山图,众所周知我们在差异分析后会得到logFC和P值的表格,继而就是经典的火山图了。那么如何做出一张好看的火山图呢?
好看:颜色顺眼 + 重点突出。颜色众口难调,重点就是你想要聚焦的哪些基因咯,如何把他们标注在图上呢?
简单的推导过程得出公式:好看的火山图=标注基因
好的,目的明确,下面开始主线内容: - library(ggplot2)
- library(ggthemes)#载入R包
复制代码- df <- read.table('all.txt',sep = '\t',header = T)#读入实例数据
- df$change = ifelse(df$fdr < 0.05,ifelse(df$logFC > 0 ,'Up','Down'),'Stable')#指定分组
- df$v <- -log10(df$fdr)#对fdr值做-log10转换
复制代码这是示例数据格式。文末也会分享给大家联系。 - eg <- df[order(abs(df$logFC)),]#对数据排序
- for_label <- eg[88:97,]#选取要标注的top10,也可以自己指定基因的数据
复制代码- ggplot(data = df,aes(x = logFC,y = v)) + #读入数据,指定xy轴
- geom_point(alpha=1, size=1,aes(color=change)) + #画点
- scale_color_manual(values=c("#4DBBD5", "grey","#E64B35"))+ #设定颜色,顺序为分组首字母的排序
- geom_vline(xintercept=0,lty=4,col="black",lwd=0.8) + #画虚线
- geom_hline(yintercept = -log10(0.05),lty=4,col="black",lwd=0.8) + #画虚线
- theme_few() + #ggtheme的主题之一
- labs(y="-log10(FDR)") + #设置y轴标题
- geom_point(size = 3, shape = 1, data = for_label) + #画标注点的外圈
- ggrepel::geom_label_repel(aes(label = gene),data = for_label,color="black") #画标注点的文本
复制代码最后就是结果展示了,好看你就拿走吧,学习的同时别忘了分享此文章出去哦,这也是更新的动力来源啦! |