-> click here to download SwaN-MR and other freeware for Mac OS X <-
Florence, December 5 1997
Being the man behind SwaN-MR basically ends to speaking about transferring files, PostScript issues and conversion troubles. Eventually it becomes very frustrating. It wasn't so in my original intentions. The few of you who saw versions 1 and 2 of the program will probably remember that they didn't contain any converter, for not contaminating the purity of processing. The focus was just on processing.
In the last days I have re-read some old documents from the primordial SwaN era (it's olny 5 years ago, but there are hundreds of versions in between!!). There's a couple of letters from Prof. George Cybenko, dated July 1st and August 12 1993. He is almost unknown, yet his contribution to NMR is comparable to the one from Cooley and Tukey. The latters are considered the fathers of the Fast Fourier Transformation (FFT). Cybenko, although he probably isn't aware of it, is the father of the Fast Linear Prediction (FLP?). Reference:
Fast Toeplitz Orthogonalization Using Inner Products
Siam. J. Sci. Stat. Comput. 8, 1987, 734-740.
Being that I didn't understand the article I asked explanations directly from him. He was very kind in replying. My difficulties are demostrated by the time that passed between my first letter dated April 16 (but I was already working on the subject since a month at least) and September, when I finally had my algorithm working. With my great satisfaction, because at that time SwaN-MR was the first general-purpose NMR program featuring the fast LP. I don't know how many other programs have followed my example during the last four years. The situation is that today, at the best of my knowledge, if you want to perform some LP, it would take you some minutes if you have the commercial VNMR running (what a wrong word!) on an expensive Sun station, while it would take a few seconds on a PowerMacintosh running (now the right word!) SwaN-MR 3.4.5. The problem is that apparently there are hundreds of people in the former situation and I am the only lucky researcher in the latter situation. But, being that they say I am working for the glory, I am very unlucky and I have a good reason to fall into depression. (Cybenko is out of risk, because he probably doesn't even know what NMR stands for).
Where does this story come out from? I receive, like hundreds of happy Varian customers, a journal titled "Magnetic Moments". The last issue focused on LP. It featured two articles on the subject: "Processing Noesy Using LP" and "Are You Using Linear Prediction, Or Are You Wasting Time?". The latter title, agressively typed in red letters, is highly questionable, for at least two reasons. (1) I have showed that any VNMR user performing LP is wasting time (compared to the SwaN-MR user). (2) A few centuries ago, not far from here, a guy called Galileo Galilei showed that an experimental datum weights more than a theoretical trick.
Simple visual comparision should convince everyone that, being LP a sort of zero-filling using sinusoids instead of zeroes, it MUST be superior to zero-filling and it MUST be inferior to actual acquisition. More on the subject inside the manual. (BTW: what about the page "Theory" I inserted three months ago?).
Personally I have found the two articles very useful. I have re-considered LP, which was literally spleeping inside SwaN-MR. I have found that the PowerPC version of it was full of bugs, almost unusable. After fixing the bugs I have optimized it for processing along t1. Now I am considering using forward LP routinely in the future. Both articles stressed the fact that VNMR implements LPSVD, a really slow and inefficient version of LP (if compared to mine). No mention to the existence of faster algotithms. Now consider that:
(1) The original article by Cybenko was received by the editor in 1986, more than 11 years ago.
(2) I have tested the algotithm and it works. (3) The last words of the article are: "A Fortran program, implementing this method and using calls to LINPACK BLAS can be obtained from the author". In fact I received it for free (without having asked it!). So, why doesn't Varian implement this magic method into VNMR? It's fast, stable and free! They are already 11 years late! And why nobody is complaining? Rolf, what do you say? I may also be wrong, because probably Varian has very good reasons for sticking to Singular Value Decomposition. I just would like to know the truth.
I would also like to mention other software houses, yet I don't know the details of their implementation of LP. We have TRIAD, by Tripos; the manual doesn't specify which kind of LP is adopted. I see the only reported example has 4 coefficients and 8 basis point (in their way of counting them. According to the SwaN-MR way they are 4). In such simple cases it doesn't really matter which algorithm you are using. The Triad manual also suggest not to use more than 8 coefficients. SwaN-MR 3.4.5 easily arrives at 32!
To give you an idea, SwaN-MR version 3.4.4 has, instead of the Cybenko algorithm, a general-purpose QR decomposition (which I believe is nonetheless faster than SVD). OK, you don't understand all the acronyms. Shall I speak in terms of seconds? Version 3.4.5 takes 9 seconds where version 3.4.4 takes almost 3 minutes to do the same calculation. Do you see the difference? Unfortunately I can't compare with other software. (I don't want to explain the reasons I am not using Triad). Does any of you have VNMR or X-WinNMR or another xxxNMR? Can you compare equivalent calculations on your Mac and a Sun or a Silicon Graphics? Which is faster? I think the Mac is faster.
A final consideration is directed to those SwaN-MR users who complain because the name of SwaN-MR parameters ("basis points" and "complex coeff.") are cryptic. Here is the list of the commands and parameters reported (without explanation) in the last page of the second article: parlp dglp fn1 ni lpext1 lpnupts strtlp1 lpfilt1 gf1. Would you really like to find terms like these inside my program?
I would really like to receive comments from the readers. What do you think of my efforts? Suggested answers:
(1) I am not a true spectroscopist, because spectroscopists don't use the Macintosh by definition.
(2) LP will not meet success because four new parameters to learn are too many for the average chemist. When an auto-LP?
(3) A decade is the minimum delay between an invention and its commercial implementation.
(4) I am throwing pearls before swine.
(5) LP is a nasty trick.
(6) Cybenko has sold his method to Bruker for $1000000 and now he lives in Acapulco.
(7) I have written this page because I am trying to sell my implementation to Varian for another $1000000, give up with my job and move into Molfetta.
(8) A journal called Siam. J. Sci. Stat. Comput. only exists in my dreams. The same is true for Cybenko.
SwaN-MR version 3.4.5 will appear on the net within a few weeks.
Florence, October 13 1997
October is a month of celebrations. On Wednesday it was Maria Luisa's
birthday (she is two years now), yesterday my wedding anniversary (6 years).
On October 31 we can count five years of SwaN-MR. What can I say for the
occasion? I consider it one of the minor mistakes of my life!
(No reference to the above events is intended).
Now it really looks five years old. How many of you would buy a program so old? In fact SwaN-MR, in concept, has not changed during these years. The age also has its advantages: SwaN-MR is fast, because any Mac in production since 1996 exceeds its requirements. It is also very stable, full of features and finely tuned. In a single word: it is a mature program. Next year will say if this maturity is the beginning of the end or something better. The number of incoming registrations (only 5 in the last 4 months) is not encouraging.
Version 3.4.2 was not so stable, to tell the truth. Have you tried to open a spin simulation file with that version? Judging from your letters no one did. No one has reported it bombs the Mac. The bug was quite stupid and related to the use of an object oriented language like C++. It would never have occurred with C. There will always be some myth to demolish. Object oriented programming is a good thing, but it is not an improvement in stability. Only the continuous use of a program can increase its stability. The new version 3.4.3 is 3.4.2 plus the needed correction.
Many of you have probably received the Varian newsletter containing a review of Mestre-C. The fact that Varian is considering us is really important. I hope it will at least eliminate future problems in converting Varian spectra. The fact that newsletter did not mention SwaN-MR has secondary importance. You know I am more able in creating enemies than in creating friends, but Rolf Kyburz is too intelligent for not to come back on the subject and cite SwaN-MR in some future issue of his newsletter. In fact he is listed under "friends".
An observation that confirms a theory of mine: this morning I was at the department of Chemistry of the University of Florence and a researcher told me he has discovered Mestre-C because of the Varian newsletter. They have Mestre-C in their department since before the official release more than one year ago and he knew nothing!
This month I launch a challenge. Version 3.4.3 contains a bug which will not be included in future releases. Who can find the bug? It is a true big bug! Hint: it is related to the manual baseline correction.
Florence, September 4, 1997
I am releasing version 3.4.2. This could have been the right time to
stop releasing new versions. As far as I know, version 3.4.1 was exceptionally
stable and well featured. Yet I have this vice to change the program. Four
additions are really welcome and long waited.
1) Now, to change the frequency unit from Hz to ppm and back again, you simply have to type 'p' or 'H'. Much faster and simpler than before.
2) If there is too much crowding of integrals, you can now display only integer digits. The plot is clearer. Try it, it's nice!
3) Negative contours can be printed as dashed lines on PostScript printers.
4) If you like printing the manual, your life is easier now. Read the explanation in the first page of the on-screen manual.
It was also time to revise the manual. I spent several hours, and hope it is better than before. I have noticed that Italians understand the manual more deeply than non-Italians. Is it only my impression? I can't say I did my best, nonetheless I have spent plenty of time to write and correct this manual during the last three years. I need a voluntary to correct the language. Considering that half of the users come from US, not counting those from other English-speaking countries, I am waiting for a voluntary from there. Come on! All you need is a copy of ResEdit and a dose of patience.
Thanks to Henrik Anthonsen there is a new converter for Felix matrices. He is one of the few to understand what collaborating means. I still receive letters from people complaining because they can't convert some special format. You should know that in this peninsula called Italy there are only two brands of spectrometers. To write converters for other brands I need examples. The more, the better. I do not dream NMR spectra at night. Fortunately.
The Aspect and the Unity converter had serious problems with some files. I apported some little changes, let me know if they are enough. I also apported many small changes here and there. You may find some problems. All considering, a minor update. In fact my original intention was to wait till October; but I need to update this web site because it results offensive for someone. Updating the program and the web site simultaneously is simpler. That's all.
Florence, July 1, 1997
I think it's better to say it, otherwise no one will notice it. The 1D
FT is more than twice faster. A 16K (complex points) FT takes 0.15 seconds
on a bare Power Macintosh 6100/60. The 2D FT is, on the average, only 20%
faster (compared to version 3.4.0).
No new converter yet. What are you waiting for?
Florence, June 20, 1997
Presently there are two good versions of the program around. Version
3.3.5 is certainly the most stable version ever appeared. Someone of you
found a few defects in it, which I have corrected afterwards, yet I do not
consider them serious defects, only small imperfections. Versions 3.4.0
was a disordered one, but introduced brilliant ideas (plus a couple of bad
ones). These ideas are ripening very well and the time is coming to release
a new version. You will probably see it in the first days of July. The couple
of bad ideas will be missing: remember to read the manual! The single completely
new feature is the simulation of spectra in anisotropic phases. Version
3.4.1 is fixing two new world records: no other single program gives so
many options (1D, 2D and nD, static and dynamic simulations, and all the
extras you know) in so little space (less than 800K).
Unfortunately the new version will lack what you wanted the most: new converters. Writing them would have been not so difficult if only I had received the kind of collaboration I was asking for. When I have enough spectra to work with, I can do fine things. I find that the conversion of Bruker Avance spectra in version 3.4.1 is highly satisfactory. Only weighting functions are not translated and must be set manually. If you don't find the specific converter for your spectra either use the Universal converter or send me your spectra. Do not complain, it would only been irritating. I already know that some converters are missing. If you like to put questions, then ask me which kind of help I need. In the meanwhile Stefan Jung is writing a converter for Win-NMR files. It will presumably be finished before you can read these lines. Stefan will also try to write other useful stuff: be tuned! Try also convincing him to write other converters! I also welcome on these pages Michael Finucane, who is ready to help any of you who has the patience of writing a letter. Speaking of letters: can anyone of you explain why it is so frequent for non Italian people to mis-spell my first name? They often write Guiseppe instead of Giuseppe. Is it because the 'u' and 'i' keys are one near the other?
I have also modified Sweet J. Now it is more self-explanatory and the about box includes a few explanations. I have also corrected a little bug in it, but all these reasons were not enough for a new version. So I ported the program to the Power-PC and called it PPC Sweet J.
System 8 is still to come, but I warn you: you will suffer. Windows will have a thick border, stealing precious space to your spectra. I already wondered why I could see the whole spectrum on a 16" monitor connected to a Quadra while it was not possible to do the same on a 17" monitor connected to a PowerMac. With system 8 you will need a 21" monitor. They call it progress.
Finally I must thank publicly Gianpiero Colonna. He gave me just the kind of help I needed to make dynamic NMR working. Unfortunately he is very busy now and the collaboration has slowed down. I hope it will soon restart at maximum speed. For those of you who don't know Gianpiero, he is an example of the many brilliant graduates coming out from the University of Bari. Their team has returned in first division just last Sunday, as the whole world knows, but their graduates have always been first class graduates.
Florence, May 16, 1997
Version 3.4 was initially intended as a thanksgiving. The first lesson
I learned by SwaN-MR was:
"Writing a computer program is difficult. Selling it is much more difficult. Convincing people to use it is the most difficult thing". From 1993 to 1995 this was absolute truth. During 1995 and 1996 I was told about some people probably trying it. Only in 1997 I have discovered that someone else is really using it! The fact that you use it because it is free does not matter. It's less difficult. I reached the most difficult goal. So I wanted to give you a gift. At the cost of sacrifying my original intentions, I have added to SwaN-MR all the things you always wanted: graphical integrals, Varian-style "insets", digital filters and, last but not least, dynamic NMR. The problems began with the latter. The program is stable and in most cases its output coincides with the one generated by DNMR6. What about the minority of cases? After a lot of useless attempts I concluded that there may be a conceptual error.
Another, very recent, lesson that I received from the SwaN is that a program is perfect when no one reports a bug, even when when thousands of people see hundreds of bugs. It's just the official reporting that matters. I was than tempted to release SwaN-MR 3.4 buggy and unfinished as it is today. Just I had this aftertought: Let's warn people that the program is unreliable.
Repeat this exercise: build an AB2 system, with linewidth = 0.79, and chemical shifts 15.9 for A and 15.89999 for B; Jab = 1. Turn on the dynamic option. is everything OK? Now set all the chemical shifts equal to 15.9. I have a 601 and see strange things. The one of you who can explain what's happening will be formally praised.
The next version, presumably called 3.4.1, will be something which works. If dynamic NMR won't work I'll throw it away and version 3.4 will become a collection item. Please, let me know what you think about it.
Florence, April 15, 1997
I am presently working on version 3.4. You will see:
I hope to add also a little of dynamic NMR and this will delay the release date. For a few months version 3.5.5 will be the last official version around.