chemaxon.jep
Class Evaluator

java.lang.Object
  extended by chemaxon.jep.Evaluator
All Implemented Interfaces:
java.io.Serializable

public class Evaluator
extends java.lang.Object
implements java.io.Serializable

Evaluates Chemical Terms expressions. Provides command line interface or creates ChemJEP objects according to configuration. See the documentation for details:

API usage examples:

  1. Evaluate a Chemical Terms expression on molecules and write the results to output:
     // create Evaluator
     Evaluator evaluator = new Evaluator();
    
     // create ChemJEP, compile the Chemical Terms expression
     ChemJEP chemJEP = evaluator.compile("logP()", MolContext.class);
    
     // create context
     MolContext context = new MolContext();
    
     MolImporter importer = new MolImporter("mols.smiles");
     Molecule mol = null;
     while ((mol = importer.read()) != null) {
    
        // set the input molecule
        context.setMolecule(mol);
    
        // get the result by evaluating the expression
        // note: "logP()" expression returns a double, so
        // evaluate_double(ChemContext) method is used
        double result = chemJEP.evaluate_double(context);
    
        // write output
        System.out.println(result);
     }
     importer.close();
     
  2. Using a Chemical Terms expression for filtering molecules:
     // create Evaluator
     Evaluator evaluator = new Evaluator();
    
     // create ChemJEP, compile the Chemical Terms expression
     ChemJEP chemJEP = evaluator.compile(
        "mass()<=500 && logP()<=5 && donorCount()<=5 && acceptorCount()<=10",
        MolContext.class);
    
     // create context
     MolContext context = new MolContext();
    
     MolExporter exporter = new MolExporter(System.out, "smiles");
     MolImporter importer = new MolImporter("mols.smiles");
     Molecule mol = null;
     while ((mol = importer.read()) != null) {
    
        // set the input molecule
        context.setMolecule(mol);
    
        // filter molecules that fulfill the previously set
        // Chemical Terms expression (only molecules that
        // fulfill the expression are written to output)
        if(chemJEP.evaluate_boolean(context)) {
            exporter.write(mol);
        }
     }
     importer.close();
     exporter.close();
     

Since:
JChem 2.2, Marvin 5.1
Version:
Marvin 5.4., 07/29/2010
Author:
Nora Mate, Zsolt Mohacsi
See Also:
Serialized Form

Field Summary
static java.lang.String CONFIG_DIR
          Default directory for storing configuration files.
static java.lang.String DEFAULT_TAG_NAME
          Default SDFile tag to store the evaluation result.
static java.lang.String EVALUATOR_DEFAULTS_FILE
          Default Function/Plugin settings filename.
static java.lang.String EVALUATOR_NAMED_MOLS_FILE
          Default named molecule set filename.
static java.lang.String EVALUATOR_SCRIPT_FILE
          Initial script filename.
 
Constructor Summary
Evaluator()
          Default constructor.
Evaluator(java.io.File file)
          Constructor.
Evaluator(java.io.File file, Standardizer standardizer)
          Constructor.
Evaluator(java.io.File file, Standardizer standardizer, MolImporter importer, java.lang.String script)
          Deprecated.  
Evaluator(Standardizer standardizer)
          Constructor.
Evaluator(java.lang.String configString)
          Constructor.
Evaluator(java.lang.String configString, Standardizer standardizer)
          Constructor.
Evaluator(java.lang.String configString, Standardizer standardizer, MolImporter importer, java.lang.String script)
          Deprecated.  
 
Method Summary
 ChemJEP compile(java.lang.String expression)
          Compiles the expression, creates ChemJEP object.
 ChemJEP compile(java.lang.String expression, java.lang.Class contextClass)
          Compiles the expression, creates ChemJEP object.
 ChemJEP compile(java.lang.String expression, java.lang.Class contextClass, chemaxon.nfunk.jep.SymbolTable stab)
          Compiles the expression, creates ChemJEP object.
 java.util.Hashtable<java.lang.String,java.lang.String> getFunctionalGroupDisplayMolTable()
          Returns a hashtable containing |functional group name| -> |displayable molecule representation|.
 java.util.Hashtable<java.lang.String,chemaxon.jep.CTFunctionData> getFunctionData()
          Returns information about Chemical Terms functions wrapped in chemaxon.jep.CTFunctionData objects.
 java.util.Hashtable<java.lang.String,chemaxon.jep.CTFunctionData> getFunctionData(boolean addServices)
          Returns information about Chemical Terms functions wrapped in chemaxon.jep.CTFunctionData objects.
 java.util.Hashtable getFunctionParameterData()
          Deprecated. use getFunctionData()
 java.lang.String[] getPluginIDs()
          Deprecated. use getFunctionData()
 java.lang.String getServicesConfigurationPath()
          Returns the custom services configuration path.
 chemaxon.nfunk.jep.SymbolTable getSymbolTable()
          Returns the symbol table of predefined constants (molecules, molecule sets and other constants defined in the built-in and the user-defined jep.script).
static void main(java.lang.String[] args)
          The command line version entry point.
 void runScript(java.lang.String script)
          Runs a script, variables will be added to the base variable table and can be referenced by chemical expressions.
 void setFingerprintGenerator(FingerprintGenerator fg)
          Sets the fingerprint generator object (needed for query strings).
 void setLicenseEnvironment(java.lang.String env)
          For internal usage only.
 void setServicesConfigurationPath(java.lang.String servicesConfigurationPath)
          Sets the custom services configuration path.
 void setVerbose(boolean verbose)
          Sets verbose mode.
static java.lang.String toString(java.lang.Object o)
          Deprecated. For internal use only.
static java.lang.String toString(java.lang.Object o, java.text.DecimalFormat df)
          Deprecated. For internal use only.
static java.lang.String toString(java.lang.Object o, int precision)
          Deprecated. For internal use only.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EVALUATOR_DEFAULTS_FILE

public static final java.lang.String EVALUATOR_DEFAULTS_FILE
Default Function/Plugin settings filename.

See Also:
Constant Field Values

EVALUATOR_NAMED_MOLS_FILE

public static final java.lang.String EVALUATOR_NAMED_MOLS_FILE
Default named molecule set filename.

See Also:
Constant Field Values

CONFIG_DIR

public static final java.lang.String CONFIG_DIR
Default directory for storing configuration files.

See Also:
Constant Field Values

EVALUATOR_SCRIPT_FILE

public static final java.lang.String EVALUATOR_SCRIPT_FILE
Initial script filename.

See Also:
Constant Field Values

DEFAULT_TAG_NAME

public static final java.lang.String DEFAULT_TAG_NAME
Default SDFile tag to store the evaluation result.

See Also:
Constant Field Values
Constructor Detail

Evaluator

public Evaluator()
          throws chemaxon.nfunk.jep.ParseException
Default constructor.

Throws:
chemaxon.nfunk.jep.ParseException

Evaluator

public Evaluator(Standardizer standardizer)
          throws chemaxon.nfunk.jep.ParseException
Constructor. Loads default configuration with standardizer, loads default named molecule sets and runs default initial scripts.

Parameters:
standardizer - is the standardizer object
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 3.1.4

Evaluator

public Evaluator(java.io.File file)
          throws chemaxon.nfunk.jep.ParseException
Constructor. Loads default configuration and configuration from specified file, loads default named molecule sets and runs default initial scripts.

Parameters:
file - is the XML configuration file
Throws:
chemaxon.nfunk.jep.ParseException - on error

Evaluator

public Evaluator(java.lang.String configString)
          throws chemaxon.nfunk.jep.ParseException
Constructor. Loads default configuration and configuration from specified XML configuration string, loads default named molecule sets and runs default initial scripts.

Parameters:
configString - is the XML configuration string
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 5.0

Evaluator

public Evaluator(java.io.File file,
                 Standardizer standardizer)
          throws chemaxon.nfunk.jep.ParseException
Constructor. Loads default configuration and configuration from specified file with standardizer. Loads also default named molecule sets and runs default initial scripts.

Parameters:
file - is the XML configuration file
standardizer - is the standardizer object
Throws:
chemaxon.nfunk.jep.ParseException - on error

Evaluator

@Deprecated
public Evaluator(java.io.File file,
                            Standardizer standardizer,
                            MolImporter importer,
                            java.lang.String script)
          throws chemaxon.nfunk.jep.ParseException
Deprecated. 

Constructor. Loads default configuration and configuration from specified file with standardizer. Loads also default named molecule sets and named molecule sets from the specified importer. Runs initial scripts.

Parameters:
file - is the XML configuration file
standardizer - is the standardizer object
importer - is the MolImporter object used for loading named molecule sets (if null, then default molecule sets are loaded)
script - is the initial script (Chemical Terms expression; if null, then default initial scripts are run)
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 5.0

Evaluator

public Evaluator(java.lang.String configString,
                 Standardizer standardizer)
          throws chemaxon.nfunk.jep.ParseException
Constructor. Loads default configuration and configuration from specified XML configuration string with standardizer. Loads also default named molecule sets and runs default initial scripts.

Parameters:
configString - is the XML configuration string
standardizer - is the standardizer object
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 5.0

Evaluator

@Deprecated
public Evaluator(java.lang.String configString,
                            Standardizer standardizer,
                            MolImporter importer,
                            java.lang.String script)
          throws chemaxon.nfunk.jep.ParseException
Deprecated. 

Constructor. Loads default configuration and configuration from specified XML configuration string with standardizer. Loads also default named molecule sets and named molecule sets from the specified importer. Runs initial scripts.

Parameters:
configString - is the XML configuration string
standardizer - is the standardizer object
importer - is the MolImporter object used for loading named molecule sets (if null, then default molecule sets are loaded)
script - is the initial script (Chemical Terms expression; if null, then default initial scripts are run)
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 5.0
Method Detail

setLicenseEnvironment

public void setLicenseEnvironment(java.lang.String env)
For internal usage only.

Parameters:
env - the license environment

runScript

public void runScript(java.lang.String script)
               throws chemaxon.nfunk.jep.ParseException
Runs a script, variables will be added to the base variable table and can be referenced by chemical expressions.

Parameters:
script - is the script (Chemical Terms expression)
Throws:
chemaxon.nfunk.jep.ParseException - on error
Since:
JChem 3.2

getFunctionParameterData

public java.util.Hashtable getFunctionParameterData()
                                             throws chemaxon.nfunk.jep.ParseException
Deprecated. use getFunctionData()

Returns user parameter data for each function. The table is built according to the UserParam sections of the configuration XML. The keys are the function IDs, the values are the corresponding parameter record arrays:
 <function ID> -> UserParam[]
 

Returns:
the user parameter data for each function
Throws:
chemaxon.nfunk.jep.ParseException - on configuration error
Since:
JChem 3.2

getPluginIDs

public java.lang.String[] getPluginIDs()
                                throws chemaxon.nfunk.jep.ParseException
Deprecated. use getFunctionData()

Returns the plugin function IDs from the Plugins section of the configuration XML.

Returns:
the plugin function IDs
Throws:
chemaxon.nfunk.jep.ParseException - on configuration error
Since:
JChem 3.2

getFunctionData

public java.util.Hashtable<java.lang.String,chemaxon.jep.CTFunctionData> getFunctionData()
                                                                                  throws chemaxon.nfunk.jep.ParseException
Returns information about Chemical Terms functions wrapped in chemaxon.jep.CTFunctionData objects. The keys are the function IDs, the values are the corresponding chemaxon.jep.CTFunctionData objects.
 <function ID> -> CTFunctionData
 
For internal use only.

Returns:
table containing CTFunctionData for each Chemical Terms function
Throws:
chemaxon.nfunk.jep.ParseException - on configuration error
Since:
JChem 5.2

getFunctionData

public java.util.Hashtable<java.lang.String,chemaxon.jep.CTFunctionData> getFunctionData(boolean addServices)
                                                                                  throws chemaxon.nfunk.jep.ParseException
Returns information about Chemical Terms functions wrapped in chemaxon.jep.CTFunctionData objects. The keys are the function IDs, the values are the corresponding chemaxon.jep.CTFunctionData objects.
 <function ID> -> CTFunctionData
 
For internal use only.

Parameters:
addServices - if true then services data will be added as function data
Returns:
table containing CTFunctionData for each Chemical Terms function
Throws:
chemaxon.nfunk.jep.ParseException - on configuration error
Since:
JChem 5.6

getServicesConfigurationPath

public java.lang.String getServicesConfigurationPath()
Returns the custom services configuration path.

Returns:
the custom services configuration path or null if using marvin's default lookup
Since:
5.10

setServicesConfigurationPath

public void setServicesConfigurationPath(java.lang.String servicesConfigurationPath)
Sets the custom services configuration path.

Parameters:
servicesConfigurationPath - the new file path or URL. Set null to use marvin's default lookup
Since:
5.10

getSymbolTable

public chemaxon.nfunk.jep.SymbolTable getSymbolTable()
Returns the symbol table of predefined constants (molecules, molecule sets and other constants defined in the built-in and the user-defined jep.script).

Returns:
the symbol table of predefined constants
Since:
JChem 3.2

getFunctionalGroupDisplayMolTable

public java.util.Hashtable<java.lang.String,java.lang.String> getFunctionalGroupDisplayMolTable()
Returns a hashtable containing |functional group name| -> |displayable molecule representation|.

Returns:
the |functional group name| -> |displayable molecule representation| table
Since:
Marvin 5.4

setFingerprintGenerator

public void setFingerprintGenerator(FingerprintGenerator fg)
Sets the fingerprint generator object (needed for query strings).

Parameters:
fg - is the fingerprint generator object

setVerbose

public void setVerbose(boolean verbose)
Sets verbose mode.

Parameters:
verbose - is true if verbose mode

compile

public ChemJEP compile(java.lang.String expression)
                throws chemaxon.nfunk.jep.ParseException
Compiles the expression, creates ChemJEP object. Call ChemJEP.evaluate(ChemContext) to evaluate the expression.

Parameters:
expression - is the expression string
Returns:
the created ChemJEP object
Throws:
chemaxon.nfunk.jep.ParseException - on compile error

compile

public ChemJEP compile(java.lang.String expression,
                       java.lang.Class contextClass)
                throws chemaxon.nfunk.jep.ParseException
Compiles the expression, creates ChemJEP object. Call ChemJEP.evaluate(ChemContext) to evaluate the expression.

Parameters:
expression - is the expression string
contextClass - is the evaluation context class object
Returns:
the created ChemJEP object
Throws:
chemaxon.nfunk.jep.ParseException - on compile error

compile

public ChemJEP compile(java.lang.String expression,
                       java.lang.Class contextClass,
                       chemaxon.nfunk.jep.SymbolTable stab)
                throws chemaxon.nfunk.jep.ParseException
Compiles the expression, creates ChemJEP object. Call ChemJEP.evaluate(ChemContext) to evaluate the expression.

Parameters:
expression - is the expression string
contextClass - is the evaluation context class object
stab - is the vaiable table, null if the default varibale table should be used
Returns:
the created ChemJEP object
Throws:
chemaxon.nfunk.jep.ParseException - on compile error

toString

public static java.lang.String toString(java.lang.Object o)
Deprecated. For internal use only.

Returns String representation of an object using default decimal format with 2 fractional digits.

Parameters:
o - is the object
Returns:
the string representation of the object

toString

public static java.lang.String toString(java.lang.Object o,
                                        int precision)
Deprecated. For internal use only.

Returns String representation of an object using default decimal format with given number of fractional digits.

Parameters:
o - is the object
precision - is the number of fractional digits
Returns:
the string representation of the object

toString

public static java.lang.String toString(java.lang.Object o,
                                        java.text.DecimalFormat df)
Deprecated. For internal use only.

Returns String representation of an object.

Parameters:
o - is the object
df - is the real-number formatter
Returns:
the string representation of the object

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
The command line version entry point. Parameter parsing, initialization then start.

Parameters:
args - the command line parameters
Throws:
java.lang.Exception