Daylight Software Version 4.61 Release Notes
============================ CONTENTS ============================
1. INTRODUCTION AND HIGHLIGHTS OF RELEASE 4.61
2. DETAILS OF CHANGES MADE IN RELEASE 4.61
3. BUGS FIXED FOR VERSION 4.61
4. KNOWN BUGS IN VERSION 4.61
5. DAYLIGHT SOFTWARE-RELEASE HISTORY
========= 1. INTRODUCTION AND HIGHLIGHTS OF RELEASE 4.61 =========
DAYLIGHT CIS SOFTWARE, VERSION 4.61
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
- 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 (libXXX.so), and
these objects must be available at runtime. See the readme files
for each specific platform for further information.
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.
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
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
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
> 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
> Within the SMARTS toolkit, copying of a reaction pattern object
> 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()
> 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
> 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,