comparison CADDSuite-1.5/data/bond_lengths/BondOrder.xml @ 7:bfab27640f5e draft

CADDSuite version 1.5
author Marcel Schumann <schumann.marcel@gmail.com>
date Tue, 24 Jul 2012 11:13:59 -0400
parents
children
comparison
equal deleted inserted replaced
6:decca54699e3 7:bfab27640f5e
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <table>
3 <!-- This file supplies improved penalty scores for different
4 atom types in bond type perception based on the work of
5
6 Wang, J., Wang, W., Kollman P. A.; Case, D. A. "Automatic atom type and
7 bond type perception in molecular mechanical calculations". Journal of
8 Molecular Graphics and Modelling , 25, 2006, 247260
9
10 A penalty score of 0 means that the corresponding valence is optimal.
11 Note that the first matching entry is taken as the final atom type.
12
13 Note that in the SMARTS strings we use atomic numbers rather than symbols (e.g. #8 instead of O).
14 The reason is that wrongly assigned aromatic bonds in the input would lead to failure to identify the
15 right rule!
16 -->
17 <!-- for charged H -->
18 <entry id="0">
19 <elementstring>H</elementstring>
20 <smartstring>SMARTS([#1+])</smartstring>
21 <penalty valence="0">0</penalty>
22 </entry>
23 <entry id="1">
24 <elementstring>H</elementstring>
25 <smartstring>SMARTS([#1])</smartstring>
26 <penalty valence="1">0</penalty>
27 </entry>
28 <entry id="2">
29 <elementstring>F</elementstring>
30 <smartstring>SMARTS(F)</smartstring>
31 <penalty valence="0">64</penalty>
32 <penalty valence="1">0</penalty>
33 <penalty valence="2">64</penalty>
34 </entry>
35 <entry id="4">
36 <elementstring>Br</elementstring>
37 <smartstring>SMARTS(Br)</smartstring>
38 <penalty valence="0">64</penalty>
39 <penalty valence="1">0</penalty>
40 <penalty valence="2">64</penalty>
41 </entry>
42 <entry id="5">
43 <elementstring>I</elementstring>
44 <smartstring>SMARTS(I)</smartstring>
45 <penalty valence="0">64</penalty>
46 <penalty valence="1">0</penalty>
47 <penalty valence="2">64</penalty>
48 </entry>
49 <entry id="6"> <!-- SMARTS([CD1]~[ND2]) AND element(C)</smartstring> -->
50 <elementstring>C</elementstring>
51 <smartstring>SMARTS([$([#6D1](~[#7D2]))])</smartstring>
52 <penalty valence="3">0</penalty>
53 <penalty valence="4">1</penalty>
54 <penalty valence="5">32</penalty>
55 </entry>
56 <entry id="7">
57 <elementstring>C</elementstring>
58 <smartstring>SMARTS([#6D1])</smartstring>
59 <penalty valence="3">1</penalty>
60 <penalty valence="4">0</penalty>
61 <penalty valence="5">32</penalty>
62 </entry>
63 <entry id="9">
64 <elementstring>C</elementstring>
65 <smartstring>SMARTS([#6])</smartstring>
66 <penalty valence="2">64</penalty>
67 <penalty valence="3">32</penalty>
68 <penalty valence="4">0</penalty>
69 <penalty valence="5">32</penalty>
70 <penalty valence="6">64</penalty>
71 </entry>
72 <entry id="10">
73 <elementstring>Si</elementstring>
74 <smartstring>SMARTS(Si)</smartstring>
75 <penalty valence="4">0</penalty>
76 </entry>
77 <entry id="11">
78 <elementstring>N</elementstring>
79 <smartstring>SMARTS([$([#7D1](~[#7D2]))])</smartstring> <!--SMARTS([ND1]~[ND2]) AND SMARTS([ND1])</smartstring> -->
80 <penalty valence="2">0</penalty>
81 <penalty valence="3">0</penalty>
82 </entry>
83 <entry id="12">
84 <elementstring>N</elementstring>
85 <smartstring>SMARTS([#7D1])</smartstring>
86 <penalty valence="2">3</penalty>
87 <penalty valence="3">0</penalty>
88 <penalty valence="4">32</penalty>
89 </entry>
90 <entry id="13">
91 <elementstring>N</elementstring>
92 <smartstring>SMARTS([$([#7D2](~[#7D1]))])</smartstring> <!--SMARTS([ND1]~[ND2]) AND SMARTS([ND2])</smartstring> -->
93 <penalty valence="3">1</penalty>
94 <penalty valence="4">0</penalty>
95 </entry>
96 <entry id="14">
97 <elementstring>N</elementstring>
98 <smartstring>SMARTS([#7D2])</smartstring>
99 <penalty valence="2">4</penalty>
100 <penalty valence="3">0</penalty>
101 <penalty valence="4">2</penalty>
102 </entry>
103 <entry id="151"><!-- for charged N in O == N+ __ O- -->
104 <elementstring>N</elementstring>
105 <smartstring>SMARTS([$([#7D3](~[#8D1-,#16D1-])~[#8D1,#16D1])])</smartstring>
106 <penalty valence="3">32</penalty>
107 <penalty valence="4">0</penalty>
108 <penalty valence="5">32</penalty>
109 <penalty valence="6">64</penalty>
110 </entry>
111 <entry id="15">
112 <elementstring>N</elementstring>
113 <smartstring>SMARTS([$([#7D3](~[#8D1,#16D1])~[#8D1,#16D1])])</smartstring>
114 <penalty valence="3">64</penalty>
115 <penalty valence="4">32</penalty>
116 <penalty valence="5">0</penalty>
117 <penalty valence="6">32</penalty>
118 </entry>
119 <entry id="16">
120 <elementstring>N</elementstring>
121 <!-- <smartstring>SMARTS([$(*OD1)&amp;$(*aR)&amp;n]) OR SMARTS([$(*OD1);$(*R);N])</smartstring> -->
122 <smartstring>SMARTS([$([#7D3](~[#8D1,#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1]))])</smartstring>
123 <penalty valence="3">1</penalty>
124 <penalty valence="4">0</penalty>
125 </entry>
126 <entry id="17">
127 <elementstring>N</elementstring>
128 <smartstring>SMARTS([#7D3])</smartstring>
129 <penalty valence="2">32</penalty>
130 <penalty valence="3">0</penalty>
131 <penalty valence="4">1</penalty>
132 <penalty valence="5">2</penalty>
133 </entry>
134 <entry id="181"><!-- for charged N in N+ H_4 -->
135 <elementstring>N</elementstring>
136 <smartstring>SMARTS([#7D4+])</smartstring>
137 <penalty valence="3">32</penalty>
138 <penalty valence="4">0</penalty>
139 </entry>
140 <entry id="18">
141 <elementstring>N</elementstring>
142 <smartstring>SMARTS([#7D4])</smartstring>
143 <penalty valence="2">64</penalty>
144 <penalty valence="3">0</penalty>
145 <penalty valence="4">64</penalty>
146 </entry>
147 <entry id="182">
148 <elementstring>N</elementstring>
149 <smartstring>SMARTS([#7D5])</smartstring>
150 <penalty valence="5">0</penalty>
151 </entry>
152 <entry id="191"><!-- for charged O- -->
153 <elementstring>O</elementstring>
154 <smartstring>SMARTS([#8D1-])</smartstring>
155 <penalty valence="1">0</penalty>
156 <penalty valence="2">32</penalty>
157 </entry>
158 <entry id="192">
159 <elementstring>O</elementstring>
160 <smartstring>SMARTS([$([#8D1](~[#6D3]~[#8D1,#16D1]))])</smartstring>
161 <penalty valence="1">0</penalty>
162 <penalty valence="2">0</penalty>
163 </entry>
164 <entry id="19">
165 <elementstring>O</elementstring>
166 <smartstring>SMARTS([#7D3](~[#8D1,#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1])) AND element(O)</smartstring>
167 <penalty valence="1">0</penalty>
168 <penalty valence="2">1</penalty>
169 </entry>
170 <entry id="20">
171 <elementstring>O</elementstring>
172 <smartstring> SMARTS([#8D1])</smartstring>
173 <penalty valence="1">1</penalty>
174 <penalty valence="2">0</penalty>
175 <penalty valence="3">64</penalty>
176 </entry>
177 <entry id="21">
178 <elementstring>O</elementstring>
179 <smartstring>SMARTS([#8D2])</smartstring>
180 <penalty valence="1">32</penalty>
181 <penalty valence="2">0</penalty>
182 <penalty valence="3">64</penalty>
183 </entry>
184 <entry id="211">
185 <elementstring>O</elementstring>
186 <smartstring>SMARTS([#8D3])</smartstring>
187 <penalty valence="3">0</penalty>
188 </entry>
189 <entry id="22">
190 <elementstring>P</elementstring>
191 <smartstring>SMARTS(#15D1)</smartstring>
192 <penalty valence="2">2</penalty>
193 <penalty valence="3">0</penalty>
194 <penalty valence="4">32</penalty>
195 </entry>
196 <entry id="23">
197 <elementstring>P</elementstring>
198 <smartstring>SMARTS(#15D2)</smartstring>
199 <penalty valence="2">4</penalty>
200 <penalty valence="3">0</penalty>
201 <penalty valence="4">2</penalty>
202 </entry>
203 <entry id="24">
204 <elementstring>P</elementstring>
205 <smartstring>SMARTS(#15D3)</smartstring>
206 <penalty valence="2">32</penalty>
207 <penalty valence="3">0</penalty>
208 <penalty valence="4">1</penalty>
209 <penalty valence="5">2</penalty>
210 </entry>
211 <entry id="251">
212 <elementstring>P</elementstring>
213 <!-- Note: this is _SLOW_ -->
214 <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1,#8D1-,#16D1-])(~[#8D1-,#16D1-]))])</smartstring>
215 <penalty valence="5">0</penalty>
216 <penalty valence="6">32</penalty>
217 </entry>
218 <entry id="25">
219 <elementstring>P</elementstring>
220 <!-- Note: this is _SLOW_ -->
221 <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1])(~[#8D1,#16D1]))])</smartstring>
222 <penalty valence="5">32</penalty>
223 <penalty valence="6">0</penalty>
224 <penalty valence="7">32</penalty>
225 </entry>
226 <entry id="26">
227 <elementstring>P</elementstring>
228 <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&amp;!#16,!D1]))])</smartstring>
229 <penalty valence="6">32</penalty>
230 <penalty valence="7">0</penalty>
231 </entry>
232 <entry id="27">
233 <elementstring>P</elementstring>
234 <!-- This rule should be the last PD4 rule because it should only match when the other rules fail! -->
235 <smartstring>SMARTS(#15D4)</smartstring>
236 <penalty valence="3">64</penalty>
237 <penalty valence="4">1</penalty>
238 <penalty valence="5">0</penalty>
239 <penalty valence="6">32</penalty>
240 </entry>
241 <entry id="28">
242 <elementstring>S</elementstring>
243 <smartstring>SMARTS([#7D3](~[#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1])) AND element(S)</smartstring>
244 <penalty valence="1">0</penalty>
245 <penalty valence="2">1</penalty>
246 </entry>
247 <entry id="291">
248 <elementstring>S</elementstring>
249 <smartstring>SMARTS([$([#16D1](~[#6D3]~[#8D1,#16D1]))])</smartstring>
250 <penalty valence="1">0</penalty>
251 <penalty valence="2">0</penalty>
252 </entry>
253 <entry id="29">
254 <elementstring>S</elementstring>
255 <smartstring>SMARTS([#16D1])</smartstring>
256 <penalty valence="1">2</penalty>
257 <penalty valence="2">0</penalty>
258 <penalty valence="3">64</penalty>
259 </entry>
260 <entry id="30">
261 <elementstring>S</elementstring>
262 <smartstring>SMARTS([#16D2])</smartstring>
263 <penalty valence="1">2</penalty>
264 <penalty valence="2">0</penalty>
265 <penalty valence="3">64</penalty>
266 </entry>
267 <entry id="31">
268 <elementstring>S</elementstring>
269 <smartstring>SMARTS([#16D3])</smartstring>
270 <penalty valence="3">1</penalty>
271 <penalty valence="4">0</penalty>
272 <penalty valence="5">2</penalty>
273 <penalty valence="6">2</penalty>
274 </entry>
275 <entry id="32">
276 <elementstring>S</elementstring>
277 <smartstring> SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&amp;!#16,!D1])(~[!#8&amp;!#16,!D1]))])</smartstring>
278 <penalty valence="6">0</penalty>
279 <penalty valence="7">32</penalty>
280 </entry>
281 <entry id="331"><!--for a charged O in SO_4 -->
282 <elementstring>S</elementstring>
283 <smartstring>SMARTS([$([#16D4](~[#8D1-,#16D1-])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&amp;!#16,!D1]))])</smartstring>
284 <penalty valence="6">0</penalty>
285 </entry>
286 <entry id="33">
287 <elementstring>S</elementstring>
288 <smartstring>SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&amp;!#16,!D1]))])</smartstring>
289 <penalty valence="6">32</penalty>
290 <penalty valence="7">0</penalty>
291 </entry>
292 <entry id="34">
293 <elementstring>S</elementstring>
294 <smartstring>SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1]))])</smartstring>
295 <penalty valence="6">32</penalty>
296 <penalty valence="7">0</penalty>
297 </entry>
298 <entry id="35">
299 <elementstring>S</elementstring>
300 <smartstring>SMARTS([#16D4])</smartstring>
301 <penalty valence="4">4</penalty>
302 <penalty valence="5">2</penalty>
303 <penalty valence="6">0</penalty>
304 </entry>
305 <entry id="36">
306 <elementstring>S</elementstring>
307 <smartstring>SMARTS([#16D5])</smartstring>
308 <penalty valence="5">2</penalty>
309 <penalty valence="6">0</penalty>
310 </entry>
311 <!-- The following rules are added to cope with ions -->
312 <entry id="40">
313 <elementstring>Li</elementstring>
314 <smartstring>SMARTS([#3])</smartstring>
315 <penalty valence="0">0</penalty>
316 </entry>
317 <entry id="41">
318 <elementstring>Na</elementstring>
319 <smartstring>SMARTS([#11])</smartstring>
320 <penalty valence="0">0</penalty>
321 </entry>
322 <entry id="42">
323 <elementstring>Mg</elementstring>
324 <smartstring>SMARTS([#12])</smartstring>
325 <penalty valence="0">0</penalty>
326 </entry>
327 <entry id="43">
328 <elementstring>K</elementstring>
329 <smartstring>SMARTS([#19])</smartstring>
330 <penalty valence="0">0</penalty>
331 </entry>
332 <entry id="44">
333 <elementstring>Ca</elementstring>
334 <smartstring>SMARTS([#20])</smartstring>
335 <penalty valence="0">0</penalty>
336 </entry>
337 <entry id="45">
338 <elementstring>Cu</elementstring>
339 <smartstring>SMARTS([#29])</smartstring>
340 <penalty valence="0">0</penalty>
341 </entry>
342 <entry id="46">
343 <elementstring>Zn</elementstring>
344 <smartstring>SMARTS([#30])</smartstring>
345 <penalty valence="0">0</penalty>
346 </entry>
347 <entry id="47">
348 <elementstring>Fe</elementstring>
349 <smartstring>SMARTS([#26])</smartstring>
350 <penalty valence="0">0</penalty>
351 </entry>
352 <entry id="48">
353 <elementstring>Cl</elementstring>
354 <smartstring>SMARTS([#17-])</smartstring>
355 <penalty valence="0">0</penalty>
356 </entry>
357 <entry id="49">
358 <elementstring>Cl</elementstring>
359 <smartstring>SMARTS([#17])</smartstring>
360 <penalty valence="0">64</penalty>
361 <penalty valence="1">0</penalty>
362 <penalty valence="2">64</penalty>
363 <penalty valence="3">128</penalty>
364 <penalty valence="4">128</penalty>
365 </entry>
366 </table>