Daylight on Windows

Jack Delany

DAYLIGHT Chemical Information Systems, Inc. Mission Viejo, CA USA

Mike Wainwright

Modgraph Consultants, Ltd.


This whitepaper/presentation will describe Daylight toolkits and Daycart on the Windows platform.

Philosopy / Design Goals:

Daylight has supported Windows on the PC with the Remote Toolkit for a number of years.

This was a compromise, for two reasons. Initially, Windows didn't have the runtime environment that we needed (Win 3.1), and more recently didn't have the build tools and environment that we required for a port with minimal effort.

Recently, with the advent and maturity of some of the compatability tools (Cygwin, MinGW/W32api, MSYS), we now have the capability to produce full-strength tools with reasonable effort. Now we feel that we can meet our goals for this platform:


The main client-side toolkits are all ported and tested. These are: SMILES, SMARTS, Fingerprint, Reaction, Thor, Merlin, Monomer, HTTP (also ipcx, datatypes, which are used by Thor/Merlin).

There were multiple issues to be sorted out:

Program objects are the one which we haven't completed yet. Not a show-stopper, just a porting issue (eg. fork(), exec() stuff). The will ultimately be able to call command-line based executables.


Daycart works as it does on our other platforms. All the functionality is present; performance is quite good.


The following tables compare times for index creation and search on identical hardware running either Linux Red Hat 7.3 with Oracle 9.0 or Windows 2000 Professional with Oracle 9.2. The hardware is a 1.6Ghz Mhz Pentium4M-based Dell laptop with 1GB memory. The table is 126705 structures from NCI.

Index Creation Times ( m:ss )

Index type  NT  Linux
exact 1:26 1:00
graph 5:03 3:27
blob 2:54 2:28

Query Performance:

Query Hits  NT  Linux
exact(smi, 'c1ccccc1') = 1 1 7 ms 6 ms
graph(smi, 'c1ccccc1') = 1 3 9 ms 8 ms
usmiles(smi, 'c1ccccc1') = 1 1 8 ms 8 ms
tautomer(smi, 'c1ccccc1') = 1 1 8 ms 8 ms
contains(smi, 'OC(=O)CS') = 1 507 0.50 0.49 s
contains(smi, 'NCCc1cc(O)c(O)cc1) = 1 829 0.61 0.61 s
contains(smi, 'OC(=O)CS', 10) = 1 10 62 ms 65 ms
contains(smi, 'NCCc1cc(O)c(O)cc1', 10) = 1 10 98 ms 91 ms
matches(smi, '[OH]C(=O)CS') = 1 279 0.58 s 0.56 s
tanimoto(smi, 'NCCc1cc(O)c(O)cc1') >= 0.75 77 99 ms 90 ms
tanimoto(smi, 'NCCc1cc(O)c(O)cc1', 10) >= 0.75 10 70 ms 64 ms
tanimoto(smi, 'NCCc1cc(O)c(O)cc1') = 0.75 3 96 ms 86 ms
tanimoto(smi, 'NCCc1cc(O)c(O)cc1') <= 0.75 126631 1.24 s 1.58 s
tversky(smi, 'c1ccccc1', 0.5, 0.5) > 0.75 44 64 ms 55 ms
euclid(smi, 'NCCc1ccccc1') < 0.01 7 28 ms 25 ms

Supported Distributions:

Windows 2000 Professional, XP, and XP Professional.

Oracle 9.0 and 9.2. We do not plan to support 8i on Windows.


Our plan is the following:

An 'Alpha' pre-release version will be available shortly after EuroMUG for interested testers. This will likely not include the completed Program object changes.

The general distribution release will be available in a minor release at year-end or Q1 of 2004.