Exemple #1
0
 def testGithub1761(self):
     mol = Chem.MolFromSmiles('CC(F)(Cl)C(F)(Cl)C')
     self.assertRaises(OverflowError,
                       lambda: rdMD.GetMorganFingerprint(mol, -1))
     self.assertRaises(OverflowError,
                       lambda: rdMD.GetHashedMorganFingerprint(mol, 0, -1))
     self.assertRaises(ValueError,
                       lambda: rdMD.GetHashedMorganFingerprint(mol, 0, 0))
 def calculateMol(self, m, smiles, internalParsing=False):
     counts = list(
         rd.GetHashedMorganFingerprint(m,
                                       radius=self.radius,
                                       nBits=self.nbits))
     counts = [clip(x, smiles) for x in counts]
     return counts
Exemple #3
0
 def featurize(self, x):
     if self.input_type == 'smiles':
         x_ = x
         x = Chem.MolFromSmiles(x)
         if x is None:
             raise ValueError('cannot convert Mol from SMILES %s' % x_)
     if self.input_type == 'any':
         if not isinstance(x, Chem.rdchem.Mol):
             x_ = x
             x = Chem.MolFromSmiles(x)
             if x is None:
                 raise ValueError('cannot convert Mol from SMILES %s' % x_)
     if self.counting:
         return count_fp(rdMol.GetHashedMorganFingerprint(x, radius=self.radius,
                                                          nBits=self.n_bits), dim=self.n_bits)
     else:
         return list(rdMol.GetMorganFingerprintAsBitVect(x, radius=self.radius, nBits=self.n_bits))
Exemple #4
0
    def testMorganFingerprints(self):
        mol = Chem.MolFromSmiles('CC(F)(Cl)C(F)(Cl)C')
        fp = rdMD.GetMorganFingerprint(mol, 0)
        self.assertTrue(len(fp.GetNonzeroElements()) == 4)

        mol = Chem.MolFromSmiles('CC')
        fp = rdMD.GetMorganFingerprint(mol, 0)
        self.assertTrue(len(fp.GetNonzeroElements()) == 1)
        self.assertTrue(list(fp.GetNonzeroElements().values())[0] == 2)
        fp = rdMD.GetMorganFingerprint(mol, 0, useCounts=False)
        self.assertTrue(len(fp.GetNonzeroElements()) == 1)
        self.assertTrue(list(fp.GetNonzeroElements().values())[0] == 1)

        mol = Chem.MolFromSmiles('CC(F)(Cl)C(F)(Cl)C')
        fp = rdMD.GetHashedMorganFingerprint(mol, 0)
        self.assertTrue(len(fp.GetNonzeroElements()) == 4)
        fp = rdMD.GetMorganFingerprint(mol, 1)
        self.assertTrue(len(fp.GetNonzeroElements()) == 8)
        fp = rdMD.GetHashedMorganFingerprint(mol, 1)
        self.assertTrue(len(fp.GetNonzeroElements()) == 8)
        fp = rdMD.GetMorganFingerprint(mol, 2)
        self.assertTrue(len(fp.GetNonzeroElements()) == 9)

        mol = Chem.MolFromSmiles('CC(F)(Cl)[C@](F)(Cl)C')
        fp = rdMD.GetMorganFingerprint(mol, 0)
        self.assertTrue(len(fp.GetNonzeroElements()) == 4)
        fp = rdMD.GetMorganFingerprint(mol, 1)
        self.assertTrue(len(fp.GetNonzeroElements()) == 8)
        fp = rdMD.GetMorganFingerprint(mol, 2)
        self.assertTrue(len(fp.GetNonzeroElements()) == 9)
        fp = rdMD.GetMorganFingerprint(mol, 0, useChirality=True)
        self.assertTrue(len(fp.GetNonzeroElements()) == 4)
        fp = rdMD.GetMorganFingerprint(mol, 1, useChirality=True)
        self.assertTrue(len(fp.GetNonzeroElements()) == 9)
        fp = rdMD.GetMorganFingerprint(mol, 2, useChirality=True)
        self.assertTrue(len(fp.GetNonzeroElements()) == 10)

        mol = Chem.MolFromSmiles('CCCCC')
        fp = rdMD.GetMorganFingerprint(mol, 0, fromAtoms=(0, ))
        self.assertTrue(len(fp.GetNonzeroElements()) == 1)

        mol = Chem.MolFromSmiles('CC1CC1')
        vs1 = rdMD.GetConnectivityInvariants(mol)
        self.assertEqual(len(vs1), mol.GetNumAtoms())
        fp1 = rdMD.GetMorganFingerprint(mol, 2, invariants=vs1)
        fp2 = rdMD.GetMorganFingerprint(mol, 2)
        self.assertEqual(fp1, fp2)

        vs2 = rdMD.GetConnectivityInvariants(mol, False)
        self.assertEqual(len(vs2), mol.GetNumAtoms())
        self.assertNotEqual(vs1, vs2)
        fp1 = rdMD.GetMorganFingerprint(mol, 2, invariants=vs2)
        self.assertNotEqual(fp1, fp2)

        mol = Chem.MolFromSmiles('Cc1ccccc1')
        vs1 = rdMD.GetFeatureInvariants(mol)
        self.assertEqual(len(vs1), mol.GetNumAtoms())
        self.assertEqual(vs1[0], 0)
        self.assertNotEqual(vs1[1], 0)
        self.assertEqual(vs1[1], vs1[2])
        self.assertEqual(vs1[1], vs1[3])
        self.assertEqual(vs1[1], vs1[4])

        mol = Chem.MolFromSmiles('FCCCl')
        vs1 = rdMD.GetFeatureInvariants(mol)
        self.assertEqual(len(vs1), mol.GetNumAtoms())
        self.assertEqual(vs1[1], 0)
        self.assertEqual(vs1[2], 0)
        self.assertNotEqual(vs1[0], 0)
        self.assertEqual(vs1[0], vs1[3])

        fp1 = rdMD.GetMorganFingerprint(mol, 0, invariants=vs1)
        fp2 = rdMD.GetMorganFingerprint(mol, 0, useFeatures=True)
        self.assertEqual(fp1, fp2)
 def calculateMol(self, m, smiles, internalParsing=False):
     v = rd.GetHashedMorganFingerprint(m,
                                       radius=self.radius, nBits=self.nbits)
     return clip_sparse(v, self.nbits)
 def calculateMol(self, m, smiles, internalParsing=False):
     return clip_sparse(rd.GetHashedMorganFingerprint(
         m, radius=self.radius, nBits=self.nbits, invariants=rd.GetFeatureInvariants(m)),
                 self.nbits)
 def calculateMol(self, m, smiles, internalParsing=False):
     return clip_sparse(rd.GetHashedMorganFingerprint(
         m, radius=self.radius, nBits=self.nbits, useChirality=True),
                 self.nbits)