schrodinger.application.matsci.graph module¶
Module containing methods applied on networkx graph
Copyright Schrodinger, LLC. All rights reserved.
- exception schrodinger.application.matsci.graph.NetworkLoopError¶
Bases:
Exception
Raised when the whole network is infinite
- schrodinger.application.matsci.graph.get_sub_graphs(graph)¶
Generator of the disconnect graphs in the passed graph.
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to find subgraphs in
- Return type
‘networkx.classes.graph.Graph’
- Returns
subgraph of the graph
- schrodinger.application.matsci.graph.get_fused_cycles(graph)¶
Return cycles (fused and non-fused) in the graph
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to find cycles in
- Return type
list(set)
- Returns
list of sets of nodes that make each cycle
- schrodinger.application.matsci.graph.get_sorted_shortest_path(graph, end_nodes, max_fix=False)¶
Get the shortest path with lowest indexes. Networkx does not handle degeneracy due to cycles properly, so using all_shortest_paths to compare each path
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to calculate the shortest path in
end_nodes (list) – The start and end nodes
max_fix (bool) – Whether to fix internal degeneracy when maximum number of path checks are reached
- Returns
The sorted shortest path.
- Return type
list of node index for shortest ordered path between the end nodes
- schrodinger.application.matsci.graph.break_infinite_segment(graph, end_nodes)¶
Break a infinite loop segment to make it finite
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to make finite
end_nodes (list) – The start and end nodes
- Raises
NetworkLoopError – If the segment cannot be made finite
- schrodinger.application.matsci.graph.find_backbone(graph, prefer_indexes=None, max_fix=True)¶
Find the shortest path between atoms that are furthest apart
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to find longest path in
prefer_indexes (set) – A list of preferred atom indexes to choose for the head and tail of the backbone. For paths of equal lengths, the chosen path will start and end with atoms in the prefer_indexes set if one is available. Can be used, for instance, to prefer backbones that start and end with hydrogen atoms.
max_fix (bool) – Whether to fix internal degeneracy when maximum number of path checks are reached
- Return type
list
- Returns
list of nodes in the longest path in the graph. Between the two end node, the node with lower index is considered as the first element of the list and the other as the last. In case of degeneracy due to cycles nodes in the path, the shortest path containing lowest indexes is selected.
- schrodinger.application.matsci.graph.find_head_tail(graph, prefer_indexes=None)¶
Find the two nodes that are furthest apart in the graph.
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to find the longest path in
prefer_indexes (set) – A list of preferred atom indexes to choose for the head and tail of the backbone. For paths of equal lengths, the chosen path will start and end with atoms in the prefer_indexes set if one is available. Can be used, for instance, to prefer backbones that start and end with hydrogen atoms.
rytpe: list return: list of two nodes that are furthest apart in the graph
- schrodinger.application.matsci.graph.find_segments(graph)¶
Find the segments in the input graph. Segments are path containing nodes where no node appears in a segment twice. Longest segments are always created first and then recursively smaller ones.
- Parameters
graph ('networkx.classes.graph.Graph') – The graph to find segments in
- Return type
list(list)
- Returns
list of list of nodes. Each sublist is a list of ordered nodes, starting from lower index of the two end nodes, forming the longest path graph not containing the nodes already considered.