今天是转录组培训最后一天,剩下一点时间自由探索。朋友们来自山南海北,还是北京的最多。

一位老师聊起火山图(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度的火山图?相关推荐

  1. 在线直接绘制倾斜45度的“火山图”

    缘起头条,在线操作下,也很方便 暂无Marginal plot,后续增加此功能. 访问链接:http://www.ehbio.com/Cloud_Platform/front/#/ (点击阅读原文)

  2. html怎么设置图片倾斜度,CSS3-css如何使图片倾斜45度显示

    下面我整理下不同浏览器对倾斜图片的实现,因为是 css3 的实现方式,如要求严格还是建议使用图片来实现,具体代码: IE下的实现,里面的参数请调整以达到45度效果: style="filte ...

  3. 扩增子统计绘图5火山图:差异OTU数量及变化规律

    本网对Markdown排版支持较差,对格式不满意的用户请跳转至 或"宏基因组"公众号阅读: 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指环王等. 扩增子系列课程也分为三部 ...

  4. 差异表达基因-火山图和聚类图解释

    想研究某现象的分子机制,老板豪气的来一句,先测个转录组吧,看下差异表达基因. 是否在心里窃喜,制个样就完事了,太easy有木有.等大堆数据回来的时候,是不是傻眼了? 从何下手挑选差异表达基因呢? 今天 ...

  5. 扩增子图表解读5火山图:差异OTU数量及变化规律

    欢迎点击「宏基因组」关注我们!专业干货每日推送! 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:微生物培养组学.16S/ITS/18S扩增子.宏基因组.宏转录组. ...

  6. 宏基因组扩增子3统计绘图:中文首发,最详系,零基础(箱线图、散点图、热图、曼哈顿图、火山图、韦恩图、三元图、网络图)

    本网内容首发"宏基因组"公众号,更佳阅读体验.更多相关文章,欢迎点我跳转至公众号阅读 注:文为蓝色字均为文章链接,可点击直达 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指 ...

  7. 扩增子图表解读5火山图:差异OTU的数量及变化规律

    作者: 刘永鑫 日期:2017-7-1 阅读时长:10min 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢 ...

  8. 45度地图之整体旋转

    假设有如下一幅地图(左边为数组地图,右边为对应的位图地图),这幅地图对应的是一个一维数组int map[16],且我们知道总共有4行,4列,对于数组中的元素我们可以通过下面的公式求出它所在的行列, 第 ...

  9. 增强火山图,要不要试一下?

    包作者:Kevin Blighe 撰文:协和医学院 苑晓梅 编辑:生信宝典 前言 最近道听途说EnhancedVolcano绘制火山图的方便性,所以本人就根据其说明文档进行操作.但在操作过程中发现,其 ...

最新文章

  1. DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)
  2. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
  3. 数据库元数据数据字典查询_9_列出给定表的所有约束
  4. Rust学习资料大全
  5. QT-qevent 事件的accept()和ignore()
  6. 模板缓冲_模板缓冲以及如何使用它可视化体积相交
  7. python nltk book_nltk book的下载
  8. 微软发布通知称MSN资讯应用即将停止提供简体中文服务
  9. 01企业网络高级解决方案
  10. 用JS实现人物走动动画效果
  11. Ubuntu +NIVIDIA驱动 + CUDA + Cudnn 的详细安装指南(每一步都有说明)
  12. java标识符命名规范之驼峰命名法
  13. 初中计算机实践研究计划,《初中信息技术学科学生作品有效评价的实践研究》课题研究计划...
  14. win7无线网显示小太阳
  15. 人文笔记(芒格人类误判心理学 + 韩信研究)
  16. Markdown语法学习
  17. app自动化测试——app自动化控制、常见控件定位方法
  18. 软件构造课程心得——软件构造实验二(Lab2)
  19. echarts y轴四等分
  20. 软件测试基本方法(二)之白盒测试

热门文章

  1. 2017第二届中国信息通信大数据大会将于6月在京召开
  2. 【2016年第5期】卫星影像大数据情报分析与应用
  3. 填涂颜色(洛谷P1162题题解,Java语言描述)
  4. 【Python】Pandas加载并查询Excel文件
  5. 离散数学之集合论 【上】
  6. Fish Redux 使用指南
  7. 图数据库与关系数据库的实验对比——意大利商会 InfoCamere 案例
  8. 《Redis官方文档》Data types—数据类型
  9. 打印机共享无法正常打印的处理思路
  10. 2007-11-7学习EXT第一天:EXT简介