Changing problem settings with reactmap.Settings

There are many possible settings in reactmap. While the default settings should work for most “standard” reactions, you may want to explore other options for challenging problems or for optimization purposes. See the Settings documentation for an exhaustive list of available options. Below, we provide a sample script in which we change a few useful settings:

import scm.reactmap as rm

rm.logger.print_level = 'status'

reactant = rm.Molecule(smiles="CC.O=O.O=O.O=O")
product  = rm.Molecule(smiles="O=C=O.O.C[OH0][OH1].[OH0]")

reaction = rm.Reaction(reactant=reactant, product=product, name="ethane combustion")
# turn off all heuristics
settings = rm.Settings(use_heuristics=False)
rm.Map(reaction,settings)

# reinitialize reaction to clear solution
reaction = rm.Reaction(reactant=reactant, product=product, name="ethane combustion")
# try to use the greedy upper bound heuristic
settings = rm.Settings(ub_greedy=True)
rm.Map(reaction,settings)

reaction = rm.Reaction(reactant=reactant, product=product, name="ethane combustion")
# set a time limit of 500s
settings = rm.Settings(time_limit=500)
rm.Map(reaction,settings)

reaction = rm.Reaction(reactant=reactant, product=product, name="ethane combustion")
# try the bond mapping mip formulation
settings = rm.Settings(use_heuristics=False,formulation='bondmapping')
rm.Map(reaction,settings)

reaction = rm.Reaction(reactant=reactant, product=product, name="ethane combustion")
# turn implicit H treatment off
settings = rm.Settings(implicitH=False)
rm.Map(reaction,settings)