Class MDDBReader


  • @PublicAPI
    public class MDDBReader
    extends MDReader
    Class for reading MolecularDescriptors from a database. Capable of generating MolecularDescriptors on-the-fly from molecules if required.
    Since:
    JChem 2.0
    • Constructor Detail

      • MDDBReader

        public MDDBReader​(String strucTableName,
                          ConnectionHandler ch,
                          MDSet mdSet,
                          String query)
        Constructs a new MDDBReader object. Using this constructor the descriptors will be generated on-the-fly.
        Parameters:
        ch - a ConnectionHandler with an open connection to the database
        strucTableName - name of the structure table
        mdSet - the contains the appropriate descriptors
        query - SQL query for filtering. It should contain the cd_id values. Example "select cd_id from mystructures where cd_id > 1000"). If null, then all rows are retrieved.
      • MDDBReader

        public MDDBReader​(String strucTableName,
                          ConnectionHandler ch,
                          String[] mdNames,
                          String query)
        Constructs a new MDDBReader object. Using this constructor the descriptors will be read from database
        Parameters:
        ch - a ConnectionHandler with an open connection to the database
        strucTableName - name of the structure table
        mdNames - the names of the descriptors stored in the database
        query - SQL query for filtering. It should contain the cd_id values. Example "select cd_id from mystructures where cd_id > 1000"). If null, then all rows are retrieved.
      • MDDBReader

        public MDDBReader​(String strucTableName,
                          ConnectionHandler ch,
                          String[] mdNames,
                          String query,
                          int[] filterIDList,
                          int[] filterIDNotList,
                          boolean indexTable)
        Constructs a new MDDBReader object. Using this constructor the descriptors will be read from database
        Parameters:
        ch - a ConnectionHandler with an open connection to the database
        strucTableName - name of the structure table
        mdNames - the names of the descriptors stored in the database
        query - SQL query for filtering. It should contain the cd_id values. Example "select cd_id from mystructures where cd_id > 1000"). If null, then all rows are retrieved.
        filterIDList - a cd_id list to filter with. No filtering if null.
        filterIDNotList - excluded cd_id list
        indexTable - true if used from cartridge
        Since:
        JChem 3.1
    • Method Detail

      • getMDSet

        public MDSet getMDSet()
        Gets the molecular descriptor set. This method is provided in order to allow the used intervene into descriptor generation (for instance by overriding parameter settings).
        Overrides:
        getMDSet in class MDReader
        Returns:
        the MDSet object
      • reset

        public void reset()
                   throws MDReaderException
        Initializes the MolecularDescriptor stream. If the stream is not empty the consequent call to next() returns the first element.
        Overrides:
        reset in class MDReader
        Throws:
        MDReaderException - when failed to reset the reader
      • next

        public MDSet next()
                   throws MDReaderException
        Fetches the next element form the stream or returns null when there are no more accessible data. Also initializes the stream, if necessary.
        Specified by:
        next in class MDReader
        Returns:
        null if couldn't read descriptor or no more descriptors to read
        Throws:
        MDReaderException - when failed reading the next descriptor set
      • getMolecule

        public Molecule getMolecule()
                             throws MDReaderException
        Gets the molecule that belongs to the last processed descriptor from the structure table
        Overrides:
        getMolecule in class MDReader
        Returns:
        the requested molecule, or null if not found
        Throws:
        MDReaderException - when failed reading the next descriptor set
      • getLastID

        public int getLastID()
        Gets the cd_id that belongs to the last processed descriptor from the structure table
        Returns:
        the ID, or -1 if not found
      • close

        public void close()
                   throws MDReaderException
        Closes down the descriptor stream. After this, no more operation is permitted on the stream.
        NOTE: Doesn't close the database connection specified in the ConnectionHandler.
        Specified by:
        close in class MDReader
        Throws:
        MDReaderException - when failed to close the input stream