用shiny创作在线火山图绘制App
转录组数据得到counts文件后,我们可以使用limma、DESeq2和edgeR等三款主流的差异分析软件做差异分析。然后可以对差异结果做各种分析和可视化展示,火山图就是展示差异基因数量和分布的一种形式,下面放一张一篇nature文献里的volcano plot:
自己平时做到转录组下游数据分析,需要绘制火山图时,需要每次打开之前写的R脚本,然后修改代码绘制,感觉也挺麻烦的。于是学了一些R shiny相关的基础知识,把需要每次写代码的操作转化为用鼠标点点点 操作岂不是更方便,只要每次上传差异结果的数据不就行了。
既然想了就上手实践起来,在网上也搜过曾经有徐州更大佬写过一个的小程序:
画出来是这个样子,作者也提供了shiny的代码:
感觉挺不错的
——————————————————————————
下面该自己出手了,主要使用ggplot2包绘制的。
想好大体的框架:
上传数据
绘制火山图
绘制MA plot
细节调整
下载pdf图
下载筛选数据
基本框架好了就可以写代码一步步调试了,调试真是个激动(头疼)的过程,稍微不注意少个逗号或者括号就有bug了
Note :
针对以上 b 点,有一个动态可视化火山图的界面,不过运行会比较慢一些,方便直接观察那个点是什么基因,比较nice。
针对以上 c 点,有一些文献会放一些这种MA plot的图,这种图主要可以观察差异基因的表达量分布的关系,我也加了进去,也可以下载pdf图。
针对以上 f 点,可以下载已经筛选出来的显著性上调、下调或者上下调的基因表格,当然也可以直接把差异结果在excel里筛选也可以。
下面展示以下我写的app画出来的效果,上面有了,来个动态显示的 :
tips :
当你用鼠标在每个图上移动的时候鼠标会变成+形状,你可以选取一个矩形区域,点submit后就能放大选中的区域。
那么这个volcanoplot的网址在:https://junjunlab.shinyapps.io/volcanoplot37/
登陆用户名:zhoulab,密码:2018。