diff --git a/docs/how_to/create_custom_workflows.md b/docs/how_to/create_custom_workflows.md new file mode 100644 index 0000000..c2a37ec --- /dev/null +++ b/docs/how_to/create_custom_workflows.md @@ -0,0 +1 @@ +# How to use nomad-utility-workflows to create custom workflows diff --git a/tests/utils/raw_entry_data.zip b/tests/utils/raw_entry_data.zip new file mode 100644 index 0000000..90f67b1 Binary files /dev/null and b/tests/utils/raw_entry_data.zip differ diff --git a/tests/utils/test_workflow_2.archive.yaml b/tests/utils/test_workflow_2.archive.yaml new file mode 100644 index 0000000..c1fb925 --- /dev/null +++ b/tests/utils/test_workflow_2.archive.yaml @@ -0,0 +1,40 @@ +workflow2: + inputs: + - name: global workflow input + section: /uploads//archive/mainfile/#/run/0/method/0 + - name: input system from 0 + section: ../upload/archive/mainfile/#/run/0/system/0 + outputs: + - name: global workflow output + section: ../upload/archive/mainfile/#/workflow2/results/-1 + - name: output calculation from 1 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - name: output calculation from 2 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + tasks: + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + name: '1' + inputs: + - name: input system from 0 + section: ../upload/archive/mainfile/#/run/0/system/0 + outputs: + - name: output calculation from 1 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - m_def: nomad.datamodel.metainfo.workflow.Workflow + name: '2' + task: ../upload/archive/mainfile/#/workflow2 + inputs: + - name: input system from 1 + section: ../upload/archive/mainfile/#/run/0/system/-1 + outputs: + - name: output calculation from 2 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - m_def: nomad.datamodel.metainfo.workflow.Workflow + name: '3' + task: ../upload/archive/mainfile/#/workflow2 + inputs: + - name: DEFAULT input system from 2 + section: ../upload/archive/mainfile/#/run/-1/system/-1 + outputs: + - name: DEFAULT output calculation from 3 + section: ../upload/archive/mainfile/#/run/-1/calculation/-1 diff --git a/tests/utils/test_workflow_BU.archive.yaml b/tests/utils/test_workflow_BU.archive.yaml new file mode 100644 index 0000000..c1fb925 --- /dev/null +++ b/tests/utils/test_workflow_BU.archive.yaml @@ -0,0 +1,40 @@ +workflow2: + inputs: + - name: global workflow input + section: /uploads//archive/mainfile/#/run/0/method/0 + - name: input system from 0 + section: ../upload/archive/mainfile/#/run/0/system/0 + outputs: + - name: global workflow output + section: ../upload/archive/mainfile/#/workflow2/results/-1 + - name: output calculation from 1 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - name: output calculation from 2 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + tasks: + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + name: '1' + inputs: + - name: input system from 0 + section: ../upload/archive/mainfile/#/run/0/system/0 + outputs: + - name: output calculation from 1 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - m_def: nomad.datamodel.metainfo.workflow.Workflow + name: '2' + task: ../upload/archive/mainfile/#/workflow2 + inputs: + - name: input system from 1 + section: ../upload/archive/mainfile/#/run/0/system/-1 + outputs: + - name: output calculation from 2 + section: ../upload/archive/mainfile/#/run/0/calculation/-1 + - m_def: nomad.datamodel.metainfo.workflow.Workflow + name: '3' + task: ../upload/archive/mainfile/#/workflow2 + inputs: + - name: DEFAULT input system from 2 + section: ../upload/archive/mainfile/#/run/-1/system/-1 + outputs: + - name: DEFAULT output calculation from 3 + section: ../upload/archive/mainfile/#/run/-1/calculation/-1 diff --git a/tests/utils/test_workflow_simple.ipynb b/tests/utils/test_workflow_simple.ipynb index d11f51b..168f163 100644 --- a/tests/utils/test_workflow_simple.ipynb +++ b/tests/utils/test_workflow_simple.ipynb @@ -29,4249 +29,7 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "\n", - "
\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " Details for selected element\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "\n", - "
\n", - "
\n", - " \n", - "
\n", - " General\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " App state\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Display mode\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Export\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Data selection\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Graph\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Node label text\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Edge label text\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - " Node size\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Minimum\n", - " \n", - " \n", - "
\n", - "
\n", - " Maximum\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Edge size\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Minimum\n", - " \n", - " \n", - "
\n", - "
\n", - " Maximum\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Nodes\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Visibility\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Size\n", - "
\n", - "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Position\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Drag behavior\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Hover behavior\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Node images\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Visibility\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Size\n", - "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Node labels\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Visibility\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Size\n", - "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Rotation\n", - "
\n", - "
\n", - " Angle\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Edges\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Visibility\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Size\n", - "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Form\n", - "
\n", - "
\n", - " Curvature\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Hover behavior\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Edge labels\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Visibility\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Size\n", - "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Rotation\n", - "
\n", - "
\n", - " Angle\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - " Layout algorithm\n", - "
\n", - "
\n", - "\n", - " \n", - "
\n", - "
\n", - " Simulation\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Many-body force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Strength\n", - " \n", - " \n", - "
\n", - "
\n", - " Theta\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - " Min\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - " Max\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Links force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - " \n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Collision force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Radius\n", - " \n", - " \n", - "
\n", - "
\n", - " Strength\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " x-positioning force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Strength\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " y-positioning force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - " Strength\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - " Centering force\n", - "
\n", - "
\n", - "
\n", - " \n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", - "\n", - " \n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Simplest Graph - Case 0\n", "\n", @@ -4423,25 +181,25 @@ "\n", " \n", "\n", - "
\n", - "
\n", + "
\n", + "
\n", "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", " Details for selected element\n", "
\n", - "
\n", + "
\n", "
\n", "
\n", "
\n", "
\n", "\n", - "
\n", - "
\n", + "
\n", + "
\n", " \n", - "
\n", + "
\n", " General\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " App state\n", "
\n", - "
\n", - " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Display mode\n", "
\n", - "
\n", - " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Export\n", "
\n", - "
\n", - " \n", - " \n", - " \n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Data selection\n", "
\n", - "
\n", + "
\n", " \n", - "
\n", - "
\n", + "
\n", + "
\n", " Graph\n", "
\n", - "
\n", - " \n", + "
\n", + " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Node label text\n", "
\n", - "
\n", - " \n", + "
\n", + " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Edge label text\n", "
\n", - "
\n", - " \n", + "
\n", + " \n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Node size\n", "
\n", - "
\n", + "
\n", "
\n", - " \n", + " \n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Minimum\n", - " \n", - " Minimum\n", + " \n", + " \n", "
\n", "
\n", - " Maximum\n", - " \n", - " Maximum\n", + " \n", + " \n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Edge size\n", "
\n", - "
\n", + "
\n", "
\n", - " \n", + " \n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Minimum\n", - " \n", - " Minimum\n", + " \n", + " \n", "
\n", "
\n", - " Maximum\n", - " \n", - " Maximum\n", + " \n", + " \n", "
\n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Nodes\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " Visibility\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Size\n", "
\n", - "
\n", + "
\n", "
\n", - " Scaling factor\n", - " \n", - " Scaling factor\n", + " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Position\n", "
\n", - "
\n", - " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Drag behavior\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Hover behavior\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", "
\n", " \n", - "
\n", - "
\n", + "
\n", + "
\n", " Node images\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " Visibility\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Size\n", "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", + " Scaling factor\n", + " \n", + " \n", "
\n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Node labels\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " Visibility\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Size\n", "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", + " Scaling factor\n", + " \n", + " \n", "
\n", "
\n", " \n", - "
\n", - "
\n", + "
\n", + "
\n", " Rotation\n", "
\n", - "
\n", - " Angle\n", - " \n", - " \n", + " Angle\n", + " \n", + " \n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Edges\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " Visibility\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Size\n", "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", + " Scaling factor\n", + " \n", + " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Form\n", "
\n", - "
\n", - " Curvature\n", - " \n", - " \n", + " Curvature\n", + " \n", + " \n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Hover behavior\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Edge labels\n", "
\n", - "
\n", + "
\n", " \n", "
\n", - "
\n", + "
\n", " Visibility\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Size\n", "
\n", - "
\n", - " Scaling factor\n", - " \n", - " \n", + " Scaling factor\n", + " \n", + " \n", "
\n", "
\n", " \n", - "
\n", - "
\n", + "
\n", + "
\n", " Rotation\n", "
\n", - "
\n", - " Angle\n", - " \n", - " \n", + " Angle\n", + " \n", + " \n", "
\n", "
\n", "
\n", " \n", - "
\n", + "
\n", " Layout algorithm\n", "
\n", - "
\n", + "
\n", "\n", " \n", "
\n", - "
\n", + "
\n", " Simulation\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", " \n", "
\n", - "
\n", + "
\n", " Many-body force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Strength\n", - " \n", - " Strength\n", + " \n", + " \n", "
\n", "
\n", - " Theta\n", - " \n", - " Theta\n", + " \n", + " \n", "
\n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", - "
\n", - " Min\n", - " \n", - " \n", + " Min\n", + " \n", + " \n", "
\n", "
\n", "
\n", - "
\n", - " \n", + " \n", - " \n", + " \n", "
\n", - "
\n", - " Max\n", - " \n", - " \n", + " Max\n", + " \n", + " \n", "
\n", "
\n", @@ -5308,33 +1066,33 @@ "
\n", " \n", "
\n", - "
\n", + "
\n", " Links force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", " \n", "
\n", - " \n", " \n", "
\n", - "
\n", + "
\n", " Collision force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Radius\n", - " \n", - " Radius\n", + " \n", + " \n", "
\n", "
\n", - " Strength\n", - " \n", - " Strength\n", + " \n", + " \n", "
\n", "
\n", @@ -5375,24 +1133,24 @@ "
\n", " \n", "
\n", - "
\n", + "
\n", " x-positioning force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Strength\n", - " \n", - " Strength\n", + " \n", + " \n", "
\n", "
\n", @@ -5400,24 +1158,24 @@ "
\n", " \n", "
\n", - "
\n", + "
\n", " y-positioning force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", - "
\n", + "
\n", "
\n", - " Strength\n", - " \n", - " Strength\n", + " \n", + " \n", "
\n", "
\n", @@ -5425,16 +1183,16 @@ "
\n", " \n", "
\n", - "
\n", + "
\n", " Centering force\n", "
\n", - "
\n", - "
\n", - " \n", + "
\n", + " \n", - " \n", + " \n", "
\n", "
\n", "
\n", @@ -5487,7 +1245,7 @@ "\n", " // 1) Fetch state.rawData\n", " fetchRawDataFromTemplating(){\n", - " state.rawData = [{\"nodes\": {\"0\": {\"metadata\": {\"name\": \"global workflow input\", \"type\": \"input\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": \"\", \"entry_id\": null, \"mainfile_path\": \"\", \"supersection_index\": 0, \"section_index\": 0, \"section_type\": \"method\"}, \"out_edge_nodes\": [1]}}, \"1\": {\"metadata\": {\"name\": \"1\", \"type\": \"task\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": \"\", \"mainfile_path\": \"\", \"section_type\": \"workflow2\"}}}, \"2\": {\"metadata\": {\"name\": \"2\", \"type\": \"workflow\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\"}}}, \"3\": {\"metadata\": {\"name\": \"3\", \"type\": \"workflow\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\"}, \"in_edge_nodes\": [2], \"out_edge_nodes\": []}}, \"4\": {\"metadata\": {\"name\": \"global workflow output\", \"type\": \"output\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\", \"supersection_index\": -1, \"section_type\": \"results\"}, \"in_edge_nodes\": [3]}}, \"5\": {\"metadata\": {\"type\": \"input\", \"name\": \"input system from 0\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": 0, \"mainfile_path\": \"\"}}}, \"6\": {\"metadata\": {\"type\": \"output\", \"name\": \"output calculation from 1\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}}, \"7\": {\"metadata\": {\"type\": \"output\", \"name\": \"output calculation from 2\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}}}, \"edges\": [{\"source\": \"0\", \"target\": \"1\", \"metadata\": {\"inputs\": [], \"outputs\": []}}, {\"source\": \"1\", \"target\": \"6\", \"metadata\": {\"inputs\": [{\"name\": \"output calculation from 1\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}], \"outputs\": []}}, {\"source\": \"1\", \"target\": \"2\", \"metadata\": {\"outputs\": [{\"name\": \"input system from 1\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": -1, \"mainfile_path\": \"\"}, \"out_edge_nodes\": [1]}], \"inputs\": []}}, {\"source\": \"2\", \"target\": \"7\", \"metadata\": {\"inputs\": [{\"name\": \"output calculation from 2\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}], \"outputs\": []}}, {\"source\": \"2\", \"target\": \"3\", \"metadata\": {\"inputs\": [], \"outputs\": []}}, {\"source\": \"3\", \"target\": \"4\", \"metadata\": {\"inputs\": [], \"outputs\": []}}, {\"source\": \"5\", \"target\": \"1\", \"metadata\": {\"outputs\": [{\"name\": \"input system from 0\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": 0, \"mainfile_path\": \"\"}}], \"inputs\": []}}], \"directed\": true}];\n", + " state.rawData = [{\"nodes\": {\"0\": {\"metadata\": {\"name\": \"global workflow input\", \"type\": \"input\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": \"\", \"entry_id\": null, \"mainfile_path\": \"\", \"supersection_index\": 0, \"section_index\": 0, \"section_type\": \"method\"}, \"out_edge_nodes\": [1]}}, \"1\": {\"metadata\": {\"name\": \"1\", \"type\": \"task\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": \"\", \"mainfile_path\": \"\", \"section_type\": \"workflow2\"}}}, \"2\": {\"metadata\": {\"name\": \"2\", \"type\": \"workflow\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\"}}}, \"3\": {\"metadata\": {\"name\": \"3\", \"type\": \"workflow\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\"}, \"in_edge_nodes\": [2], \"out_edge_nodes\": []}}, \"4\": {\"metadata\": {\"name\": \"global workflow output\", \"type\": \"output\", \"entry_type\": \"simulation\", \"path_info\": {\"upload_id\": null, \"entry_id\": null, \"mainfile_path\": \"\", \"supersection_index\": -1, \"section_type\": \"results\"}, \"in_edge_nodes\": [3]}}, \"5\": {\"metadata\": {\"type\": \"input\", \"name\": \"input system from 0\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": 0, \"mainfile_path\": \"\"}}}, \"6\": {\"metadata\": {\"type\": \"output\", \"name\": \"output calculation from 1\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}}, \"7\": {\"metadata\": {\"type\": \"output\", \"name\": \"output calculation from 2\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}}}, \"edges\": [{\"source\": \"0\", \"target\": \"1\", \"metadata\": {\"inputs\": [], \"outputs\": []}}, {\"source\": \"1\", \"target\": \"6\", \"metadata\": {\"inputs\": [{\"name\": \"output calculation from 1\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}], \"outputs\": []}}, {\"source\": \"1\", \"target\": \"2\", \"metadata\": {\"outputs\": [{\"name\": \"input system from 1\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": -1, \"mainfile_path\": \"\"}, \"out_edge_nodes\": [1]}], \"inputs\": []}}, {\"source\": \"2\", \"target\": \"7\", \"metadata\": {\"inputs\": [{\"name\": \"output calculation from 2\", \"path_info\": {\"section_type\": \"calculation\", \"supersection_index\": 0, \"calculation_index\": -1, \"mainfile_path\": \"\"}}], \"outputs\": []}}, {\"source\": \"2\", \"target\": \"3\", \"metadata\": {\"inputs\": [], \"outputs\": [{\"name\": \"DEFAULT input system from 2\", \"path_info\": {\"section_type\": \"system\", \"mainfile_path\": \"\"}}]}}, {\"source\": \"3\", \"target\": \"4\", \"metadata\": {\"inputs\": [{\"name\": \"DEFAULT output calculation from 3\", \"path_info\": {\"section_type\": \"calculation\", \"mainfile_path\": \"\"}}], \"outputs\": []}}, {\"source\": \"5\", \"target\": \"1\", \"metadata\": {\"outputs\": [{\"name\": \"input system from 0\", \"path_info\": {\"section_type\": \"system\", \"supersection_index\": 0, \"section_index\": 0, \"mainfile_path\": \"\"}}], \"inputs\": []}}], \"directed\": true}];\n", " // Data selection and normalization\n", " state.nodeSizeDataSource = \"size\";\n", " state.useNodeSizeNormalization = false;\n", @@ -6417,126 +2175,126 @@ "\n", " elements:{\n", " // Containers\n", - " mainContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-main-div\"),\n", - " tooltipContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-tooltip-div\"),\n", - " leftContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-left-div\"),\n", - " rightContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-right-div\"),\n", - " graphContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-graph-div\"),\n", - " detailsContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-details-div\"),\n", - " detailsHead: document.getElementById(\"iRbwr7Z0iLYqraz51-details-head\"),\n", - " detailsBody: document.getElementById(\"iRbwr7Z0iLYqraz51-details-body\"),\n", + " mainContainer: document.getElementById(\"ilwFj682HpqBSoqFX-main-div\"),\n", + " tooltipContainer: document.getElementById(\"ilwFj682HpqBSoqFX-tooltip-div\"),\n", + " leftContainer: document.getElementById(\"ilwFj682HpqBSoqFX-left-div\"),\n", + " rightContainer: document.getElementById(\"ilwFj682HpqBSoqFX-right-div\"),\n", + " graphContainer: document.getElementById(\"ilwFj682HpqBSoqFX-graph-div\"),\n", + " detailsContainer: document.getElementById(\"ilwFj682HpqBSoqFX-details-div\"),\n", + " detailsHead: document.getElementById(\"ilwFj682HpqBSoqFX-details-head\"),\n", + " detailsBody: document.getElementById(\"ilwFj682HpqBSoqFX-details-body\"),\n", " // Data sources\n", - " dataHead: document.getElementById(\"iRbwr7Z0iLYqraz51-data-head\"),\n", - " dataBody: document.getElementById(\"iRbwr7Z0iLYqraz51-data-body\"),\n", - " graphSelectionContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-graph-select-div\"),\n", - " graphSelection: document.getElementById(\"iRbwr7Z0iLYqraz51-graph-select\"),\n", - " nodeSizeDataSourceSelect: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-data-source-select\"),\n", - " nodeSizeNormalizationCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-normalization-checkbox\"),\n", - " nodeSizeNormalizationContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-norm-div\"),\n", - " nodeSizeNormalizationMinText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-normalization-min-text\"),\n", - " nodeSizeNormalizationMinSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-normalization-min-slider\"),\n", - " nodeSizeNormalizationMaxText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-normalization-max-text\"),\n", - " nodeSizeNormalizationMaxSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-normalization-max-slider\"),\n", - " edgeSizeDataSourceSelect: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-data-source-select\"),\n", - " edgeSizeNormalizationCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-normalization-checkbox\"),\n", - " edgeSizeNormalizationContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-norm-div\"),\n", - " edgeSizeNormalizationMinText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-normalization-min-text\"),\n", - " edgeSizeNormalizationMinSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-normalization-min-slider\"),\n", - " edgeSizeNormalizationMaxText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-normalization-max-text\"),\n", - " edgeSizeNormalizationMaxSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-normalization-max-slider\"),\n", + " dataHead: document.getElementById(\"ilwFj682HpqBSoqFX-data-head\"),\n", + " dataBody: document.getElementById(\"ilwFj682HpqBSoqFX-data-body\"),\n", + " graphSelectionContainer: document.getElementById(\"ilwFj682HpqBSoqFX-graph-select-div\"),\n", + " graphSelection: document.getElementById(\"ilwFj682HpqBSoqFX-graph-select\"),\n", + " nodeSizeDataSourceSelect: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-data-source-select\"),\n", + " nodeSizeNormalizationCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-normalization-checkbox\"),\n", + " nodeSizeNormalizationContainer: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-norm-div\"),\n", + " nodeSizeNormalizationMinText: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-normalization-min-text\"),\n", + " nodeSizeNormalizationMinSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-normalization-min-slider\"),\n", + " nodeSizeNormalizationMaxText: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-normalization-max-text\"),\n", + " nodeSizeNormalizationMaxSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-normalization-max-slider\"),\n", + " edgeSizeDataSourceSelect: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-data-source-select\"),\n", + " edgeSizeNormalizationCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-normalization-checkbox\"),\n", + " edgeSizeNormalizationContainer: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-norm-div\"),\n", + " edgeSizeNormalizationMinText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-normalization-min-text\"),\n", + " edgeSizeNormalizationMinSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-normalization-min-slider\"),\n", + " edgeSizeNormalizationMaxText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-normalization-max-text\"),\n", + " edgeSizeNormalizationMaxSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-normalization-max-slider\"),\n", " // General\n", - " generalHead: document.getElementById(\"iRbwr7Z0iLYqraz51-general-head\"),\n", - " generalBody: document.getElementById(\"iRbwr7Z0iLYqraz51-general-body\"),\n", - " resetButton: document.getElementById(\"iRbwr7Z0iLYqraz51-reset\"),\n", - " fullscreenButton: document.getElementById(\"iRbwr7Z0iLYqraz51-fullscreen-button\"),\n", - " svgExportButton: document.getElementById(\"iRbwr7Z0iLYqraz51-svg\"),\n", - " pngExportButton: document.getElementById(\"iRbwr7Z0iLYqraz51-png\"),\n", - " jpgExportButton: document.getElementById(\"iRbwr7Z0iLYqraz51-jpg\"),\n", + " generalHead: document.getElementById(\"ilwFj682HpqBSoqFX-general-head\"),\n", + " generalBody: document.getElementById(\"ilwFj682HpqBSoqFX-general-body\"),\n", + " resetButton: document.getElementById(\"ilwFj682HpqBSoqFX-reset\"),\n", + " fullscreenButton: document.getElementById(\"ilwFj682HpqBSoqFX-fullscreen-button\"),\n", + " svgExportButton: document.getElementById(\"ilwFj682HpqBSoqFX-svg\"),\n", + " pngExportButton: document.getElementById(\"ilwFj682HpqBSoqFX-png\"),\n", + " jpgExportButton: document.getElementById(\"ilwFj682HpqBSoqFX-jpg\"),\n", " // Nodes\n", - " nodeHead: document.getElementById(\"iRbwr7Z0iLYqraz51-node-head\"),\n", - " nodeBody: document.getElementById(\"iRbwr7Z0iLYqraz51-node-body\"),\n", - " nodeCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-checkbox\"),\n", - " nodeSizeFactorText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-factor-text\"),\n", - " nodeSizeFactorSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-size-factor-slider\"),\n", - " nodeDragFixCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-drag-fix-checkbox\"),\n", - " nodeHoverNeighborhoodCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-hover-neighborhood-checkbox\"),\n", - " nodeHoverTooltipCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-hover-tooltip-checkbox\"),\n", - " nodeReleaseButton: document.getElementById(\"iRbwr7Z0iLYqraz51-node-release-button\"),\n", + " nodeHead: document.getElementById(\"ilwFj682HpqBSoqFX-node-head\"),\n", + " nodeBody: document.getElementById(\"ilwFj682HpqBSoqFX-node-body\"),\n", + " nodeCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-checkbox\"),\n", + " nodeSizeFactorText: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-factor-text\"),\n", + " nodeSizeFactorSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-size-factor-slider\"),\n", + " nodeDragFixCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-drag-fix-checkbox\"),\n", + " nodeHoverNeighborhoodCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-hover-neighborhood-checkbox\"),\n", + " nodeHoverTooltipCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-hover-tooltip-checkbox\"),\n", + " nodeReleaseButton: document.getElementById(\"ilwFj682HpqBSoqFX-node-release-button\"),\n", " // Node images\n", - " nodeImageHead: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-head\"),\n", - " nodeImageBody: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-body\"),\n", - " nodeImageCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-checkbox\"),\n", - " nodeImageMetaControl: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-meta-control\"),\n", - " nodeImageSizeFactorText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-size-factor-text\"),\n", - " nodeImageSizeFactorSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-image-size-factor-slider\"),\n", + " nodeImageHead: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-head\"),\n", + " nodeImageBody: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-body\"),\n", + " nodeImageCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-checkbox\"),\n", + " nodeImageMetaControl: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-meta-control\"),\n", + " nodeImageSizeFactorText: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-size-factor-text\"),\n", + " nodeImageSizeFactorSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-image-size-factor-slider\"),\n", " // Node labels\n", - " nodeLabelHead: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-head\"),\n", - " nodeLabelBody: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-body\"),\n", - " nodeLabelCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-checkbox\"),\n", - " nodeLabelBorderCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-border-checkbox\"),\n", - " nodeLabelTextDataSourceSelect: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-data-source-select\"),\n", - " nodeLabelSizeFactorText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-size-factor-text\"),\n", - " nodeLabelSizeFactorSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-size-factor-slider\"),\n", - " nodeLabelRotationText: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-rotation-text\"),\n", - " nodeLabelRotationSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-node-label-rotation-slider\"),\n", + " nodeLabelHead: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-head\"),\n", + " nodeLabelBody: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-body\"),\n", + " nodeLabelCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-checkbox\"),\n", + " nodeLabelBorderCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-border-checkbox\"),\n", + " nodeLabelTextDataSourceSelect: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-data-source-select\"),\n", + " nodeLabelSizeFactorText: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-size-factor-text\"),\n", + " nodeLabelSizeFactorSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-size-factor-slider\"),\n", + " nodeLabelRotationText: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-rotation-text\"),\n", + " nodeLabelRotationSlider: document.getElementById(\"ilwFj682HpqBSoqFX-node-label-rotation-slider\"),\n", " // Edges\n", - " edgeHead: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-head\"),\n", - " edgeBody: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-body\"),\n", - " edgeCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-checkbox\"),\n", - " edgeSizeFactorText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-factor-text\"),\n", - " edgeSizeFactorSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-size-factor-slider\"),\n", - " edgeCurvatureText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-curvature-text\"),\n", - " edgeCurvatureSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-curvature-slider\"),\n", - " edgeHoverTooltipCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-hover-tooltip-checkbox\"),\n", + " edgeHead: document.getElementById(\"ilwFj682HpqBSoqFX-edge-head\"),\n", + " edgeBody: document.getElementById(\"ilwFj682HpqBSoqFX-edge-body\"),\n", + " edgeCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-edge-checkbox\"),\n", + " edgeSizeFactorText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-factor-text\"),\n", + " edgeSizeFactorSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-size-factor-slider\"),\n", + " edgeCurvatureText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-curvature-text\"),\n", + " edgeCurvatureSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-curvature-slider\"),\n", + " edgeHoverTooltipCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-edge-hover-tooltip-checkbox\"),\n", " // Edge labels\n", - " edgeLabelHead: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-head\"),\n", - " edgeLabelBody: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-body\"),\n", - " edgeLabelCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-checkbox\"),\n", - " edgeLabelBorderCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-border-checkbox\"),\n", - " edgeLabelTextDataSourceSelect: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-data-source-select\"),\n", - " edgeLabelSizeFactorText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-size-factor-text\"),\n", - " edgeLabelSizeFactorSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-size-factor-slider\"),\n", - " edgeLabelRotationText: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-rotation-text\"),\n", - " edgeLabelRotationSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-edge-label-rotation-slider\"),\n", + " edgeLabelHead: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-head\"),\n", + " edgeLabelBody: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-body\"),\n", + " edgeLabelCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-checkbox\"),\n", + " edgeLabelBorderCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-border-checkbox\"),\n", + " edgeLabelTextDataSourceSelect: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-data-source-select\"),\n", + " edgeLabelSizeFactorText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-size-factor-text\"),\n", + " edgeLabelSizeFactorSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-size-factor-slider\"),\n", + " edgeLabelRotationText: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-rotation-text\"),\n", + " edgeLabelRotationSlider: document.getElementById(\"ilwFj682HpqBSoqFX-edge-label-rotation-slider\"),\n", " // Layout algorithm\n", - " layoutAlgorithmHead: document.getElementById(\"iRbwr7Z0iLYqraz51-layout-algorithm-head\"),\n", - " layoutAlgorithmBody: document.getElementById(\"iRbwr7Z0iLYqraz51-layout-algorithm-body\"),\n", - " simulationCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-simulation-active-checkbox\"),\n", - " manyBodyForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-checkbox\"),\n", - " manyBodyForceContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-div\"),\n", - " manyBodyForceStrengthText: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-strength-text\"),\n", - " manyBodyForceStrengthSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-strength-slider\"),\n", - " manyBodyForceThetaText: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-theta-text\"),\n", - " manyBodyForceThetaSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-theta-slider\"),\n", - " manyBodyForceMinDistCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-min-distance-checkbox\"),\n", - " manyBodyForceMinDistContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-min-distance-div\"),\n", - " manyBodyForceMinDistText: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-min-distance-text\"),\n", - " manyBodyForceMinDistSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-min-distance-slider\"),\n", - " manyBodyForceMaxDistCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-max-distance-checkbox\"),\n", - " manyBodyForceMaxDistContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-max-distance-div\"),\n", - " manyBodyForceMaxDistText: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-max-distance-text\"),\n", - " manyBodyForceMaxDistSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-many-body-force-max-distance-slider\"),\n", - " linksForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-checkbox\"),\n", - " linksForceContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-div\"),\n", - " linksForceDistanceText: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-distance-text\"),\n", - " linksForceDistanceSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-distance-slider\"),\n", - " linksForceStrengthText: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-strength-text\"),\n", - " linksForceStrengthSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-links-force-strength-slider\"),\n", - " collisionForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-checkbox\"),\n", - " collisionForceContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-div\"),\n", - " collisionForceRadiusText: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-radius-text\"),\n", - " collisionForceRadiusSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-radius-slider\"),\n", - " collisionForceStrengthText: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-strength-text\"),\n", - " collisionForceStrengthSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-collision-force-strength-slider\"),\n", - " xPositioningForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-x-positioning-force-checkbox\"),\n", - " xPositioningForceContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-x-positioning-force-div\"),\n", - " xPositioningForceStrengthText: document.getElementById(\"iRbwr7Z0iLYqraz51-x-positioning-force-strength-text\"),\n", - " xPositioningForceStrengthSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-x-positioning-force-strength-slider\"),\n", - " yPositioningForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-y-positioning-force-checkbox\"),\n", - " yPositioningForceContainer: document.getElementById(\"iRbwr7Z0iLYqraz51-y-positioning-force-div\"),\n", - " yPositioningForceStrengthText: document.getElementById(\"iRbwr7Z0iLYqraz51-y-positioning-force-strength-text\"),\n", - " yPositioningForceStrengthSlider: document.getElementById(\"iRbwr7Z0iLYqraz51-y-positioning-force-strength-slider\"),\n", - " centeringForceCheckbox: document.getElementById(\"iRbwr7Z0iLYqraz51-centering-force-checkbox\"),\n", + " layoutAlgorithmHead: document.getElementById(\"ilwFj682HpqBSoqFX-layout-algorithm-head\"),\n", + " layoutAlgorithmBody: document.getElementById(\"ilwFj682HpqBSoqFX-layout-algorithm-body\"),\n", + " simulationCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-simulation-active-checkbox\"),\n", + " manyBodyForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-checkbox\"),\n", + " manyBodyForceContainer: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-div\"),\n", + " manyBodyForceStrengthText: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-strength-text\"),\n", + " manyBodyForceStrengthSlider: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-strength-slider\"),\n", + " manyBodyForceThetaText: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-theta-text\"),\n", + " manyBodyForceThetaSlider: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-theta-slider\"),\n", + " manyBodyForceMinDistCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-min-distance-checkbox\"),\n", + " manyBodyForceMinDistContainer: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-min-distance-div\"),\n", + " manyBodyForceMinDistText: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-min-distance-text\"),\n", + " manyBodyForceMinDistSlider: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-min-distance-slider\"),\n", + " manyBodyForceMaxDistCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-max-distance-checkbox\"),\n", + " manyBodyForceMaxDistContainer: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-max-distance-div\"),\n", + " manyBodyForceMaxDistText: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-max-distance-text\"),\n", + " manyBodyForceMaxDistSlider: document.getElementById(\"ilwFj682HpqBSoqFX-many-body-force-max-distance-slider\"),\n", + " linksForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-checkbox\"),\n", + " linksForceContainer: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-div\"),\n", + " linksForceDistanceText: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-distance-text\"),\n", + " linksForceDistanceSlider: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-distance-slider\"),\n", + " linksForceStrengthText: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-strength-text\"),\n", + " linksForceStrengthSlider: document.getElementById(\"ilwFj682HpqBSoqFX-links-force-strength-slider\"),\n", + " collisionForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-checkbox\"),\n", + " collisionForceContainer: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-div\"),\n", + " collisionForceRadiusText: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-radius-text\"),\n", + " collisionForceRadiusSlider: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-radius-slider\"),\n", + " collisionForceStrengthText: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-strength-text\"),\n", + " collisionForceStrengthSlider: document.getElementById(\"ilwFj682HpqBSoqFX-collision-force-strength-slider\"),\n", + " xPositioningForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-x-positioning-force-checkbox\"),\n", + " xPositioningForceContainer: document.getElementById(\"ilwFj682HpqBSoqFX-x-positioning-force-div\"),\n", + " xPositioningForceStrengthText: document.getElementById(\"ilwFj682HpqBSoqFX-x-positioning-force-strength-text\"),\n", + " xPositioningForceStrengthSlider: document.getElementById(\"ilwFj682HpqBSoqFX-x-positioning-force-strength-slider\"),\n", + " yPositioningForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-y-positioning-force-checkbox\"),\n", + " yPositioningForceContainer: document.getElementById(\"ilwFj682HpqBSoqFX-y-positioning-force-div\"),\n", + " yPositioningForceStrengthText: document.getElementById(\"ilwFj682HpqBSoqFX-y-positioning-force-strength-text\"),\n", + " yPositioningForceStrengthSlider: document.getElementById(\"ilwFj682HpqBSoqFX-y-positioning-force-strength-slider\"),\n", + " centeringForceCheckbox: document.getElementById(\"ilwFj682HpqBSoqFX-centering-force-checkbox\"),\n", " },\n", "\n", " composites:{\n", @@ -6898,7 +2656,7 @@ " create(){\n", " // Main container\n", " this.mainContainer = document.createElement(\"div\");\n", - " this.mainContainer.id = \"iRbwr7Z0iLYqraz51-progress-container\";\n", + " this.mainContainer.id = \"ilwFj682HpqBSoqFX-progress-container\";\n", " this.mainContainer.style.backgroundColor = state.shownData.general.background_color;\n", " ui.elements.graphContainer.style.backgroundColor = state.shownData.general.background_color;\n", " // Text container\n", @@ -6947,7 +2705,7 @@ " } else {\n", " menuDiv.innerText = ui.symbols.menuHidden;\n", " }\n", - " menuDiv.id = \"iRbwr7Z0iLYqraz51-menu-toggle-button\";\n", + " menuDiv.id = \"ilwFj682HpqBSoqFX-menu-toggle-button\";\n", " menuDiv.onclick = ui.composites.menu.toggle;\n", " ui.elements.graphContainer.appendChild(menuDiv);\n", " ui.elements.menuToggleDiv = menuDiv;\n", @@ -6961,27 +2719,27 @@ " } else {\n", " detailsDiv.innerText = ui.symbols.detailsHidden;\n", " }\n", - " detailsDiv.id = \"iRbwr7Z0iLYqraz51-details-toggle-button\";\n", + " detailsDiv.id = \"ilwFj682HpqBSoqFX-details-toggle-button\";\n", " detailsDiv.onclick = ui.composites.details.toggle;\n", " ui.elements.graphContainer.appendChild(detailsDiv);\n", " ui.elements.detailsToggleDiv = detailsDiv;\n", " }\n", "\n", " // - Graph drawing area\n", - " const svg = d3.select(\"#iRbwr7Z0iLYqraz51-graph-div\").append(\"svg\");\n", + " const svg = d3.select(\"#ilwFj682HpqBSoqFX-graph-div\").append(\"svg\");\n", " state.currentGraphParts.svg = svg;\n", " svg\n", " .attr(\"width\", state.graphContainerWidth)\n", " .attr(\"height\", state.graphContainerHeight);\n", " // - Background rectangle\n", " const backgroundRect = svg.append(\"rect\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-background\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-background\")\n", " .attr(\"width\", state.graphContainerWidth)\n", " .attr(\"height\", state.graphContainerHeight)\n", " .attr(\"fill\", state.shownData.general.background_color);\n", " state.currentGraphParts.backgroundRect = backgroundRect;\n", " // - Zoomable and draggable group as graph drawing area\n", - " const view = svg.append(\"g\").attr(\"id\", \"iRbwr7Z0iLYqraz51-zoomable-graph-group\");\n", + " const view = svg.append(\"g\").attr(\"id\", \"ilwFj682HpqBSoqFX-zoomable-graph-group\");\n", " state.currentGraphParts.view = view;\n", " function zoomed(event) {\n", " view.attr(\"transform\", event.transform);\n", @@ -7040,7 +2798,7 @@ " // in back and which are drawn in front (there is no z-order property in SVG)\n", " // Edges\n", " state.currentGraphParts.edgeMainGroup = view.append(\"g\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-edge-group\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-edge-group\")\n", " .style(\"display\", ui.convert.boolToDisplayStyle(state.showEdges));\n", " state.currentGraphParts.edgeGroups = state.currentGraphParts.edgeMainGroup\n", " .selectAll(\"g\")\n", @@ -7048,7 +2806,7 @@ " .join(\"g\");\n", " // Nodes\n", " state.currentGraphParts.nodeMainGroup = view.append(\"g\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-node-group\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-node-group\")\n", " .style(\"display\", ui.convert.boolToDisplayStyle(state.showNodes));\n", " state.currentGraphParts.nodeGroups = state.currentGraphParts.nodeMainGroup\n", " .selectAll(\"g\")\n", @@ -7060,7 +2818,7 @@ " edgeLabelData.push(i);\n", " }\n", " state.currentGraphParts.edgeLabelMainGroup = view.append(\"g\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-edge-label-group\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-edge-label-group\")\n", " .style(\"display\", ui.convert.boolToDisplayStyle(state.showEdgeLabels));\n", " state.currentGraphParts.edgeLabelGroups = state.currentGraphParts.edgeLabelMainGroup\n", " .selectAll(\"g\")\n", @@ -7072,7 +2830,7 @@ " nodeLabelData.push(i);\n", " }\n", " state.currentGraphParts.nodeLabelMainGroup = view.append(\"g\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-node-label-group\");\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-node-label-group\");\n", " state.currentGraphParts.nodeLabelGroups = state.currentGraphParts.nodeLabelMainGroup\n", " .style(\"display\", ui.convert.boolToDisplayStyle(state.showNodeLabels))\n", " .selectAll(\"g\")\n", @@ -7089,7 +2847,7 @@ " }\n", " }\n", " state.currentGraphParts.nodeImageMainGroup = view.append(\"g\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-node-image-group\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-node-image-group\")\n", " .style(\"display\", ui.convert.boolToDisplayStyle(state.showNodeImages));\n", " state.currentGraphParts.nodeImageGroups = state.currentGraphParts.nodeImageMainGroup\n", " .selectAll(\"g\")\n", @@ -7320,7 +3078,7 @@ " function nodeClicked(event, node){\n", " let htmlText = \"
Node: \" + String(node.id) + \"
\";\n", " if(typeof(node.click) !== \"undefined\" && node.click !== \"\"){\n", - " htmlText += '
' + node.click + '
';\n", + " htmlText += '
' + node.click + '
';\n", " }\n", " ui.elements.detailsBody.innerHTML = htmlText;\n", " }\n", @@ -7573,7 +3331,7 @@ "\n", " // 1) Remove existing elements\n", " ui.composites.graph.removeEdges();\n", - " svg.select(\"#iRbwr7Z0iLYqraz51-arrow-marker\").remove();\n", + " svg.select(\"#ilwFj682HpqBSoqFX-arrow-marker\").remove();\n", " // 2) Create new elements\n", " // - Paths\n", " state.currentGraphParts.edgePaths = edgeGroups.append(\"path\")\n", @@ -7587,7 +3345,7 @@ " const arrowSizeDouble = arrowSize * 2.0,\n", " arrowSizeHalf = arrowSize / 2.0;\n", " const marker = svg.append(\"marker\")\n", - " .attr(\"id\", \"iRbwr7Z0iLYqraz51-arrow-marker\")\n", + " .attr(\"id\", \"ilwFj682HpqBSoqFX-arrow-marker\")\n", " .attr(\"markerUnits\", \"userSpaceOnUse\")\n", " .attr(\"viewBox\", \"0 0 \" + arrowSizeDouble + \" \" + arrowSizeDouble)\n", " .attr(\"refX\", 0)\n", @@ -7600,7 +3358,7 @@ " .attr(\"d\", \"M 0 0 L \" + arrowSizeDouble + \" \" + arrowSizeHalf + \" L 0 \" + arrowSize + \" z\")\n", " .attr(\"fill\", state.shownData.general.arrow_color)\n", " state.currentGraphParts.edgePaths\n", - " .attr(\"marker-end\", \"url(#iRbwr7Z0iLYqraz51-arrow-marker)\");\n", + " .attr(\"marker-end\", \"url(#ilwFj682HpqBSoqFX-arrow-marker)\");\n", " }\n", " // - Edge hover behavior\n", " if(state.parsedData.general.contains_edge_hover){\n", @@ -7634,7 +3392,7 @@ " function edgeClicked(event, edge){\n", " let htmlText = \"
Edge: \" + String(edge.id) + \"
\";\n", " if(typeof(edge.click) !== \"undefined\" && edge.click !== \"\"){\n", - " htmlText += '
' + edge.click + '
';\n", + " htmlText += '
' + edge.click + '
';\n", " }\n", " ui.elements.detailsBody.innerHTML = htmlText;\n", " }\n", @@ -8651,7 +4409,7 @@ "\n" ], "text/plain": [ - "" + "" ] }, "execution_count": 4, @@ -8678,7 +4436,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -8740,6 +4498,31 @@ " print(edge_1, edge_2, edge_attributes.get('outputs'))" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 {'name': 'global workflow input', 'type': 'input', 'entry_type': 'simulation', 'path_info': {'upload_id': '', 'entry_id': None, 'mainfile_path': '', 'supersection_index': 0, 'section_index': 0, 'section_type': 'method'}, 'out_edge_nodes': [1]}\n", + "1 {'name': '1', 'type': 'task', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': '', 'mainfile_path': '', 'section_type': 'workflow2'}}\n", + "2 {'name': '2', 'type': 'workflow', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}}\n", + "3 {'name': '3', 'type': 'workflow', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}, 'in_edge_nodes': [2], 'out_edge_nodes': []}\n", + "4 {'name': 'global workflow output', 'type': 'output', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': '', 'supersection_index': -1, 'section_type': 'results'}, 'in_edge_nodes': [3]}\n", + "5 {'type': 'input', 'name': 'input system from 0', 'path_info': {'section_type': 'system', 'supersection_index': 0, 'section_index': 0, 'mainfile_path': ''}}\n", + "6 {'type': 'output', 'name': 'output calculation from 1', 'path_info': {'section_type': 'calculation', 'supersection_index': 0, 'calculation_index': -1, 'mainfile_path': ''}}\n", + "7 {'type': 'output', 'name': 'output calculation from 2', 'path_info': {'section_type': 'calculation', 'supersection_index': 0, 'calculation_index': -1, 'mainfile_path': ''}}\n" + ] + } + ], + "source": [ + "for node_key, node_attributes in workflow_graph.nodes(data=True):\n", + " print(node_key, node_attributes)" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -8751,19 +4534,19 @@ "text": [ "0 None\n", "0 None\n", - "0 {'name': 'global workflow input', 'type': 'input', 'path_info': {'upload_id': '', 'entry_id': None, 'mainfile_path': '', 'supersection_index': 0, 'section_index': 0, 'section_type': 'method'}, 'out_edge_nodes': [1]}\n", + "0 {'name': 'global workflow input', 'type': 'input', 'entry_type': 'simulation', 'path_info': {'upload_id': '', 'entry_id': None, 'mainfile_path': '', 'supersection_index': 0, 'section_index': 0, 'section_type': 'method'}, 'out_edge_nodes': [1]}\n", "1 None\n", "1 None\n", - "1 {'name': '1', 'type': 'task', 'path_info': {'upload_id': None, 'entry_id': '', 'mainfile_path': '', 'section_type': 'workflow2'}}\n", + "1 {'name': '1', 'type': 'task', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': '', 'mainfile_path': '', 'section_type': 'workflow2'}}\n", "2 None\n", "2 None\n", - "2 {'name': '2', 'type': 'workflow', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}}\n", + "2 {'name': '2', 'type': 'workflow', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}}\n", "3 None\n", "3 None\n", - "3 {'name': '3', 'type': 'workflow', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}, 'in_edge_nodes': [2], 'out_edge_nodes': []}\n", + "3 {'name': '3', 'type': 'workflow', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': ''}, 'in_edge_nodes': [2], 'out_edge_nodes': []}\n", "4 None\n", "4 None\n", - "4 {'name': 'global workflow output', 'type': 'output', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': '', 'supersection_index': -1, 'section_type': 'results'}, 'in_edge_nodes': [3]}\n", + "4 {'name': 'global workflow output', 'type': 'output', 'entry_type': 'simulation', 'path_info': {'upload_id': None, 'entry_id': None, 'mainfile_path': '', 'supersection_index': -1, 'section_type': 'results'}, 'in_edge_nodes': [3]}\n", "5 None\n", "5 None\n", "5 {'type': 'input', 'name': 'input system from 0', 'path_info': {'section_type': 'system', 'supersection_index': 0, 'section_index': 0, 'mainfile_path': ''}}\n", diff --git a/tests/utils/workflow_yaml_examples/MD_equilibration/workflow_archive.yaml b/tests/utils/workflow_yaml_examples/MD_equilibration/workflow_archive.yaml new file mode 100644 index 0000000..f6e6124 --- /dev/null +++ b/tests/utils/workflow_yaml_examples/MD_equilibration/workflow_archive.yaml @@ -0,0 +1,67 @@ +workflow2: + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/run/0/system/0' + + outputs: + - name: final system of production trajectory + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/PD1.log#/run/0/system/-1' + - name: final calculation of production trajectory + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/PD1.log#/run/0/calculation/-1' + + tasks: + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/workflow2' + name: GeometryOpt + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/run/0/system/0' + outputs: + - name: relaxed system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/run/0/system/-1' + - name: energy and pressure of the relaxed system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/run/0/calculation/-1' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ1.log#/workflow2' + name: MolecularDynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/minimEQ1.log#/run/0/system/-1' + outputs: + - name: final system from high temp NVT equilibration + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ1.log#/run/0/system/-1' + - name: final thermodynamic quantities of high temp NVT equilibration + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ1.log#/run/0/calculation/-1' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ2.log#/workflow2' + name: MolecularDynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ1.log#/run/0/system/-1' + outputs: + - name: final system from NVT cool down to 300k + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ2.log#/run/0/system/-1' + - name: final thermodynamic quantities of NVT cool down to 300k + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ2.log#/run/0/calculation/-1' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ3.log#/workflow2' + name: MolecularDynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ2.log#/run/0/system/-1' + outputs: + - name: final system from NPT equilibration + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ3.log#/run/0/system/-1' + - name: final thermodynamic quantities of NPT equilibration + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ3.log#/run/0/calculation/-1' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: '../upload/archive/mainfile/MOL0_160_MOL1_240/PD1.log#/workflow2' + name: MolecularDynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/EQ3.log#/run/0/system/-1' + outputs: + - name: final system from NPT production run + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/PD1.log#/run/0/system/-1' + - name: final thermodynamic quantities of NPT production run + section: '../upload/archive/mainfile/MOL0_160_MOL1_240/PD1.log#/run/0/calculation/-1' diff --git a/tests/utils/workflow_yaml_examples/water_equilibration/workflow.archive.yaml b/tests/utils/workflow_yaml_examples/water_equilibration/workflow.archive.yaml new file mode 100644 index 0000000..abfa162 --- /dev/null +++ b/tests/utils/workflow_yaml_examples/water_equilibration/workflow.archive.yaml @@ -0,0 +1,49 @@ + +workflow2: + name: Equilibration Procedure + inputs: + - name: input system + section: '../upload/archive/mainfile/Emin/mdrun_Emin.log#/run/0/system/0' + outputs: + - name: output system + section: '../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/run/0/system/-1' + - name: output properties + section: '../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/run/0/calculation/-1' + tasks: + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: ../upload/archive/mainfile/Emin/mdrun_Emin.log#/workflow2 + name: Geometry Optimization + inputs: + - name: input system + section: '../upload/archive/mainfile/Emin/mdrun_Emin.log#/run/0/system/0' + outputs: + - name: relaxed system + section: '../upload/archive/mainfile/Emin/mdrun_Emin.log#/run/0/system/-1' + - name: energies of the relaxed system + section: '../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/run/0/calculation/-1/energy' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: ../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/workflow2 + name: Equilibration NPT Molecular Dynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/Emin/mdrun_Emin.log#/run/0/system/-1' + outputs: + - name: output system + section: '../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/run/0/system/-1' + - name: output properties + section: '../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/run/0/calculation/-1' + - name: MD workflow properties (structural and dynamical) + section: '../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/workflow2/results' + - m_def: nomad.datamodel.metainfo.workflow.TaskReference + task: ../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/workflow2 + name: Production NVT Molecular Dynamics + inputs: + - name: input system + section: '../upload/archive/mainfile/Equil_NPT/mdrun_Equil-NPT.log#/run/0/system/-1' + outputs: + - name: output system + section: '../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/run/0/system/-1' + - name: output properties + section: '../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/run/0/calculation/-1' + - name: MD workflow properties (structural and dynamical) + section: '../upload/archive/mainfile/Prod_NVT/mdrun_Prod-NVT.log#/workflow2/results'