Crates.io | shu |
lib.rs | shu |
version | 0.5.0 |
source | src |
created_at | 2023-04-14 14:15:53.065148 |
updated_at | 2023-04-14 14:15:53.065148 |
description | High-dimensional metabolic maps. |
homepage | |
repository | https://github.com/biosustain/shu |
max_upload_size | |
id | 839189 |
size | 2,663,912 |
Documentation: https://biosustain.github.io/shu/docs/ Web deployment: https://biosustain.github.io/shu
App to plot multidimensional data to a metabolic map. Metabolic maps are graphs with metabolites as nodes and reactions as edges.
Escher is great. In fact, the format of the map is exactly the same as escher's. However, escher only allows for plotting 2 (+2 with tooltips) kinds of data: reaction data and metabolite data. Shu attempts to provide ways of plotting at least 6:
(+2 with hovers):
with special focus on being able to plot distributions (not just points) and n-conditions. Escher also has the distinction between color and size, it is simply that they are not independently accessible from the GUI.
Shu is distributed both through a web app (preview build at https://carrascomj.github.io/shu) and as standalone native application. To use the latter, download the latest release for your operating system, unpack if necessary and run it as executable.
Documentation for the rust crate and the python API will be made available once they are published. In the meantime, a preview of the python documentation can be found at https://carrascomj.github.io/shu/docs.
Install cargo and run
git clone https://github.com/biosustain/shu.git
cd shu
cargo install --path .
This may possibly require extra dependencies. Check the bevy setup, shu uses lld
to fasten linking times.
Shu follows a Grammar of Graphics design like ggplot or plotnine. See the python API for the full analogy. The particular implementation is an Entity Component System in bevy:
Gsize
, Gcolor
, etc.) containing its data (see src/aesthetics.rs
). Identifiers are stored in the Aesthetic
component.Aesthetic
, other aes components and Geom component (GeomArrow
, GeomMetabolite
, etc. in src/geom.rs
) are
processed and plotted by a system (in src/aesthetics.rs
).Data handling (df
, ad map_file
) lives in src/data.rs
and
src/escher.rs
and the GUI componets lives in src/gui.rs
.
Copyright 2023 The Novo Nordisk Foundation Center for Biosustainability.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.