Evaluator Examples

Contents

Introduction

These examples show the application of ChemAxon's Chemical Terms in various ChemAxon products. First we look at some basic examples showing chemical expressions formulated with input read from a molecule context, which applies to the Evaluator command line tool and chemical expression evaluation and filtering in JChem Cartridge. Next we demonstrate the strength of the chemical terms language in formulating reaction rules, where input is taken from a reaction context. Finally we show how to select search hits by formulating search filters referring to a search context containing the target and query molecules together with the current search hit.

Throughout the examples, use the set of Chemical Terms Reference Tables to look at the function and plugin calculation syntax together with some generic examples.

 

Prerequisites

To run these examples:

  1. The Java Virtual Machine version 1.4 or higher and Marvin / JChem have to be installed on your system.
  2. The PATH environment variable have to be set as described in the Installation Guide for Marvin Beans manual.
  3. A command shell (under UNIX / Linux: your favorite shell, under Windows: a Cygwin shell or a Command Prompt) has to be run in the evaluator example directory.
    In UNIX / Linux:
    cd marvin/examples/evaluator
    
    In Windows:
    cd marvin\examples\evaluator
    
 

Basic examples

These examples refer to a molecule context and applies to the Evaluator command line tool and chemical expression evaluation and filtering in JChem Cartridge. The working examples below use the evaluate tool but the same expressions can be used in JChem Cartridge - but only boolean expressions (evaluated to true or false ) can be used for setting a filtering condition.

Our input molecules are stored in aroms.smiles and shown below:

input molecules

This will be the first reactant set in the Friedel-Crafts acylation reaction in the Reaction examples section. Now we start with some simple plugin calculations and proceed towards the exclude rule of the reaction. The first and last molecules are the same (benzene) because we will react benzene with two different acid-halides when processing the Friedel-Crafts acylation.

 

Reaction rule examples

In this section we show two sample reactions:

  1. Friedel-Crafts acylation
  2. Baeyer-Villiger ketone oxidation

You can also find these reactions with some sample reactants in the Reactor JSP example.

We demonstrate the use of reaction rules:

These chemical expressions formulating these rules access reaction data through a reaction context. Here are some examples for using this context:

You should map your reactions according to ChemAxon's reaction mapping style to access reactant and product atoms by map matching. You can also use Edit/Add/Atom Maps in MarvinSketch to use automatical mapping, but always check the result, since this is an experimental feature.

 

Our first example is Friedel-Crafts acylation:

Friedel-Crafts_acylation.mrv

The reaction has the following rules:

Refer to the Chemical Terms Reference Tables for ChemAxon's Chemical Terms function / plugin calculation calculation syntax summary and explanation.

Now it is time to process this reaction on some reactants! We will process the reaction on 14 reactant pairs.

Our reactant file for the first reactant contains a set of aromatic molecules stored in aroms.smiles:

first reactants

The set of the second reactants is very simple - we take the same acid-halide for each of the above aromatic molecules:

acid-halide

Then we will test benzene with another acid-halide as well:

another acid-halide

The second reactants are stored in acidhalides.smiles with all but one molecule being identical to the first acid-halide above, while the last one being the second one.

Now run Reactor to process the reaction:

react -r Friedel-Crafts_acylation.mrv aroms.smiles acidhalides.smiles -t reaction -o Friedel-Crafts_results.smiles

The result reactions are stored in Friedel-Crafts_results.smiles.

To analyze the results, examine the reactant pairs one-by-one. Observe that the only rule referring the second reactant is the exclude rule stating that the acid-halide carbon should not be the acryloic-halide mapped carbon. It follows that the our first acid-halide is not excluded but our second acid-halide obviously satisfies this condition and therefore the last reactant pair with benzene paired with this second acid-halide is excluded from the result. Now in the analyzation below, we examine the first reactant.

You can check the reactivity and selectivity rules by:

evaluate -e "charge('aromaticsystem')" r1.smiles
evaluate -e "energyE()" r1.smiles
where r1.smiles is a first reactant in SMILES form. These commands will list the evaluation results for each atom, seperated by ';' characters.

  1. benzene satisfies the reactivity condition (sum of partial pi charges in the aromatic system):
    evaluate -e "charge('aromaticsystem')" "c1ccccc1"
    -0.37;-0.37;-0.37;-0.37;-0.37;-0.37
    
    
    and does not satisfy the exclude condition, since it does not contain phosphorus or ionizable atoms (no pKa values), therefore the reaction is processed and the result is:

    reaction with benzene

    Observe that the selectivity rule does not play here since it evaluates to the same value because of molecule symmetry.

  2. Our second aromatic molecule will not react because it fails to satisfy the reactivity rule:
    evaluate -p 3 -e "charge('aromaticsystem')" "CC(=O)c1ccccc1"
    0;0;0;-0.199;-0.199;-0.199;-0.199;-0.199;-0.199
    Now we see that the condition is not satisfied (-0.199 > -0.2).

  3. The third reactant will not react for the same reason:
    evaluate -e "charge('aromaticsystem')" "O=N(=O)c1ccccc1"
    0;0;0;-0.01;-0.01;-0.01;-0.01;-0.01;-0.01
    

  4. Toluol - satisfies the reactivity rule:
    evaluate -e "charge('aromaticsystem')" "Cc1ccccc1"
    0;-0.39;-0.39;-0.39;-0.39;-0.39;-0.39
    
    Toluol is obviously not excluded (for the same reason as benzene, above), therefore we should evaluate the selectivity rule to determine the main products:

    energyE values for toluol

    Since our selectivity rule says to take the minimal localization energy (note that the localization energy is multiplied by -1 to reverse the result order, i.e., to take the minimum instead of maximum), the ortho position is the best, then the para position is also accepted because the corresponding value is within tolerance: 2.46 - 2.45 < 0.02 :

    reaction results for toluol

  5. Bromobenzene - the same situation as with toluol:

    energyE values for bromobenzene

    The ortho and para positions are accepted, with the ortho position being the main result:

    reaction results for bromobenzene

  6. Anthracene - the reactivity rule is satisfied:
    evaluate -e "charge('aromaticsystem')" "c1ccc2cc3ccccc3cc2c1"
    -0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63;-0.63
    
    Antracen is not excluded for the same reasons as toluol and benzene and the selectivity rule now determines a single position:

    energyE values for anthracene

    The reaction result is shown below:

    reaction result for anthracene

  7. Indole - the reactivity rule is satisfied:
    evaluate -e "charge('aromaticsystem')" "c1ccc2[nH]ccc2c1"
    -0.55;-0.55;-0.55;-0.55;-0.55;-0.55;-0.55;-0.55;-0.55
    
    Indole is not excluded because there is no basic pKa on its nitrogen atom:

    pKa values for indole

    The selectivity rule selects a single position:

    energyE values for indole

    The reaction result is shown below:

    reaction result for indole

  8. Phenol - the reactivity rule is satisfied:
    evaluate -e "charge('aromaticsystem')" "Oc1ccccc1"
    0;-0.35;-0.35;-0.35;-0.35;-0.35;-0.35
    
    Phenol is not excluded, because the acidic pKa on its OH is not greater than the specified 14.5 limit:

    pKa values for phenol

    The selectivity rule selects the ortho and the para positions:

    energyE values for phenol

    The resulting reactions are shown below:

    reaction results for phenol

  9. The next three molecules satisfy the exclude condition regarding the conditions on the pKa values (positive basic pKa on a nitrogen having an attached H or acidic pKa greater than 14.5 on an OH or SH):

    pKa values satisfying the exclude rule

  10. Phenylacetamide - has negative pKa on its nitrogen, therefore it is not excluded:

    pKa values for phenylacetamide

    Phenylacetamide satisfies the reactivity rule:

    evaluate -e "charge('aromaticsystem')" "CC(=O)Nc1ccccc1"
    0;0;0;0;-0.27;-0.27;-0.27;-0.27;-0.27;-0.27
    
    The selectivity rule selects a single position (ortho):

    energyE values for phenylacetamide

    The resulting reaction is shown below:

    reaction result for phenylacetamide

You can also run this reaction in the Reactor JSP example. This is in ChemAxon's Reaction Library, you can try to alter or ignore the reaction rules, set different reactants from file or draw your favorite test molecules. You can also save / load the altered reaction. You are more than welcome to post your reaction to the ChemAxon forum.

 

Our second example is Baeyer-Villiger ketone oxidation:

Baeyer-Villiger_ketone_oxidation.mrv

The reaction has the following rules:

Refer to the Chemical Terms Reference Tables for ChemAxon's Chemical Terms function / plugin calculation syntax summary and explanation.

Our reactant file is ketones.smiles:

ketones

Now run Reactor to process the reaction:

react -r Baeyer-Villiger_ketone_oxidation.mrv ketones.smiles -t reaction -o Baeyer-Villiger_results.smiles

The result reactions are stored in Baeyer-Villiger_results.smiles:

Baeyer-Villiger results

Observe, that our 5th ketone does not react because it is a β-diketone and hence does not satisfy our reactivity criteria. The 6th ketone is an α-diketone matching [H]C=O in our exclude rule, therefore that will not react either. The specific chemical reason is that these ketones produce anhydrides instead of oxidation. All other ketones from our input set react (satisfy our reactivity rule and are not excluded by our exclude rule), therefore our selectivity rule will determine the main product. We show the atomic sigma-charges below, look at the charge values on atoms matching reaction map 2 , marked with 2 in the following sample:

atoms to be checked for sigma-charge

Now look at these sigma-charge values and check that the bigger value is selected in our results above:

sigma-charge values in ketones

You can also run this reaction in the Reactor JSP example. This is in ChemAxon's Reaction Library, you can try to alter or ignore the reaction rules, set different reactants from file or draw your favorite test molecules. You can also save / load the altered reaction. You are more than welcome to post your reaction to the ChemAxon forum.

 

Search filtering examples

In this section we show some examples for search filters. These expressions filter targets, queries and/or search hits: the substructure search is performed only for target-query pairs satisfying the filtering condition, furthermore, search hits are filtered by the expression.

Search data (target, query, search hits) is accessed through a search context. Here are some examples for using this context:

In the examples below, the target molecules are stored in targets.smiles:

targets.smiles

Queries are stored in queries.smarts:

queries.smarts

In the following examples we use the jcsearch command line tool to perform substructure search with filtering.

  1. Filtering targets:
  2. Filtering queries:

  3. Filtering search hits:

    In these examples we filter search hits by setting conditions on pKa values calculated on target atoms matching carboxylic oxygens or nitrogens. In order that you could check the results easily, we show the pKa values together with atom indices for the target molecules:

    pKa values in targets

You can try and test filtering conditions at ChemAxon's database search JSP example. Feel free to share your experience at the ChemAxon forum.

 
Copyright © 1999-2011 ChemAxon Ltd.    All rights reserved.