This post originated from an RSS feed registered with Python Buzz
by Andrew Dalke.
Original Post: Structure viewer demo
Feed Title: Andrew Dalke's writings
Feed URL: http://www.dalkescientific.com/writings/diary/diary-rss.xml
Feed Description: Writings from the software side of bioinformatics and chemical informatics, with a heaping of Python thrown in for good measure.
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.
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.