Disconnectivity graphs

Methods for plotting disconnectivity graphs from a KineticTransitionNetwork object that contains the network of minima and transition states. Disconnectivity graphs provide a two-dimensional visualisation of the structure of high-dimensional surfaces

topsearch.plotting.disconnectivity.cut_line_collection(ktn: KineticTransitionNetwork, conn_graph: Graph, lines: list, start: float, finish: float, levels: int) list

Take the lines that currently run to the lowest known energy and shorten each node to its corresponding energy when there is only one member in the subset

topsearch.plotting.disconnectivity.find_parent(H: Graph, member: set, level: int) int | None

Find the parent node for the subset containing the member minimum

topsearch.plotting.disconnectivity.get_connectivity_graph(ktn: KineticTransitionNetwork, start: float, finish: float, levels: int) Graph

Generate the connectivity graph for splitting the space. This is a network containing the subsets of minima that are connected as we progressively remove edges with a lower value

topsearch.plotting.disconnectivity.get_line_collection(conn_graph: Graph, start: float, finish: float, levels: int) list

Produce the line collection from the connectivity graph. Specifies the width in x of each subset and uses this to place lines connected to their parents in the x axis

topsearch.plotting.disconnectivity.plot_disconnectivity_graph(ktn: KineticTransitionNetwork, levels: int, label: str = '') None

Compute the disconnectivity graph, plot and save to file