Daylight Software Version 4.91 Release Notes

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




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

   Version 4.91 includes new Daycart features, new conversion
   tools, and clustering programs, toolkit fixes and

   Installation and configuration instructions can be found
   in the file dayhtml/doc/admin/install.html.

========================== 2. LICENSING ==========================

Usage and Evaluation Licenses

   The usage license for the Daylight software is accessible at This license
   is also included with the software. For any further
   clarification, contact our business office at 949-367-9990. 

====================== 3. DETAILS OF CHANGES =====================

Supported Platforms: Solaris, IRIX, Linux, Mac, Windows

   Version 4.91 is supported on: SPARC Solaris 7 and
   higher (32- and 64-bit), SGI MIPS/IRIX 6.5 and higher
   (32- and 64-bit), x86 Linux RHEL2.1, RHEL3, and RHEL4.
   AMD64 Linux RHEL3, Mac OSX 10.3, x86 Windows
   2000 Professional and higher.  See the Operating System
   specific readme for more details.

Platform Items

   The following platform support changes occur with this

   - Adding support for Solaris 10,
   - Adding support for RHEL4,
   - Adding support for 64-bit Opteron (AMD64),
   - Dropping support for IRIX 6.4,
   - Dropping support for Red Hat Linux v 7 -> 9.

Product Support Discontinued

   The monomer toolkit and database functionality have 
   been removed.  It is no longer supported.  The following
   monomer-specific functions have been removed from the
   toolkit:  dt_define(), dt_monomertable(3),
   dt_mer_submixtureselect(3), dt_mer_supermixtureselect(3),
   dt_neighbors(3), dt_smiles(3).

   In addition, Thor and Merlin no longer support databases
   with monomer specifications.

   The remote toolkit has been removed.  It is no longer

   JavaGrins is no longer supported.  Within the Daycgi
   and Dayhttp applications a new mechanism has been
   implemented in place of JavaGrins for calling out to a
   structure editor.  This is now a user-configurable
   option.  JME, Marvin, Chemdraw plugin, and the Daylight
   GIF-based Grins editor have all been integrated into
   the daycgi and dayhttp applications.  Example configuration
   files may be found in: $DY_ROOT/dayhtml/edit/.  The
   relevant configuration options are defined in


   New functions:

   - dt_molgraph(3) - returns a hydrogen-, charge-, and
     valence-suppressed graph for a molecule object.  Useful
     for generating canonical graph smiles.
     See $DY_ROOT/dayhtml/doc/man/man3/dt_molgraph.html

   - dt_fp_similarity(3) - computes generic similarity values
     between two fingerprints, given a user-provided similarity
     expression.  See:
     $DY_ROOT/dayhtml/doc/man/man3/dt_fp_similarity.html and

   - dt_smilin_addh(3) - A new version of dt_smilin() which
     does not automatically suppress hydrogens in the input
     SMILES and also adds, as explicit atoms, stereosignificant
     hydrogens (those attached to chiral centers).  This is
     useful for full control of depiction attributes in 
     conjunction with the new dt_setbondstyle(3), 
     dt_setvisible(3), and dt_visible(3) functions.

   - dt_addh(3) - Modifies a molecule or reaction by converting
     implicit hydrogens into explicit hydrogen atoms.  The 
     molecule or reaction must be in mod-on state.

   - dt_suppressh(3) - Modifies a molecule or reaction to
     suppress any unnecessary explicit hydrogens, by making
     them implicit hydrogen attachments.  The molecule or
     reaction must be in mod-on state.

   - dt_ischiral(3) - Utility function which returns whether or
     not an atom in a molecule or reaction is chiral.

   - dt_setbondstyle(3) - Function which allows the user to
     set the bond style on a visible bond in a depiction.

   - dt_visible(3), dt_setvisible(3) - Controls the 
     depiction atom property whether or not the given atom
     is rendered to the display device during a depiction.
     Typically used for controlling hydrogens.


   - dt_errors(3), dt_smilinerrors(3) - The SMILES parsing
     error queue and regular error queue have been merged.
     All errors, warnings and notes from the toolkit go into
     a single errorqueue.  dt_smilinerrors() now is equivalent
     to dt_errors(DX_ERR_NOTE).

     Also, the format of SMILES-parsing errors has been improved
     in the error queue.  The errors are much more informative
     for tracking down incorrect SMILES.

   - dt_mer_similarselect(3) - Merlinserver now has the ability
     to perform a similarity search based on an input fingerprint
     string. $DY_ROOT/dayhtml/doc/man3/dt_mer_similarselect.html.

Conversion Tools

   A new, supported set of tools for structure conversions
   are provided.  The conversions are integrated into Daycart.

   New command-line utilities, mol2smi and smi2mol are
   provided for converting data between formats.

   Additional conversion features will be added in the
   next release.

Oracle Cartridge

   Daycart is supported on 9.0x (9i), 9.2x (9iR2), and
   10.x (10g) under release 4.91.

   Daycart now supports any database characterset (single-
   or multi-byte) which is a superset of ASCII.  This 
   includes the various Unicode versions, common European
   and Asian charactersets.  See Oracle documentation
   (Oracle 9i Database Globalization Support Guide,
   Part Number A96529-01, Appendix A) for the complete

   Daycart now can be used to index and search range-
   partitioned tables.

   The new function ddpackage.fdayconvert() and operator
   dayconvert() provides conversion capabilities;
   the user has access to all the built-in conversions
   within Daycart.

   The new function ddpackage.fsimilarity() and SQL
   operator similarity() allows the user to perform
   index-based similarity searches given a user-defined
   similarity expression.  The function supports a number
   of named expressions (e.g. DICE, COSINE) and the ability
   to define the expression in terms of bits on/off in 
   common and bits on exclusively in either input item.

   The new functions ddpackage.fgen_molecules(), 
   ddpackage.fgen_reactions() and operators gen_molecules(),
   and gen_reactions() perform reaction transforms within
   Daycart.  Given a reaction SMIRKS and set of reagents
   the user can enumerate molecules or reactions.

   A new optimizer package, which allows the user to scale
   the statistics provided to the cost-based optimizer, is

   The new function ddpackage.fsmi2pmw() and operator
   smi2pmw() computes the high-precision molecular mass
   based on the 2001 IUPAC masses.

   The new function ddpackage.fgeterrors() allows the
   user to retrieve informational notes, warnings, and
   errors from the toolkit.

   The new tautomer enumeration capability (see below) is
   also available within Daycart via program objects.

Clustering Package

   Two new clustering/classification methods are provided
   in the Clustering Package.   Spherex is a simple
   sphere-exclusion algorithm for selection of subsets of
   data files.  Kmodes is a variation of the common K-Means
   clustering algorithm which has been adapted to work well
   with categorical data (e.g. fingerprints).

   Nearneighbors, part of the Jarvis-Patrick clustering
   tools, now handles ties in similarity values by generating
   variable-length neighbors lists.  Jarpat and Jpscan both
   take variable-length neighbors lists as input and allow
   the user to decide how ties are handled during the clustering

   All of the clustering tools can optionally take a user-
   defined similarity measure as part of their input options.
   This measure will override the default Tanimoto similarity
   if provided.

   There is a new program for generating custom fingerprints
   called filter_fingertalk.  It generates key-like fingerprints
   where each bit position is set based on whether or not the
   given SMARTS patterns (provided as a separate input file)
   match the molecule.


   The new program, Tautomer, and program object, Tautomertalk 
   perform enumeration of tautomers of input molecules.  One
   can perform an exhaustive enumeration of tautomers or get
   the canonical tautomer.  The canonical tautomer is useful
   for indexing or cross-referencing tautomers within a
   collection; it is not necessarily the low-energy tautomer.

   There is a new Web application application for generation 
   properties.  It has a simple checkbox interface for 
   interactive use and also has a minimal mode suitable for
   a web service.  Both modes can take multiple input SMILES
   and will return a table of results.

Contributed Code

   The $DY_ROOT/contrib directory has been reorganized.  Now,
   code within the $DY_ROOT/contrib directory within each
   release will be supported code.  Some of the
   older applications have been removed from the release.
   Unsupported contributed code, including code which was
   removed from $DY_ROOT/contrib, will be available on the
   website at:

   The Perl and Java wrappers are now available on the
   website as supported code.

Thor/Merlin Large Files

   Thor and Merlin now support large files (16GB data
   files) on all platforms.  The database format in
   4.9 has not changed.

DEPICT Toolkit

  -  Aesthetics improvements introduced in v4.83 are the
     default settings for SMILES.  In other words, the
     default value of the old_style option is now FALSE.
  -  EZ direction bonds are no longer drawn on top of
     RS chiral (up, down) bonds.

  -  Truncation of coordinates (formerly to two decimal
     places) no longer occurs in dt_calcxy(3) for atom
     coordinates specified with dt_setcoord(3).

  -  The hydrogen atomic symbol now appears in schematic


  smi2gif supports several new options which control
  layout and display of structures and reactions.

  -  TDT input has been extended to include datatypes
     for bond styles (BST) and atom visibility (VIS).
     In conjunction with the 2D coordinates datatype (2D)
     the new dt_smilin_addh(3) entry point and output
     from the conversion toolkit, it is easy to 
     completely control a depiction.

  -  The new schematic option controls the dt_schematic()
     property and allows the generation of minimal
     stick-figure gifs.

  -  The new scale option allows the user to specify
     a scaling factor (pixels/Angstrom), which is used
     to set the size of the gif image generated.  When
     provided, the scaling factor overrides the height
     and width values.

  -  SMI2GIF now correctly parses SMARTS and SMIRKS 
     strings which contain zero-level parentheses.  The
     display does not indicate grouping of components

  -  The default value of the old_style aesthetic option
     agrees with the depict toolkit, which is FALSE.

========================== 4. UPGRADING ===========================

The thor database format is identical between 4.7x, 4.8x
and 4.91.  No Thor database upgrade is require.  One can
simply start using 4.91 thorserver, merlinserver and
applications against ones 4.7 and 4.8 database files.

Daycart requires a full upgrade from 4.7x and 4.8x
to 4.91.  This entails dropping all Daycart indexes, 
dropping the Daycart 4.8 packages, installing the 4.91
Daycart packages, and recreating all Daycart indexes.
The documentation in dayhtml/doc/sql/index.html describes
this process in detail.

========================== 5. BUGS FIXED ==========================

>   The Wizard ignore case string search was
    broken (#592).

>   Merlinserver - request to support FP string 
    as input to similarity search. (#671).

>   thorserver crashed if the user started thorserver
    with -DATABASE_PASSWORDS_FILE "" (#772).

>   Attempting to perform dt_delete() on an empty
    sequence caused a crash. (#834).

>   Positioning of sequences at the end wasn't
    consistent with docs. (#835).

>   canstream/reaction iso/uniq problem.  dt_canstream()
    incorrectly returned agent atoms as part of a
    canstream with iso=FALSE. (#836).

>   Depict toolkit core dumped on dt_alloc_conformation()
    when passed a bogus handle. (#837).

>   A conformation object, when deallocated, was not
    completely cleaned up.  An attempt to access the
    previously deallocated and invalid object caused
    a crash. (#838).

>   In HTTP toolkit, multi-line POST data was 
    incorrectly truncated at the first line break. (#841).

>   Core dump on certain invalid SMIRKS.  The function
    dt_smirkin() crashed on certain input strings with
    illegal empty atom specifications, eg. [:1]. (#846).

>   Directional bonds exo to an aromatic ring
    lost their directionality.  The simplest prototype
    example is: C=c1cccc/c1=C\C.  On canonicalization
    the SMILES didn't have the directional bond in
    the ring; on reinput the toolkit warned about
    incomplete specification. (#847).

>   Prado wouldn't print a title if it started with
    77 or 78.  Some obsolete internal debugging code
    was clashing. (#851).

>   clogp - error level 44 was not included in the
    dump_errors output. (#852).

>   In the http toolkit, long URLs (> 1Kbyte) caused
    a timeout. (#853).

>   In the http toolkit, a request length of 1Kbyte
    plus 1 character caused a timeout. (#854).

>   In smi2gif, zero-level parentheses were not being
    handled in SMARTS/SMIRKS mode.  (#855).

>   The xsmiles mode for a depiction had no effect
    on reactions. (#857).              

>   dt_canstream(..., iso=FALSE) returned atoms in
    the incorrect order if previously called with 
    iso=TRUE.  It incorrectly cached the older
    symmetry info. (#866).

>   In daycart, a contains() index search on an
    empty, but indexed table caused an error. (#867).

========================== 6. KNOWN LIMITATIONS ===================