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:
ExceptionRaised 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.