예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
    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)