更新变动及进度

很久没更 JuseKit,这一段时间我也时不时在想我还能搞什么出来,或者说我最应该搞什么。很多其他有用的功能事实上在别的软件诸如 BTtools Phylosuite 中都有涵盖到,所以陷入了一段瓶颈期(说到底是不够勤勉)

恰巧毕业以后已经没啥事,闲余之时就思考这些事情,想着既然已经把这个坑挖开来了,那就也不要想太多直接把最开始的设想全部完成一遍再说吧。

所以这一次的更新正式上线 —— 绘制火山图。

已有功能的相关教程请见:Juseの软件开发

本次更新变动

  • 修复了 ‘序列过滤’ 模块中文件不能拖拽读取的问题。
  • 新添了日志模块,报错后将有 error.log 出现在程序根目录。
  • 新增了画图模块,并完成了火山图绘制的功能。
  • 新增的模块导致软件大小的膨胀,对于不需要绘图且内存紧张的人来说可能不是好消息。

目前的功能进度

  • 提取最长转录本。(已实现)
  • 根据 id 提取序列。(已实现)
  • 对序列的 id 进行各种处理。(已实现)
  • 串联序列并得到分区信息。(已实现)
  • 批量改后缀。(已实现)
  • 批量进行序列格式转换。(已实现)
  • 批量提取 Orthofinder 的 orthogroup 对应的 CDS 序列。(已实现)
  • 批量进行序列的物种数和长度过滤。(已实现)
  • 火山图绘制。(已实现)
  • 气泡图绘制。(拟下一次更新)

叠盾警告⚠:本软件解释权归属 Juse 所有,本软件能走多远具体得看 Juse 能坚持多久。

下载地址:https://github.com/JuseTiZ/JuseKit/releases

火山图绘制

本文主要着重于这次更新新增的功能,其他模块请走这里

火山图是差异表达分析中常出现的图片类型之一,由于其形状酷似火山喷发而得名。虽然普通的火山图并未包含太多有用的信息,但很多时候大家都会顺手画一画这个图,而这也是我水这篇文章的动机之一。

要求的数据

首先,输入的文件需为 csv 格式的表格,表格必须包含两列内容:

  • 差异倍数 Log2FoldChange(列名必须为 logFClog2FoldChange 中的一个)。
  • 矫正 p 值(列名必须为 FDRpadj 中的一个,该处的列名会影响 y 轴标题)。

这样设置的原因是方便 DESeq2edgeR 的输出表格在转换为 csv 格式后能直接输入软件进行作图。

绘图方法

打开软件,切换到绘图专区的 火山(volcano)图 模块,将会出现以下内容。

通过拖拽文件到输入区框中或点击右侧按钮输入文件路径。

参数设置区中:

  • |log2FC|adj-P 为筛选差异表达基因的阈值,软件会根据设置的值区分点颜色并绘制辅助线。
  • 上调色下调色 分别代表上调基因和下调基因的点颜色(不推荐选黄色)。
  • 其他图形设置中涉及到的参数如其标签所示,会影响各个元素的尺寸。
  • 你可以先尝试一下默认参数,此后再调整参数至满意为止。

点击运行会出现绘图窗口,如下图所示:

你可以进行如下操作:

  • 通过拖动窗口调整图片的大小,或者通过上方菜单中从右边数第二个和第三个按钮调整图片。

  • 待图片调整至满意状态,点击菜单最右方保存按钮进行保存。

快速入门:

  1. 首先想象一个合适的大小,将图片拖拽到该尺寸。
  2. 点击上方右侧第三个按钮,并点击弹出页面中的 Tight layout 将图片重新布局。
  3. 保存并输出为 pdf 格式(也可以输出为 png 等,但实测应该是 pdf 最清晰)。

最后将 pdf 文件转换所得图片:

一些注意事项:

  • 为了美观,图片的横轴为对称形式,如果出现一边较空的情况请调整 x 轴取值范围。
  • 图片标题为文件前缀,请尽量通过修改文件名来修改标题,因为在窗口中修改会导致标题大小变化。
  • 输出的 pdf 文件中的字体为 Type 3 格式,WPS 无法处理,可能需要用到其他处理软件如 Adobe Acrobat
  • 标签设置在图的右上角外部,如若觉得不合适可以使用选项中的 (Re-)Generate automatic legend,但这同样会影响标题大小。
  • pdf 文件是可编辑的,有部分内容不合意也可输出为 pdf 文件后调整(WPS 可以先擦除字体再插入,该字体与微软雅黑相同)。

后记

事实上我不怎么用 Python 画图,但考虑到课题组文章里的图看上去像是用 Python 画的所以这一段时间也熟悉一下会更好。

不过 JuseKit 绘制的火山图事实上还有很多地方可以继续完善,比如说轴标题和标题的粗体亦或者更精细刻度的划分(像 Prism 那样),后面如果有机会的话我也会继续完善的。

新模块的增加导致 JuseKit 的大小迎来了一次巨变,但是后面更新新的绘图方法就不会再有什么变动了,从长远角度来看的话应该是利大于弊吧。之后所有版本的 JuseKit 我都将取消 .exe 格式的单文件上传(只上传压缩包),因为现在配置起来有些麻烦还要多指定一些隐模块。

最后是复制黏贴:

我会争取将这些功能慢慢完善,让它成为一个具有更广适用性的软件,希望能够帮助到某些盆友,当然我个人认为最大的可能是自娱自乐。

如果这个软件帮助到您了,您可以给它一个小小的 Star 聊表支持,或者在您汇报的时候引一下 https://github.com/JuseTiZ/JuseKit/ ,想必看着还是非常高端大气上档次的。