专栏首页生信小驿站R语言之可视化⑨火山图

R语言之可视化⑨火山图

====================================== 火山图可以方便直观地展示两个样本间基因差异表达的分布情况。通常横坐标用log2(fold change)表示,差异越大的基因分布在两端,纵坐标用-log10(pvalue)表示,T检验显著性P值的负对数。通常差异倍数越大的基因T检验越显著,所以往往关注左上角和右上角的值。我们根据计算结果在图上按照FDR和我们自定义的logFC值来将这部分显著变化的基因用不同颜色标示出来以区分,这类图像往往呈现类似火山爆发的样子,于是就被叫做“火山图”(volcano plot)了。

library(ggplot2)
diff <- read.csv("DEG.Out.csv",header = T)

logFC <-diff$logFC
adj <- diff$FDR

data <- data.frame(logFC=logFC,padj=padj)
data$sig[(data$padj > 0.05|data$padj=="NA")|(data$logFC < 0.5)& data$logFC > -0.5] <- "no"
data$sig[data$padj <= 0.05 & data$logFC >= 0.5] <- "up"
data$sig[data$padj <= 0.05 & data$logFC <= -0.5] <- "down"

# 选最大值作为xlim的上下边界
x_lim <- max(logFC,-logFC)
# 绘制火山图
library(ggplot2)
library(RColorBrewer)
pdf(file = "miRNA_volcano.pdf",width=8,height=8)
theme_set(theme_bw())
p <- ggplot(data,aes(logFC,-1*log10(padj),
                   color = sig))+geom_point()+
   xlim(-5,5) +  labs(x="log2(FoldChange)",y="-log10(FDR)")
p <- p + scale_color_manual(values =c("#0072B5","grey","#BC3C28"))+
  geom_hline(yintercept=-log10(0.05),linetype=4)+
  geom_vline(xintercept=c(-0.5,0.5),linetype=4)
p <- p +theme(panel.grid =element_blank())+
    theme(axis.line = element_line(size=0))+ylim(0,15)
p <- p  +guides(colour = FALSE)
p <- p +theme(axis.text=element_text(size=20),axis.title=element_text(size=20))
p
dev.off()
print(p)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R 支持向量机①

    用户1359560
  • R语言绘制三线表

    在进行文章的撰写时,总是少不了一些表格的绘制,当然最标准的表格就是三线表了。我一般用word绘制三线表,但是R语言也可以且比较省时间。

    用户1359560
  • 单基因生信分析流程(3)一文解决生存分析和临床参数相关分析

    用户1359560
  • 重学数据结构(三、队列)

    和上一篇的栈相反,队列(queue)是一种先进先出(First In First Out, FIFO)的线性表。

    三分恶
  • DjangoWeb使用Datatable进行后端分页的实现

    使用场景:不使用Django的模版语言进行分页(网上大多数都使用该方式),使用Jquery DataTable.js 插件进行分页处理。

    砸漏
  • javascript设计模式 -- 工厂模式

    工厂模式哈,看了半天感觉大概意思就是说,有这么个函数,它会创建什么样的实例出来, 完全是取决于你传了什么样的参数进去。 创建出来的这些实例,都拥有相同的接口,就...

    web前端教室
  • Terraform语法入门

    HCL是Terraform的配置语言,它是HashiCorp发明的一种声明式语言,能够以更加简短和人性化的方式来描述资源。本文主要介绍HCL配置语言的基本语法及...

    oliverpei
  • python数据清洗

    数据的质量直接关乎最后数据分析出来的结果,如果数据有错误,在计算和统计后,结果也会有误。 所以在进行数据分析前,我们必须对数据进行清洗。需要考虑数据是否需要修...

    Python疯子
  • PVOX-自定义函数readoutput分析

    “庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然向然,奏刀騞然,莫不中音。合于《桑林》之舞,乃中《经首》之会”。

    matlab爱好者
  • R语言基础绘图教程——第4章:面积图和饼图

    DoubleHelix

扫码关注云+社区

领取腾讯云代金券