4.81 Release Overview
DAYLIGHT Chemical Information Systems, Inc. Mission Viejo, CA USA
The current release is 4.81. Is is a major release and includes a
full distribution of the software and documentation. The following
document gives an overview of the platforms supported and features
included in the 4.81 release.
- Solaris (Versions 7, 8)
- Toolkits, applications, servers, cartridge as 32-bit objects,
- Toolkits, merlinserver, cartridge as 64-bit objects,
- No support for Solaris 2.5, 2.6.
- IRIX (Version 6.4, 6.5)
- Toolkits, applications, servers as 32-bit objects (-n32 only),
- Toolkits, merlinserver, only as 64-bit objects,
- No support for -O32 libraries (xview available under -n32).
- LINUX (Red Hat 7.1, 7.2, 7.3)
- Toolkits, applications, servers, cartridge as 32-bit objects.
- No support for Red Hat 6.x.
- Macintosh (OS X, 10.2+)
- Beta release.
- Toolkits, applications, servers.
- No X-Windows support. No Fortran support.
None of the language specifications have changed between 4.7x
and 4.81. 4.7x Thor databases are fully compatible with 4.81.
No thor upgrade procedure is needed. A Daycart 4.7x -> 4.81 upgrade
is required since package specifications and formats of "backing"
index objects have changed. It is not necessary to modify data in
base tables in Daycart as part of the upgrade.
- HTTP toolkit
- Platform items:
- 64-bit toolkits/merlinserver/daycart on Solaris,
- XVIEW libraries ported to -n32 on SGI,
- New Mac OS X beta release.
- Cleaned up and unified messages; now consistant between stdout
- Thor and Merlin Servers now "know" their own process id.
dt_info(server, "pid") returns the process ID in the toolkit.
$ thorping -PROCESS_ID TRUE
thorping: Connection to localhost:thor succeeded
Process id of server: 9839
The following one-liner puts the process id for the server
into a shell variable:
$ tpid=`thorping -process_id true | grep Process | cut -c23-`
$ echo $tpid
Contrast this with the old contrib code (from KILL_DCIS_SERVERS) which
attempts to get the process ID from the logfile or the output of "ps":
if [ ! -f "$DY_THOR_LOG_FILE" ]; then
echo "DY_THOR_LOG_FILE not defined..."
PS=`ps -el | grep thors`
if [ "$PS" ]; then
i=`echo $PS | sed -e "s/^ *//" -e "s/ */ /g" | cut -f4 -d' '`
echo "Thorserver pid appears to be >>> $i <<< from ps:"
echo "You may wish to kill this process manually."
echo "Can't find Thorserver pid."
tpid=`grep pid $DY_THOR_LOG_FILE | sed -e "s/^.*pid = //" -e "s/ //g"`
case "$tpid" in
[0-9][0-9]*) echo "Thorserver pid = $tpid" ;;
echo "Can't determine Thorserver pid." ;;
- New algorithm version 4.3, database version 22.
- Resolved inconsistancies in the code which gave
different results than Biobyte on Sun for some structures.
- Test set of 45k structures has <20 differences from
Biobyte results on all three platforms (SGI, Sun, Linux).
- valence warnings - the toolkit now does a more reasonable
job warning about odd or unusual valences.
The toolkit uses valences in three ways when interpreting
SMILES: filling hydrogens for the organic subset
(B,C,N,O,P,S,H,F,Cl,I), determining bonding of aromatic
atoms, and generating warnings.
||Total in 4.71
||New in 4.81
||Total in 4.81
- dt_xsmiles() -
xsmiles can be generated for any valid molecule or reaction
(anything for which a cansmiles can be generated). xsmiles have
NO aromaticity. They are written with kekule bonding everywhere.
Optionally, one can include explicit hydrogen counts everywhere.
- Imine/oxime stereochemistry - Stereochemistry
is now preserved in the toolkit and properly handled with respect to
- version numbers - The toolkit now knows it's version number and
- append data to string properties and string objects.
- count bits set in common between two same-sized fingerprints.
- Daycart: (See Emug02
for more detail)
- New administrative capabilities and options.
- Alter index ...
- Control of backing objects (attributes & storage)
- fpinitcolumn option
- New functionality,
- finfo() - fversion() and fhostid() deprecated
- smi2xsmi() - exchange smiles
- partnorm() - part n-tuple
- usmiles(), asmiles() - ddgraph functions & searches
- component() - role function & search
- isin() - ddblob substructure search
- CLOB support - everywhere a VARCHAR2 can be used
- Better predicate handling in indexes. Boolean (T/F)
and continuous functions (eq, gt, lt, lte, gte, range).
- Nearest searches - limit queries to the best "n" hits.
Works for contains(), isin(), fingertest(), tanimoto(),
tversky(), euclid(), fingertest()
- Role searches with boolean FALSE test doesn't use
index. eg. ... where reactant(smiles, 'c1ccccc1') = 0.
- CLOB optimizer support - statistics not provided for
CLOB functions or index searches. Appears to be an Oracle
bug which is being addressed through Oracle support.
- Upgrading - The program list_indexes is provided to handle the
4.7x Daycart indexes which need to be dropped and recreated under
- Performance / design hints:
- Don't bother with ddexact index. Use ddgraph index with
the usmiles() or asmiles() searches. Functionally, they're
probably what you want anyway. Result is at least one less index
on the tables and you don't need to maintain separate usmiles column
if that exact() search is desired. Slight searchtime performance hit
compared to exact().
- Use the "nearest" hint on ddblob searches when you can.
Gives significant speedups.
- Keep fingerprints in the base table with the smiles. You can use
the "fpinitcolumn" option for fast index builds.