summaryrefslogtreecommitdiff
path: root/data/functional-groups.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'data/functional-groups.yaml')
-rw-r--r--data/functional-groups.yaml309
1 files changed, 309 insertions, 0 deletions
diff --git a/data/functional-groups.yaml b/data/functional-groups.yaml
new file mode 100644
index 0000000..eb6e5f4
--- /dev/null
+++ b/data/functional-groups.yaml
@@ -0,0 +1,309 @@
+Primary_carbon': '[CX4H3][#6]'
+Secondary_carbon': '[CX4H2]([#6])[#6]'
+Tertiary_carbon': '[CX4H1]([#6])([#6])[#6]'
+Quaternary_carbon': '[CX4]([#6])([#6])([#6])[#6]'
+Alkene': '[CX3;'([H2]),$([H1][#6]),$(C([#6])[#6])]=[CX3;$([H2]),$([H1][#6]),$(C([#6])[#6])]'
+Alkyne': '[CX2]#[CX2]'
+Allene': '[CX3]=[CX2]=[CX3]'
+Alkylchloride': '[ClX1][CX4]'
+Alkylfluoride': '[FX1][CX4]'
+Alkylbromide': '[BrX1][CX4]'
+Alkyliodide': '[IX1][CX4]'
+Alcohol': '[OX2H][CX4;!'(C([OX2H])[O,S,#7,#15])]'
+Primary_alcohol': '[OX2H][CX4H2;!'(C([OX2H])[O,S,#7,#15])]'
+Secondary_alcohol': '[OX2H][CX4H;!'(C([OX2H])[O,S,#7,#15])]'
+Tertiary_alcohol': '[OX2H][CX4D4;!'(C([OX2H])[O,S,#7,#15])]'
+Dialkylether': '[OX2]([CX4;!'(C([OX2])[O,S,#7,#15,F,Cl,Br,I])])[CX4;!$(C([OX2])[O,S,#7,#15])]'
+Dialkylthioether': '[SX2]([CX4;!'(C([OX2])[O,S,#7,#15,F,Cl,Br,I])])[CX4;!$(C([OX2])[O,S,#7,#15])]'
+Alkylarylether': '[OX2](c)[CX4;!'(C([OX2])[O,S,#7,#15,F,Cl,Br,I])]'
+Diarylether': '[c][OX2][c]'
+Alkylarylthioether': '[SX2](c)[CX4;!'(C([OX2])[O,S,#7,#15,F,Cl,Br,I])]'
+Diarylthioether': '[c][SX2][c]'
+Oxonium': '[O+;!'([O]~[!#6]);!$([S]*~[#7,#8,#15,#16])]'
+Amine': '[NX3+0,NX4+;!'([N]~[!#6]);!$([N]*~[#7,#8,#15,#16])]'
+Primary_aliph_amine': '[NX3H2+0,NX4H3+;!'([N][!C]);!$([N]*~[#7,#8,#15,#16])]'
+Secondary_aliph_amine': '[NX3H1+0,NX4H2+;!'([N][!C]);!$([N]*~[#7,#8,#15,#16])]'
+Tertiary_aliph_amine': '[NX3H0+0,NX4H1+;!'([N][!C]);!$([N]*~[#7,#8,#15,#16])]'
+Quaternary_aliph_ammonium': '[NX4H0+;!'([N][!C]);!$([N]*~[#7,#8,#15,#16])]'
+Primary_arom_amine': '[NX3H2+0,NX4H3+]c'
+Secondary_arom_amine': '[NX3H1+0,NX4H2+;!'([N][!c]);!$([N]*~[#7,#8,#15,#16])]'
+Tertiary_arom_amine': '[NX3H0+0,NX4H1+;!'([N][!c]);!$([N]*~[#7,#8,#15,#16])]'
+Quaternary_arom_ammonium': '[NX4H0+;!'([N][!c]);!$([N]*~[#7,#8,#15,#16])]'
+Secondary_mixed_amine': '[NX3H1+0,NX4H2+;'([N]([c])[C]);!$([N]*~[#7,#8,#15,#16])]'
+Tertiary_mixed_amine': '[NX3H0+0,NX4H1+;'([N]([c])([C])[#6]);!$([N]*~[#7,#8,#15,#16])]'
+Quaternary_mixed_ammonium': '[NX4H0+;'([N]([c])([C])[#6][#6]);!$([N]*~[#7,#8,#15,#16])]'
+Ammonium': '[N+;!'([N]~[!#6]);!$(N=*);!$([N]*~[#7,#8,#15,#16])]'
+Alkylthiol': '[SX2H][CX4;!'(C([SX2H])~[O,S,#7,#15])]'
+Dialkylthioether': '[SX2]([CX4;!'(C([SX2])[O,S,#7,#15,F,Cl,Br,I])])[CX4;!$(C([SX2])[O,S,#7,#15])]'
+Alkylarylthioether': '[SX2](c)[CX4;!'(C([SX2])[O,S,#7,#15])]'
+Disulfide': '[SX2D2][SX2D2]'
+1,2-Aminoalcohol': '[OX2H][CX4;!'(C([OX2H])[O,S,#7,#15,F,Cl,Br,I])][CX4;!$(C([N])[O,S,#7,#15])][NX3;!$(NC=[O,S,N])]'
+1,2-Diol': '[OX2H][CX4;!'(C([OX2H])[O,S,#7,#15])][CX4;!$(C([OX2H])[O,S,#7,#15])][OX2H]'
+1,1-Diol': '[OX2H][CX4;!'(C([OX2H])([OX2H])[O,S,#7,#15])][OX2H]'
+Hydroperoxide': '[OX2H][OX2]'
+Peroxo': '[OX2D2][OX2D2]'
+Organolithium_compounds': '[LiX1][#6,#14]'
+Organomagnesium_compounds': '[MgX2][#6,#14]'
+Organometallic_compounds': '[!#1;!#5;!#6;!#7;!#8;!#9;!#14;!#15;!#16;!#17;!#33;!#34;!#35;!#52;!#53;!#85]~[#6;!-]'
+Aldehyde': '['([CX3H][#6]),$([CX3H2])]=[OX1]'
+Ketone': '[#6][CX3](=[OX1])[#6]'
+Thioaldehyde': '['([CX3H][#6]),$([CX3H2])]=[SX1]'
+Thioketone': '[#6][CX3](=[SX1])[#6]'
+Imine': '[NX2;'([N][#6]),$([NH]);!$([N][CX3]=[#7,#8,#15,#16])]=[CX3;$([CH2]),$([CH][#6]),$([C]([#6])[#6])]'
+Immonium': '[NX3+;!'([N][!#6]);!$([N][CX3]=[#7,#8,#15,#16])]'
+Oxime': '[NX2](=[CX3;'([CH2]),$([CH][#6]),$([C]([#6])[#6])])[OX2H]'
+Oximether': '[NX2](=[CX3;'([CH2]),$([CH][#6]),$([C]([#6])[#6])])[OX2][#6;!$(C=[#7,#8])]'
+Acetal': '[OX2]([#6;!'(C=[O,S,N])])[CX4;!$(C(O)(O)[!#6])][OX2][#6;!$(C=[O,S,N])]'
+Hemiacetal': '[OX2H][CX4;!'(C(O)(O)[!#6])][OX2][#6;!$(C=[O,S,N])]'
+Aminal': '[NX3v3;!'(NC=[#7,#8,#15,#16])]([#6])[CX4;!$(C(N)(N)[!#6])][NX3v3;!$(NC=[#7,#8,#15,#16])][#6] '
+Hemiaminal': '[NX3v3;!'(NC=[#7,#8,#15,#16])]([#6])[CX4;!$(C(N)(N)[!#6])][OX2H]'
+Thioacetal': '[SX2]([#6;!'(C=[O,S,N])])[CX4;!$(C(S)(S)[!#6])][SX2][#6;!$(C=[O,S,N])]'
+Thiohemiacetal': '[SX2]([#6;!'(C=[O,S,N])])[CX4;!$(C(S)(S)[!#6])][OX2H]'
+Halogen_acetal_like': '[NX3v3,SX2,OX2;!'(*C=[#7,#8,#15,#16])][CX4;!$(C([N,S,O])([N,S,O])[!#6])][FX1,ClX1,BrX1,IX1]'
+Acetal_like': '[NX3v3,SX2,OX2;!'(*C=[#7,#8,#15,#16])][CX4;!$(C([N,S,O])([N,S,O])[!#6])][FX1,ClX1,BrX1,IX1,NX3v3,SX2,OX2;!$(*C=[#7,#8,#15,#16])]'
+Halogenmethylen_ester_and_similar': '[NX3v3,SX2,OX2;'(**=[#7,#8,#15,#16])][CX4;!$(C([N,S,O])([N,S,O])[!#6])][FX1,ClX1,BrX1,IX1]'
+NOS_methylen_ester_and_similar': '[NX3v3,SX2,OX2;'(**=[#7,#8,#15,#16])][CX4;!$(C([N,S,O])([N,S,O])[!#6])][NX3v3,SX2,OX2;!$(*C=[#7,#8,#15,#16])]'
+Hetero_methylen_ester_and_similar': '[NX3v3,SX2,OX2;'(**=[#7,#8,#15,#16])][CX4;!$(C([N,S,O])([N,S,O])[!#6])][FX1,ClX1,BrX1,IX1,NX3v3,SX2,OX2;!$(*C=[#7,#8,#15,#16])]'
+Cyanhydrine': '[NX1]#[CX2][CX4;'([CH2]),$([CH]([CX2])[#6]),$(C([CX2])([#6])[#6])][OX2H]'
+Chloroalkene': '[ClX1][CX3]=[CX3]'
+Fluoroalkene': '[FX1][CX3]=[CX3]'
+Bromoalkene': '[BrX1][CX3]=[CX3]'
+Iodoalkene': '[IX1][CX3]=[CX3]'
+Enol': '[OX2H][CX3;'([H1]),$(C[#6])]=[CX3]'
+Endiol': '[OX2H][CX3;'([H1]),$(C[#6])]=[CX3;$([H1]),$(C[#6])][OX2H]'
+Enolether': '[OX2]([#6;!'(C=[N,O,S])])[CX3;$([H0][#6]),$([H1])]=[CX3]'
+Enolester': '[OX2]([CX3]=[OX1])[#6X3;'([#6][#6]),$([H1])]=[#6X3;!$(C[OX2H])]'
+Enamine': '[NX3;'([NH2][CX3]),$([NH1]([CX3])[#6]),$([N]([CX3])([#6])[#6]);!$([N]*=[#7,#8,#15,#16])][CX3;$([CH]),$([C][#6])]=[CX3]'
+Thioenol': '[SX2H][CX3;'([H1]),$(C[#6])]=[CX3]'
+Thioenolether': '[SX2]([#6;!'(C=[N,O,S])])[CX3;$(C[#6]),$([CH])]=[CX3]'
+Acylchloride': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[ClX1] '
+Acylfluoride': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[FX1] '
+Acylbromide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[BrX1] '
+Acyliodide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[IX1]'
+Acylhalide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[FX1,ClX1,BrX1,IX1]'
+Carboxylic_acid': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[$([OX2H]),$([OX1-])]'
+Carboxylic_ester': ' [CX3;'([R0][#6]),$([H1R0])](=[OX1])[OX2][#6;!$(C=[O,N,S])]'
+Lactone': '[#6][#6X3R](=[OX1])[#8X2][#6;!'(C=[O,N,S])]'
+Carboxylic_anhydride': '[CX3;'([H0][#6]),$([H1])](=[OX1])[#8X2][CX3;$([H0][#6]),$([H1])](=[OX1])'
+Carboxylic_acid_derivative': '['([#6X3H0][#6]),$([#6X3H])](=[!#6])[!#6]'
+Carbothioic_acid': '[CX3;!R;'([C][#6]),$([CH]);$([C](=[OX1])[$([SX2H]),$([SX1-])]),$([C](=[SX1])[$([OX2H]),$([OX1-])])]'
+Carbothioic_S_ester': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[SX2][#6;!$(C=[O,N,S])]'
+Carbothioic_S_lactone': '[#6][#6X3R](=[OX1])[#16X2][#6;!'(C=[O,N,S])]'
+Carbothioic_O_ester': '[CX3;'([H0][#6]),$([H1])](=[SX1])[OX2][#6;!$(C=[O,N,S])]'
+Carbothioic_O_lactone': '[#6][#6X3R](=[SX1])[#8X2][#6;!'(C=[O,N,S])]'
+Carbothioic_halide': '[CX3;'([H0][#6]),$([H1])](=[SX1])[FX1,ClX1,BrX1,IX1]'
+Carbodithioic_acid': '[CX3;!R;'([C][#6]),$([CH]);$([C](=[SX1])[SX2H])]'
+Carbodithioic_ester': '[CX3;!R;'([C][#6]),$([CH]);$([C](=[SX1])[SX2][#6;!$(C=[O,N,S])])]'
+Carbodithiolactone': '[#6][#6X3R](=[SX1])[#16X2][#6;!'(C=[O,N,S])]'
+Amide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Primary_amide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[NX3H2]'
+Secondary_amide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[#7X3H1][#6;!$(C=[O,N,S])]'
+Tertiary_amide': '[CX3;'([R0][#6]),$([H1R0])](=[OX1])[#7X3H0]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])]'
+Lactam': '[#6R][#6X3R](=[OX1])[#7X3;'([H1][#6;!$(C=[O,N,S])]),$([H0]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Alkyl_imide': '[#6X3;'([H0][#6]),$([H1])](=[OX1])[#7X3H0]([#6])[#6X3;$([H0][#6]),$([H1])](=[OX1])'
+N_hetero_imide': '[#6X3;'([H0][#6]),$([H1])](=[OX1])[#7X3H0]([!#6])[#6X3;$([H0][#6]),$([H1])](=[OX1])'
+Imide_acidic': '[#6X3;'([H0][#6]),$([H1])](=[OX1])[#7X3H1][#6X3;$([H0][#6]),$([H1])](=[OX1])'
+Thioamide': '['([CX3;!R][#6]),$([CX3H;!R])](=[SX1])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Thiolactam': '[#6R][#6X3R](=[SX1])[#7X3;'([H1][#6;!$(C=[O,N,S])]),$([H0]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Oximester': '[#6X3;'([H0][#6]),$([H1])](=[OX1])[#8X2][#7X2]=,:[#6X3;$([H0]([#6])[#6]),$([H1][#6]),$([H2])]'
+Amidine': '[NX3;!'(NC=[O,S])][CX3;$([CH]),$([C][#6])]=[NX2;!$(NC=[O,S])]'
+Hydroxamic_acid': '[CX3;'([H0][#6]),$([H1])](=[OX1])[#7X3;$([H1]),$([H0][#6;!$(C=[O,N,S])])][$([OX2H]),$([OX1-])]'
+Hydroxamic_acid_ester': '[CX3;'([H0][#6]),$([H1])](=[OX1])[#7X3;$([H1]),$([H0][#6;!$(C=[O,N,S])])][OX2][#6;!$(C=[O,N,S])]'
+Imidoacid': '[CX3R0;'([H0][#6]),$([H1])](=[NX2;$([H1]),$([H0][#6;!$(C=[O,N,S])])])[$([OX2H]),$([OX1-])]'
+Imidoacid_cyclic': '[#6R][#6X3R](=,:[#7X2;'([H1]),$([H0][#6;!$(C=[O,N,S])])])[$([OX2H]),$([OX1-])] '
+Imidoester': '[CX3R0;'([H0][#6]),$([H1])](=[NX2;$([H1]),$([H0][#6;!$(C=[O,N,S])])])[OX2][#6;!$(C=[O,N,S])]'
+Imidolactone': '[#6R][#6X3R](=,:[#7X2;'([H1]),$([H0][#6;!$(C=[O,N,S])])])[OX2][#6;!$(C=[O,N,S])]'
+Imidothioacid': '[CX3R0;'([H0][#6]),$([H1])](=[NX2;$([H1]),$([H0][#6;!$(C=[O,N,S])])])[$([SX2H]),$([SX1-])]'
+Imidothioacid_cyclic': '[#6R][#6X3R](=,:[#7X2;'([H1]),$([H0][#6;!$(C=[O,N,S])])])[$([SX2H]),$([SX1-])] '
+Imidothioester': '[CX3R0;'([H0][#6]),$([H1])](=[NX2;$([H1]),$([H0][#6;!$(C=[O,N,S])])])[SX2][#6;!$(C=[O,N,S])]'
+Imidothiolactone': '[#6R][#6X3R](=,:[#7X2;'([H1]),$([H0][#6;!$(C=[O,N,S])])])[SX2][#6;!$(C=[O,N,S])]'
+Amidine': '[#7X3v3;!'(N([#6X3]=[#7X2])C=[O,S])][CX3R0;$([H1]),$([H0][#6])]=[NX2v3;!$(N(=[#6X3][#7X3])C=[O,S])]'
+Imidolactam': '[#6][#6X3R;'([H0](=[NX2;!$(N(=[#6X3][#7X3])C=[O,S])])[#7X3;!$(N([#6X3]=[#7X2])C=[O,S])]),$([H0](-[NX3;!$(N([#6X3]=[#7X2])C=[O,S])])=,:[#7X2;!$(N(=[#6X3][#7X3])C=[O,S])])] '
+Imidoylhalide': '[CX3R0;'([H0][#6]),$([H1])](=[NX2;$([H1]),$([H0][#6;!$(C=[O,N,S])])])[FX1,ClX1,BrX1,IX1]'
+Imidoylhalide_cyclic': '[#6R][#6X3R](=,:[#7X2;'([H1]),$([H0][#6;!$(C=[O,N,S])])])[FX1,ClX1,BrX1,IX1]'
+ '
+Amidrazone': '['([$([#6X3][#6]),$([#6X3H])](=[#7X2v3])[#7X3v3][#7X3v3]),$([$([#6X3][#6]),$([#6X3H])]([#7X3v3])=[#7X2v3][#7X3v3])]'
+Alpha_aminoacid': '[NX3,NX4+;!'([N]~[!#6]);!$([N]*~[#7,#8,#15,#16])][C][CX3](=[OX1])[OX2H,OX1-]'
+Alpha_hydroxyacid': '[OX2H][C][CX3](=[OX1])[OX2H,OX1-]'
+Peptide_middle': '[NX3;'([N][CX3](=[OX1])[C][NX3,NX4+])][C][CX3](=[OX1])[NX3;$([N][C][CX3](=[OX1])[NX3,OX2,OX1-])]'
+Peptide_C_term': '[NX3;'([N][CX3](=[OX1])[C][NX3,NX4+])][C][CX3](=[OX1])[OX2H,OX1-]'
+Peptide_N_term': '[NX3,NX4+;!'([N]~[!#6]);!$([N]*~[#7,#8,#15,#16])][C][CX3](=[OX1])[NX3;$([N][C][CX3](=[OX1])[NX3,OX2,OX1-])]'
+Carboxylic_orthoester': '[#6][OX2][CX4;'(C[#6]),$([CH])]([OX2][#6])[OX2][#6] '
+Ketene': '[CX3]=[CX2]=[OX1]'
+Ketenacetal': '[#7X2,#8X3,#16X2;'(*[#6,#14])][#6X3]([#7X2,#8X3,#16X2;$(*[#6,#14])])=[#6X3]'
+Nitrile': '[NX1]#[CX2]'
+Isonitrile': '[CX1-]#[NX2+]'
+Vinylogous_carbonyl_or_carboxyl_derivative': '[#6X3](=[OX1])[#6X3]=,:[#6X3][#7,#8,#16,F,Cl,Br,I]'
+Vinylogous_acid': '[#6X3](=[OX1])[#6X3]=,:[#6X3]['([OX2H]),$([OX1-])]'
+Vinylogous_ester': '[#6X3](=[OX1])[#6X3]=,:[#6X3][#6;!'(C=[O,N,S])]'
+Vinylogous_amide': '[#6X3](=[OX1])[#6X3]=,:[#6X3][#7X3;'([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Vinylogous_halide': '[#6X3](=[OX1])[#6X3]=,:[#6X3][FX1,ClX1,BrX1,IX1]'
+Carbonic_acid_dieester': '[#6;!'(C=[O,N,S])][#8X2][#6X3](=[OX1])[#8X2][#6;!$(C=[O,N,S])]'
+Carbonic_acid_esterhalide': '[#6;!'(C=[O,N,S])][OX2;!R][CX3](=[OX1])[OX2][FX1,ClX1,BrX1,IX1]'
+Carbonic_acid_monoester': '[#6;!'(C=[O,N,S])][OX2;!R][CX3](=[OX1])[$([OX2H]),$([OX1-])]'
+Carbonic_acid_derivatives': '[!#6][#6X3](=[!#6])[!#6]'
+Thiocarbonic_acid_dieester': '[#6;!'(C=[O,N,S])][#8X2][#6X3](=[SX1])[#8X2][#6;!$(C=[O,N,S])]'
+Thiocarbonic_acid_esterhalide': '[#6;!'(C=[O,N,S])][OX2;!R][CX3](=[SX1])[OX2][FX1,ClX1,BrX1,IX1]'
+Thiocarbonic_acid_monoester': '[#6;!'(C=[O,N,S])][OX2;!R][CX3](=[SX1])[$([OX2H]),$([OX1-])]'
+Urea:[#7X3;!'([#7][!#6])][#6X3](=[OX1])[#7X3;!$([#7][!#6])]'
+Thiourea': '[#7X3;!'([#7][!#6])][#6X3](=[SX1])[#7X3;!$([#7][!#6])]'
+Isourea': '[#7X2;!'([#7][!#6])]=,:[#6X3]([#8X2&!$([#8][!#6]),OX1-])[#7X3;!$([#7][!#6])]'
+Isothiourea': '[#7X2;!'([#7][!#6])]=,:[#6X3]([#16X2&!$([#16][!#6]),SX1-])[#7X3;!$([#7][!#6])]'
+Guanidine': '[N;v3X3,v4X4+][CX3](=[N;v3X2,v4X3+])[N;v3X3,v4X4+]'
+Carbaminic_acid': '[NX3]C(=[OX1])[O;X2H,X1-]'
+Urethan': '[#7X3][#6](=[OX1])[#8X2][#6]'
+Biuret': '[#7X3][#6](=[OX1])[#7X3][#6](=[OX1])[#7X3]'
+Semicarbazide': '[#7X3][#7X3][#6X3]([#7X3;!'([#7][#7])])=[OX1]'
+Carbazide': '[#7X3][#7X3][#6X3]([#7X3][#7X3])=[OX1]'
+Semicarbazone': '[#7X2](=[#6])[#7X3][#6X3]([#7X3;!'([#7][#7])])=[OX1]'
+Carbazone': '[#7X2](=[#6])[#7X3][#6X3]([#7X3][#7X3])=[OX1]'
+Thiosemicarbazide': '[#7X3][#7X3][#6X3]([#7X3;!'([#7][#7])])=[SX1]'
+Thiocarbazide': '[#7X3][#7X3][#6X3]([#7X3][#7X3])=[SX1]'
+Thiosemicarbazone': '[#7X2](=[#6])[#7X3][#6X3]([#7X3;!'([#7][#7])])=[SX1]'
+Thiocarbazone': '[#7X2](=[#6])[#7X3][#6X3]([#7X3][#7X3])=[SX1]'
+Isocyanate': '[NX2]=[CX2]=[OX1]'
+Cyanate': '[OX2][CX2]#[NX1]'
+Isothiocyanate': '[NX2]=[CX2]=[SX1]'
+Thiocyanate': '[SX2][CX2]#[NX1]'
+Carbodiimide': '[NX2]=[CX2]=[NX2]'
+Orthocarbonic_derivatives': '[CX4H0]([O,S,#7])([O,S,#7])([O,S,#7])[O,S,#7,F,Cl,Br,I]'
+Phenol': '[OX2H][c]'
+1,2-Diphenol': '[OX2H][c][c][OX2H]'
+Arylchloride': '[Cl][c]'
+Arylfluoride': '[F][c]'
+Arylbromide': '[Br][c]'
+Aryliodide': '[I][c]'
+Arylthiol': '[SX2H][c]'
+Iminoarene': '[c]=[NX2;'([H1]),$([H0][#6;!$([C]=[N,S,O])])]'
+Oxoarene': '[c]=[OX1]'
+Thioarene': '[c]=[SX1]'
+Hetero_N_basic_H': '[nX3H1+0]'
+Hetero_N_basic_no_H': '[nX3H0+0]'
+Hetero_N_nonbasic': '[nX2,nX3+]'
+Hetero_O': '[o]'
+Hetero_S': '[sX2]'
+Heteroaromatic': '[a;!c]'
+Nitrite': '[NX2](=[OX1])[O;'([X2]),$([X1-])]'
+Thionitrite': '[SX2][NX2]=[OX1]'
+Nitrate': '['([NX3](=[OX1])(=[OX1])[O;$([X2]),$([X1-])]),$([NX3+]([OX1-])(=[OX1])[O;$([X2]),$([X1-])])] '
+Nitro': '['([NX3](=O)=O),$([NX3+](=O)[O-])][!#8]'
+Nitroso': '[NX2](=[OX1])[!#7;!#8]'
+Azide': '[NX1]~[NX2]~[NX2,NX1]'
+Acylazide': '[CX3](=[OX1])[NX2]~[NX2]~[NX1]'
+Diazo': '['([#6]=[NX2+]=[NX1-]),$([#6-]-[NX2+]#[NX1])] '
+Diazonium': '[#6][NX2+]#[NX1]'
+Nitrosamine': '[#7;!'(N*=O)][NX2]=[OX1]'
+Nitrosamide': '[NX2](=[OX1])N-*=O'
+N-Oxide': '['([#7+][OX1-]),$([#7v5]=[OX1]);!$([#7](~[O])~[O]);!$([#7]=[#7])] '
+Hydrazine': '[NX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6]);!$(NC=[O,N,S])][NX3;$([H2]),$([H1][#6]),$([H0]([#6])[#6]);!$(NC=[O,N,S])]'
+Hydrazone': '[NX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6]);!$(NC=[O,N,S])][NX2]=[#6]'
+Hydroxylamine': '[NX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6]);!$(NC=[O,N,S])][OX2;$([H1]),$(O[#6;!$(C=[N,O,S])])]'
+Sulfon': '['([SX4](=[OX1])(=[OX1])([#6])[#6]),$([SX4+2]([OX1-])([OX1-])([#6])[#6])]'
+Sulfoxide': '['([SX3](=[OX1])([#6])[#6]),$([SX3+]([OX1-])([#6])[#6])]'
+Sulfonium': '[S+;!'([S]~[!#6]);!$([S]*~[#7,#8,#15,#16])]'
+Sulfuric_acid': '[SX4](=[OX1])(=[OX1])(['([OX2H]),$([OX1-])])[$([OX2H]),$([OX1-])]'
+Sulfuric_monoester': '[SX4](=[OX1])(=[OX1])(['([OX2H]),$([OX1-])])[OX2][#6;!$(C=[O,N,S])]'
+Sulfuric_diester': '[SX4](=[OX1])(=[OX1])([OX2][#6;!'(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Sulfuric_monoamide': '[SX4](=[OX1])(=[OX1])([#7X3;'([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[$([OX2H]),$([OX1-])]'
+Sulfuric_diamide': '[SX4](=[OX1])(=[OX1])([#7X3;'([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Sulfuric_esteramide': '[SX4](=[OX1])(=[OX1])([#7X3][#6;!'(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Sulfuric_derivative': '[SX4D4](=[!#6])(=[!#6])([!#6])[!#6]'
+Sulfonic_acid': '[SX4;'([H1]),$([H0][#6])](=[OX1])(=[OX1])[$([OX2H]),$([OX1-])]'
+Sulfonamide': '[SX4;'([H1]),$([H0][#6])](=[OX1])(=[OX1])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Sulfonic_ester': '[SX4;'([H1]),$([H0][#6])](=[OX1])(=[OX1])[OX2][#6;!$(C=[O,N,S])]'
+Sulfonic_halide': '[SX4;'([H1]),$([H0][#6])](=[OX1])(=[OX1])[FX1,ClX1,BrX1,IX1]'
+Sulfonic_derivative': '[SX4;'([H1]),$([H0][#6])](=[!#6])(=[!#6])[!#6]'
+Sulfinic_acid': '[SX3;'([H1]),$([H0][#6])](=[OX1])[$([OX2H]),$([OX1-])]'
+Sulfinic_amide': '[SX3;'([H1]),$([H0][#6])](=[OX1])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Sulfinic_ester': '[SX3;'([H1]),$([H0][#6])](=[OX1])[OX2][#6;!$(C=[O,N,S])]'
+Sulfinic_halide': '[SX3;'([H1]),$([H0][#6])](=[OX1])[FX1,ClX1,BrX1,IX1]'
+Sulfinic_derivative': '[SX3;'([H1]),$([H0][#6])](=[!#6])[!#6]'
+Sulfenic_acid': '[SX2;'([H1]),$([H0][#6])][$([OX2H]),$([OX1-])]'
+Sulfenic_amide': '[SX2;'([H1]),$([H0][#6])][#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Sulfenic_ester': '[SX2;'([H1]),$([H0][#6])][OX2][#6;!$(C=[O,N,S])]'
+Sulfenic_halide': '[SX2;'([H1]),$([H0][#6])][FX1,ClX1,BrX1,IX1]'
+Sulfenic_derivative': '[SX2;'([H1]),$([H0][#6])][!#6]'
+Phosphine': '[PX3;'([H3]),$([H2][#6]),$([H1]([#6])[#6]),$([H0]([#6])([#6])[#6])]'
+Phosphine_oxide': '[PX4;'([H3]=[OX1]),$([H2](=[OX1])[#6]),$([H1](=[OX1])([#6])[#6]),$([H0](=[OX1])([#6])([#6])[#6])]'
+Phosphonium': '[P+;!'([P]~[!#6]);!$([P]*~[#7,#8,#15,#16])]'
+Phosphorylen': '[PX4;'([H3]=[CX3]),$([H2](=[CX3])[#6]),$([H1](=[CX3])([#6])[#6]),$([H0](=[CX3])([#6])([#6])[#6])]'
+Phosphonic_acid': '[PX4;'([H1]),$([H0][#6])](=[OX1])([$([OX2H]),$([OX1-])])[$([OX2H]),$([OX1-])]'
+Phosphonic_monoester': '[PX4;'([H1]),$([H0][#6])](=[OX1])([$([OX2H]),$([OX1-])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphonic_diester': '[PX4;'([H1]),$([H0][#6])](=[OX1])([OX2][#6;!$(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphonic_monoamide': '[PX4;'([H1]),$([H0][#6])](=[OX1])([$([OX2H]),$([OX1-])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonic_diamide': '[PX4;'([H1]),$([H0][#6])](=[OX1])([#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonic_esteramide': '[PX4;'([H1]),$([H0][#6])](=[OX1])([OX2][#6;!$(C=[O,N,S])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonic_acid_derivative': '[PX4;'([H1]),$([H0][#6])](=[!#6])([!#6])[!#6]'
+Phosphoric_acid': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([$([OX2H]),$([OX1-])])[$([OX2H]),$([OX1-])]'
+Phosphoric_monoester': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([$([OX2H]),$([OX1-])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphoric_diester': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([OX2][#6;!$(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphoric_triester': '[PX4D4](=[OX1])([OX2][#6;!'(C=[O,N,S])])([OX2][#6;!$(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphoric_monoamide': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([$([OX2H]),$([OX1-])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_diamide': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_triamide': '[PX4D4](=[OX1])([#7X3;'([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])([#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_monoestermonoamide': '[PX4D4](=[OX1])(['([OX2H]),$([OX1-])])([OX2][#6;!$(C=[O,N,S])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_diestermonoamide': '[PX4D4](=[OX1])([OX2][#6;!'(C=[O,N,S])])([OX2][#6;!$(C=[O,N,S])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_monoesterdiamide': '[PX4D4](=[OX1])([OX2][#6;!'(C=[O,N,S])])([#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphoric_acid_derivative': '[PX4D4](=[!#6])([!#6])([!#6])[!#6]'
+Phosphinic_acid': '[PX4;'([H2]),$([H1][#6]),$([H0]([#6])[#6])](=[OX1])[$([OX2H]),$([OX1-])]'
+Phosphinic_ester': '[PX4;'([H2]),$([H1][#6]),$([H0]([#6])[#6])](=[OX1])[OX2][#6;!$(C=[O,N,S])]'
+Phosphinic_amide': '[PX4;'([H2]),$([H1][#6]),$([H0]([#6])[#6])](=[OX1])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphinic_acid_derivative': '[PX4;'([H2]),$([H1][#6]),$([H0]([#6])[#6])](=[!#6])[!#6]'
+Phosphonous_acid': '[PX3;'([H1]),$([H0][#6])]([$([OX2H]),$([OX1-])])[$([OX2H]),$([OX1-])]'
+Phosphonous_monoester': '[PX3;'([H1]),$([H0][#6])]([$([OX2H]),$([OX1-])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphonous_diester': '[PX3;'([H1]),$([H0][#6])]([OX2][#6;!$(C=[O,N,S])])[OX2][#6;!$(C=[O,N,S])]'
+Phosphonous_monoamide': '[PX3;'([H1]),$([H0][#6])]([$([OX2H]),$([OX1-])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonous_diamide': '[PX3;'([H1]),$([H0][#6])]([#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonous_esteramide': '[PX3;'([H1]),$([H0][#6])]([OX2][#6;!$(C=[O,N,S])])[#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphonous_derivatives': '[PX3;'([D2]),$([D3][#6])]([!#6])[!#6]'
+Phosphinous_acid': '[PX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6])][$([OX2H]),$([OX1-])]'
+Phosphinous_ester': '[PX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6])][OX2][#6;!$(C=[O,N,S])]'
+Phosphinous_amide': '[PX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6])][#7X3;$([H2]),$([H1][#6;!$(C=[O,N,S])]),$([#7]([#6;!$(C=[O,N,S])])[#6;!$(C=[O,N,S])])]'
+Phosphinous_derivatives': '[PX3;'([H2]),$([H1][#6]),$([H0]([#6])[#6])][!#6]'
+Quart_silane': '[SiX4]([#6])([#6])([#6])[#6]'
+Non-quart_silane': '[SiX4;'([H1]([#6])([#6])[#6]),$([H2]([#6])[#6]),$([H3][#6]),$([H4])]'
+Silylmonohalide': '[SiX4]([FX1,ClX1,BrX1,IX1])([#6])([#6])[#6]'
+Het_trialkylsilane': '[SiX4]([!#6])([#6])([#6])[#6]'
+Dihet_dialkylsilane': '[SiX4]([!#6])([!#6])([#6])[#6]'
+Trihet_alkylsilane': '[SiX4]([!#6])([!#6])([!#6])[#6]'
+Silicic_acid_derivative': '[SiX4]([!#6])([!#6])([!#6])[!#6]'
+Trialkylborane': '[BX3]([#6])([#6])[#6] '
+Boric_acid_derivatives': '[BX3]([!#6])([!#6])[!#6]'
+Boronic_acid_derivative': '[BX3]([!#6])([!#6])[!#6]'
+Borohydride': '[BH1,BH2,BH3,BH4]'
+Quaternary_boron': '[BX4]'
+Aromatic': 'a'
+Heterocyclic': '[!#6;!R0]'
+Epoxide': '[OX2r3]1[#6r3][#6r3]1'
+NH_aziridine': '[NX3H1r3]1[#6r3][#6r3]1'
+Spiro': '[D4R;'(*(@*)(@*)(@*)@*)]'
+Annelated_rings': '[R;'(*(@*)(@*)@*);!$([R2;$(*(@*)(@*)(@*)@*)])]@[R;$(*(@*)(@*)@*);!$([R2;$(*(@*)(@*)(@*)@*)])]'
+Bridged_rings': '[R;'(*(@*)(@*)@*);!$([D4R;$(*(@*)(@*)(@*)@*)]);!$([R;$(*(@*)(@*)@*);!$([R2;$(*(@*)(@*)(@*)@*)])]@[R;$(*(@*)(@*)@*);!$([R2;$(*(@*)(@*)(@*)@*)])])]'
+Sugar_pattern_1': '[OX2;'([r5]1@C@C@C(O)@C1),$([r6]1@C@C@C(O)@C(O)@C1)]'
+Sugar_pattern_2': '[OX2;'([r5]1@C(!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C1),$([r6]1@C(!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C@C1)]'
+Sugar_pattern_combi': '[OX2;'([r5]1@C(!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C(O)@C1),$([r6]1@C(!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C(O)@C(O)@C1)]'
+Sugar_pattern_2_reducing': '[OX2;'([r5]1@C(!@[OX2H1])@C@C@C1),$([r6]1@C(!@[OX2H1])@C@C@C@C1)]'
+Sugar_pattern_2_alpha': '[OX2;'([r5]1@[C@@](!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C1),$([r6]1@[C@@](!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C@C1)]'
+Sugar_pattern_2_beta': '[OX2;'([r5]1@[C@](!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C1),$([r6]1@[C@](!@[OX2,NX3,SX2,FX1,ClX1,BrX1,IX1])@C@C@C@C1)]'
+Conjugated_double_bond': '*=*[*]=,#,:[*]'
+Conjugated_tripple_bond': '*#*[*]=,#,:[*]'
+Cis_double_bond': '*/[D2]=[D2]\*'
+Trans_double_bond': '*/[D2]=[D2]/*'
+Mixed_anhydrides': '['(*=O),$([#16,#14,#5]),$([#7]([#6]=[OX1]))][#8X2][$(*=O),$([#16,#14,#5]),$([#7]([#6]=[OX1]))]'
+Halogen_on_hetero': '[FX1,ClX1,BrX1,IX1][!#6]'
+Halogen_multi_subst': '[F,Cl,Br,I;!'([X1]);!$([X0-])]'
+Trifluoromethyl': '[FX1][CX4;!'([H0][Cl,Br,I]);!$([F][C]([F])([F])[F])]([FX1])([FX1])'
+C_ONS_bond': '[#6]~[#7,#8,#16]'
+Charged': '[!+0]'
+Anion': '[-1,-2,-3,-4,-5,-6,-7]'
+Kation': '[+1,+2,+3,+4,+5,+6,+7]'
+Salt': '([-1,-2,-3,-4,-5,-6,-7]).([+1,+2,+3,+4,+5,+6,+7])'
+1,3-Tautomerizable': '['([#7X2,OX1,SX1]=*[!H0;!$([a;!n])]),$([#7X3,OX2,SX2;!H0]*=*),$([#7X3,OX2,SX2;!H0]*:n)]'
+1,5-Tautomerizable': '['([#7X2,OX1,SX1]=,:**=,:*[!H0;!$([a;!n])]),$([#7X3,OX2,SX2;!H0]*=**=*),$([#7X3,OX2,SX2;!H0]*=,:**:n)]'
+Rotatable_bond': '[!'(*#*)&!D1]-!@[!$(*#*)&!D1]'
+Michael_acceptor': '[CX3]=[CX3]['([CX3]=[O,N,S]),$(C#[N]),$([S,P]=[OX1]),$([NX3]=O),$([NX3+](=O)[O-])]'
+Dicarbodiazene': '[CX3](=[OX1])[NX2]=[NX2][CX3](=[OX1])'
+CH-acidic': '['([CX4;!$([H0]);!$(C[!#6;!$([P,S]=O);!$(N(~O)~O)])][$([CX3]=[O,N,S]),$(C#[N]),$([S,P]=[OX1]),$([NX3]=O),$([NX3+](=O)[O-]);!$(*[S,O,N;H1,H2]);!$([*+0][S,O;X1-])]),$([CX4;!$([H0])]1[CX3]=[CX3][CX3]=[CX3]1)]'
+CH-acidic_strong': '[CX4;!'([H0]);!$(C[!#6;!$([P,S]=O);!$(N(~O)~O)])]([$([CX3]=[O,N,S]),$(C#[N]),$([S,P]=[OX1]),$([NX3]=O),$([NX3+](=O)[O-]);!$(*[S,O,N;H1,H2]);!$([*+0][S,O;X1-])])[$([CX3]=[O,N,S]),$(C#[N]),$([S,P]=[OX1]),$([NX3]=O),$([NX3+](=O)[O-]);!$(*[S,O,N;H1,H2]);!$([*+0][S,O;X1-])]'
+Chiral_center_specified': '['([*@](~*)(~*)(*)*),$([*@H](*)(*)*),$([*@](~*)(*)*),$([*@H](~*)~*)]'
+ '