更新变动及进度

和上次更新火山图功能正好相差一个月,也算是勉强符合一开始二至四周一更的预期?

这次更新说实话还是遇到了很多困难的,最直观的体验应该是用 R 画气泡图可比用 Python 方便多了。

不过既然已经引入了绘图的库,那么就理应尽善尽美,所以这一次的更新正式上线 —— 绘制富集分析气泡图。

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

使用 R 绘制气泡图的教程可见:比较转录组分析(六)—— GO 富集分析与可视化

本次更新变动

  • 修复了 ‘火山图绘制’ 模块中文件不能通过点击按钮读取的问题。
  • 新增了气泡图绘制功能。
  • 新增了 GO id 注释功能(23.8.27)。

目前的功能进度

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

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

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

富集分析气泡图绘制

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

要求的数据

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

  • GO idDescription 中的一个(前者列名需设置为 ID,后者需设置为 Description)。
  • 矫正 p 值(列名必须为 qvalue)。
  • 每个 GO 对应的基因数量(列名必须为 Count)。

可选列:

  • GeneRatio,即每个 GO 所拥有的基因数量占所有注释基因数的比例(需以 x/y 形式表示)。
  • Ontology,即每个 GO 对应的大类,包括 biological_process cellular_component molecular_function

示例数据:

1
2
3
4
5
6
ID	Description	GeneRatio	Count	qvalue	Ontology
GO:0035158 regulation of tube diameter, open tracheal system 53/651 53 7.36E-58 biological_process
GO:0098533 ATPase dependent transmembrane transport complex 56/651 56 1.84E-55 cellular_component
GO:0036376 sodium ion export across plasma membrane 54/651 54 2.15E-55 biological_process
GO:0005890 sodium:potassium-exchanging ATPase complex 55/651 55 2.34E-55 cellular_component
GO:0090533 cation-transporting ATPase complex 55/651 55 2.75E-55 cellular_component

绘图方法

打开软件,切换到绘图专区的 富集气泡图 模块,将会出现以下内容。

通过拖拽文件或点击右侧按钮输入文件路径,输入文件以后可以先直接点击绘图查看是否有报错再调整各类参数。

参数设置区中:

  • 绘图设置中的展示数量表明展示 p 值最小的 20 个,展示顺序将以 Count 进行排序。
  • 进阶设置中的 DescriptionGeneRatio 分别表示展示的纵轴和横轴标签。
  • 进阶设置中的分类一旦勾选,则将以 Ontology 列作为标准进行分类,以默认参数为例:

默认参数下,软件将选取每个 Ontology 中 p 值最小的 5 个 GO 制成新表格,以 Ontology 作为优先排序指标,Count 作为次优排序指标进行绘图,每个 Ontology 将被分隔展示。

  • 进阶设置中的下载 GO term list 文件对 GO 富集文件进行分类 将在下个版本更新,敬请期待。

不勾选分类时,点击运行会出现绘图窗口,所出图片如下所示:

可以进行如下操作:

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

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

快速入门:

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

勾选分类时,点击运行得到的图片如下所示(该示例中数量选择为 7):

一些注意事项:

  • 如果有 Ontology 的数量未达到设定,则输出的图将存在错误。
  • 输出的 pdf 文件中的字体为 Type 3 格式,WPS 无法处理,可能需要用到其他处理软件如 Adobe Acrobat
  • pdf 文件是可编辑的,有部分内容不合意也可输出为 pdf 文件后调整(WPS 可以先擦除字体再插入,该字体与微软雅黑相同)。
  • 如果觉得绘图功能还有可以改进的地方,可以直接对源码进行修改以满足要求,软件在 GitHub 上开源中。

添加 Description 和 Ontology 列

考虑到可能存在表格中只有 GO id 而无其他 GO 信息的情况,在这里补充了两个功能可以向表格中加入 DescriptionOntology 列。

以下是更新后界面(红框为启用的功能):

按钮功能:

  • 点击 下载 GO term list 文件 后会下载相关注释文件(该过程中程序可能无响应),下载完成(或失败)后会弹出提示窗口,若已经存在相关文件则会弹出窗口提示文件已存在。
  • 点击 对 GO 富集文件进行分类 后会读取已选文件和注释文件,并根据其中的 ID 列向表格中添加 DescriptionOntology 列(如果已有则会将其覆盖),最后的文件将输出在与已选文件相同路径的 GOanno.csv 中。

相关示例(发现错别字,下个版本再改 😀):

一些注意事项:

  • 注释文件也可以自己下载(推荐):链接,下载后将文件放置在 JuseKit 路径下即可(可以识别 go-basic.obogo_term.list 两个命名)。
  • 部分 GO id 可能已废弃,此时对应注释将为 NA(Obsolete) 而不是 NA,后续绘图可能需要将其修改以让 JuseKit 识别并过滤相应 GO。

后记

还是想说一句,如果不嫌安装 R 包有些麻烦的话,还是走开头传送门去使用 R 绘制气泡图吧。

我个人认为 JuseKit 中的绘图功能只有一个优势 —— 方便,但是从别的角度看,不管是绘图的上限还是专业性肯定都不及自己精心调配各种参数来的好。

不过从最后结果上来看,JuseKit 得到的气泡图也是具有一定美观性的,至少比在 R 里完全不调任何参数要更好看得多。

最后是复制黏贴:

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

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