schrodinger.application.matsci.geometry module¶
Utilities for geometry manipulation or property calculation
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.matsci.geometry.find_marked_backbone_path(struct, sub_graph)¶
Find the shortest path based on atoms marked as backbone.
- Parameters:
struct (
schrodinger.structure.Structure
) – The structure to find backbone path in.sub_graph ('networkx.classes.graph.Graph') – The graph to find path in structure
- Return type:
list or None
- Returns:
list of nodes in the path in the graph. The selected path must contain the marked backbone atoms.
- schrodinger.application.matsci.geometry.get_backbone_atoms(struct, exclude_hydrogen=True, max_fix=True)¶
Return dictionary of backbone atoms for each molecule in the structure.
- Parameters:
struct (schrodinger.structure.Structure) – The structure to find backbone atoms in.
exclude_hydrogen (bool) – If true hydrogen will be excluded in creation of graph and searching for backbone atoms. This results in much faster calculation.
max_fix (bool) – Whether to fix internal degeneracy when maximum number of path checks are reached
- Return dict:
the key of the dictionary is molecule number and the value is the list of backbone atoms. If there are less than two atoms in the molecule the associated value will be an empty list.
- schrodinger.application.matsci.geometry.get_ordered_polymer_backbone(struct, backbone_path, remove_side_chain)¶
Backbone of a polymer chain should follow H–TH–TH–T format, where backbone starts with head and ends with tail.
- Parameters:
struct (schrodinger.structure.Structure) – The structure to find backbone atoms in.
backbone_path (list) – list of atom indexes in the backbone
remove_side_chain (bool) – If true it will remove the side chain atoms from the backbone in the start and end.
- Return list:
list of atom indexes in the backbone such that first atom is always a head.
- schrodinger.application.matsci.geometry.get_ordered_backbone_atoms(struct)¶
Return dictionary of backbone atoms for each molecule in the structure.
- Parameters:
struct (schrodinger.structure.Structure) – The structure to find backbone atoms in.
- Return dict(list):
the key of the dictionary is molecule number and the value is the list of backbone atoms
- schrodinger.application.matsci.geometry.radius_of_gyration(struct, molecule_coms=False)¶
Calculate radius of gyration for a structure
- Parameters:
struct (structure.Structure) – The structure to calculate RG for
molecule_coms (bool) – Whether to use center of mass of each molecule in the structure for calculating Rg
- Return type:
float
- Returns:
The radius of gyration
- schrodinger.application.matsci.geometry.fit_structure_to_ellipsoid(struct)¶
Fit the structure to an ellipsoid and return the ellipsoid semi-axes and principal moments of inertia
The method is taken from https://pubs.acs.org/doi/abs/10.1021/jp047138e and uses the following equations to calculate the semi-axes values: I1 = M/5 * (a**2 + b**2) I2 = M/5 * (a**2 + c**2) I3 = M/5 * (b**2 + c**2) Also see https://en.wikipedia.org/wiki/Ellipsoid#Dynamical_properties
- Parameters:
struct (structure.Structure) – The structure to fit to an ellipsoid
- Return type:
tuple of (float, float, float, [float, float, float])
- Returns:
Tuple of semi-axes values in Angstroms and principal moments of inertia in u * A**2
- schrodinger.application.matsci.geometry.fit_points_to_circle(x_vals, y_vals, center_x=None)¶
Fit 2D points to a circle
- Parameters:
x_vals (numpy.array) – Array containing point x values
y_vals (numpy.array) – Array containing point y values
center_x (float) – If provided, this will be the x value of the circle center
- Return type:
tuple(float, float, float)
- Returns:
Center x value, center y value, and radius
- schrodinger.application.matsci.geometry.get_center(st, atom_ids=None)¶
Get the structure’s center of mass, limited to the given
atom_ids
. Return None ifatom_ids
is empty or None- Parameters:
st (structure.Structure) – Structure
atom_ids (list(int)) – Atom ids for which center of mass has to be calculated
- Returns:
centroid given as 3-element array [x, y, z]
- Return type:
numpy.array(float) or None