This talk program creates a fingerprint from a SMILES with the bits set according to a user defined set of SMARTS patterns. The SMARTS patterns are read in from a file with the string:-
Qwerty: Say SET_FILTERS. <filename>
Alternatively the filename may be passed directly to the program. If this method is used the filename must start with one of '/', '.' or '$'. The file may contain comments in lines starting with a # . The size of the fingerprint is automatically resized to conform with Daylight size requirements. In this version the bits are set from left to right in the order of the patterns in the file starting at bit 0.
Additionally if the input is a space separated list of integers the bits corresponding to those values are set, to provide a target for fingertest() in DayCart. The first integer should be the size of the fingerprint, as above, the size of the fingerprint is automatically resized to conform with Daylight size requirements.
Finally the input can be a string of ASCII 1's and 0's. This is converted into a fingerprint resized to conform with Daylight requirements. In all cases of 'foreign' format the input may be across multiple lines. Padding is with off-bits. Users should keep track of which bits are real off-bits and which bits are padding. This figure can be retrieved for the last transaction with :-
Qwerty: Say PADDING.
In addition, when using pattern keys, users may wish to know how much of the particular molecule has beeing described. The special message:-
Qwerty: Say COVER. <SMILES>
returns the percentage of the heavy atoms described by at least one SMARTS. Users can recover the name of the filter file, the number of filters and the current fingerprint size by sending the appropriate message:-
Qwerty: Say FILTER_FILE. Qwerty: Say FILTER_COUNT. Qwerty: Say FP_SIZE.
Usually these talk programs are driven by an application a talker program. This may be DayCart or the contrib program pipetalker().
However any program that understands two-way pipes will work, so for example a short gawk program keysquawker() will create thordata trees containing MDL keys as the fingerprint.