MoleculePattern[{atom1,atom2, }, { bond1,bond2, }]

represents a molecule pattern with atoms atomi and bonds bondi for use in substructure searching.


represents a molecule pattern from the input SMARTS pattern.


returns a molecule pattern consisting of the atoms from mol with index idi and their connecting bonds.


  • The atoms and bonds in a MoleculePattern are not checked for proper valence, and no implicit hydrogens are added.
  • Possible forms for the atom patterns include:
  • "sym"an atom with atomic symbol "sym"
    Atom["sym",rules]an atom with properties described by rules
    patt1|patt2|an atom matching any of the patti
  • A bond is entered as Bond[{id1,id2},"order"]. If the bond order is omitted, it will match any bond order.


Basic Examples  (3)

Define a pattern for sulfur-oxygen bonds:

Use the pattern in MoleculePlot to visualize:

Find bonds between carbon and heavier atoms:

Make a molecule pattern from part of a molecule:

Find this pattern in the parent molecule:

Visualize the pattern with MoleculePlot:

Introduced in 2019