1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
"""
2019, Daniel Probst, Reymond Group @ University of Bern
@@ All Rights Reserved @@
This file is part of the RDKit.
The contents are covered by the terms of the BSD license
which is included in the file license.txt, found at the root
of the RDKit source tree.
"""
import unittest
from rdkit import Chem
from rdkit.Chem import rdMHFPFingerprint
class TestCase(unittest.TestCase):
def setUp(self):
pass
def testMHFPDistance(self):
s = "CN1C=NC2=C1C(=O)N(C(=O)N2C)C"
enc = rdMHFPFingerprint.MHFPEncoder(128, 42)
fp = enc.EncodeSmiles(s)
dist = enc.Distance(fp, fp)
self.assertEqual(dist, 0.0)
def testMHFPFingerprint(self):
s = "CN1C=NC2=C1C(=O)N(C(=O)N2C)C"
t = "Cn1cnc2c1c(=O)[nH]c(=O)n2C"
m = Chem.MolFromSmiles(s)
enc = rdMHFPFingerprint.MHFPEncoder(128, 42)
self.assertEqual(len(enc.CreateShinglingFromSmiles(s, rings=False)), 42)
self.assertEqual(len(enc.CreateShinglingFromSmiles(s, min_radius=0)), 58)
sh_a = enc.CreateShinglingFromSmiles(s)
sh_b = enc.CreateShinglingFromMol(m)
self.assertEqual(len(sh_a), 44)
self.assertEqual(list(sh_a), list(sh_b))
fp_a = enc.EncodeSmiles(s)
fp_b = enc.EncodeMol(m)
self.assertEqual(list(fp_a), list(fp_b))
fp_c = enc.EncodeSmiles(t)
dist = rdMHFPFingerprint.MHFPEncoder.Distance(fp_a, fp_c)
self.assertEqual(dist, 0.5390625)
if __name__ == "__main__":
unittest.main()
|