Vespa - Forum Archive (abbreviated)

In this thread, we have posted a selection of relevant posts from previous Vespa forums. These have been selected for their (hopefully) usefulness. But, at the very least, they are a fun snapshot of our past.

The backstory: Vespa Forum was previously hosted on Yahoo Groups. In 2019, Yahoo deprecated Groups necessitating an abrupt move to Google Groups. In 2020, the MRSHub Forum was started by the ISMRM MRS Study Group - Committee for Code and Data Sharing and we moved the user forum to this resource to centralize it with other MRS code/processing resources.

Enjoy! … the Vespa Team

From: “Brian Soher” brian.soher@yahoo.com
Sender: vespa-mrs@yahoogroups.com
Date: Fri, 12 Nov 2010 20:00:38 -0000
Subject: [vespa-mrs] VeSPA-Welcome to the NewsGroup

Welcome to the vespa-mrs news group for the VeSPA project. This group has =
been set up to facilitate communication between the users (testers) of the =
VeSPA package.

Please feel free to post questions or answers to other peoples’ questions. =
The more content we post here, hopefully, the easier it will become to find=
solutions to the things we want to do.

Just a few thoughts about using the list …

  1. Be concise.
  2. Use a descriptive title
  3. Stay on topic.
  4. Feel free to send screen shots.
  5. Don’t spam, shout or be a ‘troll’.

Files and screen shots can be sent inline, or uploaded into the group’s =
“Files” section. See the navigation bar on the left for the Files link =
and/or Yahho!Groups help for more information.

And as we get to the point of folks asking about how to make changes or =
fixes to the code …

  1. Provide a small example of what you are trying to do.

One example of this would be as described on the wxPython wiki:
http://wiki.wxpython.org/MakingSampleAppshttp://wiki.wxpython.=
org/MakingSampleApps

Thanks, and enjoy!

Brian.

From: Philip Semanchuk philip@semanchuk.com
Date: Fri, 12 Nov 2010 16:50:05 -0500
Subject: [vespa-mrs] Vespa 0.1.0 beta now available

Hi all,
The first version of Vespa is now available for download here:
http://scion.duhs.duke.edu/vespa/project/wiki/Downloadshttp://scion.duhs.=
duke.edu/vespa/project/wiki/Downloads

Enjoy,
The Vespa Team

From: “Brian J. Soher” bsoher@briansoher.com
Date: Tue, 30 Nov 2010 09:53:43 -0500
Subject: Re: [vespa-mrs] Improved PyGamma speed

Hi Abhishek,

PyGamma is a SWIG wrapper around the GAMMA C++ library. As such, neither
PyGamma nor GAMMA use numpy or scipy as part of the spectral simulations
that are performed.

In Vespa-Simulation, numpy is used to create FIDs from the results of the =
PyGamma Experiments/Simulations that are then displayed in the Visualize =
tab.=A0 It’s all pretty simple stuff for that visualization. The area, ppm =
and phase of each line from the transition table is used to create a =
complex sinusoid in the time domain. All lines for one metabolite are =
summed. A Gaussian decay envelope is applied. An FFT is performed. And, the=
spectrum is saved in a numpy array for display.

So, the only speedup we’d likely see is for display of results. And against=
this, we’d have to balance the need to require all users to install the =
EPD.=A0 Which is only free for academics, and has no guarantee that it will=
stay so.=A0 Also, while EPD can be simpler (in the “click it and it =
installs” sense), a Vespa user is then left with the EPD setup of modules =
rather than being able to pick and choose what they want on their machine.

Now, if you were asking just about how to speed up the PyGamma/GAMMA =
simulations, you should ask Karl Young or David Todd. They did some =
investigations about how to link in LAPACK/BLAS to provide more optimized =
math library functions. You can read about these results here:

https://scion.duhs.duke.edu/vespa/gamma/wiki/GammaWithLapackAtlashttp:=
//scion.duhs.duke.edu/vespa/gamma/wiki/GammaWithLapackAtlas

however, this would also adds significant distribution issues to the Vespa =
package since we’d have to somehow provide for users to compile against =
compatible math libs, or provide/support even more binary distributions. =
Our manpower is a bit low for either right now, especially as we are pretty=
focused on programming issues in other parts of the Vespa package.

Our next step to try to speed things up is to develop (adopt, steal, =
whatever) a method for generalized distributed processing. This would be a =
straightforward improvement in speed since each simulation in an Experiment=
is run separate from all others. But, that’s for the future …

Hope that this helps,

Brian.

At 09:06 AM 11/30/2010, you wrote:

Hi all

Thanks all for a nice software. I successfully compiled it on fedora 14. =
I want to know something about it. I am thinking if I use pygamma with EPD =
python we can see some seedup. Because In EPD python numpy and scipy use =
intel mkl library, which really speeding up some calculations. I dont know =
it will work or not. It is just my thinking. Can some please tell me what =
type of calculations are performed with numpy and scipy in pygamma.

Thanking you
abhishek

From: Philip Semanchuk philip@semanchuk.com
Date: Thu, 2 Dec 2010 09:22:08 -0500
Subject: Re: [vespa-mrs] sqlite vs. MySQL

On Dec 2, 2010, at 9:02 AM, cbolliger wrote:

Hi,

as a gava user I was wondering why in VeSPA the experiment results are =
stored in sqlite and not in a MySQL database (as in gava). For me it would =
be very convenient if the functionality of the full MySQL language would be=
available.

I have not looked very deep into the code (since I am not familiar with =
Python) but I think it wouldn’t need a lot of changes to enable this =
possibility. The default could still be sqlite.
It would be very helpful for me!

Hi Christine,
It would actually be a lot of work (programming, testing and maintaining). =
It would also make installing Vespa messier. Sqlite and bindings for it are=
built into Python, so we get them “for free” once Python is installed. =
Obviously that’s not that case for MySQL.

Out of curiosity, what are you interested in doing? Maybe we can figure out=
how to help you get what you want with the existing tools. You might be =
pleasantly surprised; SQLite is small but powerful. It implements most of =
the SQL92 standard.

Cheers
Philip

From: “Brian J. Soher” bsoher@briansoher.com
Date: Thu, 02 Dec 2010 09:38:35 -0500
Subject: Re: [vespa-mrs] sqlite vs. MySQL

Hi Christine,

Just on a historical note, about 75% of the problems with installing the =
GAVA program that users sent me email about had to do with MySQL.=A0 Mainly=
because most of them never had to use a SQL style database and thus had no=
background on how to install and manage accounts, passwords, permissions, =
tables, etc.=A0 So for Simulation, I really really wanted to simplify any =
part of the program that GAVA users always seemed to stumble over. That way=
we’d all have more time for science and not sysop stuff.

Brian.

On Dec 2, 2010, at 9:58 AM, Christine Bolliger wrote:

Dear Philip,

I thought it’s not a big deal - but under these circumstances, I think I
can surely live without it. :wink:
I used to extract simulated spectra from the gava database to import
them into our own software.

I’ll figure it out, thank you.

OK, let me know if you have any questions. If you don’t want to use SQLite, you could export the experiment and read the XML file that the export generates. It’s pretty straightforward. Here’s a brief overview of our import/export format:
http://scion.duhs.duke.edu/vespa/project/wiki/ExportFormat

If you want to work with SQLite (and that would be the path I’d take), I can point you to a few documents that will make things easier for you.

Our database is called vespa.sqlite and it lives in Vespa’s data directory. How to find the data directory is documented here:
http://scion.duhs.duke.edu/vespa/project/wiki/VespaDataDirectory

We have an entity relationship diagram of our database here:
http://scion.duhs.duke.edu/vespa/project/browser/trunk/common/resources/erd.pdf

Below is a simple example that shows how to read from Vespa’s database.


import sqlite3 as sqlite

# Change this filename for your machine
filename = "/Users/philip/Library/Application Support/Vespa/vespa.sqlite"

connection = sqlite.connect(filename)

# Use the nicer sqlite.Row class
connection.row_factory = sqlite.Row

sql = """SELECT
id, name
FROM
experiments
ORDER BY
name
"""

cursor = connection.cursor()

cursor.execute(sql)

for i, row in enumerate(cursor):
    print '%d) Experiment "%s" has id %s' % (i, row["name"], row["id"])

#Simpler version of the for loop above --
cursor.execute(sql)
for row in cursor:*
    print 'Experiment "%s" has id %s' % (row["name"], row["id"])*

connection.close()

Good luck
Philip