Basic usage
***********

This basic example provides a minimal script to solve a reaction
mapping problem. In this example, we look at a simple S_N2 reaction
between 1-bromopropane and the hydroxide anion.

   import scm.reactmap as rm

   settings = rm.Settings(use_heuristics = False)

   reactant = rm.Molecule(smiles="CCC[Br].[OH1-]")
   product  = rm.Molecule(smiles="[Br-].CCCO")
   reaction = rm.Reaction(reactant=reactant, product=product, name="SN2")
   rm.Map(reaction)

   print("Mapping cost:", reaction.cost)
   print("Atom map")
   for idx, at in enumerate(reactant.atoms):
       print("Reactant atom {:2} -> Product atom {:2}".format(idx,reaction.mapping[idx]))

The output shows the total cost of the mapping as well as the
assignment of each atom in the reactants to a unique atom in the
products.

   Mapping cost: 2
   Atom map
   Reactant atom  0 -> Product atom  1
   Reactant atom  1 -> Product atom  2
   Reactant atom  2 -> Product atom  3
   Reactant atom  3 -> Product atom  0
   Reactant atom  4 -> Product atom  4
   Reactant atom  5 -> Product atom  5
   Reactant atom  6 -> Product atom  6
   Reactant atom  7 -> Product atom  7
   Reactant atom  8 -> Product atom  8
   Reactant atom  9 -> Product atom  9
   Reactant atom 10 -> Product atom 10
   Reactant atom 11 -> Product atom 11
   Reactant atom 12 -> Product atom 12
