8
|
1 ##############################################################################
|
|
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 2 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
|