NMRpal
NMR calculator and data tables for PalmOS





NMRpal v1.2
This is the second official release of NMRpal. Since version
1.0.1 (released at ENC 2000), I've had a number of obstacles to doing concentrated
work on the program (a new kid (good!), and the death of my development
machine (bad!)) Well, the long wait is over! I have moved all
development over to the G4, and into CodeWarrior. The GCC prc-tools
are quite good, and I'd recommend them to anyone, but CW is frankly, just
better.
This is to some extent a transitional release, done to
some extent to make sure the code is stable on the new development platform,
however there are some new features to tempt you to upgrade.
Major features of this version:
-
Removed the opening splash screen for registered users.
I get the sense that the constant reminder to thank Varian was driving
people crazy, so it's gone at Steve's request, and as soon as you hit the
NMRpal icon, you drop into the last form you used (BTW, it was my idea
to put in the opening screen, so don't blame Varian if it irritated you).
-
Database I/O is now complete! So you can configure
NMRpal to your heart's content. I'm working on a database of in
vivo brain proton lines (which I would find much more useful in my
work than the standard chemical lines), but if you want to make your own,
now you can!
-
As said before, the development has been ported to CodeWarrior
(what this means to you the user is that I now have a stable development
platform, and so releases should be more frequent.)
-
The codebase has been ported to the 3.5 SDK, so it should
be easier to support new features in the future. Also, I imagine
it will look better on color devices (I can't afford one, but it looks
good in the emulator!) The program works fine on the v4.0 development
ROMs, so it ought to work for some time...
-
A lot of internal code reorganization and documentation (basically
correcting some of the slapdash coding I did in a hurry for v1.0.1)
-
Some bug fixes having to do with input of double precision
numbers (these would have only shown up in the 2nd decimal place or below,
so I don't think you have to redo any work you did based on something you
calculated in the program).
ACKNOWLEDGEMENTS:
Steve Smallcombe of Varian was very important in the development
of this program, both for a lot of helpful suggestions and for providing
most of the actual NMR data (nucleus properties, solvent shifts).
DISCLAIMER:
As is always the case with software licenses, I will claim
only that this is software. Any other claim about usability, warranty,
or the like is premature and irresponsible. You use this software
at your own risk - it may crash your machine, erase your data, or kill
your dog - I don't know (although I kind of doubt it would do the last
one).
That said, I have put in a fair amount of error checking
code, and the code has been pretty exhaustively checked out on the emulator
(if anyone cares, it has now survived 3.5 million Gremlin events before
I got bored and shut it off). When it does fail, it does so gracefully.
I use it daily on my machine, and this version has yet to do anything bad;
of course, it is still in active development, and I'm sure I've introduced
new bugs that I have yet to see.
CONTACT INFORMATION:
It is best to send me email about NMRpal at bbfcmm@rcn.com.
And, of course, you can go to the website to find the latest information
and program versions (http://users.rcn.com/bbfcmm/loafpan.html).
REGISTRATION AND PRICING:
This program is shareware. Try it out and see if you
like it. If you find it useful, and use it, please register the program.
If not, don't keep using it. I know it can be hard to get the
motivation to pay for something that you can use for free, but I did put
a lot of work into the program, and heck, it's just not that expensive!
Registration is handled through Kagi. You can register
either by using the Register program included in the distribution, or by
going directly to the LoafPan registration page here.
Kagi handles just about every payment method and currency you might want
to pay with (and charge me a pretty low fee for doing it).
The price for a license to use NMRpal for whatever you
want forever is a paltry 12 USD. C'mon, $12! Impress
your friends with how your copy doesn't keep bugging you every time you
change screens!
There are also two special categories of registration:
-
Members of the Varian Users Group - Free! Varian
has purchased a whole mess of licenses for its UG members. Please
contact them for a registration code (I'll put their website address here
as soon as I get it).
-
Graduate and undergraduate students - Free!
It's hard enough being in graduate school without people asking you for
money, and if you are an undergraduate doing NMR, good for you! This
is my way of encouraging you to go into the field. Use the program
in good health, and don't feel guilty when it asks you for money.
Take your $12 and buy food, beer, nachos, or just pay the rent. If
you send me email and the appropriate information, I'll even send you a
registration key. Of course, I won't check up on you to see if you
are a student, so please don't lie. After you graduate, be a good
sport and send a check (once you get out of debt).
DESCRIPTION:
NMRpal was designed for two purposes. The first is to perform
NMR calculations such as finding Ernst angles and the like conveniently
(as you're sitting in front of the scanner). These are simple calculations,
but I find that anything that requires more than 3 or 4 operations on a
handheld calculator, I'm likely to mess up.
The other purpose is to consolidate as much specific NMR
information as possible in a convenient form (properties and gammas of
nuclei, and resonance positions of lines). This is to help with the "conference
problem" - you go to ENC or SMR and see lots of talks and papers that make
you think about all the cool projects you want to do as soon as you get
back to the lab, ("Eureka! If only I had a nitrogen echo planar imaging
sequence...), and you can't wait to start doing back of the envelope calculations
to see if your brainstorms are practical. But of course, you didn't bring
a stack of reference books and papers with you, so you have to try to remember
if it's N-14 or N-15 that's the dominant isotope, and which one is spin
1, blah blah blah, so you have to wait until you get home to decide
if your idea is doable.
(Putting this data in electronic form is also useful if
your reference books have a tendency to wander into other people's offices...)
One (I think) cool feature of the way this data is stored
is that the reference information will be editable and sharable by the
user. I did this because I want NMRpal to be useful to as many people as
possible. Since I know nothing about many nuclei, it makes more sense that
other people can create and share databases tailored to their specific
needs. The database editor, unfortunately, is not yet done, so for the
time being, you have to use the canned database.
REQUIREMENTS:
NMRpal in its current incarnation requires about 80k to install
the program itself and the minimal set of databases. NMRpal also requires
MathLib, which takes another 55k or so, so the minimum installation is
about 135k. This shouldn't be a problem for any but the most RAM starved,
and if you've installed a lot of other math intensive programs, you may
already have MathLib installed.
COMPATIBILITY:
Because NMRpal uses a shared library (MathLib), it requires
PalmOS 2.0 or better to run. I have tested the program in the Emulator
under PalmOS 3.1, 3.3, 3.5 and 4.0 extensively, and minimally under 2.0.
I run it on a Palm IIIx running PalmOS 3.3, and have seen it on Palm V,
and even a PalmPilot upgraded to OS3. It really doesn't use any strange
OS features, so I don't have any reason to believe it won't work on any
3Com or licensee devices.
NOTE: This program currently does NOT work under PalmOS
2.0 due to a font problem. I will fix this when I get around to it
(not yet a priority).
DOWNLOAD:
Click the following link to download the NMRpal distribution
version 1.2.
nmrpal_1_2.zip
NOTE: Until I find a free tool to make .sit files, it's only in .zip format.
Since Stuffit for the Mac automatically decompresses .zip files now, this
should not be a problem for anybody. If it is, contact me.
nmrpal_1_0_1.zip
The previous release version of the software. I can't
imagine why you'd want it, but you might, so here it is.
INSTALLATION:
To run NMRpal, you must install the application and MathLib
on your device.
The zipfile distribution contains:
-
NMRpal.prc
-
MathLib.prc
-
NMRpal.html (this file)
-
Images (folder containing screenshots)
If you are currently using a previous version of NMRpal,
you can just install the new version and it will update any databases it
needs to. If you have a registered copy, the upgraded copy will also
be registered (that said, it's always a good idea to write down your registration
key before upgrading, accidents happen).
Use your palm desktop software to install the two .prc
files on your machine. The simplest way to do this is to use the install
conduit (the specifics are in the manual that came with your device - I
am only familiar with the Macintosh desktop software, so rather than say
something wrong, I'll point you to the documentation).
Alternately, if someone already has the program installed
on their device, they can just beam you both of these files (DON'T FORGET
MATHLIB! NMRpal won't run without it.).
When running, NMRpal uses a number of external databases.
If none are present NMRpal will create stripped down versions so you'll
be able to get some work done.
USAGE:
Yup, right about here, you'd think you'd find some kind of
a manual. Sadly, you'd be wrong. It would be nice if the external
documentation were done, but for the time being, you'll have to puzzle
it out. If you are familiar with NMR, it should be obvious what each
screen is for (if it isn't, tell me - this is part of the input I want).
In terms of actual use, there is helpful information in the program itself
- touch the 'i' in the circle in the upper right corner of any screen to
get help (explanation of input and output parameters, etc.) As of
version 1.2, all of the internal documentation is in place.
NOTES ON DEVELOPMENT:
For anyone who cares, NMRpal was originally developed using
the GNU development system (prctools-0.5.0) on a SparcStation classic running
RedHat Linux 6.1. Why would I choose this development platform?
Because MIT was salvaging out SparcStation Classics for 25 bucks, and I'm
a Linux fan, I was wondering if it could be done, and most of all, I was
saving my money for a new Mac. Testing was done on various versions
of POSE on the macintosh (originally on a very sad Powermac 6100, and now
on a spiffy G4/400 - finally got it!), and on Palm IIIx running PalmOS3.3.
For anyone wanting to try running POSE on a Sparc Linux box, I would say,
give up. Apparantly (and it took me a good week of tearing out my
hair to find this out) the Sparc assembler in gcc chokes on the nice, informative
long variable names used in the POSE source, so unless you recompile GCC
and glibc with new options, it will never work. Don't say you weren't
warned.
As of version 1.1, I moved over to using CodeWarrior
for PalmOS 6, and it is just a joy to use. No disrespect towards
the prc-tools - they served me quite well. But CW is much more polished,
and on the Mac it's really the only game in town (yes, I did try porting
prc-tools 2.0 to the command line layer of MacOSX PB, but I'd like to spend
the tiny amount of computer time that is left over after the slice reserved
for two little kids actually programming, not porting programming tools!)
CHANGE HISTORY:
Changes in v1.2
-
Database manager is finished!
-
Ported code to Palm SDK 3.5 for better support of color devices
-
Fixed rare bug in routine that reads double precision numbers
from fields
-
Broke code up into multiple segments
-
Internal code cleanup
Changes in v1.1
-
Codebase ported to CodeWarrior
-
Test version (no feature changes, not released)
Changes in v1.0.1
-
No timeout.
-
Program can be registered.
-
Added solvent tables to line finder
Changes in Alpha 6:
-
Adjusted timeout to 4/7/2000
-
Fixed sorting by spin.
-
Finished skeleton code for DB manager.
-
Adjusted gamma table and field values to agree with Varian
nucleus tables.
-
Added support for negative B1 values.
-
Eliminated separate preferences form.
-
Various little bug fixes.
Changes in Alpha 5:
-
Added support for using 0.1 dB (i.e. Signa TG units) steps
in the B1 calcs form.
-
Changed B1 calculations so the the dB number means gain (the
way the Varian and GE consoles implement it) rather than attenuation.
-
In the sensitivity sorting modes of the nucleus sorter, all
sensitivities are normalized to the currently selected nucleus.
-
Fixed nucleus sorting for absolute sensitivity and spin.
-
Now allow selection of nucleus in the Nucleus Sorter list.
-
Changed B1 calculations to report B1 gamma, and dynamically
scale units so that display doesn't overflow.
-
Sensitivity fields now switch to scientific notation to avoid
over or under flow of their respective fields.
-
Added documentation strings to T1 calcs, T2 calcs, and B1
calcs forms.
Changes in Alpha 4:
-
Changed timeout to March 28
-
When NMRpal is installed over an older version, database
and preference versions are checked and updated as necessary.
-
Database manager now exports B0 databases to Memopad (a first
step!)
-
Extended double precision printing to use scientific notation
when appropriate.
-
Changed some text field sizes so that data is not cut off.
-
Reordered some operations to reduce display glitches in lists
(not fully fixed yet).
-
Internal code cleanup to eliminate pedantic compiler messages.
Changes in Alpha 3:
-
Finished v1 of the B1 Calculations form (formerly known as
Attenuator Calcs).
-
Fixed bug where the selected nucleus reset to H1 when going
to Nucleus Infoform.
-
Fixed (ascending) sorting for atomic number, name, frequency,
and relative sensitivity. NOTE: Grrr. Sorts were done offline in
Excel, which (unsurprisingly for a Microsoft product) does not sort properly.
I'm redoing the sorts and hand checking and correcting them.
-
Enabled the preferences form, and added some fields (this
is still an early version of the form - it really should be modal).
-
Cleaned up some poor update behavior when list parameters
changed.
-
Enabled up/down hardware keys to scroll lists.
Changes in Alpha 2.1:
-
Fixed bizarre nucleus list spacing behavior
-
Excised the word "Almanac" (the "Almanac Info" form is now
the "Nucleus Info" form)
-
Added spin sorting (but it doesn't work)
Changes in Alpha 2:
-
Changed timeout to March 21
-
Added many B0 fields with frequency equivalents where appropriate.
-
When you are not in calibrated mode in the line finder, the
display reads "Nominal".
-
Converted to the Varian nucleus information.
-
Added absolute and relative sensitivity numbers to the Almanac
form, along with a popup to select what nucleus these numbers are compared
to.
-
Added the Nucleus sorter form, that lets you display all
nuclei sorted by atomic weight, element name, frequency, relative or absolute
sensitivity. This started out as the "show nuclei between two frequencies"
form, but expanded.
-
Added the skeleton of the Attenuator calculation form (still
doesn't do anything).
-
Added placeholder form for the DB editor, which still does
nothing.
If you have comments or suggestions (or are offering
money), email me at:
bbfcmm@rcn.com