Class Compare


  • @PublicAPI
    public class Compare
    extends Common
    Compares two sets of objects (like compound libraries) using diversity and dissimilarity calculations.
    This class can be used from command-line or from the API.
    See the documentation for details.

    An example for running Compare:

     ConnectionHandler ch;
     String selectString1;
     String selectString2;
     ...
     Compare cp=new Compare();
     cp.setInput1(ch, selectString1 );
     cp.setInput2(ch, selectString2 );
     cp.setOutput(System.out);
     cp.setDimensions(0);
     cp.setFpSize(512);
     cp.setStatNeeded(true);
     cp.setOnlyStat(false);
     cp.setStatStream(System.out);
     cp.setIdGeneration(true);
     cp.setThreshold(0.1f);
     cp.setOnlyDissimilarListed(true);
     cp.setDifferentIdsOnly(true);
     cp.run();
     

    Since:
    JChem 1.6.2
    • Constructor Detail

      • Compare

        public Compare()
    • Method Detail

      • setInput1

        public void setInput1​(ConnectionHandler conh,
                              String querySQL)
                       throws SQLException
        Sets the first compound library (first set) as an SQL query.
        Parameters:
        conh - ConnectionHandler object opened to the database
        querySQL - an SQL SELECT statement used as data source
        Throws:
        SQLException
      • setInput2

        public void setInput2​(ConnectionHandler conh,
                              String querySQL)
                       throws SQLException
        Sets the second compound library (second set) as an SQL query.
        Parameters:
        conh - ConnectionHandler object opened to the database
        querySQL - an SQL SELECT statement used as data source
        Throws:
        SQLException
      • setInput1

        public void setInput1​(String fileName)
                       throws FileNotFoundException
        Sets the first compound library (first set) as a file, specified by the file's path.
        Parameters:
        fileName - the path of the input file
        Throws:
        FileNotFoundException
      • setInput2

        public void setInput2​(String fileName)
                       throws FileNotFoundException
        Sets the second compound library (second set) as a file, specified by the file's path.
        Parameters:
        fileName - the path of the input file
        Throws:
        FileNotFoundException
      • setInput1

        public void setInput1​(InputStream is)
        Sets the first compound library (first set) as an InputStream
        Parameters:
        is - the InputStream to be used for input
      • setInput2

        public void setInput2​(InputStream is)
        Sets the second compound library (second set) as an InputStream
        Parameters:
        is - the InputStream to be used for input
      • setThreshold

        public void setThreshold​(float threshold)
        Sets the threshold value.
        Parameters:
        threshold - the threshold value to be set
      • getThreshold

        public float getThreshold()
        Gets the threshold value.
        Returns:
        the threshold value currently set
      • setOnlyDissimilarListed

        public void setOnlyDissimilarListed​(boolean b)
        Specifies, if only dissimilar objects are to be printed.
        Parameters:
        b - if set to true only dissimilar objects are printed, otherwise all objects are listed
      • isOnlyDissimilarListed

        public boolean isOnlyDissimilarListed()
        Indicates whether only dissimilar objects are printed.
        Returns:
        true, if only dissimilar objects are printed, false otherwise
      • setSimilarListed

        public void setSimilarListed​(boolean b)
        Specifies if similar objects are to be listed from the first set.
        Parameters:
        b - if set to true, similar objects are printed from the first set
      • isSimilarListed

        public boolean isSimilarListed()
        Indicates whether similar objects listed from the first set.
        Returns:
        true, if similar objects are printed from the first set
      • setDifferentIdsOnly

        public void setDifferentIdsOnly​(boolean b)
        Specifies whether compounds with identical id should be compared.
        Parameters:
        b - if set to true, compounds with different id-s compared only. Otherwise all compounds are compared.
      • isDifferentIdsOnly

        public boolean isDifferentIdsOnly()
        Indicates whether compounds with different id-s compared only.
        Returns:
        true, if compunds with identical id-s are not compared
      • setMaxSimilar

        public void setMaxSimilar​(int maxSimilar)
        Sets the maximum allowed number of similar objects for a compound. If set to 0 (default), the number of similar objects is unlimited.
        Parameters:
        maxSimilar - the maximum number of similar neighbors
      • getMaxSimilar

        public int getMaxSimilar()
        Gets the maximum allowed number of similar objects for a compound. If 0 (default), the number of similar objects is unlimited.
        Returns:
        the maximum number of similar neighbors
      • setOrderSimilarObjects

        public void setOrderSimilarObjects​(boolean orderSimilarObjects)
        Specifies, whether the list similar objects should be ordered by distance (closest first).
        Parameters:
        orderSimilarObjects - if set to true, the list of similar objects should be ordered by distance in the output. Default value is false.
      • isOrderSimilarObjects

        public boolean isOrderSimilarObjects()
        Indicates, whether the list similar objects should be ordered by distance (closest first).
        Returns:
        true, if the list of similar objects will be ordered by distance in the output. Default value is false.
      • run

        public void run()
                 throws chemaxon.clustering.ClusteringException,
                        IOException,
                        SQLException,
                        chemaxon.clustering.InvalidLicenseKeyException
        Starts processing.
        Throws:
        chemaxon.clustering.ClusteringException
        IOException
        SQLException
        chemaxon.clustering.InvalidLicenseKeyException
      • main

        public static void main​(String[] args)
        The command line version entry point. Parameter parsing, initialization then start.
        Parameters:
        args - the command line parameters