查看原文
其他

用shiny创作在线火山图绘制App

JunJun 老俊俊的生信笔记 2022-08-15

    转录组数据得到counts文件后,我们可以使用limmaDESeq2edgeR等三款主流的差异分析软件做差异分析。然后可以对差异结果做各种分析和可视化展示,火山图就是展示差异基因数量和分布的一种形式,下面放一张一篇nature文献里的volcano plot

    自己平时做到转录组下游数据分析,需要绘制火山图时,需要每次打开之前写的R脚本,然后修改代码绘制,感觉也挺麻烦的。于是学了一些R shiny相关的基础知识,把需要每次写代码的操作转化为用鼠标点点点 操作岂不是更方便,只要每次上传差异结果的数据不就行了。

    既然想了就上手实践起来,在网上也搜过曾经有徐州更大佬写过一个的小程序:

    画出来是这个样子,作者也提供了shiny的代码:

感觉挺不错的

——————————————————————————

下面该自己出手了,主要使用ggplot2包绘制的。

    想好大体的框架:

  1. 上传数据

  2. 绘制火山图

  3. 绘制MA plot

  4. 细节调整

  5. 下载pdf图

  6. 下载筛选数据

    基本框架好了就可以写代码一步步调试了,调试真是个激动(头疼)的过程,稍微不注意少个逗号或者括号就有bug了,不过第一次写会遇到各种各样的问题很正常,好事多磨。

    写好以后让实验室小伙伴尝试并给出建议,不断修改最终修改到如今的volcanoplot3.7 版本,此外在我带的小师妹的帮助下,写了一份简单的manual方便使用。

Note :

  • 针对以上 b 点,有一个动态可视化火山图的界面,不过运行会比较慢一些,方便直接观察那个点是什么基因,比较nice。

  • 针对以上 c 点,有一些文献会放一些这种MA plot的图,这种图主要可以观察差异基因的表达量分布的关系,我也加了进去,也可以下载pdf图。

  • 针对以上 f 点,可以下载已经筛选出来的显著性上调下调或者上下调的基因表格,当然也可以直接把差异结果在excel里筛选也可以。

    写完测试好功能后就是部署了,我选择部署在shinyapps.io ( https://www.shinyapps.io/ )官网上,注册后每个用户都有免费存放5个app的权限,如果存放更多就得升级了。
以下是具体付费情况

    25个app 9美金/月,无限app 39美金/月 ,说多了就是数量(money)的问题,不够你也可以注册个五六个账号,这样你就有5x五六个账号的app了。

     下面展示以下我写的app画出来的效果,上面有了,来个动态显示的 :

tips :

当你用鼠标在每个图上移动的时候鼠标会变成+形状,你可以选取一个矩形区域,点submit后就能放大选中的区域。

  • 那么这个volcanoplot的网址在https://junjunlab.shinyapps.io/volcanoplot37/

  • 登陆用户名:zhoulab,密码:2018。

    使用方法在manual 里都写了,大家不会的话就去里面看看。欢迎使用,也可以一起交流学习。
    以后麻麻再也不用担心我不会画火山图啦

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存