The software is a graph analysis and visualization tool, designed to process data from a GraphML file (likely generated by a tool like yEd) to analyze and display relationships, particularly cycles (feedback loops) and paths, within a directed graph.
Brief Description of Functionality: The script reads a GraphML file to build a directed graph using the networkx library. It extracts nodes (with names and a numerical "convenience" value based on color) and edges (with a numerical correlation value, also based on color).
Its main functions are:
- Configuration: Reads settings (source/target nodes, display options, color threshold) from an input.txt file.
- Graph Processing: Builds a networkx.DiGraph from the GraphML data.
- Cycle and Path Finding:
- Identifies all simple cycles in the graph.
- Finds all simple paths between specified source and target nodes.
- Analysis & Output:
- Can identify whether the cycle is a positive feedback loop (V) or a negative feedback loop (=).
- If it is a positive feedback loop, whether it is a Virtuous cycle or a Vicious cycle depends on the convenience of the target node
- Generates an HTML file to visualize the found feedback loops, besides incoming & outgoing paths, using colors and symbols (:--->:, :--X->:) based on the nature of the node and edge.
- Can identify whether the cycle is a positive feedback loop (V) or a negative feedback loop (=).
- Filtering: Reports on irrelevant nodes (those not part of any printed path or cycle) and generates a new, filtered GraphML file containing only the relevant nodes and edges.
| Color | Node nature | Change |
|---|---|---|
| White | Neutral | + |
| Gray | Neutral | - |
| Green | Positive | + |
| Pink | Positive | - |
| Red | Negative | + |
| Light green | Negative | - |
| Edge | Correlation |
|---|---|
| ---> | + |
| -X-> | - |