1 个不稳定版本

0.5.0 2023年4月14日

#222 in 可视化

MIT/Apache

2MB
4K SLoC

Rust 3.5K SLoC // 0.0% comments Python 517 SLoC // 0.2% comments

shu

是什么?

文档:https://biosustain.github.io/shu/docs/ 网页部署:https://biosustain.github.io/shu

应用程序,用于将多维数据绘制到代谢图中。代谢图是代谢物作为节点、反应作为边的图。

为什么?

Escher 非常好。事实上,地图的格式与 escher 完全相同。然而,escher 只允许绘制 2 种 (+2 通过工具提示) 数据:反应数据和代谢物数据。 Shu 尝试提供至少 6 种绘图方式

  • 反应大小。
  • 反应颜色。
  • 反应右侧。
  • 反应左侧。
  • 代谢物大小。
  • 代谢物颜色。

(+2 通过悬停)

  • 悬停反应。
  • 悬停代谢物。

特别关注能够绘制 分布(不仅仅是点)和 n-条件。Escher 也有颜色和大小之间的区别,只是它们无法从 GUI 独立访问。

如何使用

Shu 通过网络应用程序(在 https://carrascomj.github.io/shu 的预览构建)和独立的本地应用程序进行分发。要使用后者,下载您操作系统的最新版本,如有必要请解压,然后作为可执行文件运行。

一旦发布,将提供 rust 包和 Python API 的文档。同时,Python 文档的预览可以在 https://carrascomj.github.io/shu/docs 找到。

从源代码构建(最新主提交)

安装 cargo 并运行

git clone https://github.com/biosustain/shu.git
cd shu
cargo install --path .

可能需要额外的依赖项。检查 bevy 设置,shu 使用 lld 来加速链接时间。

API 设计

Shu遵循像ggplotplotnine这样的图形语法设计。有关完整类比,请参阅python API。特定实现是bevy中的实体组件系统。

  • 每个美学都是一个组件(如GsizeGcolor等),包含其数据(见src/aesthetics.rs)。标识符存储在Aesthetic 组件中。
  • 具有Aesthetic、其他aes组件和几何组件(如src/geom.rs中的GeomArrowGeomMetabolite等)的实体由一个系统(在src/aesthetics.rs中)处理和绘图。
  • 给定几何接受的美学在系统查询中明确。

数据处理(dfmap_file)位于src/data.rssrc/escher.rs中,而GUI组件位于src/gui.rs中。

许可证

版权所有 2023 Novo Nordisk Foundation 生物可持续性中心。

根据以下之一获得许可:

任选其一。

贡献

除非你明确表示,否则任何有意提交以包含在你根据Apache-2.0许可证定义的作品中的贡献,都应如上所述双许可,不得附加任何额外条款或条件。

依赖关系

~50–69MB
~1M SLoC