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)