火山图可以方便直观地展示两个样本间基因差异表达的分布情况。通常横坐标用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$FDRdata <- 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)


参考:
https://www.jianshu.com/p/efb41e5f0ee2

R语言之可视化-火山图相关推荐

  1. R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签

    R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加分组显著性(significance)标签 目录 R语言ggplot2可视化箱图(boxplot)并使用ggsignif添加显 ...

  2. R语言ggplot2可视化密度图(density plot)、改变密度图下的填充色实战

    R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战 目录 R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战

  3. R语言ggplot2可视化箱图、配置抖动数据点(jitter points)避免数据点互相覆盖、并使用线条(line)连接两个箱图中不同分组成对的数据点(jitter on Boxplots)

    R语言ggplot2可视化箱图.配置抖动数据点(jitter points)避免数据点互相覆盖.并使用线条(line)连接两个箱图中不同分组成对的数据点(Connecting Paired Point ...

  4. R语言ggplot2可视化线图(line plot):当数据有中断、缺失时R不会将数据绘制为连续的线图、而是出现断点

    R语言ggplot2可视化线图(line plot):当数据有中断.缺失时R不会将数据绘制为连续的线图.而是出现断点 目录

  5. R语言ggplot2可视化交互作用图(Interaction Plot):可视化不同分组(分类变量1)在不同剂量下(分类变量2)的箱图(box plot)、均值计算并连接成线图(line plot)

    R语言ggplot2可视化交互作用图(Interaction Plot):可视化不同分组(分类变量1)在不同剂量下(分类变量2)的箱图(box plot).均值计算并连接成线图(line plot) ...

  6. R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签

    R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签 目录

  7. R语言ggplot2可视化改变图中线条的透明度级别实战

    R语言ggplot2可视化改变图中线条的透明度级别实战 目录 R语言ggplot2可视化改变图中线条的透明度级别实战 #默认没有透明

  8. R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战

    R语言ggplot2可视化箱图(boxplot)时忽视异常值(outlier)并重新分配坐标轴的范围是的可视化的箱图可以有效显示箱体实战 目录

  9. R语言ggplot2可视化线图(line plot)、自定义设置X轴标签为字符串标签,将原有的指定间隔的数字标签替换为指定的字符串标签(change x axis labels into string

    R语言ggplot2可视化线图(line plot).自定义设置X轴标签为字符串标签,将原有的指定间隔的数字标签替换为指定的字符串标签(change x axis labels into string ...

最新文章

  1. 《CCNA ICND2(200-101)认证考试指南(第4版)》——第1章定义生成树协议
  2. cdr怎么转换成psd转换为位图标准_动漫角色转换真人,飞屋环游记中的小罗竟酷似他……...
  3. WCF 4.0 REST服务解决Method Not Allowed错误
  4. ListView几个比较特殊的属性
  5. 设备无法获得谷歌运行怎么办_因此,您刚刚获得了Google主页。 怎么办?
  6. python中的索引从几开始计数_计算机为什么要从 0 开始计数?
  7. ElasticSearch highlight搜索结果高亮显示(英文检索)
  8. Fedora32升级Fedora33后无线网络无法连接的问题
  9. R语言ggplot2包之画折线图
  10. python的skimage库 图像中值滤波;均值滤波;极大值滤波
  11. 创建和删除目录mkdir/rmdi
  12. java jvm 1.6_JVM1.6 GC详解
  13. M1芯片,PS2022版真的来了。Photoshop 2022 for Mac中文版介绍安装教程,支持Monterey系统
  14. 【1084】幂的尾数
  15. 读书笔记 --- 组织结构设计
  16. Mac下的平铺式桌面 - Yabai
  17. java 用户登录_java编写用户登录
  18. 图片文件捆绑教学(仅限制图片与rar)
  19. 综合布线之“五星对话”
  20. 10万行代码电商项目

热门文章

  1. 服务器安全设置之--硬盘权限篇
  2. [导入]用程序来还原数据库(一个遗留了两年的问题)
  3. 只要努力搞,没有KPI搞不垮的团队?
  4. 今天,进程告诉我线程它它它它不想活了
  5. 这组动画完美演绎了一个程序员从接手新项目到交货的复杂心情
  6. QCon演讲| 从团伙到团队,PingCode研发团队敏捷实践血泪史
  7. 12 Java程序员面试宝典视频课程之面向对象
  8. 嵌入式系统之温限使用
  9. 20年的嵌入式开发经验总结
  10. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...