SMIRKS Tutorial

Table of Contents

1. Introduction:  

SMIRKS... a reaction transform language. a superset of reaction SMILES. a subset of reaction SMARTS.
    ...has behaviors that don't exist in the other languages.
    ...can describe reaction mechanisms with varying degrees of specificity and generality.

2. Syntax

SMIRKS Depiction Reaction SMIRKS   and   Note
Reacting carbon 
Agents aren't allowed in SMIRKS.
The format is " reactants   >>   products ".
Reacting Carbon
SMIRKS allows atomic SMARTS expressions.
The syntax is: [<SMILES_PART>;<SMARTS_PART>:<MAP>]
No Reaction  
SMARTS atom specifications may be used for mapped atoms only
(i.e. unmapped atoms must be valid SMILES expressions ).


No Reaction 
SMIRKS doesn't allow SMARTS Bond Queries (e.g. ~).
Bonds expressions must be valid SMILES. 
Just add water 
Upon transformation, all unmapped product-side SMILES get created.  
Remove Mercury
(if present) 
Upon transformation, all unmapped reactant-side SMILES get deleted. 
Re-generate Mercury 
If one wishes to retain an unmapped atom, It must be explicitly placed on
both the reactant side and the product side so that it will get deleted
then re-generated.


to an oxygen 
On the reactant side of the SMIRKS, mapped SMILES, unmapped
SMILES, and mapped SMARTS are all used as filters to control
which input SMILES are allowed to react. In order to react,
input SMILES must match all criterion.
Reacting oxygen
The particular features of the SMARTS part of the product SMIRKS
are not used to filter
output SMILES and don't normally influence the properties of the output
SMILES in the forward reaction unless the product-side SMILES is omitted
entirely (see below).
Make all right 
Product-side SMILES do determine the properties of output SMILES.
Product SMILES aquire the charge and stereochemistry of the mapped
product-side SMILES but retain the mass and atomic number of the
input structure (i.e. mass and atomic number are immutable properties).  
Retain charge
and stereo 
If, however, the product-side SMILES is omitted entirely and
the product-side SMARTS isn't a valid SMILES, the output structure
will retain the charge and stereochemistry of the input structure.

4. Hydrogens

Unless they are explicity shown as atoms ( i.e. [H]s ) on the
reactant side or product side (see below), The H-count of the
output SMILES is detetermined by the H-count of the input SMILES. 
Charge separation 
All hydrogens are considered atoms in SMIRKS.  
The SMILES, "*" matches any H (even implicit ones). 
Add 2
Hydrogens may be added to the output SMILES by showing them as
explicit atoms ( i.e. [H]s ) in the product side of the SMIRKS.
(The use of the SMARTS, !#1 prevents Hydrogenation of other Hydrogens)
Remove 2
Hydrogens may be removed from the output SMILES by explicitly showing
them as atoms on the reactant side then omitting them on the product
side of the SMIRKS.

5. Mapping

Ortho to Meta
Mapped atoms don't get deleted or created, just moved.  
No Reaction 
Atom maps must be pairwise (i.e. every map class has exactly
one reactant and one product atom).
Stoichiometry is defined to be 1-1 for all atoms in the reactant and product
for a transformation. If non-unit stoichiometry is desired, reactants
or products must be repeated.  
Acid Catalized
Atom maps can convey a reaction's mechanism, if known. 

More Information

Theory Manual
SMIRKS Examples