""" sanifix4.py Contribution from James Davidson adapted from: https://github.com/abradle/rdkitserver/blob/master/MYSITE/src/testproject/mol_parsing/sanifix.py """ from rdkit import Chem from rdkit.Chem import AllChem import warnings def _FragIndicesToMol(oMol,indices): em = Chem.EditableMol(Chem.Mol()) newIndices={} for i,idx in enumerate(indices): em.AddAtom(oMol.GetAtomWithIdx(idx)) newIndices[idx]=i for i,idx in enumerate(indices): at = oMol.GetAtomWithIdx(idx) for bond in at.GetBonds(): if bond.GetBeginAtomIdx()==idx: oidx = bond.GetEndAtomIdx() else: oidx = bond.GetBeginAtomIdx() # make sure every bond only gets added once: if oidx