R package:ggplot2&ggrepel 带label的火山图

1.安装包

install.packages('ggplot2')#已安装请绕过
install.packages('ggrepel')
library('ggplot2')
library('ggrepel')

2.导入数据(因人而异)

#生成一个向量
myfiles <- list.files(pattern = "*mFPKM.csv")
#选择导入向量中的第一个数据集
data <- read.csv(myfiles[1],header=T)#

3.加列

## 给数据集加一列sig:根据data中的pvalue和log2FoldChange给不同的标签
## #padj大于0.05或log2FoldChange小于1或大于-1的列定义为no
data$sig[(data$pvalue > 0.05|data$pvalue=="NA")|abs(data$log2FoldChange) < 1] <- "no"
data$sig[data$pvalue <= 0.05 & data$log2FoldChange >= 1] <- "up"
data$sig[data$pvalue <= 0.05 & data$log2FoldChange <= -1] <- "down"

4.画图

ggplot(data=data)+
  geom_point(data=data,aes(x=log2FoldChange,y=-log10(pvalue),color=sig),alpha=0.8,size=3)+
  #注意下标
  labs(y=expression(log[10] (pvalue)))+
  #注意下标
  labs(x=expression(log[2](FoldChange)))+
  theme(plot.title = element_text(hjust = 0.5,color="red",size=15),axis.title.x=element_text(size=15,family="serif"),axis.title.y=element_text(size=15,family="serif"))+# 水平方向位置
  geom_hline(yintercept=1.3,linetype="dashed",size=1)+geom_vline(xintercept=c(-1,1),linetype=4,size=1)+#添加虚线,参数为dashed
  #添加XY轴范围
  xlim(-6,6)+ylim(0,30)+
  scale_color_manual(values =c("#377EB8","grey","#E41A1C"))+
  #scale_color_manual(values =c("green","blue", "red"))+
  geom_text_repel(data=subset(data, data$pvalue <= 0.05 & abs(log2FoldChange) >= 1.3),aes(x=log2FoldChange,y=-log10(pvalue),label=Row.names),size=2.5)
SM_vs_YX.Volcano.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 11,002评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,904评论 1 32
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 9,465评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,322评论 0 10
  • " When I see a bird that walks like a duck and swims like...
    新人作者小可阅读 4,680评论 0 1

友情链接更多精彩内容