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.

1 Comments:

At 9:50 PM, Anonymous Brian J. Soher said...

Hi, I'm Brian Soher, one of the investigators on the NIH grant that funds the Vespa project. Thanks for trying out Vespa and for the good things you say about it.

We agree that it'd be nice if it was simpler to install Vespa -- there's a lot of clicking and downloading involved. We looked into making a one-click installer, but it's a lot of work to create and maintain.

We'd also have to multiply that work by 3 because Vespa is tri-platform (Linux, Windows and OS X), and creating a one-click installer is very different under each platform. We decided that we'd rather invest our finite budget (== time) on adding robust features and science. We don't expect anyone to know all the console commands required to install a Python package which is why we provide a step-by-step example for each platform.

You're absolutely correct that Vespa is not GAMMA. Vespa is a great deal more than GAMMA, but there are certainly features of GAMMA that are not available in Vespa. This is by design -- Vespa isn't a GAMMA wrapper. Vespa is an application suite, one third of which makes heavy use of parts of GAMMA.

GAMMA is still a separate project from Vespa, although we've sort of adopted it for the time being. There's been very little public activity on GAMMA in the last 10 years or so and when we started working with it two years ago, it wouldn't even compile on modern platforms. It's come a long way since then, and we've added a completely new Python wrapper (PyGAMMA). PyGAMMA is our main focus since it's the engine for the Simulation part of Vespa.

The rest of GAMMA receives attention as well, but it's not as high of a priority since we don't need it for Vespa. We think GAMMA is great and we'd be happy to pour lots of effort into it if we had unlimited time and money, but no one has that so we have to prioritize somewhere.

With regard to the specific error you encountered -- yes, the gamma script is broken under OS X. GAMMA support tends to be weakest on OS X because the main work on GAMMA was done about 10 years ago, and OS X was brand new at the time. Since the gamma script isn't used in Vespa, we hadn't noticed that it was broken until recently. We're aware of it and we'll put some time into fixing it.

We've relicensed GAMMA (with the original authors' permission) under a standard, liberal license (BSD style), updated the code, Makefiles and documentaion. We can't do everything ourselves, so we hope this will draw more open source contributors so that GAMMA can reach its potential.

Thanks again for your feedback, Brian.

 

Post a Comment

<< Home