schrodinger.application.matsci.msutils module¶
Utility functions and classes for MatSci workflows.
Copyright Schrodinger, LLC. All rights reserved.
-
class
schrodinger.application.matsci.msutils.
Forcefield
(version, name)¶ Bases:
tuple
-
__contains__
(key, /)¶ Return key in self.
-
__len__
()¶ Return len(self).
-
count
(value, /)¶ Return number of occurrences of value.
-
index
(value, start=0, stop=9223372036854775807, /)¶ Return first index of value.
Raises ValueError if the value is not present.
-
name
¶ Alias for field number 1
-
version
¶ Alias for field number 0
-
-
schrodinger.application.matsci.msutils.
get_default_forcefield
()[source]¶ Returns information for S-OPLS if license is found. If no license is found, returns information for OLPS2005, which requires no license.
- Returns namedtuple forcefield
Named 2-tuple containing the
version
andname
of the default forcefield, respectively
-
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.
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.
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.
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_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.
get_next_name
(name)[source]¶ Get the next customer facing name. For example, ‘xx’ gives ‘xx (1)’ and ‘xx (n)’ gives ‘xx (n + 1)’
- Parameters
name (str) – The name based on which the next is generated
- 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.
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
.
-
schrodinger.application.matsci.msutils.
get_common_property_names
(sts)[source]¶ Return the property names that all of the given structures have in common.
- Parameters
sts (list[
schrodinger.structure.Structure
]) – the structures to search- Return type
set[str]
- Returns
the common property names
-
schrodinger.application.matsci.msutils.
get_common_float_property_names
(sts)[source]¶ Return the float property names that all of the given structures have in common.
- Parameters
sts (list[
schrodinger.structure.Structure
]) – the structures to search- Return type
set[str]
- Returns
the common float property names
-
schrodinger.application.matsci.msutils.
get_common_atom_property_names
(sts)[source]¶ Return the property names that all atoms of the given structures have in common.
- Parameters
sts (list[
schrodinger.structure.Structure
]) – the structures to search- Return type
set[str]
- Returns
the common atom property names
-
schrodinger.application.matsci.msutils.
get_common_float_atom_property_names
(sts)[source]¶ Return the float atom property names that all of the given structures have in common.
- Parameters
sts (list[
schrodinger.structure.Structure
]) – the structures to search- Return type
set[str]
- Returns
the common float atom property names
-
schrodinger.application.matsci.msutils.
is_coarse_grain
(struct, by_atom=False)[source]¶ Check if struct is a coarse grain structure
- Parameters
struct (
schrodinger.structure.Structure
) – The structure to checkby_atom (bool) – If True, check each atom to see if it is coarse grain and return True if any atom is coarse grin. If False, check only for the coarse grain structure property. True is useful when the structure has been obtained via maestro.workspace_get, which removes structure-level properties, or if the structure may be a mixed atomistic/coarse-grained structure.
- Return type
bool
- Returns
True if it is a coarse grain structure, False if not
-
schrodinger.application.matsci.msutils.
structure_reader_to_3d
(file_path, require_stereo=False)[source]¶ Read structures from a file and return 3D representations.
- Parameters
file_path (str) – the file, can be of any format supported by
schrodinger.structure.StructureReader
orschrodinger.structure.SmilesReader
require_stereo (bool) – see
schrodinger.structure.Structure.generate3dConformation
- Return type
- Returns
3D structures
-
schrodinger.application.matsci.msutils.
keyword_string_to_dict
(keystring)[source]¶ Return a dictionary whose keys are keywords and values are keyword values
- Parameters
keystring (str) – The keywords are taken from this string - keywords must be in the keyword=value format and whitespace delimited.
- Return type
dict
- Returns
Dictionary of keyword/value pairs
- Raises
ValueError – if any tokens do not match the keyword=value format
-
schrodinger.application.matsci.msutils.
keyword_dict_to_string
(keydict)[source]¶ Return a string of keywords specified by keydict.
- Parameters
keydict (dict) – Dictionary - keys are Jaguar keywords, values are keyword values of str type
- Return type
str
- Returns
A string of space-separated keyword=value pairs