什么是倾斜45度的火山图?
今天是转录组培训最后一天,剩下一点时间自由探索。朋友们来自山南海北,还是北京的最多。
一位老师聊起火山图(Volcano plot | 别再问我这为什么是火山图 (在线轻松绘制)),说见过倾斜45度的类似图,可否演示怎么画?想了下,可能是下面这种图,绘起来看看。
检查和安装包
a = rownames(installed.packages())
if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager", repos = site)a = rownames(installed.packages())install_bioc <-c("egg","ggpubr","ggplot2")for (i in install_bioc) {if (!i %in% a)BiocManager::install(i, update = F)
}if (!"ImageGP" %in% a){# devtools::install_github("Tong-Chen/ImageGP")devtools::install_git("https://gitee.com/ct5869/ImageGP.git")
}library(ImageGP)
library(ggplot2)
library(ggpubr)
library(egg)
读入数据并标记差异基因
数据是基于DESeq2分析的差异基因数据。
file <- "data/ehbio.simplier.DESeq2.trt._vs_.untrt.results.txt"diffexpr <- sp_readTable(file, row.names=1)# 做一个log转换
diffexpr$trt <- log2(diffexpr$trt+1)
diffexpr$untrt <- log2(diffexpr$untrt+1)head(diffexpr)## trt untrt baseMean log2FoldChange pvalue padj
## ENSG00000152583 10.88130 6.354646 983.042 4.546 1.219e-91 2.149e-87
## ENSG00000189221 12.09256 8.706410 2391.559 3.387 9.955e-61 8.779e-57
## ENSG00000179094 10.40316 7.343044 757.249 3.065 2.435e-54 1.432e-50
## ENSG00000116584 10.50370 11.567470 2242.427 -1.064 3.957e-49 1.745e-45
## ENSG00000120129 12.55314 9.579082 3386.426 2.975 1.930e-48 6.807e-45
## ENSG00000134686 12.04738 10.587715 2884.847 1.460 1.846e-45 5.427e-42
标记差异基因
diffexpr$level <- ifelse(diffexpr$padj<0.05, ifelse(diffexpr$log2FoldChange>=1, "trt up", ifelse(diffexpr$log2FoldChange<=-1, "untrt up", "NoSig")),"NoSig")
head(diffexpr)## trt untrt baseMean log2FoldChange pvalue padj level
## ENSG00000152583 10.88130 6.354646 983.042 4.546 1.219e-91 2.149e-87 trt up
## ENSG00000189221 12.09256 8.706410 2391.559 3.387 9.955e-61 8.779e-57 trt up
## ENSG00000179094 10.40316 7.343044 757.249 3.065 2.435e-54 1.432e-50 trt up
## ENSG00000116584 10.50370 11.567470 2242.427 -1.064 3.957e-49 1.745e-45 untrt up
## ENSG00000120129 12.55314 9.579082 3386.426 2.975 1.930e-48 6.807e-45 trt up
## ENSG00000134686 12.04738 10.587715 2884.847 1.460 1.846e-45 5.427e-42 trt up
基于ImageGP绘图
p <- sp_scatterplot(diffexpr, xvariable = "trt", yvariable = "untrt", color_variable = "level",color_variable_order = c("NoSig","trt up", "untrt up"),manual_color_vector = c("grey","firebrick","dodgerblue"),legend.position = c(0.8,0.3)) + coord_fixed(1)
p
到这满足需求了,又有老师说能不能加上数据分布展示?
拼上Marginal plot
xplot <- ggplot(diffexpr, aes(x=trt)) + geom_histogram(fill="firebrick") +theme_classic() + theme(axis.line.x=element_blank(), axis.ticks.x=element_blank(), axis.text.x = element_blank(), axis.title.x = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.border = element_blank(),panel.background = element_blank(),legend.title = element_blank(),legend.position = c(0.75,0.85),#legend.title = element_text(size = 5), legend.text = element_text(size = 8),legend.key.size = unit(0.5, "lines"),legend.spacing = unit(0.3, "cm"),) + ylab("Density")
xplot
yplot <- ggplot(diffexpr, aes(x=untrt)) + geom_histogram(fill="dodgerblue") +theme_classic() +theme(axis.line.y=element_blank(), axis.ticks.y=element_blank(), axis.text.y = element_blank(), axis.title.y=element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.border = element_blank(),panel.background = element_blank(),legend.title = element_blank(),legend.position = c(0.7,0.8),#legend.title = element_text(size = 5), legend.text = element_text(size = 8),legend.key.size = unit(0.5, "lines"),legend.spacing = unit(0.3, "cm"),) + ylab("Density") +rotate()
yplot
合并起来
white <- ggplot() + theme_void()egg::ggarrange(xplot, white, p, yplot, widths=c(5,2),heights = c(2,5),padding=unit(0,"line"))
也可以用现成的工具
用ggpubr绘制
ggscatterhist(diffexpr, x="trt", y="untrt", color="level",palette=c("grey","firebrick","dodgerblue"), margin.plot="histogram" )
输出数据用在线工具绘制
见次条
高颜值免费在线绘图工具
http://www.ehbio.com/Cloud_Platform/front/#/analysis?page=b%27MTI%3D%27
sp_writeTable(diffexpr, file="DE_gene_label.txt")
数据和代码见 https://gitee.com/ct5869/shengxin-baodian/Plot
往期精品(点击图片直达文字对应教程)
机器学习
后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集
什么是倾斜45度的火山图?相关推荐
- 在线直接绘制倾斜45度的“火山图”
缘起头条,在线操作下,也很方便 暂无Marginal plot,后续增加此功能. 访问链接:http://www.ehbio.com/Cloud_Platform/front/#/ (点击阅读原文)
- html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示
下面我整理下不同浏览器对倾斜图片的实现,因为是 css3 的实现方式,如要求严格还是建议使用图片来实现,具体代码: IE下的实现,里面的参数请调整以达到45度效果: style="filte ...
- 扩增子统计绘图5火山图:差异OTU数量及变化规律
本网对Markdown排版支持较差,对格式不满意的用户请跳转至 或"宏基因组"公众号阅读: 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指环王等. 扩增子系列课程也分为三部 ...
- 差异表达基因-火山图和聚类图解释
想研究某现象的分子机制,老板豪气的来一句,先测个转录组吧,看下差异表达基因. 是否在心里窃喜,制个样就完事了,太easy有木有.等大堆数据回来的时候,是不是傻眼了? 从何下手挑选差异表达基因呢? 今天 ...
- 扩增子图表解读5火山图:差异OTU数量及变化规律
欢迎点击「宏基因组」关注我们!专业干货每日推送! 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:微生物培养组学.16S/ITS/18S扩增子.宏基因组.宏转录组. ...
- 宏基因组扩增子3统计绘图:中文首发,最详系,零基础(箱线图、散点图、热图、曼哈顿图、火山图、韦恩图、三元图、网络图)
本网内容首发"宏基因组"公众号,更佳阅读体验.更多相关文章,欢迎点我跳转至公众号阅读 注:文为蓝色字均为文章链接,可点击直达 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指 ...
- 扩增子图表解读5火山图:差异OTU的数量及变化规律
作者: 刘永鑫 日期:2017-7-1 阅读时长:10min 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢 ...
- 45度地图之整体旋转
假设有如下一幅地图(左边为数组地图,右边为对应的位图地图),这幅地图对应的是一个一维数组int map[16],且我们知道总共有4行,4列,对于数组中的元素我们可以通过下面的公式求出它所在的行列, 第 ...
- 增强火山图,要不要试一下?
包作者:Kevin Blighe 撰文:协和医学院 苑晓梅 编辑:生信宝典 前言 最近道听途说EnhancedVolcano绘制火山图的方便性,所以本人就根据其说明文档进行操作.但在操作过程中发现,其 ...
最新文章
- DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 数据库元数据数据字典查询_9_列出给定表的所有约束
- Rust学习资料大全
- QT-qevent 事件的accept()和ignore()
- 模板缓冲_模板缓冲以及如何使用它可视化体积相交
- python nltk book_nltk book的下载
- 微软发布通知称MSN资讯应用即将停止提供简体中文服务
- 01企业网络高级解决方案
- 用JS实现人物走动动画效果
- Ubuntu +NIVIDIA驱动 + CUDA + Cudnn 的详细安装指南(每一步都有说明)
- java标识符命名规范之驼峰命名法
- 初中计算机实践研究计划,《初中信息技术学科学生作品有效评价的实践研究》课题研究计划...
- win7无线网显示小太阳
- 人文笔记(芒格人类误判心理学 + 韩信研究)
- Markdown语法学习
- app自动化测试——app自动化控制、常见控件定位方法
- 软件构造课程心得——软件构造实验二(Lab2)
- echarts y轴四等分
- 软件测试基本方法(二)之白盒测试