schrodinger.application.matsci.geometry module

Utilities for geometry manipulation or property calculation

Copyright Schrodinger, LLC. All rights reserved.

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 if atom_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