NMRView3 Changes

Tk
The biggest change in NMRView 3.0 is that the GUI (Graphical User Interface) is created using Tk, a toolkit for building graphical interfaces. One builds a GUI using Tk by creating a script of Tcl commands. Tcl (tool command language) is the script language already used in NMRView. The GUI of the previous version of NMRView (2.x) was built using the Motif toolkit. With Motif, changes in the GUI could only be done at the level of the C programming language. This required recompiling the program for every change and demanded a detailed knowledge of both the C language and the Motif toolkit. With Tk the interface is defined in Tcl scripts that are simple ascii files. These can be read when NMRView is started up, or while NMRView is running. Thus the GUI can be changed without recompiling NMRView. While programming with Tk requires knowledge of the Tk toolkit and Tcl, this is generally less demanding than programming at the level of C and Motif. Furthermore, because the changes don't require recompilation, and can even be done while NMRView is running, very rapid prototyping of new interfaces can be done. As the author of the program this allows me to redesign existing features and add new interfaces much more quickly than before. Changes in the interface are also much less likely to introduce fatal errors that result in core dumps. For the end-user it means that the they can add their own interface panels and change existing panels. I hope that this new capability will lead to many novel features contributed by the NMRView user-community.

The GUI of NMRView 3.0 looks very similar to that of NMRView 2.x. This is because Tk, while independent of Motif, is designed to create interfaces with the Motif look and feel. Furthermore, I have created most of the interface panels such that they resemble those of the older NMRView versions. While they are generally, similar, most have minor changes that the user will hopefully see as improvements.

The Meschach Library
The second biggest change in NMRView 3.0 is the addition of a subset of the Meschach library. This is an extensive library of vector and matrix routines. The routines from the Meschach library have been provided with Tcl wrappers so that they can be accessed by the user from the Tcl/Tk interface, and extended with some NMR specific routines for operations such as phasing and apodization. The major motivation for adding these routines was to allow greater access to the NMR data such that the user could do such end-stage processing as rephasing the data with Hilbert transforms or baseline corrections, without resorting to reprocessing the entire data set. A consequence of this feature addition is that it is possible to do other extensive manipulations of the data such as data format conversions and complete data processing. NMRView should not be considered as suitable for a general processing package as many features such as linear-prediction or MEM are lacking. Still, the user may find that Meschach library in conjunction with the Tcl/Tk interface of NMRView may be useful for solving many processing-related problems.
Renaming and changing of routines.
The user with an extensive library of homegrown Tcl routines may be dissappointed to discover that many commands have been renamed. This has been done to bring NMRView closer into compliance with some conventions of Tcl programming. The biggest change is that most commands have been renamed to start with the prefix "nv_". For example, the command "win" is now "nv_win". Using package specific prefixes allows one to create versions of NMRView that incorporate other Tcl packages without fear of duplicate names. The addition of the "load" command in the newest version of Tcl allows one to dynamically load packages so it seemed appropriate to take this step to minimize the probability of conflict between Tcl packages. Also, some commands have been merged. For example, the "getpkval" command is now a subcommand of the "peak" command: "peak analyze"
MDV is replaced by molViewer.
MDV was not supported on all platforms so a platform independent Molecular Viewer has been built directly into NMRView. At present the MolViewer is still under development, and allows fewer display options than MDV did, but runs on all platforms and is more robust.
Datasets
Datasets can now be opened in a mode that allows them to be written as well as read. This was necessary to allow the processing capabilities to be added as described above.
Cursor Modes
The function of the cursor in the spectral display windows can now be switched into a variety different modes. The default mode, which is the same as in previous NMRView versions, is used to move the crosshairs around. There are several new modes to facillitate interactive peak-editing. In particular it is now easier to interactively add a single peak.