From: Chemoinformatics-based enumeration of chemical libraries: a tutorial
 | SMILES | SMARTS | SMIRKS |
---|---|---|---|
Representation | Reactant > Agent > Product In some cases the presence of agents can be omitted Reactant >  > Product | A reaction query may be composed of optional reactant, agent, and product parts, which are separated by the " > " character Reactant > Agent > Product Reactan >  >   > Agent >   >  > Product Query | Reactant >  > Product |
Example | CC(= O)O.OCC > [H +].[Cl-].OCC > CC(= O)OCC |  >  > [#6][CX3](= O)[#6] This query returns reactions in which the product contains ketones | [C:1]([O,Cl:5]) = [O:2].[N:3][H:4] >  > [N:3][C:1] = [O:2].[*:5][H:4][C]([O,Cl]) = [O].[N][H] >  > [N][C] = [O].[*][H] The use of the SMARTS [O,Cl] allows oxygen or chlorine |
Characteristics | The map is always the last part of the atom expression delimited by a colon and it is optional If hydrogen is mapped, it is also "special" and must be shown (hydrogens are normally omitted from SMILES) | Atom map is optional Any valid Reaction SMILES is a valid SMARTS query Any valid Molecule SMARTS can be a component of a Reaction Recursive SMARTS supports only molecule expressions All valid SMIRKS are valid reaction queries | Atoms can be added or deleted during a transformation Atomic SMARTS expressions can be used for atoms directly involved in the reaction (the reaction center) Stoichiometry is defined to be 1–1 for all atoms in the reactant and product for a transformation Explicit hydrogens that are used on one side of a transformation must appear explicitly on the other side of the transformation must be mapped Bond expressions must be valid SMILES (no bond queries allowed) Atomic expressions may be any valid atomic SMARTS expression for nodes where the bonding (connectivity and bond order) does not change |
Use | To represent specific reactions between specific reactants yielding specific products | SMARTS are used for searching reactions | SMIRKS are used to represent generic chemical transformations |
Applications | Store a library of reactions of interest (these might be a record of reactions that have been carried out at a company, a set of reaction plans in an academic research group, or even a set of hypothetical reactions that might never succeed in the laboratory) | Retrieve specific searches Avoid uninteresting results Reaction classification and categorization | Using SMIRKS to represent chemical transformations, reaction specifications can be stored in the database Structures can be transformed and combined (reacted) to produce new structures |