Class MDFileWriter


  • @PublicAPI
    public class MDFileWriter
    extends MDWriter
    Writes chemical descriptor sets (MDSet)s into text files. The output file can either be a bunch of descriptor files, in which case one MDSet component is associated with one file; or it can also be an SDfile, in which case custom tags are written along with the molecule and with its existing tags that store the MolecularDescriptors in a format that MDFileReader can interpret.
    In the output one component is written per file. The unique identifier of MDSet objects is printed in all files. Always blank space is used as a separator character. The descriptor file contains two header lines, the first is the type name of the descriptor, while the second is the configuration string used in the descriptor generation.
    Since:
    JChem 2.0
    • Constructor Summary

      Constructors 
      Constructor Description
      MDFileWriter​(int nComponents)
      Creates a new MDFileWriter object that stores MDSets that have the given number of components.
      MDFileWriter​(String[] descrNames, String[] types, MDParameters[] settings)
      Creates and initialises a new MDFileWriter object that stores MDSets in the named text files component-wise.
      MDFileWriter​(String[] descrNames, String[] types, String[] settings)
      Creates and initialises a new MDFileWriter object that stores MDSets in the named text files component-wise.
      MDFileWriter​(String SDfileName, int nComponents)
      Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile.
      MDFileWriter​(String SDfileName, String[] descrNames, String[] types, MDParameters[] settings)
      Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile.
      MDFileWriter​(String SDfileName, String[] descrNames, String[] types, String[] settings)
      Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile.
      MDFileWriter​(String descrName, String type, MDParameters settings)
      Creates and initializes a new MDFileWriter object that stores MDSets in the named text file.
      MDFileWriter​(String descrName, String type, String settings)
      Creates and initializes a new MDFileWriter object that stores MDSets in the named text file.
    • Constructor Detail

      • MDFileWriter

        public MDFileWriter​(String[] descrNames,
                            String[] types,
                            MDParameters[] settings)
                     throws MDWriterException
        Creates and initialises a new MDFileWriter object that stores MDSets in the named text files component-wise. With this constructor the client of this class can feed in Molecules without dealing with details of generating descriptors.
        Parameters:
        descrNames - output file names
        types - class names of components
        settings - parameter setting of component
        Throws:
        MDWriterException - in case of any failures
      • MDFileWriter

        public MDFileWriter​(String[] descrNames,
                            String[] types,
                            String[] settings)
                     throws MDWriterException
        Creates and initialises a new MDFileWriter object that stores MDSets in the named text files component-wise. With this constructor the client of this class can feed in Molecules without dealing with details of generating descriptors.
        Parameters:
        descrNames - output file names
        types - class names of components
        settings - parameter setting of component
        Throws:
        MDWriterException - in case of any failures
      • MDFileWriter

        public MDFileWriter​(int nComponents)
        Creates a new MDFileWriter object that stores MDSets that have the given number of components. Components have to be specified by calling setComponent().
        Parameters:
        nComponents - number of components of the MDSet to be written
      • MDFileWriter

        public MDFileWriter​(String descrName,
                            String type,
                            MDParameters settings)
                     throws MDWriterException
        Creates and initializes a new MDFileWriter object that stores MDSets in the named text file. Use this constructor when the MDSet has one component only.
        Parameters:
        descrName - output file name
        type - class name of the descriptor
        settings - parameter setting
        Throws:
        MDWriterException - in case of any failures
      • MDFileWriter

        public MDFileWriter​(String descrName,
                            String type,
                            String settings)
                     throws MDWriterException
        Creates and initializes a new MDFileWriter object that stores MDSets in the named text file. Use this constructor when the MDSet has one component only.
        Parameters:
        descrName - output file name
        type - class name of the descriptor
        settings - parameter setting
        Throws:
        MDWriterException - in case of any failures
      • MDFileWriter

        public MDFileWriter​(String SDfileName,
                            int nComponents)
        Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile. Descriptors generated are also stored as readable strings in custom SDf tags. Components have to be specified by calling setComponent().
        Parameters:
        SDfileName - the name of the output SDFile
        nComponents - number of components of the MDSet
      • MDFileWriter

        public MDFileWriter​(String SDfileName,
                            String[] descrNames,
                            String[] types,
                            MDParameters[] settings)
        Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile. Descriptors generated are also stored as readable strings in custom SDf tags. All components of the descriptor set is specified by type and parameter settings.
        Parameters:
        SDfileName - the name of the output SDFile
        descrNames - output file names
        types - class names of components
        settings - parameter setting of component
      • MDFileWriter

        public MDFileWriter​(String SDfileName,
                            String[] descrNames,
                            String[] types,
                            String[] settings)
        Creates and initializes a new MDFileWriter object that stores MDSets in the named SDfile. Descriptors generated are also stored as readable strings in custom SDf tags. All components of the descriptor set is specified by type and parameter settings.
        Parameters:
        SDfileName - the name of the output SDFile
        descrNames - output file names
        types - class names of components
        settings - parameter settings strings
    • Method Detail

      • setDecimalOutputFormat

        public void setDecimalOutputFormat​(boolean decimalOutputFormat)
        Sets decimal output format. In this format all descriptor cells are printed and separated by a comma.
        Parameters:
        decimalOutputFormat - indicates if decimal format is written
      • setBinaryOutputFormat

        public void setBinaryOutputFormat​(boolean binaryOutputFormat)
        Sets binary output format. In this format all descriptor cells are printed as 0 and 1 if this makes sense (i.e for binary fingerprints only).
        Parameters:
        binaryOutputFormat - indicates if binary format is written
        Since:
        JChem 2.3
      • setComponent

        public void setComponent​(int index,
                                 String descrName,
                                 String type,
                                 MDParameters settings)
        Sets an individual MDSet component's type and corresponding parameters. Use this method, when descriptor tytpe have not been specified in the constructor.
        Parameters:
        index - index of the MDSet component
        descrName - output file name
        type - class name of the descriptor
        settings - parameter setting
      • setComponent

        public void setComponent​(int index,
                                 String descrName,
                                 String type,
                                 String settings)
        Sets an individual MDSet component's type and corresponding parameters. Use this method, when descriptor tytpe have not been specified in the constructor.
        Parameters:
        index - index of the MDSet component
        descrName - output file name
        type - class name of the descriptor
        settings - parameters string
      • setPrintId

        public void setPrintId​(boolean printId)
        Sets whether unique internal ID-s of structures have to be printed into the output table.
        Parameters:
        printId - unique id-s are printed or not
      • getMDParameters

        public MDParameters getMDParameters​(int id)
        Gets the actual parameter settings of the specified component.
        Specified by:
        getMDParameters in class MDWriter
        Parameters:
        id - component index
        Returns:
        parameter settings
        Since:
        JChem 2.1
      • getMDSet

        public MDSet getMDSet()
        Gets the last molecular descriptor set generated and put into the output file.
        Returns:
        the most recent MDSet
        Since:
        JChem 2.3
      • put

        public void put​(MDSet ds)
                 throws MDWriterException
        Writes the given MDSet object into the output files as readable text.
        Parameters:
        ds - MDSet to be printed
        Throws:
        MDWriterException - inherited, never thrown
      • put

        public void put​(Molecule mol,
                        int id)
                 throws MDWriterException
        Generates the MDSet object from the given molecular structure and writes result. The descriptors are either written into the descriptor output file (as readable text) or into an SDfile as tags. these two modes of operation depend on how the MDFileWriter object was created.
        Specified by:
        put in class MDWriter
        Parameters:
        mol - generate MDSet for this structure
        id - the id of the descriptors in the output
        Throws:
        MDWriterException - inherited, never thrown
      • put

        public void put​(Molecule mol,
                        String naturalId)
                 throws MDWriterException
        Generates the MDSet for the given Molecule and writes the descriptors into the output with the given identifier. Note, that the mol parameter is not final, because descriptors generated are stored in this object (as properties).
        Parameters:
        mol - the Molecule object to be written
        naturalId - unique identifier of the molecule as given on input
        Throws:
        MDWriterException - all exceptions (mainly io) are reinterpreted
        Since:
        JChem 2.0.1