Source code for schrodinger.rdkit.rgroup

from rdkit.Chem import rdmolops
from rdkit.Chem.rdchem import SetAtomRLabel
from schrodinger.ui import sketcher

ATTACHMENT_POINT_PROP = "atomLabel"
ATTACHMENT_POINT_VALUE = "_AP1"


[docs]def change_to_rgroup(rdkit_atom, rgroup_number): """ Changes atom to rgroup. :type rdkit_atom: rdkit.Chem.rdchem.QueryAtom :param rdkit_atom: query atom :type rgroup_number: int :param rgroup_number: rgroup number """ SetAtomRLabel(rdkit_atom, rgroup_number) rdkit_atom.SetAtomicNum(0) rdkit_atom.SetNoImplicit(False) rdkit_atom.SetIntProp('molAtomMapNumber', rgroup_number + sketcher.MAP_NUMBER_FOR_R_GROUPS)
[docs]def set_dummy_atoms_as_attachment_points(mol): """ Creates a copy of a given input molecule and replaces dummy atoms with 'attachment points'. New molecule can then be used in sketcher, so that 'attachment points' are shown correctly. :param mol: molecule with dummy atom(s) :type mol: rdkit.Chem.Mol :return: modified molecule with attachment point(s) :rtype: rdkit.Chem.Mol """ for atom in mol.GetAtoms(): if atom.GetAtomicNum() == 0: # We currently allow only one attachment point atom.SetProp(ATTACHMENT_POINT_PROP, ATTACHMENT_POINT_VALUE) params = rdmolops.AdjustQueryParameters.NoAdjustments() params.makeDummiesQueries = True return rdmolops.AdjustQueryProperties(mol, params)