schrodinger.application.matsci.msutils module¶
Utility functions and classes for MatSci workflows.
Copyright Schrodinger, LLC. All rights reserved.
-
schrodinger.application.matsci.msutils.
remove_properties
(struct, props=None, matches=None, atom_props=None, atom_matches=None)[source]¶ Remove all the matching structure and atom properties. No error is thrown if the given properties do not actually exist on the structure.
- Parameters
struct (
structure.Structure
orcms.Cms
) – The structure to remove properties fromprops (list) – A list of structure properties to delete
matches (list) – Remove all structure properties whose name contains any of these strings
atom_props (list) – A list of atom properties to delete
atom_matches (list) – Remove all atom properties whose name contains any of these strings
-
schrodinger.application.matsci.msutils.
remove_atom_property
(struct, prop)[source]¶ Delete atom property from all atoms in a structure (structure will be modified).
- Parameters
struct (
structure.Structure
orcms.Cms
) – Structure object to be modifiedprop (str) – Atom property to be removed
-
schrodinger.application.matsci.msutils.
remove_cms_property
(cms_model, propname)[source]¶ Delete a property from a cms model
- Parameters
cms_model (
cms.Cms
) – cms modelpropname (str) – property name
-
schrodinger.application.matsci.msutils.
remove_cms_atom_property
(cms_model, propname)[source]¶ Delete an atom property from a cms model
- Parameters
cms_model (
cms.Cms
) – cms modelpropname (str) – property name
-
schrodinger.application.matsci.msutils.
has_atom_property
(struct, prop)[source]¶ Check if structure has any atom with the property set.
- Parameters
structure.Structure – Input structure
str – Property name
- Raises
KeyError – If property name doesn’t start with: s_, r_, i_, b_
mm.MmException – If unexpected error occurred
- Return bool
True of property is present, False otherwise
-
schrodinger.application.matsci.msutils.
roundup
(inp)[source]¶ Round away from zero (to +/-infinity).
- Parameters
inp (float or numpy.array) – value to be rounded
- Return type
float or numpy.array
- Returns
Rounded value
-
schrodinger.application.matsci.msutils.
getstr
(ret)[source]¶ Convert binary string (or other data) to str.
- Parameters
ret (binary_type or any other type convertable to str) – Value to be converted to str
- Return type
str
- Returns
Value converted to str
-
schrodinger.application.matsci.msutils.
sig_fig_round
(value, significant_figure=5)[source]¶ - Parameters
value (float) – change the significant figures of this value
significant_figure (int) – significant figure of the displayed value
- Return type
str
- Returns
str representation of a number with proper significant figures
-
schrodinger.application.matsci.msutils.
get_significant_figures
(number)[source]¶ Get significant digits of a number
- Parameters
number (float or int or str) – number to find significant digits
- Return type
int
- Returns
number of significant digits
-
schrodinger.application.matsci.msutils.
set_significant_figures
(number, sig_fig)[source]¶ Set significant digits of a number
- Parameters
number (float or int) – number to set significant digits
sig_fig (int) – number of significant digits
- Return type
float
- Returns
number with desired significant digits
-
schrodinger.application.matsci.msutils.
get_project_group_hierarchy
(st=None, row=None)[source]¶ Return the project group hierarchy for the given structure or row.
- Parameters
st (
schrodinger.structure.Structure
) – the structurerow (
schrodinger.project.ProjectRow
) – the project row
- Raises
ValueError – if there is an issue
- Return type
list
- Returns
the hierarchy (outermost to innermost)
-
schrodinger.application.matsci.msutils.
set_project_group_hierarchy
(st, hierarchy, collapsed=False)[source]¶ Set the project group hierarchy for the given structure.
- Parameters
st (
schrodinger.structure.Structure
) – the structurehierarchy (list) – the hierarchy (outermost to innermost)
collapsed (bool) – Whether the group should initially be collapsed
-
schrodinger.application.matsci.msutils.
get_matsci_user_data_dir
()[source]¶ Get the absolute path to the user’s local MatSci data directory for storing custom templates, protocols, etc. Directory is created if it doesn’t exist.
- Return type
str
- Returns
The absolute path the Materials Science data parent directory
-
schrodinger.application.matsci.msutils.
structure_reader
(filename, log=None)[source]¶ Read structures from a file until the end or the first structure with an error.
- Parameters
filename (str) – filename
log (function) – Log function, if None, nothing is called
- Yield schrodinger.structure.Structure
Next structure in the file
-
schrodinger.application.matsci.msutils.
is_dummy_atom
(atom)[source]¶ Return True if the given atom is a dummy atom.
- Parameters
atom (schrodinger.structure._StructureAtom) – the atom
- Return type
bool
- Returns
return True if the given atom is a dummy atom
-
schrodinger.application.matsci.msutils.
validate_no_dummy_atoms
(structs)[source]¶ Validate that the passed structures don’t have dummy atoms
- Parameters
structs (iterable) – Structures to check
- Return type
bool or (bool, str)
- Return type
True if no structures has dummy atoms, False and error message if at least one structure does
-
schrodinger.application.matsci.msutils.
add_or_update_bond_order
(ct, atom1, atom2, bond_order)[source]¶ Create a new bond, or update the existing bond order of this bond.
- Return type
schrodinger.structure._Bond
-
schrodinger.application.matsci.msutils.
add_or_update_bond_type
(ct, atom1, atom2, bond_type)[source]¶ Create a new bond, or update the existing bond type of this bond.
- Return type
schrodinger.structure._Bond
-
schrodinger.application.matsci.msutils.
polyfit
(xdata, ydata, degree)[source]¶ Fit a polynomial of rang degree to data.
- Parameters
xdata (numpy.array) – X data
ydata (numpy.array) – Y data
degree (int) – Degree of the fitting polynomial
- Return type
numpy.array, float
- Returns
Fitting coefficients, coefficient of determination (R^2)
-
schrodinger.application.matsci.msutils.
trim_str
(text, max_len, suffix='...')[source]¶ Trim the string to approximately max_len. Add a suffix if the string is longer than max_len.
- Parameters
text – String to trim
max_len (int) – Max length of the string
suffix (str) – Suffix to add if the string is to be trimmed
- Return str
Trimmed string
-
schrodinger.application.matsci.msutils.
mmlewis_apply
()[source]¶ Context manager that initializes mm and returns mm.mmlews_apply method.
- Yield
mm.mmlewis_apply method.
Example usage:
- with msutils.mmlewis_apply() as lewis_apply:
assert lewis_apply(struct) is None
-
schrodinger.application.matsci.msutils.
get_disorder_groups
(struct)[source]¶ Get atoms that have s_cif_disorder_group set and occupancies are not 0 or 1.
- Parameters
structure.Structure – Input structure
- Return type
dict or None
- Returns
Dict with keys disorder group labels, values list of atom indices or None if nothing is present in the structure
-
schrodinger.application.matsci.msutils.
get_atom_ffio_velocity
(atom)[source]¶ Get FFIO atom velocities.
- Parameters
atom (structure._StructureAtom) – Input atom
- Return numpy.array
Array of velocities
-
schrodinger.application.matsci.msutils.
set_atom_ffio_velocity
(atom, velocity)[source]¶ Set FFIO atom velocities.
- Parameters
atom (structure._StructureAtom) – Atom to modify
velocity (list) – List of velocities (x, y, z components)
-
schrodinger.application.matsci.msutils.
get_unique_name
(new_name, existing_names)[source]¶ Add a suffix to new_name to make a unique name if it already exists in existing_names.
- Parameters
new_name (str) – The new name
existing_names (list) – Existing names
- Return type
str
- Returns
The unique version of new_name
-
schrodinger.application.matsci.msutils.
setting_to_bool
(string, empty_is_false=True)[source]¶ Convert a yes/no/true/false/1/0/on/off type string to a Python boolean
- Parameters
string (str) – The string to convert
empty_is_false – If the string is empty or None, return False
- Return type
bool
- Returns
True if the string is a “true”-y word (TRUE, true, t, yes, on, 1, etc), False if it is a “false”-y word (FALSE, false, f, no, off, 0).
- Raises
ValueError – If the string cannot be interpreted in a True/False manner
AttributeError – If something other than a string is passed in
-
schrodinger.application.matsci.msutils.
flatten
(alist, afunc=None)[source]¶ Flatten the given list into a set.
- Parameters
alist (list) – elements contain iterable data
afunc (function or None) – function used to extract iterable data from the given list elements or None if there isn’t one
- Return type
set
- Returns
a flattened set of data from the given list
-
schrodinger.application.matsci.msutils.
remove_pbc_props
(struct)[source]¶ Remove the pbc properties of the given structure.
- Parameters
struct (schrodinger.structure.Structure) – crystal structure from which all the pbc properties are to be removed
-
schrodinger.application.matsci.msutils.
get_trajectory_frames
(options, frames=None)[source]¶ Return a generator for trajectory frames in the range that the user specified, as well as the number of frames
Requires that trajectory flags in parserutils are used in the parser.
- Parameters
options (argparse.Namespace) – Parsed commandline options
frames (iterable or None) – Trajectory frames. If not provided, they will be read from the path in options
- Return type
generator, int
- Returns
The trajectory frame generator, and the number of frames
-
schrodinger.application.matsci.msutils.
get_atomic_element
(atomic_number)[source]¶ Given atomic number return chemical element.
- Parameters
atomic_number (int) – Atomic number
- Return type
str
- Returns
Chemical element
-
schrodinger.application.matsci.msutils.
ignore_ssl_warnings
()[source]¶ Context manager to temporarily ignore InsecureRequestWarning warning.
-
schrodinger.application.matsci.msutils.
get_index_from_default_name
(atom_name)[source]¶ Find the atom index from string of element name and atom index
- Parameters
atom_name (str) – concatenated string of element symbol with the atom index
- Rtype index
int or None
- Para atom_index
Atom index
-
schrodinger.application.matsci.msutils.
title_case
(original, exceptions=('an', 'of', 'the', 'for'), skip_single_letters=True)[source]¶ Convert the string to title case, optionally ignoring articles and single letters
Examples with default kwargs: “Number of molecules”: “Number of Molecules” “axis b”: “Axis b”
- Parameters
original (str) – The string to make title case
exceptions (tuple) – The words to not capitalize
skip_single_letters (bool) – Whether single letters should not be capitalized
- Return type
str
- Returns
The string in title case
-
schrodinger.application.matsci.msutils.
generate_smiles
(struct)[source]¶ Return a SMILES string for
st
.For more options, see the
schrodinger.structutils.smiles.SmilesGenerator
class.- Parameters
struct (
Structure
) – Structure for which SMILES string is desired.- Return type
str
- Returns
SMILES string representing
st
.