PyDaylight

PyDaylight

More Science, Less Time




My Philosophy of Discovery

Especially!

How to make things faster?

Daylight's emphasis has been on the first of these. But the second is just as important.

This graph is from Dave's talk at EuroMUG'98.

Doubling rate of chemical data is 20 years, compared to 18 months for processors.


This means, for the problems you do now, the Daylight tools are not be the bottleneck.

I believe the bottleneck is writing and customizing software, and making the different tools work together.



A Big Database

Look at the commercial database world. Wal-Mart is the usual example. http://www.informationweek.com/newsflash/nf617/0210_st6.htm
> To make that happen, Wal-Mart will purchase a Pentium Pro-powered
> NCR WorldMark 5100M massively parallel processing server and upgrade
> an existing 5100M machine. The new machine will have 32 nodes, 256
> 200-MHz Pentium Pro chips, and 8 terabytes of storage, while the
> upgraded machine will move from 32 nodes to 96 nodes, 768 processors
> and 16 terabytes of storage.
This for "50,000 queries a week" or 5 queries a minute.

Making programming easier

Ideas from software engineering:

The Daylight toolkit has these, but they are hidden under a layer of C and behind opaque, untyped handles. There are better ways!

Three powerful concepts which make programming easier, reduce errors and are simple to learn.

I like programming! ... And you should too

Most toolkit programming is tedious. Most progamming is tedious. Programmers just seem to like that sort of tedium.

There has to be a way to reduce the needless complexity of programming, without simplifying the meaning!

For the last few years I've been exploring very high level languages as a solution.

It's fun to program in Perl, but I'm happy programming in Python.

Python is a dynamically-typed language which supports both procedural and object-oriented programming models. It is very easy to interface with existing C and C++ code, which is reflected in the large number of available modules. For more info, try www.python.org.


I've done a lot of work reexpressing the Daylight toolkit into a more modern form. The end result is:

Examples

VCS Viewer

Norah and I worked on a demonstration web viewer for the VCS data. Overall it took about three days to write and debug. Try it out at http://sun5/cgi-bin/vcs_viewer/index.cgi.

Here's the source code:

  config.py
  login.cgi
  logout.cgi
  index.cgi
  utilities.py
  query.cgi
  search.cgi
  tdt2html.cgi
  Cookie.py

Depiction Expectations

When doing it, we noticed there was a problem with the images:

Looking at it, I wondered if there was a scaling problem, so I wrote some code to test it out. Turns out, depictions expect a size for the molecules, which isn't always the range in VCS. What to see?

Bioreason

Bioreason builds most of their internal viewers in Python. Here's a screenshot to show that it can be done. .
This is in Python with the GTK GUI library.

XML

I like XML as a data exchange format. So today during lunch I wrote a converter from TDT to XML, and back again. Here's the source code and example output

Sure, but it's always easy for the author.

Try PyDaylight yourself. I've installed it on the machines in the breakout room, and I wrote a set of examples you can run directly.









Andrew Dalke
Last modified: Thu Feb 24 15:17:02 MST 2000