Friday, June 17, 2011

Spinus and nmrdb.org

I don't remember how many years ago I discovered the web. I was excited by how many things were available for free. There were a lot of curious and interesting things but, I was the first to admit, nothing really serious that could substitute a true book, or a true CD or a true computer program. The great thing about the internet was that I could easily read the opinions of other people around the world. I mean: ordinary people just like me.
Things began to change with the appearance of SDBS 14 years ago. It was the first really useful thing I found on the web.
The last discoveries are Spinus and nmrdb.org.
SPINUS-WEB
SPINUS (Structure-based Predictions In NUclear magnetic resonance Spectroscopy) is an on-going project for the development of structure-based tools for fast prediction of NMR spectra. SPINUS - WEB currently accepts molecular structures via a Java molecular editor, and estimates 1H NMR chemical shifts. The predictions are obtained from ensembles of previously trained feed-forward neural networks, and corrected with data from an additional memory.
SPINUS - WEB predictions are restricted to:
CHn protons (no predictions for hydrogen atoms bonded to heteroatoms are made),
compounds containing elements C, H, N, O, S (some oxidation states), F, Cl, Br, or I.
For a data set of 100 independent structures representing a wide variety of structural features, SPINUS gave the following average errors for chemical shifts: 0.16 ppm for aliphatic class, 0.23 ppm for aromatic class, 0.35 ppm for non-aromatic pi class, and 0.29 ppm for rigid aliphatic class. A global average error of 0.23 ppm was obtained for the 952 predictions. A global error of ca. 0.6 Hz was observed for coupling constants.


This service depends on a number of Java applets that apparently do not work on my computer. Who cares, an alternative interface is available at nmrdb.org. In practice you can forget about Spinus and just connect to the latter. Spinus will be called in the background.
When you arrive at the home page of nmrdb.org, you find 4 applications: Simulator, Resurrector, Assigner, Predictor. The latter lets you draw a formula, from which a H-1 spectrum is generated. No alternative is given: if you already have the ChemDraw formula, it's of no use. You have to draw the formula again, which is easy and funny, I have to say.
The Simulator allows to simulate a second-order H-1 spectrum, so it's nothing really new. The required input are the values of chemical shifts and Js. Every time you change a value, a new FID is generated and FTed. Too slow for running it on the web, in my opinion.
The Resurrector transforms a list of peaks (copied from a PDF paper, for example) into the picture of the corresponding H-1 spectrum. How many formats are recognized? As you know, different journals may require different styles for reporting the NMR values. The ACS style is of course recognized. They have described nmrdb.org on a scientific paper, which probably contains all the details; I have not found them on the web page for the Resurrector.
The Assigner is something that does not work but suggests you to move to another site, called mylims.org:
The principe of mylims.org is very simple:
You upload a jcamp file
You process your spectrum
You save the result of the processing
You retrieve the ACS assignment for publication
Using mylims.org you will be able to make fourier transform, phase correction, baseline correction, “smart” peak picking, auto peak picking and even be able to assign 2D nmr !

The NMR Predictor brings us back to our starting point. This picture gives you an idea of how it works:

You hover the mouse over an atom in the formula or over a peak in the spectrum. Two yellow squares appear, that hilights the correponding spots into the formula and into the spectrum. Just what you expect, because the similar programs all work in this way.

Wednesday, June 01, 2011

VeSPA


VeSPA is an open source software funded with public money. They are investing time, money and expertise into it. Something good is going to happen. Here is what the software manual says:
The Vespa package enhances and extends three previously developed magnetic resonance spectroscopy (MRS) software tools by migrating them into an integrated, open source, open development platform. Vespa stands for Versatile Simulation, Pulses and Analysis. The original tools that have been migrated into this package include:
- GAVA/Gamma - software for spectral simulation
- MatPulse – software for RF pulse design
- IDL_Vespa – a package for spectral data processing and analysis
The new Vespa project addresses current software limitations, including:
non-standard data access, closed source multiple language software that complicates algorithm extension and comparison, lack of integration between programs for sharing prior information, and incomplete or missing documentation and educational content.
I am interested into the spectral simulation module only, because pulse design is not my field (yet) and because there are already too many programs for processing.
Installing VeSPA is not an easy task. VeSPA depends on a lot of other software, which in turn depends on other software, etc.. You need a guide, which is this page:
http://scion.duhs.duke.edu/vespa/project/wiki/Installation
Install the 8 packages in the listed order. For some of these packages you will be prompted to install an outdated version. Resist to the temptation of installing the latest version, because this will break the inter-dependencies of the other packages. Installing the first packages of the list is a merely mechanical process: click to download, click to accept the license agreement, etc.. The last packages, instead, are written in Python and are a little more complicated to install. In my case, it was necessary to use the unix commands cd, su, sudo and exit repeatedly. Renounce if you don't know these commands. Such a complicated installation is quite discouraging. I see no reason, for example, why anybody should try to install the processing part of VeSPA, while other software is available that can be installed with a single click. I can see the other side of the coin, however, and it brights.
Instead that reinventing the wheel once again, they put together many bricks, old and new ones, that were already available. Do you remember this old article of mine?
There has been the terrible tradition, in our field, that every newcomer reinvents the wheel. We have seen a lot of simulation programs and nothing is available or working and supported. Now I welcome the VeSPA team because they have apparently embraced the opposite philosophy.
The big problem I see, after the installation, is that, at this writing moment, VeSPA is not a complete substitute for Gamma. The new program is devoted to in-vivo metabolomics. In theory there is space to grow and include what is left outside, yet this will not be easy in practice. Who is going to do it? Who is going to pay for it? I bet nobody will do.
The VeSPA web site is:

http://scion.duhs.duke.edu/vespa/

My current situation is: I have VeSPA installed but it's not what I wanted. I wanted Gamma. I have also installed Gamma in the process, but it does not work. If I try running gamma, I get the error message:

Apparently You Do Not Have A Proper Path Set To GAMMA......
Please Set The Variable GAMMA_PATH To Reflect The Base GAMMA
Directory, The One Off Of Which The Subdirectory share Exists.
This Change Can Be Done In The gamma Script You Are Running
Or You Can Set GAMMA_PATH As An Environment Variable.

Currently GAMMA_PATH is Set To /E/gamma/gamma-4.2.1


which means absolutely nothing to me, because there is no "share" subdirectory. I have tried to set the variable:
GAMMA_PATH='~/gamma'
and the error persists unchanged. The last chance was to use pygamma. Not exactly what I want, but they say it's equivalent to gamma and I remember having installed it in the process of installing VeSPA. My first attempt was:
pygamma
The answer: command not found.
Then I have tried something more... detailed:
python "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pygamma/pygamma.py"
The answer was:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pygamma/pygamma.py", line 7, in
import _pygamma
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pygamma/_pygamma.so, 2): no suitable image found. Did find:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pygamma/_pygamma.so: mach-o, but wrong architecture

What kind of joke is this? They really have no idea of what a user is.
I have my theory why everybody writes his own simulation software: it's because nobody is able to install somebody else's software.