Daylight Software Version 4.61 Release Notes

============================ CONTENTS ============================



Rev: Jul 15, 1998

This document describes changes and features specific to version 4.61
of Daylight Chemical Information Systems software.  If there is a
machine-specific file for your machine in this directory (e.g.
"readme-v461-sgi"), please read it too.

    - Dynamic shared object linking
    - New ClogP
    - Java Tools
    - 64-bit toolkits, merlinserver
    - SMIRKS language changes
    - Reaction toolkit changes, performance improvements
    - Format for ASCII representation of binary data
    - Thor support for binary n-tuples
    - FPP<> Datatype defintion
    - Merlin part n-tuple fingerprint searching.
    - Partial (Stigmata) fingerprints supported in toolkit
    - Thor and Merlin connection timeout
    - Merlinserver pool load speed improvements
    - THORDBFIX461
    - Rubicon rule changes

====================== 2. DETAILS OF CHANGES =====================

Dynamic shared object linking

    All Daylight binary executables have been converted to use
    dynamic shared objects for runtime execution.  The Daylight
    toolkits are now provided as shared objects (, and
    these objects must be available at runtime.  See the readme files
    for each specific platform for further information.

New ClogP

    We have updated the ClogP algorithm used in the Daylight system
    with the latest features from BioByte.  The 4.61 versions of our
    ClogP and CMR program and program objects implement the BioByte
    ClogP-3.16 and CMR-3.55 algorithms, giving identical results.

Java Tools

    A Java based version of Grins has been introduced. Information on
    installing, using and developing with this applet is located at
    $DY_ROOT/dayhtml/java/grins/admin.html. Information on its use is
    located at $DY_ROOT/dayhtml/java/grins/TOC.html.

64-bit toolkits, merlinserver

    The SGI version contains 64-bit libraries, and a 64-bit native
    version of merlinserver.  The 64-bit merlinserver allows the creation
    of a merlinserver process which uses more than 2 GB of memory.

    The libraries are build using the LP-model.  Longs and pointers are
    8-byte entities.  Integers are 4-byte entities.  Daylight handles
    and integers (dt_Handle, dt_Integer) are 4-byte entities.  The main
    advantage of using 64-bit toolkits is the ability to address large
    memory spaces, not to be able to handle significantly more objects
    concurrently within a single running program.

SMIRKS language changes

    Several new features are added which add to the expressiveness
    of the SMIRKS language for transformations.  These include:

      - Atomic SMARTS expressions within the reacting center.  It
        is now legal to use partial atomic SMARTS in the reacting,
        center, making it easier to express atomic property changes
        during a transformation.

      - Added and deleted atoms during the transformation.  Any
        atoms which are not atom-mapped in a SMIRKS are added or
        removed during the reaction.  This is especially useful
        for reagants and byproducts which are not of interest for
        further processing during a transformation.

      - Partial stereochemistry is now correctly perceived.  SMIRKS
        semantics now match SMARTS for local stereochemistry.  The
        main implication is that stereochemistry need not be fully
        specified to be accepted within SMIRKS.

    See the file $DY_ROOT/contrib/src/c/transform/txf/461.txf for
    examples and descriptions of the new features.
Reaction Toolkit changes, performance improvements

    Two new experimental features are added.  A new function,
    dt_xtransform(), is added for tranformation processing.  It
    differs from dt_transform() in that it performs non-overlapping
    matches on a single reaction.  It is used to perform the same
    transformation multiple times on a single substrate.  An
    analogous funtion dt_xmatch() performs non-overlapping matches.

    Many reaction toolkit operations are faster.  These include atom
    map operations (dt_setmap(), dt_getmap(), dt_mapped()), and
    transform operations (dt_transform(), dt_utransform()).

    The functions dt_transform(), dt_utransform() and dt_xtransform()
    now set two integer atom properties (tmap and torder) for every
    resulting reaction atom.  The properties are defined as the
    SMIRKS atom map and match order of the transform atom which
    matched in that example.  This new property allows the programmer
    to relate the reaction atoms back to the transform.

Format for ASCII representation of binary data

    In order to support binary n-tuples, the ASCII representation
    of binary data has changed.  The comma character has been removed
    from the ASCII definition and replaced with the plus character.
    The 4.61 system accepts as legal input both the old and new-
    style ASCII, but will only output the new-style ASCII.

Thor support for binary n-tuples

    Thor can now accept binary data as part of any n-tuple.  Note
    however that we currently don't support both the NTUPLE and
    BINARY normalizations.  This is due to a limitation in the Thor
    toolkit interface and will be rectified in a future release.  When
    using n-tuples which contain binary data, it is up to the programmer
    to correctly interpret and perform the ASCII-to-binary conversion.

FPP<> Datatype defintion

    The FPP<> datatype definition has changed to reflect the new
    PART_NTUPLE 1 normalization.

    The fingerprint program has been changed to produce the
    new FPP datatype when given the -m option.

    A database may contain both FP and FPP data which will be used as
    available and needed.  For databases of large dot-disconnected
    mixtures, this can produce a significant increase in screening
    speed (with a penalty in database/pool size).

    The proper normalization for the FPP<> datatype definition is
    _N<"PART_NTUPLE 1;">.

Merlin art n-tuple fingerprint searching.

    Mixtures stored as dot-disconnected SMILES are searched faster by
    using the FPP component-ntuple fingerprint to avoid interpreting
    the entire SMILES if possible.  Two new superstructure search
    types have been added to allow the Merlin client user to select 
    the appropriate search type.  The new search types are:
      - DX_SUPER_SMILESPART - Perform a SMILES superstructure search,
        using the FPP<> datatype for fast component screening.
      - DX_SUPER_SMARTSPART - Perform a SMARTS superstructure search,
        using the FPP<> datatype for fast component screening.

Partial (Stigmata) fingerprints supported in toolkit

    The fingerprint toolkit now supports the functions dt_fp_partfp(),
    which is used to generate atom and bond partial fingerprints.
    Also, the contrib program stigmata.c has been substantially
    modified to take advantage of this new supported function.

    The daycgi program smi2gif now supports both atom colorings and
    tdt input, making it more useful for web-based stigmata output

Thor and Merlin connection timeout

    The new function dt_set_server_timeout() allows the toolkit client
    to set a toolkit-wide timeout for connecting to a server.
    It is impossible for a toolkit client, in general, to determine
    whether or not a server is available and accepting connections.
    Hence it is possible for a client to hang indefinitely.  The
    default within the toolkit is to never time out (the value is
    set to zero seconds).  With this setting, the 4.61 toolkit will
    replicate pre-4.61 behavior.
    For all of the Daylight applications, the timeout is set to
    60 seconds.  The timeout is controlled by a new Daylight
    option "SERVER_TIMEOUT".

Merlinserver pool load speed improvements

    Speed of pool loading of Merlinserver has been improved, 
    especially for databases with large numbers of sparsely populated


    "thordbfix461" will be available to rebuild pre-4.61
    databases for compatability with the 4.61 release.  The main
    incompatability between pre-4.61 databases and 4.61 is the format
    change for fingerprint data.

    This is a program which uses thorfilters to dump, modify and 
    rebuild pre-4.61 Thor databases.  It also depends upon the binary
    program 'tdtfpid', which is included in the release.


    Several minor changes to the rule files have been made.  First,
    RADII are represented with an upper and lower bound.  Both values
    should always be identical.  Second, any rules with '@n' have been
    modified to match the changed SMARTS semantics (see bug fixes below).
    Finally, E/Z double bond rules were modified to apply to both
    acyclic and in-ring double-bonds.

========================== 3. BUGS FIXED ==========================

>   Xvthor can now write a SMILES-only datatree to a database.  This
    entailed adding a new funtion (dw_tdt_invoke_isnew()) to the
    tdt widget interface (#369).

>   Clogp now accepts both the '-h' and '-help' options (#398).

>   Within xvmerlin, the option MERLIN_DEPICT_MAXSMI=0 now works
    as documented to mean 'no limit to the depictions' (#453).

>   SMARTS of the form:  [O,[N;v3]] are not legal, but prior to
    version 4.61 were accepted.  They are now rejected (#458).

>   The thorfilter program 'thorlookup' always attempted to get
    the $SMI datatype.  Hence, it couldn't read databases which
    don't define $SMI.  The program was modified to only look
    for the $SMI datatype when needed (#564).

>   The license manager didn't ignore trailing spaces (#580).

>   In some circumstances, the nearneighbors generated empty
    output on IRIX6.  This was a synchronization problem between
    semaphores used to manage the multi-processing (#581).  A
    related problem causes the error 'semaphores not available'
    on all platforms (#583).  Both have been fixed with better
    startup initialization.

>   Within the depict toolkit, setting the 'label' properties of
    a reaction depiction failed (#584).

>   Within thor clients, the PART_NTUPLE normalization caused
    a crash for SMILES which begin with explicit hydrogens (#588).

>   Fixed the autorules '-v' option - it never worked (#590).

>   In 4.51, the Thor toolkit incorrectly applied normalizations
    on output.  The result was that dataitems with the AUTOGEN 
    and MAKEGRAPH normalization appeared to have duplicate
    dataitems.  This bug only applied to output (eg. thorlist), 
    and didn't affect database data at all (#593).
>   The default for the thorlookup option '-RETRIEVE_ALL' was
    documented incorrectly (the default is FALSE) (#594).

>   User-supplied merlinserver program objects didn't work because
    of a change in the security model for program objects added
    in 4.51 (#596).

>   Within the monomer toolkit, dt_canchuck() caused a core dump
    when called with NULL_OB or an invalid handle.  Related to 
    the new alias-handling introduced in 4.51 (#597)

>   The 4.51 SMILES toolkit would crash processing molecules with
    explicit hydrogens if the hydrogens were modified in a
    particular fashion (their distinguishing properties were 
    removed).  Upon deallocation of the molecule, the toolkit 
    program crashed (#598).
>   The program smi2tdt in contrib didn't handle reactions (#601).

>   Merlinserver missed substructure matches in cases with explicit
    hydrogens in the query (eg. c1cnc[nH]1).  The explicit
    hydrogen in the query confused the character frequency
    screen, so merlinserver rejected valid hits because the target
    apparently had too many atoms (#602).

>   Thor databases could be corrupted by adding, then immediately
    shortening a TDT by removing one or more dataitems.  A database
    must be rebuilt from scratch after this bug has occured.  This
    bug was fixed in an interim thorserver 4.51-patch (#606).

>   the -PRINT_SMARTS option within the printing programs didn't
    work correctly for uses which don't license the SMARTS 
    toolkit (#607).

>   Within the SMARTS toolkit, copying of a reaction pattern object
    failed (#610).

>   The listclusters option '-x' never worked (#614, #636).

>   The SMILES toolkit function dt_origstream() sometimes leaves an
    invalid handle in the toolkit (#616).

>   The SMILES toolkit function dt_addbond() sometimes caused a crash
    when adding a bond to a molecule which had been previously
    copied and modified (#624).

>   The SMILES toolkit functions dt_smilinerrors() and
    dt_smilinerrtext() would return empty error messages if the
    error queue already had information prior to the dt_smilin()
    call (#627).

>   The SMILES toolkit incorrectly perceived as aromatic bonds which
    were attached to aromatic atoms and in a ring.  For example, 
    biphenyl (c1ccccc1c2ccccc2) has one non-aromatic bond (connecting
    the rings).  The corresponding bond in fluorene
    (c1cccc2c1c3c(C2)cccc2) was incorrectly perceived as aromatic.
    This resulted in toolkit problems (#628) and substructure search
    problems (#615).
>   Ring-closure bonds in SMARTS were incorrectly parsed.  The
    '@' primitive incorrectly looked for an trailing number, 
    interpreted as the number of rings in which the bond appears.
    This syntax conflicted with ring-closure digits (#630).

>   Tetrahedral stereochemistry was incorrectly perceived for 
    SMIRKS with ring-closure digits as one of the bond connections
    to the stereocenter (#631).

>   Thor garbled input of binary data during thorload.  This bug
    only appeared in the 4.60 'alpha' release used for MUG98 (#632).

>   Systems with the reaction program license but not the reaction
    toolkit license are incorrectly prohibited from running reaction
    programs by the license manager (#633).

>   The function dt_smilin() did not ignore the optional name field
    on input.  Caused a problem if the name contained a greater-than
    character.  The toolkit attempted to interpret the SMILES as a
    reaction, whether or not it really was (#634).

>   Daytoolserver, Thorserver and Merlinserver now print the path
    of their license file in the log.  This helps for debugging
    incorrect configurations (#635).

>   Printpackage - tablet.  Didn't depict reactions (#637).

>   Merlinserver.  Crashes for databases which don't have
    fingerprint datatypes and a similarity search is requested (#644).

>   Fingerprint.  SMILES with more than 10 connections to an
    atom cause a crash of the fingerprint toolkit (#645).

>   Clogp.  Output buffered poorly so crashes cause partial
    output to be written (#647).

>   Monomer toolkit.  dt_dealloc(monomertable) fails for tables
    which use aliases (#648).

>   Merlinserver.  DX_SUPER_SMILES search didn't canonicalize
    the input query before processing (#649).

========================== 4. KNOWN BUGS =========================


======================= 5. RELEASE HISTORY =======================

Daylight releases are numbered using the following scheme:

   The "system number" (e.g. 3.xx, 4.xx) indicates completely different
   systems.  Each system is a complete new design and coding.

   Major releases (e.g. 4.1x, 4.2x, 4.3x) contain new features and
   enhancements.  Often, programs and databases from one major release
   aren't compatible with those from another.

   Minor releases, or "updates" (e.g. 4.32, 4.33) are for bug fixes and
   minor additional features.  They are also occasionally for adding
   new platforms (computers and/or operating-system version).

The first two releases of system 4 were called "4.1" and "4.2"; under the
above-described scheme they would have been called "4.11" and "4.21".
There were two additional releases of the "demo" tape, which would have
been "4.22" and "4.23".  Release 4.24 (October '92) was the first to use
this new version-numbering scheme.

4.1    20 Dec 1991   First 4.x release: SunOS only

4.21   20 Mar 1992   Second release: bug fixes, added SGI platform

4.22   ??            Demo Tape update (applics and toolkits not affected).
                     Updated the demo database: added clustering data to
                     illustrate Daylight's clustering product.

4.23   22 Sep 1992   Demo Tape update (applics and toolkits not affected)
                     Same as 4.22, but added workaround for a bug in the
                     SGI X window system.

4.24   02 Oct 1992   Update: many bug fixes, some added features.

4.25   13 Nov 1992   SGI Toolkit Tape only; corrects incompatibility between
                     versions of SGI IRIX Operating system.  All other 4.24
                     SGI and Sun tapes are unaffected.

4.31   01 May 1993   Added Print Package, Merlin Toolkit.  Many bug fixes
                     and enhancements.  Added support for VAX/VMS (Toolkits,
                     servers, and some non-X-Windows programs).  Added Thor
                     and Merlin management utilities.

4.32   01 Jul 1993   Added Rubicon program and Rubicon Toolkit.  Added
                     support for HPUX on HP9000/7xx series, and for
                     Solaris on Sun machines.  Improved "man" pages and
                     help-widget text files.  A number of minor bug fixes.

4.33   28 Jan 1994   Improved merlinserver, thorserver, and Merlin and
                     Thor Toolkits.  Improved printing.  A number of minor
                     bug fixes.  Restructured & added to "contrib" programs.

4.34   25 Feb 1994   Revamped clustering programs.  Partial molecular
                     fingerprint generation.  Fixed bugs introduced in 4.33.

4.40   Nov 23 1994   Preliminary "beta-test" versions of 4.41.  
4.40b  Feb 12 1995   Preliminary "beta-test" versions of 4.41.  

4.41   Mar 17 1995   Databases of mixtures, "monomer" toolkit (CHUCKLES,
                     CHORTLES, & CHARTS), Program-Object Toolkit, parallel-
                     ized (multi-CPU) version of clustering, MCL.

4.42   Feb 02 1996   HTML Documentation, CGI application programs, record
		     locking, thordestroy(1), Thor/Merlin messages,
		     Thor/Merlin eviction, faster TDT merging, Merlin
		     parallel SMARTS searches, better Merlin performance
		     under heavy load, Merlin program objects.

4.42p1 Apr 02 1996   Merlinserver, Merlinsmartstalk, and 
                     Daytoolserver bugs fixed in this patch.

4.51   May 01 1997   Reaction Toolkit, reaction databases in Thor/Merlin,
		     formal object properties, read-only (CDROM) databases,
		     cross-referencing non-identifiers in THOR, Merlin
		     "similarity as sub/superstructure", and more.

4.60   Feb 20 1998   MUG'98 version. Preliminary "alpha-test" version of 4.6.
4.61b  May 05 1998   Preliminary "beta-test" version of 4.6.

4.61   Jul 15 1998   ClogP, bug fixes, Reaction Tookit enhancements, 
                     Java tools.