aiidateam / aiida-core

The official repository for the AiiDA code
https://aiida-core.readthedocs.io
Other
435 stars 188 forks source link

let `verdi graph generate` fold workflow nodes #2282

Open ltalirz opened 5 years ago

ltalirz commented 5 years ago

One of the simplest way to explain the purpose of workflows in AiiDA is that they group sets of calculations.

A very straightforward way of visualizing this is to take the data trail of a workflow and make two graphs

I.e. I am looking for

This feature requires some thought, but I believe it is absolutely crucial when explaining AiiDA to new users, and it will become more and more important as we will increasingly start seeing workflows discussed in presentations.

ConradJohnston commented 5 years ago

This is interesting. So when you say 'the level of folding', do you mean level as in the sense of there being potentially nested workflows?

ltalirz commented 5 years ago

do you mean level as in the sense of there being potentially nested workflows?

Indeed - updated the description to make this clearer.

ltalirz commented 5 years ago

To continue this thought:

As a first step, I propose to add a command line option --collapse to verdi node graph generate where one can pass IDs of workflow nodes to be collapsed.

The logic for collapsing a given workflow node is as follows:

One way to implement this would be to do a database query (or a set of queries) to get the UUIDs of the nodes that are to be hidden, and then feed a list of these uuids to the graph creation so that these nodes are not actually added to the graphviz graph.

Note: It is still important to traverse these nodes when creating the graphviz representation - e.g. consider the case where the graph is created "upwards" (starting from descendants of the workflow to be hidden).

I'll be working on this here: https://github.com/ltalirz/aiida_core/tree/fold-nodes

Mentioning @chrisjsewell , the graphvizard ;-)