Package chemaxon.jep

Class 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 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
    See Also:
    Serialized Form
    • Field Detail

      • EVALUATOR_DEFAULTS_FILE

        public static final String EVALUATOR_DEFAULTS_FILE
        Default Function/Plugin settings filename.
        See Also:
        Constant Field Values
      • EVALUATOR_NAMED_MOLS_FILE

        public static final String EVALUATOR_NAMED_MOLS_FILE
        Default named molecule set filename.
        See Also:
        Constant Field Values
      • DEFAULT_TAG_NAME

        public static final 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​(chemaxon.jep.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​(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. 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​(File file,
                         chemaxon.jep.Standardizer standardizer,
                         MolImporter importer,
                         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​(String configString,
                         chemaxon.jep.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​(String configString,
                         chemaxon.jep.Standardizer standardizer,
                         MolImporter importer,
                         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​(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
        public Hashtable getFunctionParameterData()
                                           throws chemaxon.nfunk.jep.ParseException
        Deprecated.
        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
        public String[] getPluginIDs()
                              throws chemaxon.nfunk.jep.ParseException
        Deprecated.
        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 Hashtable<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 Hashtable<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 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
      • 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 Hashtable<String,​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​(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​(String expression,
                               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​(String expression,
                               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

        @Deprecated
        public static String toString​(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

        @Deprecated
        public static String toString​(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

        @Deprecated
        public static String toString​(Object o,
                                      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​(String[] args)
                         throws Exception
        The command line version entry point. Parameter parsing, initialization then start.
        Parameters:
        args - the command line parameters
        Throws:
        Exception