1 |
tim |
2459 |
############################################################################## |
2 |
|
|
# # |
3 |
|
|
# Open Babel file: bondtyp.txt # |
4 |
|
|
# # |
5 |
|
|
# Copyright (c) 2002-2005 by Geoffrey R Hutchison # |
6 |
|
|
# Part of the Open Babel package, under the GNU General Public License (GPL)# |
7 |
|
|
# # |
8 |
|
|
# Used by bondtyper.cpp::OBBondTyper (and thus OBMol::PerceiveBondOrders() # |
9 |
|
|
# # |
10 |
|
|
# List of functional groups with double, triple (etc.) bond orders # |
11 |
|
|
# Pattern Atom1 Atom2 Bond Order (repeat as needed) # |
12 |
|
|
# * = Any atom (for setting non-multiple bonds) # |
13 |
|
|
# # |
14 |
|
|
# NOTE: These are applied in order, first to last. # |
15 |
|
|
# So it's generally better to have a long (specifc) SMARTS first. # |
16 |
|
|
# (all bonds must be single bonds to match) |
17 |
|
|
# # |
18 |
|
|
############################################################################## |
19 |
|
|
|
20 |
|
|
# Porphyrin / phthalocyanine (3 patterns for three separate bonding motifs) |
21 |
|
|
# this one has explicit bonds to all four nitrogens (e.g., metal bond or hydrogens) |
22 |
|
|
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
23 |
|
|
*1[#6]([#7D3]2)[#6][#6][#6]2*[#6]([#7D3]3)[#6][#6][#6]3*[#6]([#7D3]4)[#6][#6][#6]4*[#6]([#7D3]5)[#6][#6][#6]51 0 1 2 1 2 1 1 3 1 3 4 2 4 5 1 5 2 1 5 6 2 6 7 1 7 8 2 7 9 1 9 10 2 10 11 1 11 8 1 11 12 2 12 13 1 13 14 1 13 15 2 15 16 1 16 17 2 17 14 1 17 18 1 18 19 2 19 20 1 19 21 1 21 22 2 22 23 1 23 20 2 |
24 |
|
|
|
25 |
|
|
# this one has explicit bonds to two nitrogens (12 and 14) |
26 |
|
|
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
27 |
|
|
*1[#6]([#7D3]2)[#6][#6][#6]2*[#6]([#7]3)[#6][#6][#6]3*[#6]([#7D3]4)[#6][#6][#6]4*[#6]([#7]5)[#6][#6][#6]51 0 1 2 1 2 1 1 3 1 3 4 2 4 5 1 5 2 1 5 6 2 6 7 1 7 8 2 7 9 1 9 10 2 10 11 1 11 8 1 11 12 2 12 13 1 13 14 1 13 15 2 15 16 1 16 17 2 17 14 1 17 18 1 18 19 2 19 20 1 19 21 1 21 22 2 22 23 1 23 20 2 |
28 |
|
|
|
29 |
|
|
# and this one doesn't have any explicit bonds to the nitrogens |
30 |
|
|
#0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
31 |
|
|
*1[#6]([#7]2)[#6][#6][#6]2*[#6]([#7]3)[#6][#6][#6]3*[#6]([#7]4)[#6][#6][#6]4*[#6]([#7]5)[#6][#6][#6]51 0 1 2 1 2 1 1 3 1 3 4 2 4 5 1 5 2 1 5 6 2 6 7 1 7 8 2 7 9 1 9 10 2 10 11 1 11 8 1 11 12 2 12 13 1 13 14 1 13 15 2 15 16 1 16 17 2 17 14 1 17 18 1 18 19 2 19 20 1 19 21 1 21 22 2 22 23 1 23 20 2 |
32 |
|
|
|
33 |
|
|
# Azide |
34 |
|
|
[#7D2][#7D2^1][#7D1] 0 1 2 1 2 2 |
35 |
|
|
# Nitro |
36 |
|
|
[#8D1][#7D3^2]([#8D1])* 0 1 2 1 2 1 1 3 1 |
37 |
|
|
# Sulphone |
38 |
|
|
[#16D4]([#8D1])([#8D1])(*)(*) 0 1 2 0 2 2 0 3 1 0 4 1 |
39 |
|
|
# Phosphone |
40 |
|
|
[#15D4]([#8D1])(*)(*)(*) 0 1 2 0 2 1 0 3 1 0 4 1 |
41 |
|
|
|
42 |
|
|
# Carboxylic Acid, ester, etc. |
43 |
|
|
[#6D3^2]([#8D1])([#8])* 0 1 2 0 2 1 0 3 1 |
44 |
|
|
# Carbon dioxide |
45 |
|
|
[#8D1][#6D2^1][#8D1] 0 1 2 1 2 2 |
46 |
|
|
# Amide C(=O)N |
47 |
|
|
[#6D3^2]([#8D1])([#7])* 0 1 2 0 2 1 0 3 1 |
48 |
|
|
# Seleninic acid Se(=O)OH |
49 |
|
|
[#34D3^2]([#8D1])([#8])* 0 1 2 0 2 1 0 3 1 |
50 |
|
|
# Thioacid / Thioester C(=O)S |
51 |
|
|
[#6D3^2]([#8D1])([#16])* 0 1 2 0 2 1 0 3 1 |
52 |
|
|
# dithioacid / dithioester C(=S)S |
53 |
|
|
[#6D3^2]([#16D1])([#16])* 0 1 2 0 2 1 0 3 1 |
54 |
|
|
# thioamide C(=S)N |
55 |
|
|
[#6D3^2]([#16D1])([#7])* 0 1 2 0 2 1 0 3 1 |
56 |
|
|
|
57 |
|
|
# allene C=C=C |
58 |
|
|
# (this is problematic -- need to make sure the center carbon is sp) |
59 |
|
|
[#6^2][#6D2^1][#6^2] 0 1 2 1 2 2 |
60 |
|
|
|
61 |
|
|
# guanidinium and amidine -C(=NH)NH2 without hydrogens |
62 |
|
|
[#6D3^2;!R]([#7D1H0;!R])([#7;!R])* 0 1 2 0 2 1 0 3 1 |
63 |
|
|
# and also with hydrogens |
64 |
|
|
# (this can normally be figured out, but is needed to avoid matching the next SMARTS) |
65 |
|
|
[#6D3^2;!R]([#7D2H1;!R])([#7;!R])* 0 1 2 0 2 1 0 3 1 |
66 |
|
|
# and also with more hydrogens than normal (protonated) |
67 |
|
|
[#6D3^2;!R]([#7D3H2;!R])([#7;!R])* 0 1 2 0 2 1 0 3 1 |
68 |
|
|
|
69 |
|
|
# Schiff base, protonated |
70 |
|
|
[#6D3^2;!R]([#1,#6])([#1,#6])[#7D3^2;!R]([#1])[#6] 0 1 1 0 2 1 0 3 2 3 4 1 3 5 1 |
71 |
|
|
|
72 |
|
|
### other potential functional groups that may (or may not) be useful to add |
73 |
|
|
# imidines ( N=C/N\C=N |
74 |
|
|
# sulfoxides |
75 |
|
|
# heme / porphyrin |
76 |
|
|
# phthalocyanine |