Dalke Scientific Software: More science. Less time. Products
[ previous | newer ]     /home/writings/diary/archive/2007/07/27/structure_viewer_demo

Structure viewer demo

As long time readers of this site know, my name is Andrew Dalke <dalke@dalkescientific.com>. I am an independent consultant in and develop software for the computational life sciences. My specialization is systems integration in chemical informatics and my clients are typically biotech and pharmaceutical companies.

I recently moved to Gothenburg, Sweden from Santa Fe, New Mexico in the US. I am looking for new clients in Europe.

I've mostly worked on in-house projects during the last eight years. These are the sorts of projects that aren't published in journals nor talked about at conferences, so most people don't know much about what I do and it's hard to give good public details without going through lawyers.

Some of the software I've worked on in my career are: VMD and NAMD in molecular modeling at UIUC, Look/GeneMine Pro and DiscoveryBase for bioinformatics at Molecular Applications Group, PyDaylight and internal code for chemical informatics at Bioreason, co-founder of Biopython, a robustness layer for automating algorithm testing at Combichem, and a large chemical descriptor and model calculation system for AstraZeneca.

My overall interest is helping researchers do more science in less time by improving the usability of their tools. One relatively recent trend in web development is using AJAX to make highly interactive web pages. I made a short video demoing a software prototype I wrote over the last couple of months in order to get a better idea of what can be done.

In addition to watching the nearly five minute video you can also read the script I used to make it.


(For those of you reading this page through an aggregator, you might have to open this page in a web browser.)

If you are looking for someone with a lot of software development and integration experience for the computational molecular life sciences, send me an email.

The script

What follows is the script for the above recording.

I've been evaluating the current generation of web development tools to see how AJAX - meaning dynamic HTML, CSS and Javascript - can be used in chemistry. As my test case I developed a 2D structure viewer.

Here you see my two favorite drugs, capsaicin and caffeine. I'm using OpenEye's tools on the back end to handle SMILES and generate the depiction. I'll switch the image to color on white for a moment so you can see the logo, and I'll make the image a bit larger.

I prefer a black background so I'll switch it back.

The general idea of this project is to make web pages more interactive so a chemist can make better decisions more quickly . This page might be the result of a similarity search, and the chemist wants to zoom in and look at a specific compound in a bit more detail, before deciding - or not - to import the results into another program.

The structure display window is interactive. I can move the mouse over atoms and get feedback on which atom the mouse is over, and I can pick atoms. You can see here that other parts of the viewer are notified about these events.

I can pick multiple atoms, and could support rubberbanding to pick all atoms in a region. If it's important to pick specific atoms or know which specific atoms were picked, I can open this part of the display. On the left is a list of all the atoms. The picked ones are highlighted, and I can toggle them on and off here. On the right is a list of the indicies of the picked atoms.

I did that picking with the mouse. I can also pick atoms by using entering a query, either as atom indicies or a SMARTS query. Here I'll select all ring atoms. [R] . Ring atoms bonded to a non-ring atom [R][!R] . And ring atoms bonded to a carbon not in a ring [R][!R;C] . You can see the system is very responsive. There's no Java here, no Flash animations. This is all HTML, CSS and Javascript, in the browser, with the server helping out a bit with to understand the chemistry and generate the depiction images.

I'll expand the menu to show more selection options. Here I'll select the nitrogens and color them blue, and the oxygens, red. And I'll paste in the atom indicies I copied earlier here. I can toggle each of these selections on and off.

If I expand the depiction options section you can see a few controls for changing the OpenEye depiction parameters. Instead of using Kekule form for the aromatics I'll display them with a circle .. or dotted .. and back to Kekule. OpenEye has other configuration options; this prototype is meant to give some idea of what can be done.

I don't mean to replace existing software. Excel, ChemDraw, Spotfire and other tools are very good at what they do. Instead, what I've done here is made links so it's easier to import data into other programs. With this one you can get the structure as a SMILES string or SD file, or view it in ChemDraw or Chime. If this page contained a hitlist or a scatter plot there would be options to fetch the data in csv form and import into Excel and Spotfire, or as an SD file for use in other chemistry progams.

This structure viewer is only a prototype, but I think it's enough to show that it's possible to develop highly interactive web sites using modern web technologies, and apply this technology to chemistry.


Andrew Dalke is an independent consultant focusing on software development for computational chemistry and biology. Need contract programming, help, or training? Contact me



Copyright © 2001-2013 Andrew Dalke Scientific AB