Package chemaxon.jep

Class Evaluator

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

@PublicApi public class Evaluator extends Object implements 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<MolContext> 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<MolContext> 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
See Also:
  • Field Details

  • Constructor Details

    • Evaluator

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

      public Evaluator(chemaxon.jep.Standardizer standardizer) throws chemaxon.nfunk.jep.ParseException
      Constructor for internal use only. 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
    • Evaluator

      public Evaluator(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(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(File file, chemaxon.jep.Standardizer standardizer) throws chemaxon.nfunk.jep.ParseException
      Constructor for internal use only. 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(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Evaluator(File file, chemaxon.jep.Standardizer standardizer, MolImporter importer, String script) throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Constructor for internal use only. 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(String configString, chemaxon.jep.Standardizer standardizer) throws chemaxon.nfunk.jep.ParseException
      Constructor for internal use only. 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(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Evaluator(String configString, chemaxon.jep.Standardizer standardizer, MolImporter importer, String script) throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Constructor for internal use only. 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 Details

    • setLicenseEnvironment

      public void setLicenseEnvironment(String env)
      For internal usage only.
      Parameters:
      env - the license environment
    • runScript

      public void runScript(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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Hashtable getFunctionParameterData() throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public String[] getPluginIDs() throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Hashtable<String,chemaxon.jep.CTFunctionData> getFunctionData() throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Hashtable<String,chemaxon.jep.CTFunctionData> getFunctionData(boolean addServices) throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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 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(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
    • constantTable

      public ConstantTable constantTable()
      Returns the table of predefined constants (molecules, molecule sets and other constants defined in the built-in and the user-defined jep.script).
      Returns:
      the constant table
    • getSymbolTable

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public chemaxon.nfunk.jep.SymbolTable getSymbolTable()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use constantTable() instead.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public Hashtable<String,String> getFunctionalGroupDisplayMolTable()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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<ChemContext> compile(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 <C extends ChemContext> ChemJEP<C> compile(String expression, C contextClassInstance) 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
      contextClassInstance - an instance of the context class that the resulting ChemJEP object will accept. Only the type of the object matters, it is otherwise unused by this method.
      Returns:
      the created ChemJEP object
      Throws:
      chemaxon.nfunk.jep.ParseException - on compile error
    • compile

      public <C extends ChemContext> ChemJEP<C> compile(String expression, Class<? extends C> 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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public <C extends ChemContext> ChemJEP<C> compile(String expression, Class<? extends C> contextClass, chemaxon.nfunk.jep.SymbolTable stab) throws chemaxon.nfunk.jep.ParseException
      Deprecated, for removal: This API element is subject to removal in a future version.
      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
    • compile

      public <C extends ChemContext> ChemJEP<C> compile(String expression, C contextClassInstance, ConstantTable constantTable) 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
      contextClassInstance - an instance of the context class that the resulting ChemJEP object will accept. Only the type of the object matters, it is otherwise unused by this method.
      constantTable - 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
    • compile

      public <C extends ChemContext> ChemJEP<C> compile(String expression, Class<? extends C> contextClass, ConstantTable constantTable) 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
      constantTable - 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

      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public static String toString(Object o, int precision)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      Deprecated, for removal: This API element is subject to removal in a future version.
      Was only intended for internal use, will be removed.
      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

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JAN_01_2025) public static void main(String[] args) throws Exception
      Deprecated, for removal: This API element is subject to removal in a future version.
      This main method will be removed, CLI interfaces should not be used directly from Java code.
      The command line version entry point. Parameter parsing, initialization then start.
      Parameters:
      args - the command line parameters
      Throws:
      Exception