foyer
foyer copied to clipboard
Current and unimplemented SMARTS functionality
We currently do not support all of SMARTS' features. Here we're keeping track of which portions are supported.
Left column denotes current foyer support. See here for implemented SMARTS grammar.
SMARTS Atomic Primitives
Symbol | Symbol name | Atomic propertyrequirements | Default | |
---|---|---|---|---|
✔ | * | wildcard | any atom | (no default) |
a | aromatic | aromatic | (no default) | |
✔ | A | aliphatic | aliphatic | (no default) |
D<n> | degree | <n> explicit connections | exactly one | |
H<n> | total-H-count | <n> attached hydrogens | exactly one1 | |
h<n> | implicit-H-count | <n> implicit hydrogens | at least one | |
R |
ring membership | in <n> SSSR rings | any ring atom | |
✔ | r<n> | ring size | in smallest SSSR ring of size <n> | any ring atom |
v<n> | valence | total bond order <n> | exactly one | |
✔ | X<n> | connectivity | <n> total connections | exactly one |
x<n> | ring connectivity | <n> total ring connections | at least one | |
- <n> | negative charge | -<n> charge | -1 charge (-- is -2, etc) | |
+<n> | positive charge | +<n> formal charge | +1 charge (++ is +2, etc) | |
✔ | #n | atomic number | atomic number <n> | (no default) |
@ | chirality | anticlockwise | anticlockwise, default class | |
@@ | chirality | clockwise | clockwise, default class | |
@<c><n> | chirality | chiral class <c> chirality <n> | (nodefault) | |
@<c><n>? | chiral or unspec | chirality <c><n> or unspecified | (no default) | |
<n> | atomic mass | explicit atomic mass | unspecified mass |
SMARTS Bond Primitives
Symbol | Atomic property | requirements | |
---|---|---|---|
- | single bond | (aliphatic) | |
/ | directional | bond "up"1 | |
\ | directional | bond "down"1 | |
/? | directional | bond "up or unspecified" | |
? | directional | bond "down or unspecified" | |
= | double | bond | |
# | triple | bond | |
: | aromatic | bond | |
~ | any bond | (wildcard) | |
@ | any ring | bond1 |
SMARTS Logical Operators
Symbol | Expression | Meaning | |
---|---|---|---|
✔ | exclamation | !e1 | not e1 |
✔ | ampersand | e1&e2 | a1 and e2 (high precedence) |
✔ | comma | e1,e2 | e1 or e2 |
✔ | semicolon | e1;e2 | a1 and e2 (low precedence) |
Am I missing the %
operator from this list?