def testStereoRefsAfterAddingOBMols(self): """The stereo ref for an implicit H ref was being set to 0""" smis = ["C", "[C@@H](Br)(Cl)I"] mols = [pybel.readstring("smi", smi) for smi in smis] stereodata = mols[1].OBMol.GetData(ob.StereoData) config = ob.toTetrahedralStereo(stereodata).GetConfig() self.assertEqual(config.from_or_towards, 4294967294) mols[0].OBMol += mols[1].OBMol self.assertEqual(mols[0].write("smi").rstrip(), ".".join(smis)) stereodata = mols[0].OBMol.GetData(ob.StereoData) config = ob.toTetrahedralStereo(stereodata).GetConfig() self.assertEqual(config.from_or_towards, 4294967294)
def testStereoRefsAfterAddingOBMols(self): """The stereo ref for an implicit H ref was being set to 0""" smis = ["C", "[C@@H](Br)(Cl)I"] mols = [pybel.readstring("smi", smi) for smi in smis] # FIXME - does not seem to be possible to work out whether # tetrahedral or not from Python? stereodata = mols[1].OBMol.GetData(ob.StereoData) config = ob.toTetrahedralStereo(stereodata).GetConfig() self.assertEqual(config.from_or_towards, 4294967294) mols[0].OBMol += mols[1].OBMol self.assertEqual(mols[0].write("smi").rstrip(), ".".join(smis)) stereodata = mols[0].OBMol.GetData(ob.StereoData) config = ob.toTetrahedralStereo(stereodata).GetConfig() self.assertEqual(config.from_or_towards, 4294967294)
def testCastToStereoBase(self): """Support casting to StereoBase""" mol = pybel.readstring("smi", "F/C=C/C[C@@H](Cl)Br") num_cistrans = 0 num_tetra = 0 for genericdata in mol.OBMol.GetAllData(ob.StereoData): stereodata = ob.toStereoBase(genericdata) stereotype = stereodata.GetType() if stereotype == ob.OBStereo.CisTrans: cistrans = ob.toCisTransStereo(stereodata) cfg = cistrans.GetConfig() if cfg.specified: num_cistrans += 1 elif stereotype == ob.OBStereo.Tetrahedral: tetra = ob.toTetrahedralStereo(stereodata) cfg = tetra.GetConfig() if cfg.specified: num_tetra += 1 self.assertEqual(1, num_tetra) self.assertEqual(1, num_cistrans)