Selectivity rules

These examples show how to specify a selectivity rule on reactants and/or products: reaction products are always accepted but sorted according to priority defined by reaction rules. Rules are defined as chemical terms and evaluated by the Chemical Terms Evaluator. See the Reaction rules section of the Reactor Manual for the syntax of these rules.

Note, that the Tolerance attribute sets the sensitivity of the selectivity maximum: product lists with selectivity value falling within tolerance of the maximum possible selectivity value are accepted, others rejected. The default tolerance is 0.0001, which means that real-valued selectivity values should be approximately equal to the maximum, while integral selectivity values are tested for equality with the maximum. If you want to accept all product lists and use the selectivity rule only for sorting the results then apply the -n t command line option in which case Reactor ignores the tolerance setting.

In RDF files, the selectivity rule can be set in the SELECTIVITY RDF tag, while the tolerance can be specified in a separate TOLERANCE RDF tag.

  1. This example demonstrates the rule that bromine is attracted to the aromatic carbon atom having the lowest localization energy having an attached electrophile in the intermediate state.

    To run this example, license for the HuckelAnalysisPlugin is required (otherwise Reactor can calculate the energy values for the first reactant only).

    The reaction can be described with the following SMARTS string:

    [c:1][H:2]>>[c:1][Br:3]

    while the selectivity rule can be defined with this Chemical Termsexpression:

    -energyE(ratom(1))

    These together define the following reaction:

    images/www.chemaxon.com/jchem/examples/reactor/img/arom_bromine.png

    Note the minus sign in front of the rule: this means that we want to sort results in increasing order instead of decreasing order, that is, we prefer the aromatic carbon (attached to a hydrogen) with lowest localization energy having an attached electrophile in the intermediate state.

    Note, that this simple rule is applicable for benzene derivatives only.

    Our sample reactants are stored in the arom.smiles molecule file:

    images/www.chemaxon.com/jchem/examples/reactor/img/arom.png

    Run Reactor with default tolerance to get the products with highest priority (determined by the evaluation result of the selectivity rule):

    react -r "[c:1][H:2]>>[c:1][Br:3]..s:-energyE(ratom(1))" arom.smiles

    The result is:

    OC1=CC=CC(C=O)=C1Br
    FC1=CC(Br)=C2OCC(C=O)=C(Cl)C2=C1
    CCN(CCC#N)C1=CC=C(C=O)C(C)=C1Br

    Check that the bromine indeed became attached to the aromatic carbon (with hydrogen) with lowest localization energy having an attached electrophile in the intermediate state:

    Reactants with electrophilic localization energy values

    images/www.chemaxon.com/jchem/examples/reactor/img/arom_charge.png

    Products with bromine attached to the aromatic carbon (with hydrogen) having lowest electrophilic localization energy

    images/www.chemaxon.com/jchem/examples/reactor/img/arom_bromine_result.png

    Standardization of reactants can be defined in the STANDARDIZATION RDF tag of the reaction molecule or after the -S command line option. The standardization specified using the command line option overrides the standardization given in the STANDARDIZATION RDF tag. For the description of standardization and its configuration, refer to the Standardizer Manual.

    Running the same example with aromatization specified after the -S option as a Standardizer action string:

    react -r "[c:1][H:2]>>[c:1][Br:3]..s:-energyE(ratom(1))" -S aromatize arom.smiles

    The result is now aromatized:

    Oc1cccc(C=O)c1Br
    Fc1cc(Br)c2OCC(C=O)=C(Cl)c2c1
    CCN(CCC#N)c1ccc(C=O)c(C)c1Br
  2. This example demonstrates a selectivity rule with calculating the hydrogen count: when adding hydrogen chloride to an alkene, the carbon-carbon double bond is transformed to a single bond with the chloride being attached to the carbon with less hydrogens (Markovnikov rule).

    The reaction (alkene+hcl.rdf) with the selectivity rule is shown below:

    images/www.chemaxon.com/jchem/examples/reactor/img/alkene_hcl.png

    Note the minus sign in front of the rule: this means that we want to sort results in increasing order instead of decreasing order, that is, we prefer the carbon with least number of attached hydrogens.

    The reactants are taken from alkenes.smiles. Four sample reactants are shown below:

    images/www.chemaxon.com/jchem/examples/reactor/img/alkenes.png

    Run Reactor with the default tolerance to get the product with highest priority (determined by the evaluation result of the selectivity rule):

    react -r alkene+hcl.rdf alkenes.smiles -S aromatize.xml -t reaction -o alkene+hcl_result.smiles

    This time we used aromatize.xml to specify the Standardizer configuration. It only contains aromatization.

    The result is stored in alkene+hcl_result.smiles. Four sample result reactions are shown below:

    The Cl atom is attached to the carbon with less hydrogens

    images/www.chemaxon.com/jchem/examples/reactor/img/alkene_hcl_result.png

    Here is another invocation of the same reaction processing, using SMARTS reaction string with appended selectivity rule:

    react -r "[C:1]=[C:2]>Cl>[C:1]([#6:2])[Cl:3]..s:-hcount(ratom(1))" alkenes.smiles -S aromatize.xml -t reaction

    The result is the same as above.

The use and meaning of command-line options in the above commands:

Option

Description

Default

-S

Standardize reactants

-