rdworks 0.25.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. rdworks/__init__.py +35 -0
  2. rdworks/autograph/__init__.py +4 -0
  3. rdworks/autograph/autograph.py +184 -0
  4. rdworks/autograph/centroid.py +90 -0
  5. rdworks/autograph/dynamictreecut.py +135 -0
  6. rdworks/autograph/nmrclust.py +123 -0
  7. rdworks/autograph/rckmeans.py +74 -0
  8. rdworks/bitqt/__init__.py +1 -0
  9. rdworks/bitqt/bitqt.py +355 -0
  10. rdworks/conf.py +374 -0
  11. rdworks/descriptor.py +36 -0
  12. rdworks/display.py +206 -0
  13. rdworks/ionized.py +170 -0
  14. rdworks/matchedseries.py +260 -0
  15. rdworks/mol.py +1522 -0
  16. rdworks/mollibr.py +887 -0
  17. rdworks/pka.py +38 -0
  18. rdworks/predefined/Asinex_fragment.xml +20 -0
  19. rdworks/predefined/Astex_RO3.xml +16 -0
  20. rdworks/predefined/Baell2010_PAINS/Baell2010A.xml +52 -0
  21. rdworks/predefined/Baell2010_PAINS/Baell2010B.xml +169 -0
  22. rdworks/predefined/Baell2010_PAINS/Baell2010C.xml +1231 -0
  23. rdworks/predefined/Baell2010_PAINS/PAINS-less-than-015-hits.xml +2048 -0
  24. rdworks/predefined/Baell2010_PAINS/PAINS-less-than-150-hits.xml +278 -0
  25. rdworks/predefined/Baell2010_PAINS/PAINS-more-than-150-hits.xml +83 -0
  26. rdworks/predefined/Baell2010_PAINS/makexml.py +70 -0
  27. rdworks/predefined/Brenk2008_Dundee/makexml.py +21 -0
  28. rdworks/predefined/CNS.xml +18 -0
  29. rdworks/predefined/ChEMBL_Walters/BMS.xml +543 -0
  30. rdworks/predefined/ChEMBL_Walters/Dundee.xml +318 -0
  31. rdworks/predefined/ChEMBL_Walters/Glaxo.xml +168 -0
  32. rdworks/predefined/ChEMBL_Walters/Inpharmatica.xml +276 -0
  33. rdworks/predefined/ChEMBL_Walters/LINT.xml +174 -0
  34. rdworks/predefined/ChEMBL_Walters/MLSMR.xml +351 -0
  35. rdworks/predefined/ChEMBL_Walters/PAINS.xml +1446 -0
  36. rdworks/predefined/ChEMBL_Walters/SureChEMBL.xml +501 -0
  37. rdworks/predefined/ChEMBL_Walters/makexml.py +40 -0
  38. rdworks/predefined/Hann1999_Glaxo/Hann1999.xml +168 -0
  39. rdworks/predefined/Hann1999_Glaxo/Hann1999Acid.xml +102 -0
  40. rdworks/predefined/Hann1999_Glaxo/Hann1999Base.xml +6 -0
  41. rdworks/predefined/Hann1999_Glaxo/Hann1999ElPh.xml +6 -0
  42. rdworks/predefined/Hann1999_Glaxo/Hann1999NuPh.xml +6 -0
  43. rdworks/predefined/Hann1999_Glaxo/makexml.py +83 -0
  44. rdworks/predefined/Kazius2005/Kazius2005.xml +114 -0
  45. rdworks/predefined/Kazius2005/makexml.py +66 -0
  46. rdworks/predefined/ZINC_druglike.xml +24 -0
  47. rdworks/predefined/ZINC_fragment.xml +14 -0
  48. rdworks/predefined/ZINC_leadlike.xml +15 -0
  49. rdworks/predefined/fragment.xml +7 -0
  50. rdworks/predefined/ionized/simple_smarts_pattern.csv +57 -0
  51. rdworks/predefined/ionized/smarts_pattern.csv +107 -0
  52. rdworks/predefined/misc/makexml.py +119 -0
  53. rdworks/predefined/misc/reactive-part-2.xml +104 -0
  54. rdworks/predefined/misc/reactive-part-3.xml +74 -0
  55. rdworks/predefined/misc/reactive.xml +321 -0
  56. rdworks/readin.py +312 -0
  57. rdworks/rgroup.py +2173 -0
  58. rdworks/scaffold.py +520 -0
  59. rdworks/std.py +143 -0
  60. rdworks/stereoisomers.py +127 -0
  61. rdworks/tautomers.py +20 -0
  62. rdworks/units.py +63 -0
  63. rdworks/utils.py +495 -0
  64. rdworks/xml.py +260 -0
  65. rdworks-0.25.7.dist-info/METADATA +37 -0
  66. rdworks-0.25.7.dist-info/RECORD +69 -0
  67. rdworks-0.25.7.dist-info/WHEEL +5 -0
  68. rdworks-0.25.7.dist-info/licenses/LICENSE +21 -0
  69. rdworks-0.25.7.dist-info/top_level.txt +1 -0
@@ -0,0 +1,278 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <SMARTPatterns>
3
+ <pattern active="true">
4
+ <SMART>[#6]-1(=[#6](-[$([#1]),$([#6](-[#1])-[#1]),$([#6]=[#8])])-[#16]-[#6](-[#7]-1-[$([#1]),$([#6]-[#1]),$([#6]:[#6])])=[#7;!R])-[$([#6](-[#1])-[#1]),$([#6]:[#6])]</SMART>
5
+ <name>thiaz_ene_A(128)</name>
6
+ <desc>thiaz_ene_A(128)</desc>
7
+ </pattern>
8
+ <pattern active="true">
9
+ <SMART>n2(-[#6]:1:[!#1]:[#6]:[#6]:[#6]:[#6]:1)c(cc(c2-[#6;X4])-[#1])-[#6;X4]</SMART>
10
+ <name>pyrrole_A(118)</name>
11
+ <desc>pyrrole_A(118)</desc>
12
+ </pattern>
13
+ <pattern active="true">
14
+ <SMART>c:1:c:c(:c(:c:c:1)-[#8]-[#1])-[#8]-[#1]</SMART>
15
+ <name>catechol_A(92)</name>
16
+ <desc>catechol_A(92)</desc>
17
+ </pattern>
18
+ <pattern active="true">
19
+ <SMART>[#6]-1(=[#6])-[#6](-[#7]=[#6]-[#16]-1)=[#8]</SMART>
20
+ <name>ene_five_het_B(90)</name>
21
+ <desc>ene_five_het_B(90)</desc>
22
+ </pattern>
23
+ <pattern active="true">
24
+ <SMART>[#6]-1=[!#1]-[!#6&amp;!#1]-[#6](-[#6]-1=[!#6&amp;!#1;!R])=[#8]</SMART>
25
+ <name>imine_one_fives(89)</name>
26
+ <desc>imine_one_fives(89)</desc>
27
+ </pattern>
28
+ <pattern active="true">
29
+ <SMART>[#6]-1(-[#6](-[#6]=[#6]-[!#6&amp;!#1]-1)=[#6])=[!#6&amp;!#1]</SMART>
30
+ <name>ene_five_het_C(85)</name>
31
+ <desc>ene_five_het_C(85)</desc>
32
+ </pattern>
33
+ <pattern active="true">
34
+ <SMART>[#6]-[#7]-1-[#6](-[#1])(-[#1])-[#6](-[#1])(-[#1])-[#7](-[#6](-[#1])(-[#1])-[#6]-1(-[#1])-[#1])-[#7]=[#6](-[#1])-[#6]:[!#1]</SMART>
35
+ <name>hzone_pipzn(79)</name>
36
+ <desc>hzone_pipzn(79)</desc>
37
+ </pattern>
38
+ <pattern active="true">
39
+ <SMART>c:1-2:c(:c:c:c:c:1)-[#6](=[#8])-[#6;X4]-[#6]-2=[#8]</SMART>
40
+ <name>keto_keto_beta_A(68)</name>
41
+ <desc>keto_keto_beta_A(68)</desc>
42
+ </pattern>
43
+ <pattern active="true">
44
+ <SMART>n1(-[#6])c(c(-[#1])c(c1-[#6]=[#7]-[#7])-[#1])-[#1]</SMART>
45
+ <name>hzone_pyrrol(64)</name>
46
+ <desc>hzone_pyrrol(64)</desc>
47
+ </pattern>
48
+ <pattern active="true">
49
+ <SMART>[#6]=!@[#6](-[!#1])-@[#6](=!@[!#6&amp;!#1])-@[#6](=!@[#6])-[!#1]</SMART>
50
+ <name>ene_one_ene_A(57)</name>
51
+ <desc>ene_one_ene_A(57)</desc>
52
+ </pattern>
53
+ <pattern active="true">
54
+ <SMART>[#6](-[#6]#[#7])(-[#6]#[#7])-[#6](-[#7](-[#1])-[#1])=[#6]-[#6]#[#7]</SMART>
55
+ <name>cyano_ene_amine_A(56)</name>
56
+ <desc>cyano_ene_amine_A(56)</desc>
57
+ </pattern>
58
+ <pattern active="true">
59
+ <SMART>c:1-2:c(:c:c:c:c:1)-[#6](=[#8])-[#6](=[#6])-[#6]-2=[#8]</SMART>
60
+ <name>ene_five_one_A(55)</name>
61
+ <desc>ene_five_one_A(55)</desc>
62
+ </pattern>
63
+ <pattern active="true">
64
+ <SMART>[#6]-1(=[!#1]-[!#1]=[!#1]-[#7](-[#6]-1=[#16])-[#1])-[#6]#[#7]</SMART>
65
+ <name>cyano_pyridone_A(54)</name>
66
+ <desc>cyano_pyridone_A(54)</desc>
67
+ </pattern>
68
+ <pattern active="true">
69
+ <SMART>c:1:c:c-2:c(:c:c:1)-[#6]-3-[#6](-[#6]-[#7]-2)-[#6]-[#6]=[#6]-3</SMART>
70
+ <name>anil_alk_ene(51)</name>
71
+ <desc>anil_alk_ene(51)</desc>
72
+ </pattern>
73
+ <pattern active="true">
74
+ <SMART>c:1:c:2:c(:c:c:c:1):n:c:3:c(:c:2-[#7]):c:c:c:c:3</SMART>
75
+ <name>amino_acridine_A(46)</name>
76
+ <desc>amino_acridine_A(46)</desc>
77
+ </pattern>
78
+ <pattern active="true">
79
+ <SMART>[#6]-1(=[#6])-[#6](=[#8])-[#7]-[#7]-[#6]-1=[#8]</SMART>
80
+ <name>ene_five_het_D(46)</name>
81
+ <desc>ene_five_het_D(46)</desc>
82
+ </pattern>
83
+ <pattern active="true">
84
+ <SMART>[#7](-[#1])(-[#1])-c:1:c(:c(:c(:s:1)-[!#1])-[!#1])-[#6]=[#8]</SMART>
85
+ <name>thiophene_amino_Aa(45)</name>
86
+ <desc>thiophene_amino_Aa(45)</desc>
87
+ </pattern>
88
+ <pattern active="true">
89
+ <SMART>[#7]-[#6]=!@[#6]-2-[#6](=[#8])-c:1:c:c:c:c:c:1-[!#6&amp;!#1]-2</SMART>
90
+ <name>ene_five_het_E(44)</name>
91
+ <desc>ene_five_het_E(44)</desc>
92
+ </pattern>
93
+ <pattern active="true">
94
+ <SMART>c:1(:c(:c(:c(:c(:c:1-[#8]-[#1])-[F,Cl,Br,I])-[#1])-[F,Cl,Br,I])-[#1])-[#16](=[#8])(=[#8])-[#7]</SMART>
95
+ <name>sulfonamide_A(43)</name>
96
+ <desc>sulfonamide_A(43)</desc>
97
+ </pattern>
98
+ <pattern active="true">
99
+ <SMART>[#6]-[#6](=[#16])-[#6]</SMART>
100
+ <name>thio_ketone(43)</name>
101
+ <desc>thio_ketone(43)</desc>
102
+ </pattern>
103
+ <pattern active="true">
104
+ <SMART>c:1:c:c(:c:c:c:1-[#8]-[#1])-[#7](-[#1])-[#16](=[#8])=[#8]</SMART>
105
+ <name>sulfonamide_B(41)</name>
106
+ <desc>sulfonamide_B(41)</desc>
107
+ </pattern>
108
+ <pattern active="true">
109
+ <SMART>c:1(:c(:c(:c(:c(:c:1-[#1])-[#1])-[$([#8]),$([#7]),$([#6](-[#1])-[#1])])-[#1])-[#1])-[#7](-[#1])-[#1]</SMART>
110
+ <name>anil_no_alk(40)</name>
111
+ <desc>anil_no_alk(40)</desc>
112
+ </pattern>
113
+ <pattern active="true">
114
+ <SMART>[$([#1]),$([#6](-[#1])-[#1]),$([#6]:[#6])]-c:1:c(:c(:c(:s:1)-[#7](-[#1])-[#6](=[#8])-[#6])-[#6](=[#8])-[#8])-[$([#6]:1:[#6]:[#6]:[#6]:[#6]:[#6]:1),$([#6]:1:[#16]:[#6]:[#6]:[#6]:1)]</SMART>
115
+ <name>thiophene_amino_Ab(40)</name>
116
+ <desc>thiophene_amino_Ab(40)</desc>
117
+ </pattern>
118
+ <pattern active="true">
119
+ <SMART>[#7+]:1(:[#6]:[#6]:[!#1]:c:2:c:1:c(:c(-[$([#1]),$([#7])]):c:c:2)-[#1])-[$([#6](-[#1])(-[#1])-[#1]),$([#8;X1]),$([#6](-[#1])(-[#1])-[#6](-[#1])=[#6](-[#1])-[#1]),$([#6](-[#1])(-[#1])-[#6](-[#1])(-[#1])-[#8]-[#1]),$([#6](-[#1])(-[#1])-[#6](=[#8])-[#6]),$([#6](-[#1])(-[#1])-[#6](=[#8])-[#7](-[#1])-[#6]:[#6]),$([#6](-[#1])(-[#1])-[#6](-[#1])(-[#1])-[#1])]</SMART>
120
+ <name>het_pyridiniums_A(39)</name>
121
+ <desc>het_pyridiniums_A(39)</desc>
122
+ </pattern>
123
+ <pattern active="true">
124
+ <SMART>c:1:c:c:c:c(:c:1-[#7](-[#1])-[!$([#6]=[#8])])-[#6](-[#6]:[#6])=[#8]</SMART>
125
+ <name>anthranil_one_A(38)</name>
126
+ <desc>anthranil_one_A(38)</desc>
127
+ </pattern>
128
+ <pattern active="true">
129
+ <SMART>[#7](-[#1])-[#7]=[#6](-[#6]#[#7])-[#6]=[!#6&amp;!#1;!R]</SMART>
130
+ <name>cyano_imine_A(37)</name>
131
+ <desc>cyano_imine_A(37)</desc>
132
+ </pattern>
133
+ <pattern active="true">
134
+ <SMART>[#7](-c:1:c:c:c:c:c:1)-[#16](=[#8])(=[#8])-[#6]:2:[#6]:[#6]:[#6]:[#6]:3:[#7]:[$([#8]),$([#16])]:[#7]:[#6]:2:3</SMART>
135
+ <name>diazox_sulfon_A(36)</name>
136
+ <desc>diazox_sulfon_A(36)</desc>
137
+ </pattern>
138
+ <pattern active="true">
139
+ <SMART>[#6](-[#1])(-[#1])-[#7](-[#6](-[#1])-[#1])-c:1:c(:c(:c(:c(:c:1-[#1])-[#1])-[#6](-[#1])=[#7]-[#7]-[$([#6](=[#8])-[#6](-[#1])(-[#1])-[#16]-[#6]:[#7]),$([#6](=[#8])-[#6](-[#1])(-[#1])-[!#1]:[!#1]:[#7]),$([#6](=[#8])-[#6]:[#6]-[#8]-[#1]),$([#6]:[#7]),$([#6](-[#1])(-[#1])-[#6](-[#1])-[#8]-[#1])])-[#1])-[#1]</SMART>
140
+ <name>hzone_anil_di_alk(35)</name>
141
+ <desc>hzone_anil_di_alk(35)</desc>
142
+ </pattern>
143
+ <pattern active="true">
144
+ <SMART>[#7]-1-[#6](=[#16])-[#16]-[#6;X4]-[#6]-1=[#8]</SMART>
145
+ <name>rhod_sat_A(33)</name>
146
+ <desc>rhod_sat_A(33)</desc>
147
+ </pattern>
148
+ <pattern active="true">
149
+ <SMART>[#7](-[#1])-[#7]=[#6]-[#6](-[$([#1]),$([#6])])=[#6](-[#6])-!@[$([#7]),$([#8]-[#1])]</SMART>
150
+ <name>hzone_enamin(30)</name>
151
+ <desc>hzone_enamin(30)</desc>
152
+ </pattern>
153
+ <pattern active="true">
154
+ <SMART>n2(-[#6]:1:[!#1]:[#6]:[#6]:[#6]:[#6]:1)c(cc(c2-[#6]:[#6])-[#1])-[#6;X4]</SMART>
155
+ <name>pyrrole_B(29)</name>
156
+ <desc>pyrrole_B(29)</desc>
157
+ </pattern>
158
+ <pattern active="true">
159
+ <SMART>s1ccc(c1)-[#8]-[#1]</SMART>
160
+ <name>thiophene_hydroxy(28)</name>
161
+ <desc>thiophene_hydroxy(28)</desc>
162
+ </pattern>
163
+ <pattern active="true">
164
+ <SMART>[#6]-1(=[#6](-[#6](=[#8])-[#7]-[#6](=[#7]-1)-[!#6&amp;!#1])-[#6]#[#7])-[#6]</SMART>
165
+ <name>cyano_pyridone_B(27)</name>
166
+ <desc>cyano_pyridone_B(27)</desc>
167
+ </pattern>
168
+ <pattern active="true">
169
+ <SMART>[#6]-1(-[#6](=[#8])-[#7]-[#6](=[#8])-[#7]-[#6]-1=[#8])=[#7]</SMART>
170
+ <name>imine_one_sixes(27)</name>
171
+ <desc>imine_one_sixes(27)</desc>
172
+ </pattern>
173
+ <pattern active="true">
174
+ <SMART>[#6](-[#1])(-[#1])-[#7]([#6]:[#6])~[#6][#6]=,:[#6]-[#6]~[#6][#7]</SMART>
175
+ <name>dyes5A(27)</name>
176
+ <desc>dyes5A(27)</desc>
177
+ </pattern>
178
+ <pattern active="true">
179
+ <SMART>c:2:c:1:c:c:c:c-3:c:1:c(:c:c:2)-[#7]-[#6]=[#7]-3</SMART>
180
+ <name>naphth_amino_A(25)</name>
181
+ <desc>naphth_amino_A(25)</desc>
182
+ </pattern>
183
+ <pattern active="true">
184
+ <SMART>c:2:c:1:c:c:c:c-3:c:1:c(:c:c:2)-[#7](-[#6;X4]-[#7]-3-[#1])-[#1]</SMART>
185
+ <name>naphth_amino_B(25)</name>
186
+ <desc>naphth_amino_B(25)</desc>
187
+ </pattern>
188
+ <pattern active="true">
189
+ <SMART>[#6]-[#6](=[#8])-[#6](-[#1])=[#6](-[#7](-[#1])-[#6])-[#6](=[#8])-[#8]-[#6]</SMART>
190
+ <name>ene_one_ester(24)</name>
191
+ <desc>ene_one_ester(24)</desc>
192
+ </pattern>
193
+ <pattern active="true">
194
+ <SMART>[#16]=[#6]-1-[#6]=,:[#6]-[!#6&amp;!#1]-[#6]=,:[#6]-1</SMART>
195
+ <name>thio_dibenzo(23)</name>
196
+ <desc>thio_dibenzo(23)</desc>
197
+ </pattern>
198
+ <pattern active="true">
199
+ <SMART>[#6](-[#6]#[#7])(-[#6]#[#7])-[#6](-[$([#6]#[#7]),$([#6]=[#7])])-[#6]#[#7]</SMART>
200
+ <name>cyano_cyano_A(23)</name>
201
+ <desc>cyano_cyano_A(23)</desc>
202
+ </pattern>
203
+ <pattern active="true">
204
+ <SMART>c:1:2:c(:c(:c(:c(:c:1:c(:c(:c(:c:2-[#1])-[#8]-[#1])-[#6](=[#8])-[#7](-[#1])-[#7]=[#6])-[#1])-[#1])-[#1])-[#1])-[#1]</SMART>
205
+ <name>hzone_acyl_naphthol(22)</name>
206
+ <desc>hzone_acyl_naphthol(22)</desc>
207
+ </pattern>
208
+ <pattern active="true">
209
+ <SMART>[#8]=[#6]-c2c1nc(-[#6](-[#1])-[#1])cc(-[#8]-[#1])n1nc2</SMART>
210
+ <name>het_65_A(21)</name>
211
+ <desc>het_65_A(21)</desc>
212
+ </pattern>
213
+ <pattern active="true">
214
+ <SMART>n:1:c(:n(:c(:c:1-c:2:c:c:c:c:c:2)-c:3:c:c:c:c:c:3)-[#1])-[#6]:[!#1]</SMART>
215
+ <name>imidazole_A(19)</name>
216
+ <desc>imidazole_A(19)</desc>
217
+ </pattern>
218
+ <pattern active="true">
219
+ <SMART>[#6](-[#6]#[#7])(-[#6]#[#7])=[#6]-c:1:c:c:c:c:c:1</SMART>
220
+ <name>ene_cyano_A(19)</name>
221
+ <desc>ene_cyano_A(19)</desc>
222
+ </pattern>
223
+ <pattern active="true">
224
+ <SMART>c:1(:c:c:c:c:c:1-[#7](-[#1])-[#7]=[#6])-[#6](=[#8])-[#8]-[#1]</SMART>
225
+ <name>anthranil_acid_A(19)</name>
226
+ <desc>anthranil_acid_A(19)</desc>
227
+ </pattern>
228
+ <pattern active="true">
229
+ <SMART>[#7+]([#6]:[#6])=,:[#6]-[#6](-[#1])=[#6]-[#7](-[#6;X4])-[#6]</SMART>
230
+ <name>dyes3A(19)</name>
231
+ <desc>dyes3A(19)</desc>
232
+ </pattern>
233
+ <pattern active="true">
234
+ <SMART>[#7](-[#1])(-[#1])-[#6]-1=[#6](-[#6]#[#7])-[#6](-[#1])(-[#6]:[#6])-[#6](=[#6](-[#7](-[#1])-[#1])-[#16]-1)-[#6]#[#7]</SMART>
235
+ <name>dhp_bis_amino_CN(19)</name>
236
+ <desc>dhp_bis_amino_CN(19)</desc>
237
+ </pattern>
238
+ <pattern active="true">
239
+ <SMART>[#7]~[#6]:1:[#7]:[#7]:[#6](:[$([#7]),$([#6]-[#1]),$([#6]-[#7]-[#1])]:[$([#7]),$([#6]-[#7])]:1)-[$([#7]-[#1]),$([#8]-[#6](-[#1])-[#1])]</SMART>
240
+ <name>het_6_tetrazine(18)</name>
241
+ <desc>het_6_tetrazine(18)</desc>
242
+ </pattern>
243
+ <pattern active="true">
244
+ <SMART>[#6]-[#6]=[#6](-[F,Cl,Br,I])-[#6](=[#8])-[#6]</SMART>
245
+ <name>ene_one_hal(17)</name>
246
+ <desc>ene_one_hal(17)</desc>
247
+ </pattern>
248
+ <pattern active="true">
249
+ <SMART>[#6](-[#6]#[#7])(-[#6]#[#7])=[#7]-[#7](-[#1])-c:1:c:c:c:c:c:1</SMART>
250
+ <name>cyano_imine_B(17)</name>
251
+ <desc>cyano_imine_B(17)</desc>
252
+ </pattern>
253
+ <pattern active="true">
254
+ <SMART>[#6]-1(=[#6](-!@[#6](=[#8])-[#7]-[#6](-[#1])-[#1])-[#16]-[#6](-[#7]-1-[$([#6](-[#1])(-[#1])-[#6](-[#1])=[#6](-[#1])-[#1]),$([#6]:[#6])])=[#16])-[$([#7]-[#6](=[#8])-[#6]:[#6]),$([#7](-[#1])-[#1])]</SMART>
255
+ <name>thiaz_ene_B(17)</name>
256
+ <desc>thiaz_ene_B(17)</desc>
257
+ </pattern>
258
+ <pattern active="true">
259
+ <SMART>[#16]-1-[#6](=[#8])-[#7]-[#6](=[#8])-[#6]-1=[#6](-[#1])-[$([#6]-[#35]),$([#6]:[#6](-[#1]):[#6](-[F,Cl,Br,I]):[#6]:[#6]-[F,Cl,Br,I]),$([#6]:[#6](-[#1]):[#6](-[#1]):[#6]-[#16]-[#6](-[#1])-[#1]),$([#6]:[#6]:[#6]:[#6]:[#6]:[#6]:[#6]:[#6]:[#6]:[#6]-[#8]-[#6](-[#1])-[#1]),$([#6]:1:[#6](-[#6](-[#1])-[#1]):[#7](-[#6](-[#1])-[#1]):[#6](-[#6](-[#1])-[#1]):[#6]:1)]</SMART>
260
+ <name>ene_rhod_B(16)</name>
261
+ <desc>ene_rhod_B(16)</desc>
262
+ </pattern>
263
+ <pattern active="true">
264
+ <SMART>[#8]-1-[#6](-[#16]-c:2:c-1:c:c:c(:c:2)-[$([#7]),$([#8])])=[$([#8]),$([#16])]</SMART>
265
+ <name>thio_carbonate_A(15)</name>
266
+ <desc>thio_carbonate_A(15)</desc>
267
+ </pattern>
268
+ <pattern active="true">
269
+ <SMART>[#7](-[#6](-[#1])-[#1])(-[#6](-[#1])-[#1])-c:1:c(:c(:c(:o:1)-[#6]=[#7]-[#7](-[#1])-[#6]=[!#6&amp;!#1])-[#1])-[#1]</SMART>
270
+ <name>anil_di_alk_furan_A(15)</name>
271
+ <desc>anil_di_alk_furan_A(15)</desc>
272
+ </pattern>
273
+ <pattern active="true">
274
+ <SMART>c:1(:c:c:c:c:c:1)-[#6](-[#1])=!@[#6]-3-[#6](=[#8])-c:2:c:c:c:c:c:2-[#16]-3</SMART>
275
+ <name>ene_five_het_F(15)</name>
276
+ <desc>ene_five_het_F(15)</desc>
277
+ </pattern>
278
+ </SMARTPatterns>
@@ -0,0 +1,83 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <SMARTPatterns>
3
+ <pattern active="true">
4
+ <SMART>[#6]-1(-[#6](~[!#6&amp;!#1]~[#6]-[!#6&amp;!#1]-[#6]-1=[!#6&amp;!#1])~[!#6&amp;!#1])=[#6;!R]-[#1]</SMART>
5
+ <name>ene_six_het_A(483)</name>
6
+ <desc>ene_six_het_A(483)</desc>
7
+ </pattern>
8
+ <pattern active="true">
9
+ <SMART>c:1:c:c(:c(:c:c:1)-[#6]=[#7]-[#7])-[#8]-[#1]</SMART>
10
+ <name>hzone_phenol_A(479)</name>
11
+ <desc>hzone_phenol_A(479)</desc>
12
+ </pattern>
13
+ <pattern active="true">
14
+ <SMART>[#6](-[#1])(-[#1])-[#7](-[#6](-[#1])-[#1])-c:1:c:c(:c(:c(:c:1)-[$([#1]),$([#6](-[#1])-[#1]),$([#8]-[#6](-[#1])(-[#1])-[#6](-[#1])-[#1])])-[#7])-[#1]</SMART>
15
+ <name>anil_di_alk_A(478)</name>
16
+ <desc>anil_di_alk_A(478)</desc>
17
+ </pattern>
18
+ <pattern active="true">
19
+ <SMART>n:1(c(c(c:2:c:1:c:c:c:c:2-[#1])-[#6;X4]-[#1])-[$([#6](-[#1])-[#1]),$([#6]=,:[!#6&amp;!#1]),$([#6](-[#1])-[#7]),$([#6](-[#1])(-[#6](-[#1])-[#1])-[#6](-[#1])(-[#1])-[#7](-[#1])-[#6](-[#1])-[#1])])-[$([#1]),$([#6](-[#1])-[#1])]</SMART>
20
+ <name>indol_3yl_alk(461)</name>
21
+ <desc>indol_3yl_alk(461)</desc>
22
+ </pattern>
23
+ <pattern active="true">
24
+ <SMART>[!#6&amp;!#1]=[#6]-1-[#6]=,:[#6]-[#6](=[!#6&amp;!#1])-[#6]=,:[#6]-1</SMART>
25
+ <name>quinone_A(370)</name>
26
+ <desc>quinone_A(370)</desc>
27
+ </pattern>
28
+ <pattern active="true">
29
+ <SMART>[#7;!R]=[#7]</SMART>
30
+ <name>azo_A(324)</name>
31
+ <desc>azo_A(324)</desc>
32
+ </pattern>
33
+ <pattern active="true">
34
+ <SMART>[#6]-[#6](=[!#6&amp;!#1;!R])-[#6](=[!#6&amp;!#1;!R])-[$([#6]),$([#16](=[#8])=[#8])]</SMART>
35
+ <name>imine_one_A(321)</name>
36
+ <desc>imine_one_A(321)</desc>
37
+ </pattern>
38
+ <pattern active="true">
39
+ <SMART>[#7]-[#6;X4]-c:1:c:c:c:c:c:1-[#8]-[#1]</SMART>
40
+ <name>mannich_A(296)</name>
41
+ <desc>mannich_A(296)</desc>
42
+ </pattern>
43
+ <pattern active="true">
44
+ <SMART>c:1:c:c(:c:c:c:1-[#7](-[#6;X4])-[#6;X4])-[#6]=[#6]</SMART>
45
+ <name>anil_di_alk_B(251)</name>
46
+ <desc>anil_di_alk_B(251)</desc>
47
+ </pattern>
48
+ <pattern active="true">
49
+ <SMART>c:1:c:c(:c:c:c:1-[#8]-[#6;X4])-[#7](-[#6;X4])-[$([#1]),$([#6;X4])]</SMART>
50
+ <name>anil_di_alk_C(246)</name>
51
+ <desc>anil_di_alk_C(246)</desc>
52
+ </pattern>
53
+ <pattern active="true">
54
+ <SMART>[#7]-1-[#6](=[#16])-[#16]-[#6](=[#6])-[#6]-1=[#8]</SMART>
55
+ <name>ene_rhod_A(235)</name>
56
+ <desc>ene_rhod_A(235)</desc>
57
+ </pattern>
58
+ <pattern active="true">
59
+ <SMART>c:1(:c:c:c(:c:c:1)-[#6]=[#7]-[#7])-[#8]-[#1]</SMART>
60
+ <name>hzone_phenol_B(215)</name>
61
+ <desc>hzone_phenol_B(215)</desc>
62
+ </pattern>
63
+ <pattern active="true">
64
+ <SMART>[#6]-1(=[#6])-[#6]=[#7]-[!#6&amp;!#1]-[#6]-1=[#8]</SMART>
65
+ <name>ene_five_het_A(201)</name>
66
+ <desc>ene_five_het_A(201)</desc>
67
+ </pattern>
68
+ <pattern active="true">
69
+ <SMART>c:1:c:c(:c:c:c:1-[#7](-[#6;X4])-[#6;X4])-[#6;X4]-[$([#8]-[#1]),$([#6]=[#6]-[#1]),$([#7]-[#6;X4])]</SMART>
70
+ <name>anil_di_alk_D(198)</name>
71
+ <desc>anil_di_alk_D(198)</desc>
72
+ </pattern>
73
+ <pattern active="true">
74
+ <SMART>[#8]=[#6]-2-[#6](=!@[#7]-[#7])-c:1:c:c:c:c:c:1-[#7]-2</SMART>
75
+ <name>imine_one_isatin(189)</name>
76
+ <desc>imine_one_isatin(189)</desc>
77
+ </pattern>
78
+ <pattern active="true">
79
+ <SMART>[#6](-[#1])-[#7](-[#6](-[#1])-[#1])-c:1:c(:c(:c(:c(:c:1-[#1])-[$([#1]),$([#6](-[#1])-[#1])])-[#6](-[#1])-[$([#1]),$([#6]-[#1])])-[#1])-[#1]</SMART>
80
+ <name>anil_di_alk_E(186)</name>
81
+ <desc>anil_di_alk_E(186)</desc>
82
+ </pattern>
83
+ </SMARTPatterns>
@@ -0,0 +1,70 @@
1
+ from xml.etree.ElementTree import Element,SubElement,Comment,tostring,parse
2
+ from xml.dom import minidom
3
+
4
+ A= Element('PAINS')
5
+ A.append(Comment('Filter Family A p.S23'))
6
+
7
+ B= Element('PAINSb')
8
+ B.append(Comment('Filter Family B S23-S25'))
9
+
10
+ C= Element('PAINSc')
11
+ C.append(Comment('Filter Family C S25-S37'))
12
+
13
+ with open('PAINS-more-than-150-hits.xml','rt') as f :
14
+ treeA= parse(f)
15
+ with open('PAINS-less-than-150-hits.xml','rt') as g :
16
+ treeB= parse(g)
17
+ with open('PAINS-less-than-015-hits.xml','rt') as h :
18
+ treeC= parse(h)
19
+
20
+ count= 0
21
+ for node in treeA.iter() :
22
+ if node.tag == 'SMART' :
23
+ smarts= node.text.strip()
24
+ if node.tag == 'name' :
25
+ name= node.text.strip()
26
+ count += 1
27
+ entry= SubElement (A, 'group')
28
+ entry.set('name', '('+str(count)+') '+name)
29
+ node= SubElement (entry, "SMARTS")
30
+ node.text= smarts
31
+
32
+ count= 0
33
+ for node in treeB.iter() :
34
+ if node.tag == 'SMART' :
35
+ smarts= node.text.strip()
36
+ if node.tag == 'name' :
37
+ name= node.text.strip()
38
+ count += 1
39
+ entry= SubElement (B, 'group')
40
+ entry.set('name', '('+str(count)+') '+name)
41
+ node= SubElement (entry, "SMARTS")
42
+ node.text= smarts
43
+
44
+ count= 0
45
+ for node in treeC.iter() :
46
+ if node.tag == 'SMART' :
47
+ smarts= node.text.strip()
48
+ if node.tag == 'name' :
49
+ name= node.text.strip()
50
+ count += 1
51
+ entry= SubElement (C, 'group')
52
+ entry.set('name', '('+str(count)+') '+name)
53
+ node= SubElement (entry, "SMARTS")
54
+ node.text= smarts
55
+
56
+
57
+ g=open('Baell2010A.xml','wt')
58
+ coarse= tostring(A,'utf-8')
59
+ g.write( minidom.parseString( coarse ).toprettyxml(indent=" ") )
60
+ g.close()
61
+
62
+ g=open('Baell2010B.xml','wt')
63
+ coarse= tostring(B,'utf-8')
64
+ g.write( minidom.parseString( coarse ).toprettyxml(indent=" ") )
65
+ g.close()
66
+
67
+ g=open('Baell2010C.xml','wt')
68
+ coarse= tostring(C,'utf-8')
69
+ g.write( minidom.parseString( coarse ).toprettyxml(indent=" ") )
70
+ g.close()
@@ -0,0 +1,21 @@
1
+ from xml.etree.ElementTree import Element, SubElement, Comment, tostring
2
+ from xml.dom import minidom
3
+
4
+ root= Element('Brenk2008')
5
+ root.append(Comment('Table S1. Definition of unwanted groups'))
6
+
7
+ f=open('Brenk_et_al-2008-ChemMedChem-SI.txt','rt')
8
+ count= 0
9
+ for line in f :
10
+ c=line.strip().split('\t')
11
+ count += 1
12
+ entry= SubElement (root, 'group')
13
+ entry.set('name', '('+str(count)+') '+c[0].strip())
14
+ node= SubElement (entry, 'SMARTS')
15
+ node.text= c[1].strip()
16
+ f.close()
17
+
18
+
19
+ g=open('Brenk2008.xml','wt')
20
+ coarse= tostring(root,'utf-8')
21
+ g.write( minidom.parseString( coarse ).toprettyxml(indent=" ") )
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" ?>
2
+ <CNS combine='AND'>
3
+ <!--T. T. Wager, X. Hou, P. R. Verhoest, A. Villalobos, ACS Chem. Neurosci. 1, 435–449 (2010).-->
4
+ <descriptor name="MolWt">
5
+ <min>200</min>
6
+ <max>500</max>
7
+ </descriptor>
8
+ <descriptor name="LogP">
9
+ <max>5.0</max>
10
+ </descriptor>
11
+ <descriptor name="TPSA">
12
+ <min>20.0</min>
13
+ <max>120.0</max>
14
+ </descriptor>
15
+ <descriptor name="HBD">
16
+ <max>3</max>
17
+ </descriptor>
18
+ </CNS>