schrodinger.rdkit.substructure module

Substructure searching and alignment

Copyright Schrodinger LLC, All Rights Reserved.

class schrodinger.rdkit.substructure.QueryOptions(stereospecific: bool = True, fuzzy_aromatic_matching: bool = True, tautomer_insensitive: bool = False)

Bases: tuple

Variables
  • stereospecific – whether to consider stereochemistry and chirality

  • fuzzy_aromatic_matching – whether to make aromatic queries less strict

  • tautomer_insensitive – whether to consider tautomer insensitivity

stereospecific: bool

Alias for field number 0

fuzzy_aromatic_matching: bool

Alias for field number 1

tautomer_insensitive: bool

Alias for field number 2

__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.

schrodinger.rdkit.substructure.assert_valid_sru_groups(mol: rdkit.Chem.rdchem.Mol)
Ensure that SRU groups:
  • have 2 or 4 XBONDS

  • do not have atoms that overlap

  • for ladder polymers, if XBCORR bonds are set, they should be set to the

    same bonds as the XBONDS (order of XBCORR bonds determines how the repeating groups are stitched together)

schrodinger.rdkit.substructure.replace_generic_h_queries(query)

Replaces QH, AH, MH, and XH queries with something which works in the RDKit. Reminder: - QH = “any atom except carbon” - AH = “any atom, including H” - MH = “any metal, or H” - XH = “halogen or H”

schrodinger.rdkit.substructure.expand_query(base_query: rdkit.Chem.rdchem.Mol, options: Optional[schrodinger.rdkit.substructure.QueryOptions] = None) Generator[rdkit.Chem.rdchem.Mol, None, None]

Expands a given query, accounting for tautomer matching, link nodes, and variable bonds. If the substructure options dictate it, each generated query is also adjusted.

schrodinger.rdkit.substructure.substructure_matches(mol: rdkit.Chem.rdchem.Mol, query_mol: rdkit.Chem.rdchem.Mol, options: Optional[schrodinger.rdkit.substructure.QueryOptions] = None)

Generates all substructure matches against a given query mol

schrodinger.rdkit.substructure.verify_template_has_coordinates(mol: rdkit.Chem.rdchem.Mol)
Raises

ValueError – if the mol has no coordinates present

schrodinger.rdkit.substructure.apply_substructure_coordinates(mol: rdkit.Chem.rdchem.Mol, template_mol: rdkit.Chem.rdchem.Mol, options: Optional[schrodinger.rdkit.substructure.QueryOptions] = None)

Applies coordinates from the provided template to the input mol; used for compound alignment requests in image generation.

Parameters
  • mol – mol to apply new coordinates

  • template_mol – reference from which to draw coordinates

  • options – query options for substructure matching

Raises

ValueError – if the mol has no coordinates present

NOTE: If the substructure match to the template fails, the alignment is skipped altogether, leaving the input mol coordinates as they were

schrodinger.rdkit.substructure.apply_substructure_coordinates_from_mapping(mol: rdkit.Chem.rdchem.Mol, template_mol: rdkit.Chem.rdchem.Mol, atom_mapping: Iterable[Tuple[int, int]])

Applies coordinates from the provided template to the input mol utilizing an explicit atom mapping

Parameters
  • mol – mol to apply new coordinates

  • template_mol – reference from which to draw coordinates

  • atom_mapping – (template_idx, mol_idx) pairs to use

Raises

ValueError – if the mol has no coordinates present