File: testGenerators.py

package info (click to toggle)
rdkit 201809.1%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 123,688 kB
  • sloc: cpp: 230,509; python: 70,501; java: 6,329; ansic: 5,427; sql: 1,899; yacc: 1,739; lex: 1,243; makefile: 445; xml: 229; fortran: 183; sh: 123; cs: 93
file content (175 lines) | stat: -rw-r--r-- 8,122 bytes parent folder | download
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
from rdkit import Chem
from rdkit.Chem import rdFingerprintGenerator
import unittest


class TestCase(unittest.TestCase):

    def setUp(self):
        pass

    def testAtomPairGenerator(self):
        m = Chem.MolFromSmiles('CCC')
        g = rdFingerprintGenerator.GetAtomPairGenerator()
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 2)

        fp = g.GetCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 2)

        fp = g.GetSparseFingerprint(m)
        nzc = fp.GetNumOnBits()
        self.assertEqual(nzc, 3)

        fp = g.GetFingerprint(m)
        nzc = fp.GetNumOnBits()
        self.assertEqual(nzc, 3)

        g = rdFingerprintGenerator.GetAtomPairGenerator(
            atomInvariantsGenerator=rdFingerprintGenerator.GetAtomPairAtomInvGen())
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 2)

        g = rdFingerprintGenerator.GetAtomPairGenerator(minDistance=2)
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 1)

        g = rdFingerprintGenerator.GetAtomPairGenerator(maxDistance=1)
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 1)

        g = rdFingerprintGenerator.GetAtomPairGenerator(useCountSimulation=False)
        fp = g.GetSparseFingerprint(m)
        nzc = fp.GetNumOnBits()
        self.assertEqual(nzc, 2)

        invGen = rdFingerprintGenerator.GetAtomPairAtomInvGen(includeChirality=False)
        invGenChirality = rdFingerprintGenerator.GetAtomPairAtomInvGen(includeChirality=True)
        g = rdFingerprintGenerator.GetAtomPairGenerator(
            includeChirality=False, atomInvariantsGenerator=invGen)
        gChirality = rdFingerprintGenerator.GetAtomPairGenerator(
            includeChirality=True, atomInvariantsGenerator=invGenChirality)
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        fpChirality = gChirality.GetSparseCountFingerprint(m)
        nzChirality = fpChirality.GetNonzeroElements()
        self.assertNotEqual(nz.keys(), nzChirality.keys())

    def testMorganGenerator(self):
        m = Chem.MolFromSmiles('CCCCC')
        g = rdFingerprintGenerator.GetMorganGenerator(3)
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 7)

    def testRDKitFPGenerator(self):
        m = Chem.MolFromSmiles('CCCCC')
        g = rdFingerprintGenerator.GetRDKitFPGenerator()
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 4)

    def testTopologicalTorsionGenerator(self):
        m = Chem.MolFromSmiles('CCCCC')
        g = rdFingerprintGenerator.GetTopologicalTorsionGenerator()
        fp = g.GetSparseCountFingerprint(m)
        nz = fp.GetNonzeroElements()
        self.assertEqual(len(nz), 1)

    def testBulk(self):
        m1 = Chem.MolFromSmiles('CCC')
        m2 = Chem.MolFromSmiles('OCCCCC')
        m3 = Chem.MolFromSmiles('CCCCC')

        g = rdFingerprintGenerator.GetAtomPairGenerator()
        results = rdFingerprintGenerator.GetSparseCountFPs([m1, m2, m3], rdFingerprintGenerator.AtomPairFP)
        self.assertEqual(results[0], g.GetSparseCountFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseCountFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetMorganGenerator(2)
        results = rdFingerprintGenerator.GetSparseCountFPs([m1, m2, m3], rdFingerprintGenerator.MorganFP)
        self.assertEqual(results[0], g.GetSparseCountFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseCountFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetRDKitFPGenerator()
        results = rdFingerprintGenerator.GetSparseCountFPs([m1, m2, m3], rdFingerprintGenerator.RDKitFP)
        self.assertEqual(results[0], g.GetSparseCountFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseCountFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetTopologicalTorsionGenerator()
        results = rdFingerprintGenerator.GetSparseCountFPs([m1, m2, m3], rdFingerprintGenerator.TopologicalTorsionFP)
        self.assertEqual(results[0], g.GetSparseCountFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseCountFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetAtomPairGenerator()
        results = rdFingerprintGenerator.GetSparseFPs([m1, m2, m3], rdFingerprintGenerator.AtomPairFP)
        self.assertEqual(results[0], g.GetSparseFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetMorganGenerator(2)
        results = rdFingerprintGenerator.GetSparseFPs([m1, m2, m3], rdFingerprintGenerator.MorganFP)
        self.assertEqual(results[0], g.GetSparseFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetRDKitFPGenerator()
        results = rdFingerprintGenerator.GetSparseFPs([m1, m2, m3], rdFingerprintGenerator.RDKitFP)
        self.assertEqual(results[0], g.GetSparseFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetTopologicalTorsionGenerator()
        results = rdFingerprintGenerator.GetSparseFPs([m1, m2, m3], rdFingerprintGenerator.TopologicalTorsionFP)
        self.assertEqual(results[0], g.GetSparseFingerprint(m1))
        self.assertEqual(results[1], g.GetSparseFingerprint(m2))
        self.assertEqual(results[2], g.GetSparseFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetAtomPairGenerator()
        results = rdFingerprintGenerator.GetCountFPs([m1, m2, m3], rdFingerprintGenerator.AtomPairFP)
        self.assertEqual(results[0], g.GetCountFingerprint(m1))
        self.assertEqual(results[1], g.GetCountFingerprint(m2))
        self.assertEqual(results[2], g.GetCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetMorganGenerator(2)
        results = rdFingerprintGenerator.GetCountFPs([m1, m2, m3], rdFingerprintGenerator.MorganFP)
        self.assertEqual(results[0], g.GetCountFingerprint(m1))
        self.assertEqual(results[1], g.GetCountFingerprint(m2))
        self.assertEqual(results[2], g.GetCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetRDKitFPGenerator()
        results = rdFingerprintGenerator.GetCountFPs([m1, m2, m3], rdFingerprintGenerator.RDKitFP)
        self.assertEqual(results[0], g.GetCountFingerprint(m1))
        self.assertEqual(results[1], g.GetCountFingerprint(m2))
        self.assertEqual(results[2], g.GetCountFingerprint(m3))
        self.assertEqual(len(results), 3)

        g = rdFingerprintGenerator.GetTopologicalTorsionGenerator()
        results = rdFingerprintGenerator.GetCountFPs([m1, m2, m3], rdFingerprintGenerator.TopologicalTorsionFP)
        self.assertEqual(results[0], g.GetCountFingerprint(m1))
        self.assertEqual(results[1], g.GetCountFingerprint(m2))
        self.assertEqual(results[2], g.GetCountFingerprint(m3))
        self.assertEqual(len(results), 3)


if __name__ == '__main__':
    unittest.main()