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
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))
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)