Evaluator

The Evaluator class provides an interface to the Chemical Terms library. It requires the creation of a ChemJEP object. ChemJEP is the actual expression parser/compiler and evaluator for the chemical terms in in the Evaluator call. The API for Evaluator presents many fine examples but we will present a simple case as example. This command will calculate the first acidic pKa for a molecule.

For how to get the Molecule from the selected row see the Reading a molecule scriptlet.

import chemaxon.jep.Evaluator
import chemaxon.jep.ChemJEP
import chemaxon.jep.context.MolContext
import chemaxon.struc.Molecule
import chemaxon.formats.MolImporter
 
// create the molecule. We use benzoic acid
Molecule mol = MolImporter.importMol('c1ccccc1C(=O)O')
 
// evaluator stuff
Evaluator evaluator = new Evaluator()
ChemJEP chemJEP = evaluator.compile("pKa('acidic','1')", MolContext.class)
MolContext context = new MolContext()
context.setMolecule(mol)
def result = chemJEP.evaluate(context)
println "result=$result"