Thursday, November 26, 2009

Open Source NMR freeware

Most of the readers arrive here using Google, without knowing me and my blog. Usually they get very angry because they arrive... on the trapping post I wrote 3 years ago! I want to do something to keep them glad...
So you want "open source" stuff? Do you know what it really means? Are you ready to compile, test, debug it and add a graphic interface to it?
Just because you asked for it, here is a list of available projects. If you know other links, add them into a comment.

DOSY Toolbox
list of 30+ projects

Monday, November 16, 2009


It rarely happens to find valuable tips about processing on the web. When it happens, it's probably not enough to bookmark the page (it may disappear), copying it is a better idea. Here is the link:
When you arrive there, scroll down until you find the chapter Some General Tips About Spectral Processing.
The focus is on multi-dimensional processing with NMRPipe, but a few concepts are generally applicable indeed.
The brief discussion about first-point pre-multiplication is something to bear in mind. You can also find clearly expressed opinions on zero-filling, linear prediction and baseline correction.

Saturday, November 14, 2009


Here is a picture I have found on the internet. I have never been in this place, if this is what you want to hear. Suppose, instead, that I live just in front of this tower and tomorrow I take a photo of it immediately after dawn, then another photo after 25 hours and so on for a week, with regular intervals of 25h between pictures. Eventually I print all the pictures in order and ask you:
"This pictures have been taken in this exact order at regular intervals. Can you tell me how long the intervals were?".
Somebody will answer: "1 hour" and the answer would be partially correct. A more correct answer would be 1 + 24 n hours, with n = 0, 1, 2, 3….
The world of FT-NMR is similar. The difference is that the regular interval between consecutive observation is known in advance while the speed of the hands and of the shadow is unknown. In other words, it is the opposite of my example of the tower.
The equivalent of a day, in the world of FT-NMR, is very very short and is called dwell time. It forms a Fourier pair, so to speak, with the spectral width. The spectroscopist sets the former, the latter is a mere mathematical consequence.
The ignorant says that the spectral width is the distance from the first point of the spectrum to the last one. This statement is as incorrect as saying that a day is made of 23 hours! The spectral width, actually, is the distance from the first point to the first point after the last one!
Let's verify it with a numerical example. Let's say we have a spectrum of 1024 points, separated by 2 Hz. If we zero-fill the FID up to 2048 points, the distance should decreases to 1 Hz. The spectral width is 2048 Hz in both cases, and this is OK. If you measure it the other way, then you have a spectral width of 2046 Hz that grows up to 2047 Hz. This is absurd, because the value is fixed at acquisition time and can't be changed by processing.
The relation is Spectral_width = 1 / Dwell_time.
Many books report another formula: Spectral_width = 1 / (2 * Dwell_time). This assumes an instrument without quadrature detection, in other words with a single detector. I have never used such an instrument.
To be exact, my whole description is dated, because today's instruments work in oversampling, the actual dwell times are shorter than what the spectroscopist sets (4 or 8 times the value reported), the FID that we see is already the result of a couple of FT (first direct, then inverse), et cetera. Seems complicated but it is not. We see what we need to see, the complications are hidden.
The important concept to remember is that the components of a digital spectrum, even if they are called "points", should be treated and conceptualized as tiles. There is no room in between. This idea will help you when you'll try to save a spectrum as a table of intensity vs. frequency. You will get the correct frequency value of each "point".