Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Module for GEM visualization #56

Closed
6 tasks done
famosab opened this issue Jan 30, 2023 · 8 comments
Closed
6 tasks done

Module for GEM visualization #56

famosab opened this issue Jan 30, 2023 · 8 comments
Labels
enhancement New feature or request

Comments

@famosab
Copy link
Member

famosab commented Jan 30, 2023

Is your feature request related to a problem? Please describe.
Many manuscripts cover visualization of models like bar charts with numbers of metabolites.

Describe the solution you'd like
RefinGEMs could profit from a small module that holds scripts that enable fast creation of such figures or at least a basis on how to start visualization.


ToDos:

  • how to handle multiple models
  • how does this relate to comparison.py
  • SBO visualization
  • bar charts for multiple models
  • venn diagrams for all entities
  • growth rate heat maps
@famosab famosab added the enhancement New feature or request label Jan 30, 2023
@GwennyGit
Copy link
Collaborator

GwennyGit commented Jan 31, 2023

This idea sounds great. Adding additional scripts to get Venn diagrams as visualisation of model comparisons might be great as well. To handle more than 4 models a comparison bar chart could be used instead of the Venn diagrams.

Regarding the implementation we could compare our two scripts with which we created the Venn diagrams so far.

Here is my script model_data_visualisation.py.

@famosab
Copy link
Member Author

famosab commented Feb 10, 2023

I would implement the functions within the comparison module since most of the visualization only makes sense when working with multiple models. A heatmap which shows growth rates for a single model could be either added to the comparison module or the growth module.

famosab added a commit that referenced this issue Feb 10, 2023
@GwennyGit
Copy link
Collaborator

GwennyGit commented Feb 10, 2023

Maybe the OBOParser mentioned in comment draeger-lab/SBOannotator#1 could be useful for the SBO visualisation.
I think the visualisation of the growth rates for a single model would make sense in the growth module. However, a function to obtain the amount of entities might make sense not only for multiple models but also for a single model. This would then lead to two visualisation functions being in growth and similar functionality for multiple models in comparison. Would it not be better to have a module containing all visualisations? 🤔

@GwennyGit
Copy link
Collaborator

For the batch load function I was wondering if it would make sense to add that to io as soon as we have that module.

@famosab
Copy link
Member Author

famosab commented Feb 10, 2023

The batch load function is already in load so it should be transferred either way. I will do the migration to io as soon as we merged polish.

Separate module depends on how we view visualization. I thought of it more as a way to show what refineGEMs already reports and thus it makes sense to include the respective functions within the respective modules. But maybe that is confusing? However I think that the ideas for visualization that I had so far are not complicated either so migrating them to another module should not be an issue anyway. We have the entity number reporting function already so it's just a question on where to locate the actual visualization functions. I was hesitant to add yet another module since it makes using refineGEMs within a Python script more complicated (from my point of view).

@GwennyGit
Copy link
Collaborator

Regarding the visualisation, if the user wants to use refineGEMs within a python script is it not easier for the person to locate visualisations if there is a module called visualisation even though there are a lot of modules? 🤔

@famosab
Copy link
Member Author

famosab commented Feb 27, 2023

So far I created all visualizations either in investigate (single model) or in comparison (multiple models). And the styling is not the best. I could either initialize matplotlib with PARAMS we decide on or (what I saw when I used the functions locally): the user loads matplotlib with their specifications and then it fits.

famosab added a commit that referenced this issue Feb 28, 2023
famosab added a commit that referenced this issue Feb 28, 2023
famosab added a commit that referenced this issue Feb 28, 2023
@famosab
Copy link
Member Author

famosab commented Feb 28, 2023

All functions were added, can be reopened for future ideas but closed for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants