Vespa in Depth
The goal of the Vespa project is to utilize current software engineering "best practices" to refactor three existing and widely used MRS software packages, written by the authors and their colleagues, to create an integrated open source package for simulating, performing and analyzing MRS experiments. Vespa, the resulting integrated package, provides a greatly enhanced, more complete, easier to use, and easier to extend set of tools for MRS simulation and analysis.
The original applications were written in closed source languages (GAVA/Gamma and IDL_Vespa in IDL, and MatPulse in Matlab) that have licensing issues (primarily restricted use and substantial fees) that make their use for scientific collaboration problematic, as well as make them relatively difficult to extend and virtually impossible to integrate.
Rewriting the applications in the open source language, Python, and utilizing the powerful NumPy, SciPy, and Matplotlib libraries allows for a clean, robust, full featured and open source (i.e. FREE) integration of the packages. It provides a much more natural work flow for researchers as well as making the integrated package much more easily extended by those who need added functionality. As an example it has been straightforward for the authors to add functionality corresponding to recent developments in MRS, providing substantial added value to the integrated Vespa package for a modest coding effort.
One of the goals of the earlier individual packages as well as the integrated package is to provide sophisticated tools to non experts who would otherwise have great difficulty in taking advantage of capabilities that have become available to researchers in MRS.
The original MatPulse package, written by Professor Gerald Matson, encapsulated a large body of knowledge regarding RF pulse design and allowed users with relatively little experience to explore and utilize that knowledge in a straightforward manner that resulted in rapid development of useful RF pulses.
Similarly the GAMMA NMR simulation library written by Dr. Scott Smith allowed users with with limited knowledge of the underlying quantum mechanical details to write C++ programs that explored the effects of various pulse and pulse sequence designs using full quantum mechanical density matrix calculations. The GAVA/Gamma package, originally written by the the lead researchers on this project and their colleagues, was an attempt to further simplify access to NMR simulations by providing a graphical interface to a subset of the gamma library thus freeing users with no knowledge or interest in C++ programming to explore the effects of pulse and pulse sequence designs.
The Simulation component of Vespa simplifies integration even further by using the SWIG package to provide a python interface to gamma - referred to as pygamma. Simulation also provides a graphical interface with powerful plotting and analysis functionality that is built on top of pygamma. But pygamma can be be used independently to produce powerful NMR simulations in python with the majority of the calculations performed in underlying fast C++ code.
The Analysis component of Vespa provides an updated, greatly extended, python version of the IDL_Vespa spectral fitting package - originally written by the the lead researchers on this project, and their colleagues. The updating and integration of these three packages provides greatly enhanced possibilities for exploring, developing, and analyzing MRS experiments.