예제 #1
0
  def test_SmartsMolFilter(self):
    smis = ['C1CCC1', 'C1CCC1C=O', 'CCCC', 'CCC=O', 'CC(=O)C', 'CCN', 'NCCN', 'NCC=O']
    mols = [Chem.MolFromSmiles(x) for x in smis]
    suppl = SupplyNode(contents=mols)
    self.assertEqual(len(list(suppl)), 8)

    smas = ['C=O', 'CN']
    counts = [1, 2]
    filt = SmartsMolFilter.SmartsFilter(patterns=smas, counts=counts)
    filt.AddParent(suppl)
    self.assertEqual(len(list(filt)), 5)

    suppl.reset()
    filt.SetNegate(True)
    self.assertEqual(len(list(filt)), 3)

    smas = ['C=O', 'CN']
    filt = SmartsMolFilter.SmartsFilter(patterns=smas)
    filt.AddParent(suppl)
    self.assertEqual(len(list(filt)), 6)

    self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=smas,
                      counts=['notEnough', ])
    RDLogger.DisableLog('rdApp.error')
    self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=['BadSmarts'])
    RDLogger.EnableLog('rdApp.error')
예제 #2
0
    def test_SmartsMolFilter(self):
        smis = ['C1CCC1', 'C1CCC1C=O', 'CCCC', 'CCC=O', 'CC(=O)C', 'CCN', 'NCCN', 'NCC=O']
        mols = [Chem.MolFromSmiles(x) for x in smis]
        suppl = SupplyNode(contents=mols)
        self.assertEqual(len(list(suppl)), 8)

        smas = ['C=O', 'CN']
        counts = [1, 2]
        filt = SmartsMolFilter.SmartsFilter(patterns=smas, counts=counts)
        filt.AddParent(suppl)
        self.assertEqual(len(list(filt)), 5)

        suppl.reset()
        filt.SetNegate(True)
        self.assertEqual(len(list(filt)), 3)

        smas = ['C=O', 'CN']
        filt = SmartsMolFilter.SmartsFilter(patterns=smas)
        filt.AddParent(suppl)
        self.assertEqual(len(list(filt)), 6)

        self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=smas,
                          counts=['notEnough', ])
        RDLogger.DisableLog('rdApp.error')
        self.assertRaises(ValueError, SmartsMolFilter.SmartsFilter, patterns=['BadSmarts'])
        RDLogger.EnableLog('rdApp.error')
예제 #3
0
 def reset(self):
     SupplyNode.reset(self)
     self._supplier.reset()
예제 #4
0
 def reset(self):
     SupplyNode.reset(self)
     self._supplier.reset()