Writing SMARTS: Some Examples

Hydrogen-bond donor -- Matches one atom either oxygen or nitrogen and not with zero attached hydrogens.

Hydrogen-bond acceptor -- Matches a 2-atom pattern consisting of a carbon or nitrogen not in a ring, double bonded to an oxygen.

Possible intramolecular hbond -- Note that the overall SMARTS consists of five atoms. The first and fifth atom are defined by "recursive SMARTS", where "$()" encloses a valid nested SMARTS and acts syntactically like an atom-primitive in the overall SMARTS. Multiple nesting is allowed.

Rotatable bond -- Note that logical operators can be applied to bonds ("-&!@"). Here, the overall SMARTS consists of two atoms and one bond. The bond is "single and not ring".

PCB search -- Overall SMARTS is atom-bond-atom. Note that ":" is explicit aromatic bond, and "-" is explicit single bond. On each side of the single bond, we use three nested SMARTS to represent the ortho, meta, and para position.

Primary or secondary amine, not amide -- Note that "&" (and) is higher precedence that "," (or), which is higher precedence than ";" (and);

Primary amine, not amide

Two primary or secondary amines -- Here we use the disconnection symbol (".") to match two separate unbonded identical patterns.

CIS or TRANS double bond in a ring -- An isomeric SMARTS consisting of four atoms and three bonds.

Back to

Support/FAQ Page