Saturday, March 27, 2010

Cold War

Please find the similarities:

To tell the truth, I will always like Russian people because of Čajkovskij, Botvinnik, Tolstoj, Kramnik, Puškin, Šostakovič and I also like the Ucranians Lobanovs'kyj and Prokof'ev, the Latvian Tal', the Azerbaijani Kasparov... I even respect Putin more than Obama (without even mentioning our shameful and unpresentable Mr. B., of course). It is not in my nature to fight. Russians are free to do whatever they like with their own money. Sometime it looks obscene, sometime they find a Samuel Eto'o.

Friday, March 12, 2010

Two Promises

I promised a review on the DOSY Toolbox and the program itself is a promise too. It has only arrived at version 0.8, which is an explicit declaration: it is not completed yet. What could be missing? From my personal point of view, the documentation is largely incomplete. I can easily find out by myself how to perform the basic NMR processing (FT, phase and baseline correction, correction of the frequency scale, and so on), because I have continuously been doing these operations for 25 years with countless different computers. I feel lost when doing the specific DOSY processing. The meaning of the buttons looks clear. I have also read a few papers describing the scopes and the internal details of each method, but I still miss the general picture.
The ideal solution for a user like me would be a set of test spectra with detailed step-by-step instructions on how to process them to get the best results and, for the lengthy calculations, the time required. In this way I would have a tool to test if the version I have installed is free of bug (and properly installed) and at the same time a collection of tutorials.
What makes the toolbox rather unusual is the language used to write it, which is not C++ or Java or Python, but MATLAB. The consequences are that many operations are a little harder than usual. Examples are: starting the program, opening and saving a file, selecting a region, understanding if the program is idle or busy. These nuisances are mitigated by the facts that the program:
1) is free;
2) is cross-platform;
3) is the only alternative I can find in this price range;
3) can import and export the spectrum at any processing stage, so you are still free to use your preferred program for generic manipulations.
The one thing you'd better get used, if you launch the program from a unix shell, to is to look frequently at the contents of this shell during the execution of the toolbox, because many important messages are reported there. They can signal a situation of error, or explain why a command can't be executed, or simply inform you about the current status of the program.
The main window contains all the buttons for all the available processing functions. In practice the space allocated for the controls is larger than the area containing the plot. The latter can show only one selected row of the experiment (after FT). After the DOSY processing a second window appears with a contour plot of the complete DOSY map. The new window contains additional controls, most of them containing the word "plot" into their titles.
Nowadays I have a very large monitor, yet I can only work with the windows at their maximum sizes. I am a little worried about what can happen if you install the program on a laptop, because when I make the windows smaller I can't read the numerical values anymore (the fields are scaled down proportionally to the window, while the text size remains large, so I can only see the bottom parts of the digits).

It seems that, up to this moment, I have described MATLAB more than the DOSY toolbox itself, right? For the reasons I have reported, I could only try the simplest algorithm (HR-DOSY, mono-exponential) and the results are really great. The components of the (difficult) test that comes with the program are resolved. It is a mixture of sucrose, isopentanol and n-propanol. It is the same mixture shown on Journal of Magnetic Resonance (DOI).
During the last two months I have exchanged hundreds of messages with the author. It has been a painful and continuously interrupted work, because we had different computers and, more importantly, I have no copy of MATLAB. Each of us also had the usual urgent chores to deal with in the same period. I must admit I have been boring and annoying, often asking questions I could have found an answer to by myself. This slow torture has come to an happy end when we have created and successfully tested a file format (called DOSY Toolbox ASCII) to exchange data with other NMR programs, both in input and in output. It's enough that the other program is scriptable, and that you can read/write text files with a script. If these conditions are met, you can de facto use the toolbox as an external module of your preferred traditional NMR program.
Apart from the happiness for this extremely useful achievement, I have been the witness of the dedication and the kindness of Mathias Nilsson. I will remember with joy this collaboration, despite the several frustrating moments. We never met in person, so I identify the name Nilsson with the interface of the program and not with the face of the man. It is rather strange, even for someone like me that spends whole days in front of a computer. When the main window of the DOSY toolbox appears on the monitor, I feel like I am visiting a new friend of mine.