Skip to content

Chemical Terms evaluator

The ChemTermsEvaluator class provides an interface to the Chemical Terms library. It requires the creation of a ChemTermsExpression object. ChemTermsExpression is the actual expression parser/compiler and evaluator for the Chemical Terms in in the ChemTermsEvaluator call. The API for ChemTermsEvaluator 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.chemterms.ChemTermsEvaluator
import chemaxon.chemterms.ChemTermsExpression
import chemaxon.chemterms.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
ChemTermsEvaluator evaluator = new ChemTermsEvaluator()
ChemTermsExpression exp = evaluator.compile("pKa('acidic','1')", MolContext.class)
MolContext context = new MolContext()
context.setMolecule(mol)
def result = exp.evaluate(context)
println "result=$result"