Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 1384

Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 700

Warning: Invalid argument supplied for foreach() in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 707

Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 700

Warning: Invalid argument supplied for foreach() in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 707
925-456-1020 info@acornnmr.com

NUTS What’s New

Warning: preg_match(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 1384

Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 700

Warning: Invalid argument supplied for foreach() in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 707

Warning: preg_match_all(): Compilation failed: invalid range in character class at offset 4 in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 700

Warning: Invalid argument supplied for foreach() in /home/customer/www/acornnmr.com/public_html/content/plugins/lightbox-plus/classes/shd.class.php on line 707

Corrections and additions to NUTS NMR processing software

command log and FB –
Added details of FB to command log, including zoom limits used for the baseline correction and the coefficients found during the fit.

command log and ID – Mouse operations within ID are now logged, including creation of each sub-integral, clearing sub-integrals, deletion of a specific sub-integral, and setting a relative integral value.

GF – the minimum value for GF was changed from 0.1 to 0.01

DR – a problem with print margins for relaxation plots was fixed.

HI –
Scaling of the sum of descriptors was change from 1 to 10,000 to allow greater dynamic range.

SP – Slice limits for stacked plots were initialized to show all slices rather than just slices 1 and 2. If zoom limits for slices have been set, those limits will be used.

Command Log – Added the macro path and filename, and all lines in the macro, to the command log.

LP –
The frequency ratio used for referencing X-nuclei relative to the 1H frequency of TMS, CHI, is now included in the parameter listing. For clarity, it is described as “Frequency Ratio”, rather than CHI.

IM – When the JEOL Delta software processes data acquired with digital filtering, it automatically clips 10% off each end of the spectrum. The SW parameter listed in the file refers to the spectral width before clipping, so NUTS was reporting the SW incorrectly, and the axis was therefore displayed incorrectly. NUTS now reads the “fft_clipped” parameter, and if its value is TRUE, NUTS reduces the SW to 80% of the SW value read from the file.

– Importing of some JEOL Delta processed data files displayed an error message (“Ran out of input data too soon.”) if the data processing had included baseline correction. The cause of the problem was that the Delta software eliminates the imaginary half of the data after baseline correction. NUTS was not correctly recognizing that the data were Real only, not complex. This was corrected, and the error no longer appears.

ID – When defining sub-integral regions, the right-hand limit was being set one data point beyond the cursor position. This only resulted in an incorrect value when the end of the integral was not at the baseline, such as selecting a shallow valley between 2 peaks. This was corrected.

A new spectrum parameter has been created, called CHI, which is the X-nucleus frequency ratio relative to 1H. The CHI value can be set in a macro, and is used in absolute chemical shift referencing. This parameter is saved with the file along with other acquisition parameters, NOT in the file tailer.
Its value is initialized to 1 before every file read and file import, to avoid inadvertent carry-over from file to file. If this parameter is found when opening a file, it will be read in. This was created to facilitate referencing of X-nucleus spectra using the “unified scale”, as recommended by IUPAC.

Macro – new macro commands have been created:
DO MATH CHI Set CHI to the value in Register 0
DO MATH MEMORY x CHI Put CHI value into Memory x
DO MATH REGISTER x CHI Put CHI value into Register x

See the Help file on Sample Macros.

IM – Import of Bruker Xwin/TopSpin data was not correctly reading the indirect dimension spectral width from the acqus2 file. Previously, the parameter was ##$SW_h in Hz, but other files contain ##$SW in ppm. NUTS will now look for both parameter keywords.

The 1H TMS frequency is now written to the file header with 7 decimal places, instead of 6.

LP – The 1H TMS frequency is now included in the LP parameter list, if its value has been set.

– fixed a bug in the use of the IF command

GR –
When interpolated peak height is used to measure peaks in a series, the actual peak intensity is used. Previously, the peak height was measured relative to the largest peak being 100, which resulted in too few significant figures in the heights of small peaks.

IM –
Bruker Xwin and TopSpin data contain the date in the acqus file in 2 different ways. The ##$DATE parameter is the time as GMT, encoded in a standard manner, and that is the date NUTS used previously. There is another entry, following the line ##OWNER, that contains a text string with date and time. NUTS is now reading 24 characters from that line, if present, and using that as the date. If that line is not present, NUTS will read and decode the ##$DATE entry.

NS –
Chemical shifts and coupling constants are now initialized to zero when the program starts, avoiding display of bizarre values when NS was started the first time.

NS – The ability to select from 2 options for the matrix diagonalization algorithm has always existed, but was not documented. This is now available from the parameters dialog box within the NS routine. By default, an algorithm called QL is used because it is faster. However, for highly symmetrical spin systems, this can fail. The Jacobi algorithm can be selected instead, and this will work where QL fails.

Cursor – Fixed a couple of bugs with cursor L command, which creates a “Note” to label a multiplet with coupling value.

IM –
Importing of GE Med Systems version 14 files was added.

DR –
Equations for first-order kinetics have been added to the DR routine, used for analysis of relaxation data.

PH – The mouse phasing routine was modified so that setting of the pivot point and phasing with PH now work with an expanded (zoom) display, and not just in full display.

IM –
Importing of Siemens .rda files was failing with a NUTS crash if the file did not contain any text for “Study Description”. This was fixed.

GR –
The GR command was modified to copy the list of integrals to the clipboard. The list can be pasted into a text editor or spreadsheet. The maximum number of integrals was increased from 64 to 256. Note that relaxation analysis with DR is still limited to 64 values.

LP –
Display of parameters on the spectrum was modified to stay in the upper left corner of the plot regardless of the zoom limits.

DT –
fixed a bug that could cause NUTS to crash when a data table or parts of the table were deleted.

– This (non-2-letter) command causes NUTS to re-read the nuts.ini file, resetting default parameters. In some cases, it is useful to have different nuts.ini files, so this command has been modified to allow a file name to be specified.

DT –
the contents of a data table can be placed into the clipboard in the format recommended by ACS for journal publication. There are 2 commands, for 1H and for 13C data. The commands must be entered in the non-2-letter command mode (2F). The data table must consist of the correct columns, in the correct order, or the command will either fail or yield nonsense. If some information is missing, it will be ignored.

For 1H output, the data table must consist of these columns, in this order, which is the default data table created by the DT command:

ID 	PPM 	Mult 	#Hs 	J 	Assign 1 	6.67 	d 	1 	8.7 	8 2 	3.85 	s 	3 		15

dt hacs – outputs the above table to the clipboard as: 1H NMR: (399.8 MHz, CHLOROFORM-D) delta 6.67 (8, d, J = 8.7 Hz, 1H), 3.85 (15, s, 3H);

For 13C output, the data table must consists of these columns, in this order, which is the default data table created by the “dt getpeaks” command:

ID 	PPM 	Mul 	Comment 1 	119.6 	CH  2 	112.9 	q  3 	91.2 	CH2

dt cacs – outputs the above data table to the clipboard as: 13C NMR: (100.5 MHz, CHLOROFORM-D) delta 119.6 (CH), 112.9 (q), 91.2 (CH2);

– It is now possible to specify vertical font orientation, which can be set in the dialog box when the note is created and edited. The font orientation is saved with the Note in the file “tailer”, and read back when the file is opened later.

DT – When chemical shift values are loaded into the table with the “dt getpeaks” command, it is now possible to choose whether the list will be ordered as increasing or as decreasing ppm values. The command is “dt ppmorder up” or “dt ppmorder down”, and must be set before the getpeaks command is executed.

DT – If a table already exists, the command DT asks the user if the current data table should really be deleted. The YES response was not being properly processed, and the operation aborted. This now works correctly.

DT – The default table created with the DT command was altered so the columns match the ACS guidelines for listing 1H NMR data.

– The test for JCAMP files was testing for “JCAMPDX=” or JCAMP-DX=”, but failed if there was a space before the equal sign. It now checks for both with and without the equal sign.

DT – Spaces were inserted in empty cells when a data table is saved as a tab-separated file, so data is displayed in the correct cells when the file is read back at a later time.

DC – The DC routine is used to adjust the vertical position of the spectrum. Typing 0 while in the DC routine sets the spectrum back to the bottom of the window. It is now possible to enter a number from 0 to 9, to set the vertical position to incrementally higher up the window.

LF –
When a text file is written containing LF peak information, AREA is now being written to the file, along with frequency, intensity, line width and fraction lorentzian. The AREA value is not read when the file is read back in.

– It is possible to set the phasing pivot point while inside the PH routine. Place the mouse cursor on the chosen peak (with or without pressing the mouse button) and type P. A vertical red cusor is drawn at the chosen peak, to show the pivot point.

nuts.ini – When specifying a nuts.ini file to be used when launching NUTS, an error message was displayed. The specified nuts.ini file was still being read correctly, but the anomalous error message was confusing, and has been removed.

DT –
To make navigating around a Data Table easier, the arrow keys move between cells and rows if a data table is currently displayed. If there is no data table, the arrow keys scale and scroll, as previously.

PE –
added status bar notation when entering PE subroutine.

Now that border spectra are aligned by ppm, not by Hz, the SF value must be initialized for each of the projections, in order to use actual projections of the 2D data. The SF values weren’t being set, so the projections weren’t drawn. Fixed.

WV –
The apodization function displayed in the Window View subroutine was being drawn off scale for a Traficante (TF) window function. The display has been scaled to correct that.

IP/CP – When switching between homonuclear and heteronuclear 2D data, mis-match between border spectra and 2D data could cause a crash due to attempting to draw points outside the actual range of data. This was corrected.

LL, DT and CP
– added new commands that work with the Line List and Data Table features while displaying an intensity or contour plot. Select a cell in a data table that contains a chemical shift. The commands HL and VL will draw on the contour plot a horizontal line or vertical line, respectively, at the corresponding chemical shift.

CP – Setting the chemical shift using the cursor did not result in very accurate results, due to integer round-off and limited digital resolution. This has been improved, and works best if “interpolation” and “snap to maximum” are un-selected in the dialog box. More decimal places are now displayed for chemical shift values.

CP – a slight mis-alignment between border spectra and the axes was corrected.

QP, AP, QA –
Made auto-phasing “array-aware”. When in arrayed mode, when auto-phase of a slice is completed, the resulting phase correction is applied to all slices.

Cursor – (1D display only) – A new function has been added to the routine that displays frequency information at the cursor location. In the Base level of NUTS, while the cursor is displayed in “difference mode”, typing L on the keyboard creates a text annotation (or Label) at the cursor location. The text displayed is the frequency difference, in Hz, corresponding to the cursors. This allows multiplets to be labeled with the measured coupling. The text is a “note” and can be edited or deleted from the Notes subroutine.

DT – Fixed an error with appending and inserting a column in the table. The error arose because the width of the last column was not properly initialized.

– d and u subcommands disabled

Menus – QB added to the main menu; a few other items were rearranged

display of high-resolution “border” spectra on 2D plots was changed to align 1D and 2D spectra based on ppm, rather than on Hz. This allows border spectra acquired at different field strength from the 2D data to be used.

Zoom – D and U subcommands disabled

PH –
To make phase adjustments faster for real-time phasing, the number of points used for the PH routine is smaller than the total data size. This can make it harder to see small changes during phasing. The number of points used for reduced data display was increased from 1024 to 4096.

IM –
Bruker XwinNMR and TopSpin imports were changed to read SW in ppm and then calculate SW by mutliplying this be SF. The SW_h value in the acqus file is not the correct value for sweep width.

DT –
Display of the data table while in 2D display mode was enabled. Two new data table commands were added. While holding down the left mouse button, typing 1 places the chemical shift at the cursor location of dimension 1 into the currently selected cell. This is the same as the “S” command. A similar command, 2, was added to place the dimension 2 chemical shift into the data table.

DT – menus for some data table commands were added to the Tools menu.

VW –
Added a menu for this subroutine

IM –
When importing GE Med Systems data for Version 11 software, a byte swap was being applied to the SF value, resulting in an incorrect value. Removing the byte swap seems to give the correct SF.

IM –
The pulse angle parameter was not being initialized before a data file was read. This caused the value fr
om a previous file to carry over to a new file, if the new file did not contain a value for this parameter. Pulse angle is now initialized.
For Delta imports, the pulse angle is obtained either by reading x_angle or it is calculated as 90*x_pulse/x90.

DP –
While in 2D Zoom display, the labels for 2D peaks not within the current zoom region were being displayed above and below the plots. This was corrected by checking to be sure the peak is within zoom limits in both dimensions before the label is printed.

EP –
This new command operates only in 2D display mode (IP and CP), and displays the Edit Display Parameters dialog box, which allows setting of plot margins and scaling factors for spectra displayed along the borders of the 2D plot.

Borders – When selecting spectra to be displayed along the borders of a 2D plot, NUTS now “remembers” the previously selected file, making it easier to select the same file for borders along different sides of the plot.

IS – In the Inset Plots subroutine, the mouse can be used to draw a “rubber band box” around a region of the spectrum, which selects that region as an inset. If the user were to click the mouse, instead of dragging, the selected region consisted of just one point. This caused NUTS to crash. The program now checks for this to prevent a crash.

FJ – This new command sets the font used by the Compare function and the molfile subroutine.

DP – When working with 2D data, numerical peak labels were being reset automatically, causing loss of labels set by the user. This was corrected.

DP – A new subcommand, P, was added. This command generates a list of peaks containing just the ppm values and the label for each peak, and copies this list to the clipboard. Tabs are used to separate columns. The similar command, T, generates a list containing ppm, Hz and intensity values, which is sometimes more information than the user really wants.

The acquisition time (AT) was being calculated from SW and data size for display in the parameters dialog box and with the LP command. But size or SW might be changed during processing (eg, zero-filling), causing AT to change. AT is now calculated at the time the data is opened, and remains unchanged.

Two new parameters were added to the LP list: FID data sizes in the first and second dimensions. These are calculated at the time the data is opened, and remain unchanged during processing (eg, zero-filling). Two numbers are now printed on plots for pts1D and pts2D – the first is the FID size, the second is the current data size.

FN – A problem with File New command was fixed. The command was created to set
parameters such as size, SW and SF in the absence of an actual data file. This is
needed for spin simulation. When the Cancel button was clicked, parameters were not
being set back to their original values. Fixed.

DT – The ability to copy a Data Table to the Windows clipboard was added. The new command is a non-2-letter command, “DT clipboard” or “DT clip”. The table is copied with tabs separating the columns, for easy pasting into a report or spreadsheet.

IM – A pulse angle parameter was added to Nuts. The Jeol Delta import routine now imports x_angle, and (if non-zero) prints this value on the bottom of plots and in the LP list, along with the value in usec. The pulse angle is also displayed in the Acquisition Parameters dialog box.

IM – JEOL Delta files have a field they call “Comment” (which is not the same as the Comment field in NUTS). The import routine now appends the contents of this field, in parentheses, to the NUTS comment field (which is derived from JEOL’s Sample ID field). Usually, this additional information is a short description of the experiment that was performed.

The DP and LF subroutines were modified to utilize tabs in lists of peak information, if the TB (tabs) option is set to TRUE. This facilitates pasting the list into a spreadsheet.

IM – Importing of data from the new Varian Direct-Drive spectrometers was implemented. The format includes only one small variation from the old data – bit 7 of the data block header (labeled “acqpar) was previously unused. It is now being used to flag ddr data. (This change occurred with a software patch, not in the original software version.) NUTS was, erroneously, reading bit 7 instead of bit 5 as a flag for hypercomplex data. This caused NUTS to read the new Varian data files incorrectly. This has been fixed.

When setting Zoom limits (ZO subcommand F), the limits were incorrectly being reset
when the dialog box closed. This was corrected.

IM –
Import of GE Med Systems data was modified to accommodate software version 11.

IS – The inset plot subroutine has been changed to allow the region for the inset to be selected with a 2-dimensional “rubber band” box instead of using the currently displayed zoom region.

A problem with display of axes was fixed. The symptom was the axis could be drawn starting at the wrong screen position if the displayed region began with a negative chemical shift.

MO –
The MetaObjects subroutine can be used to create inset plots that include integrals and/or peak labels (if they are displayed on the screen at the time the inset is created). By contrast, the IS subroutine does not display either integrals or peak labels.
One problem with the MO routine was that the font sizes used for integral and peak labels were being scaled to be too small to be legible. This has been corrected.

CD –
The Color Display command sets the display to whatever colors to user has defined in the nuts.ini file. It is the inverse of the BW command (Black and White Display), which changes all colors to be displayed as black. The CD command also turns on the option to print in color, but BW does not set colors for printing to black only.

MP – Monochrome Plot – This is a new command sets the printing option so that all colors are replaced by black. The colors shown on the screen are not changed. If color printing is enabled, printing to a non-color printer will cause the colors to be represented by shades of grey, which may be too faint to be clearly visible.
Whether or not printing should be in color is set in the nuts.ini file with the command “print_color” which is set to either TRUE or False. This option can also be set from the File/Page Setup menu.
By combining the two commands, CD and MP, the display can be set to color and printing set to black and white, from the keyboard and in Links and Macros.

SP –
When the “zoom” limits were set in the stacked plot subroutine, ppm values were being calculated based on the frequency of the center of the spectrum, rather than 0 ppm. This error could cause the expanded display limits to change slightly on closing the dialog box, causing the spectrum to appear to jump left or right.
The calculation of frequency limits has been changed to conform to the NMR convention, which is that the value used is the frequency at 0 ppm. The difference is usually insignificant unless observing alow frequency nuclei with large chemical shift range, where the spectral window is offset from 0 ppm by a large amount.

ML – In the molfile subroutine, the D subcommand deletes the current molfile. The command was added to the Edit menu.

nutsini – This command causes NUTS to reset default values by re-rea
ding the nuts.ini file. An error was causing the current data to be deleted when this command was executed. This has been corrected.

A programming error caused some commands to be misinterpreted by NUTS. In one case, typing RH (a non-existent command) was interpreted as UH (Update Header). This has been corrected.

cmdlog – When a previously processed data file is re-opened, any new commands should be appended to the previous command log. A bug was causing the previous command log to be replaced. This has been corrected.

PL –
The print setup dialog box had been changed in the course of debugging some print problems. It has now been set back to the correct “setup”.

BU – When changes were made in the BU properties dialog box, the buffer scale factor was being reset, due to having designated too few digits for this value. More decimal places were added, correcting the problem.

PN – This command should turn on display of peak labels. It was also selecting the option of displaying the peak information label instead of the user’s setting of ppm, Hz or text label. This was corrected.

NS –
Changes were made to the matrix diagonalization routine, resulting in a speed improvement of
about 2x.

NS and ZO – A problem with Zoom-within-Zoom while in the NS subroutine was fixed.

RD – Right-hand rotation did not work properly for 2D data. This has been fixed.

IP and CP – An error in how the axis tick marks were calculated for 2D displays caused the tick marks and ppm numbers to extend past the end of the plot, if the low-field end of the plot was a negative chemical shift. This was fixed.

CP –
A couple of bugs were fixed that had been created in the process of the speed improvements for contour plots, that caused drawing outside the plot limits and gaps in contour lines.

PL – Printing to a .pdf document was inconvenient because the Adobe PDF Writer insisted on creating a separate disk file for each page plotted, and combining the files is tedious. New commands were created to allow multiple plots to be spooled to a .pdf document together. New command “startdoc” tells NUTS to plot but without closing the “document”. Successive plots can be spooled, but are not sent to the printer until a “enddoc” command is given.

Implemented suspension of command logging while in a Link. For 2D processing in non-arrayed mode, every command in every loop of the Links was being logged, making the command log section of the file header huge, and consequently re-opening the file was very slow.

Preliminary branching capability has been added. An IF statement can be used to either execute or skip the line immediately following. In the macro below, the first few lines place the solvent name (text string) into a text buffer called “strcmp”. The IF statement tests whether strcmp is equal to cdcl3. If it is, the macro executes the line after the IF statement (sets the tallest peak to 0 ppm). Otherwise, that line is skipped. Note that this operation is case sensitive!

if strcmp cdcl3

Currently, the only other use of IF is for nucleus, as shown here. The first 3 lines put the current nucleus name into the text string buffer.

if strcmp 13C
set LB 2

It is now possible to include labels and GOTO statements. The destination of a GOTO may be either before or after the GOTO. The label must begin with a colon (:). For example, in the macro below, the FT command is skipped.

; the program will jump to the “:theend” label
; and bypass the ft command
goto theend

NU – This command returns the current nucleus parameter, and allows the user to set the nucleus type.

ini or nutsini – reinitializes parameters to those defined in the nuts.ini file.

DT – If a data table already exists when DT is typed, NUTS asks if the current table should really be deleted and replaced with a new, blank data table. This was added to prevent accidental loss of data.

All versions of NUTS, including Shareware and Lite, are now able to display (but not process) 2D data files, except those processed and saved using the phase-sensitive array mode 2.

CP –
Changes were made to speed up drawing of contour plots by reducing the number of calculations performed. Contour plots are now about 4x faster. The contour plot is calculated and drawn to memory, then that image is copied to the screen. This means that with a large contour plot, you no longer see the screen paint from bottom to top as the calculation proceeds. To avoid having the screen blank during the calculation, an intensity plot is displayed, and is replaced by a contour plot as soon as the calculation is complete. If display mode is changed to Slow Display (SD), drawing to memory is skipped and the operation is performed as in older versions. Returning to Quick Display (QD) switches back to drawing to memory.

IP/CP and PL – After printing in 2D display mode, the screen was not being redrawn. This meant that the cursor position could not be determined, causing failure of the frequency readout generated by the “target” cursor and selection of a new zoom region using the cursor. The problem was fixed by forcing the screen to be redrawn after every plot.

PH and PE – The nuts.ini preferences file allows the user to select the direction of mouse movements to be used when phasing with PE and PH commands. The choices are left/right or up/down or a combination. An error was discovered that affected implementation of up/down mouse movements in phasing, causing the phase to jump when attempting to phase. The error was corrected.

IM –
An error was corrected involving conversion of Bruker Aspect 24-bit numbers. The error involved the least significant bits, so resulted in a very small inaccuracy in parameter values imported.

– Importing of JEOL Delta 3D data was expanded to include data that are complex in all 3 dimensions.

Warning: The new import is still being tested.

Previously, this only worked for data that were real in both indirect dimensions. In the process, an error in importing the (complex, real, real) 3D data was fixed.

– The Spectrometer/Data System information captured in the import process was added to the file headers and can be viewed with the IF (info) command. This information was then used to help determine the RD points to rotate for processing digitally filtered data.
As more types of imports now require cyclic data point rotation, determining the number of points to rotate was becoming more complex. Some errors in this logic were found, so the logic for determining the number of points to rotate data before FT in the RD command was revised to use the Spectrometer/Data System information. Note that because the Spectrometer/Data System information is now used, modifying this field can lead to unpredictable results when doing FT and RD.

IM –
An Import filter was added for Siemens RDA data.

BU –
A label (comment) for the base spectrum was added to the buffer routine. The comment is printed near the base spectrum with the same text characteristics as the first buffer’s comment in the buffer linked list.

SY –
The symmetrize
command was expanded to accept an argument in the non-2-lettered command mode. This command was designed to symmetrize a 2D spectrum from a J-resolved and tilted data set. Without an argument this command’s usage remains unchanged and symmetrizes a square 2D spectrum about the diagonal. With the argument “tilted” this command symmetrizes a 2D data set about its vertical center. The minimum absolute value of the mirrored data points is retained and the larger value is discarded. The command syntax is:

SY tilted

– Several changes were made to the Command Log function to correct errors and capture more parameters.

DT –
New command to create an editable Data Table on the NUTS screen into which can be placed text and spectral data such as chemical shifts and coupling constants.

IM –
The importing of Bruker TopSpin data was changed such that the XWin importing procedures are used instead of the more general Bruker Unix imports.

IM –
Importing of JEOL Delta data was enhanced to get more parameters.

IM –
Importing of JEOL Delta “Small_two_D” data was added.

IM – The JEOL Delta import filter was modified to detect when digital filtering was used, and to set the number of points that need to be rotated with RD before FT. If the oversampling factor is 4 or 8, this is set to 19 points. If the oversampling factor is 2, this is set to 17 points.

AI –
The Automatic Integration routines were modified as follows. Continuous segments with no peaks above MH are ignored. The RM value can be used to change the sensitivity by which AI determines which segments have peaks. In the non-2-lettered command mode, the AI command will accept some arguments:

AI segments number – sets the number of segments the spectrum is divided into to look for segments which contain peaks. The default is 256 segments.

AI show on – turns on a displaying mode showing segments identified as having peaks.

AI show off – turns off the above displaying mode.

AI show – toggles the above displaying mode.

CP and IP –
When the flag to force square 2D plots was turned on, the outer extents of the plot were square but the actual 2D plot was not square due to possible margins and room for the parameters. So the plotting routines with this flag active were modified to make the 2D contour or intensity plot itself square.

This command was added to allow the user or a macro to turn on the forcing of square 2D plots. When used without arguments, it toggles the current value of the variable to force printing of square 2D plots.
The command also accepts two possible arguments:
square2d on
square2d off

metafile –
a command was added to allow the user or a macro to create metafiles to the clipboard. With no arguments NUTS generates an enhanced metafile to the clipboard. There are two possible arguments:
Metafile enhanced_standard_clipboard
Metafile enhanced_printer_clipboard
The first example uses a screen device context to generate an enhanced metafile. The second example uses a printer device context to generate an enhanced metafile. This is to allow the use of the printers higher resolution device context.

sum –
the sum command was expanded to allow the summing of planes in a 3D data set. When the second argument of the “sum” command is “planes”, all planes of a 3D data set are summed into a single 2D data set. The command also takes additional optional arguments allowing the user to specify the starting and ending planes to sum. The original 3D data set is destroyed and replaced by a new 3D data set which has only one plane. The command must be used in the 3D arrayed mode.
sum planes <start> <end>
The previous usage of the “sum” command to add slices of a 2D data set remains unaffected.

IM –
The JCAMPDX imports were modified to read a chemical shift reference value with FIDs and spectra used by Varian JCAMPDX exports.

Ernst Angle
– A non-2-lettered command was added to take in the total recycle time and the T1 for an acquisition and return the Ernst Angle.
ERNST <Total Recycle Time (sec)> < T1 (sec) >

PPM Values
– Previous changes to the way NUTS calculates PPM values were incomplete when in the axis routine. NUTS now calculates PPM values by dividing the Hertz chemical shift value by the spectrometer frequency for zero PPM. The axis routines were updated to do the same thing.

IM –
The Varian import routine was changed to read the refsource1 parameter to set the correct value for the indirect dimension SF.

IM – Corrected a problem with the Elscint import by explicitly resetting the pointer to the beginning of the file before the first read.

FX –
the FX routine was updated to work in the pairwise arrayed mode when the B pair is zeros such as when entering the arrayed mode with the command:
ar tppi2pairwise

BU –
The buffers routine was updated to have different user settable pen widths for the screen and printer.

ED –
The ED command was updated to work with data in the pairwise arrayed mode.

IM –
Philips changed their type 2 header file. The import routine was changed to correctly identify both types when importing.

BU –
The Buffers routine was modified to allow changing the Y offset position of the buffer label. Also the background of the label was changed to allow TRANSPARENT or OPAQUE modes.

IM –
Several corrections and additions were made to the import filter for Tecmag Apollo (WinNT) data files. NUTS now reads the FFT flags, observe SF, chemical shift referencing, Comment, pulse sequence name and spectrum reverse flag.

Command Log
– The command log was being initialized when opening a new file but not when importing a new file. The result was that imported files contained the log of the past file upon import.

ML –
The routine to read MOL files would crash NUTS for certain types of corrupted MOL files. Some checks were added to allow recovery from these corrupt MOL files.

Print – A print problem on Win98 using some HP printers was corrected. The symptom was that only text, and not the spectrum, appeared on the plots. The problem was caused by the printer drivers incorrectly drawing the box around the perimeter of the plot. Despite being instructed to make the box transparent, it was being filled with the default background color, obscuring the spectrum. The problem did not appear on older versions of NUTS because the box was drawn first, and the spectrum drawn on top of it, so the opaqueness of the box didn’t conceal the plot.

Copy – The above problem also affected copying a spectrum using printer device context. This appeared to affect all operating systems. It has now been corrected.

OF –
Routines in NUTS were modified to calculate the PPM from the hertz based on both the SF and O1 values as opposed to just the SF value. Some small errors were observed with very wide sweep widths by not using the frequency of the zero reference frequency for that nucleus.

IM – Offset value importing was added for GAML imports when the GAML data is in the frequency domain.

S2 –
The S2 command was restricted to 2D and above NUTS versions. To accommodate users doing arrayed 1D T1 data sets, this restriction was changed from 2D versions to 1D and above

FF –
The FindFile command had a initialization/de-initialization problem if a user, macro or link failed to find ALL files in a directory during its use. A change was made such that the FindFile routine is correctly de-initialized upon completion of a macro.

A FF command line argument (reset) was also added to allow the user or a macro to force the FindFile status to be de-initialized.

IS –
Arguments for inset plots were added to allow the user to change the default position and size of insets when they are added. The values for the arguments are fractions of the screen’s size. For example, “IS xpos 0.01” would change the default position of the insert to be 1 percent of the screen from the left. The syntax is:

IS xpos fraction
IS ypos fraction
IS xscale fraction
IS yscale fraction

where “fraction” is entered as a number between 0 and 1. (0,0) is the top, left corner of the screen.

BU –
The BUffers command was reworked. Previously, 10 buffers were allowed, and manipulations were done via the menus. The new routine has a GUI, link-list focus. The limit on the number of buffers is now a matter of how many spectra can practically be fit on the screen. Any of the buffer spectra can be selected and a properties dialog box displayed to allow editing (color, line width, amplitude, vertical offset). The scale and offset of the selected buffer spectrum can also be adjusted interactively. See details.

LL –
A routine called PPM Lines or Line List was added to allow placement of horizontal and vertical lines on 2D contour and intensity plots to aid in spectral interpretation. See details.

– A routine called MoLecule (ML) was added to display Molfiles as structures on the screen. See details.

IM –
The GE Medical Systems import filter was updated to import the GE version 8 header and to take in data from either the SUN unix computers or the new Linux computers.

Command Aliases
– The use of a COMMAND.INI file to assign command aliases was removed from NUTS

IM –
The import filter for GE Medical Systems spectroscopy data was expanded to cover versions 7.x, 8.x and 9.x.

BU –
The ability to save a spectrum with the current Buffers was added to the File menu of the BUffer routine.

New Win version posted that corrects a problem with Bruker imports, the SR command and FT of digitally filtered data.

AR –
A new arrayed mode and associated data structure was added. The new mode is 4D Complex Arrayed mode which packs the data into a 4 dimension data matrix. It has its own ProcessType (PT) similar to the Generic 3D called Generic 4D. Once this mode has been set with the PT command, the AR command will automatically enter this mode when issued without arguments. The AR command with the argument “4” or “4D” will force the arrayed mode to start in the 4D Complex Arrayed mode. The FT and EM commands are now “array aware” of the 4D mode and the Acquisition Parameters Dialog box (CO) will display the parameters for all dimensions when there is a point count greater than 1 in the 4th dimension.

Truman Brown has supplied some CSI spectroscopy data which is a 4D data set (512 complex by 8 by 8 by 8) and an import filter for this data has been written and depends on the presence of two files: NAME.ddf and NAME.raw. The DDF file has the parameters in a specific format and the RAW file is the data points as 2 byte integers in big endian format.

– An import filter for images supplied by Truman Brown was added to the import filters. A new routine to display these images was added ==> 2-lettered command MR or non-2-lettered commands MRI or IMAGE. The command has several optional arguments:

1. IMAGE (Actualsize or A) displays the image in the same number of pixels on the screen as the image has. Otherwise the image is scaled within NUTS.

2. IMAGE (NegativeImage or Negative or N) toggles the display of the negative of the image. Another argument is allowed which can be ON or OFF which allows setting this feature in an absolute manner.

3. IMAGE (SquareImage or Square or S) toggles the forcing of the image to be square; otherwise the image is scaled within NUTS. By default NUTS starts in the square image display mode.

– A command was added to tilt a 2D data set. With no arguments the command will tilt the 2D data set 45 degrees in hertz in a counter-clockwise direction. The command also recognizes a “C” or “”CC” argument which defines the direction of the tilt to be clockwise or counter-clockwise respectively. If these arguments are not followed by another argument the amount of tilt is 45 degrees in hertz. An additional argument is taken as the number of points to tilt per slice (fractional points allowed).

If the TILT command is given with an argument which is not “C” or “CC” then the argument is taken as the number of points to tilt per slice (fractional points allowed) and the tilt will by default be in the counter-clockwise direction.

Title Bar
– The files comment was added to the NUTS application title bar at the top of the NUTS window.

IM –
There were somewhat duplicate fields in the NUTS header: “Owner” and “User”. To avoid confusion the “User” field was eliminated and all references to “User” and “Owner” were directed to the “Owner” field.

2D Menu
– Some of the key stroke shortcuts for the display of 2D projections on the side of intensity and contour plots were not working. No reason could be found so the shortcut keys were eliminated and the resources re-compiled. The shortcuts were then re-installed and the resources re-compiled and they now work again.

– The commands have been changed from their previous operations. Before they moved in the characteristic amount for the instruments they are designed for (as described previously) zeroing the end points and adjusting the DC and tilt for the data set. This has been changed such that it ignores the same amount of data on each end, removes the DC and tilt from the data, and removes the DC of the end sections but does not zero the data points. In the non-2-lettered command mode these commands can take a number argument to over-ride the automatic method to determine the amount of data to ignore on each end. The commands can also take and argument of “ZeroPts”. When this argument is followed by a third argument of “1” (one) then the ignored end points will be zeroed. When this argument is followed by “0” (zero) then the points are not zeroed.

– The automatic phasing routines were redone to be faster and more accurate. QP is a subset of AP and therefore somewhat faster and slightly less accurate. QA also uses the new automatic phasing routines but only phases the zero order phase. The new process is usually much faster and better than the old automatic phasing routines. The AP and QP commands can take several non-case sensitive arguments in the non-2-lettered command mode.

AP ?
will display possible arguments.

AP log
will do the AP process and log the steps the AP routine takes to the current data directory.

AP stepA #
sets the initial step size for the zero order phase.

AP stepB #
sets the initial ste
p size for the first order phase.

will phase only the zero order phase.

AP look
will exchange the current data for the automatically generated reduced data point data buffer used by the AP routine.

AP enhanced #
will set the AP routine to use advanced baseline detection when # is one. When # is zero the AP process will not use advanced baseline detection. This feature works better with spectra which having peak free baseline at each end.

AP IgnorePts #
will set the number of points on each end to ignore in the phasing process to #. By default (IgnorePts = -1) the AP process ignores 5% of the data points on each end of the spectrum. When the data set to be phased has peaks close to the ends it is better to set this number to the minimum allowed by the data’s baseline.

will set the number of RMS noise multiples to use in the advanced baseline peak detection mode. Default is 100 times.

AP Pts2Ave #
will set the number of points to average when making the reduced data set for the AP process. The default value is zero which allows the AP process to automatically determine how much to reduce the data based on initial data sizes. QP reduces the data more than AP. If this argument is set to one then the data is not reduced and the process is slightly better but a lot slower.

AP quality
does not do an automatic phase process but returns the value used by the AP process for the quality of the current spectrum’s phase.

AP Simplex
does the AP process using the Simplex method and creates a log to the current data directory.

AP map
sets the first order phase to -360 degrees and doses an zero order optimization. It then increases the B phase in 10 degree steps and optimizes the zero order phase at each step until the first order phase reaches positive 360 degrees. It then corrects the current data set to the best phase values it found in this mapping process. This process also creates a log to the current data directory.

JE – A new command “JE” or “JEOL” was added which is like the BR command but uses a default of 5% of the spectrum on each end instead of the BR commands default of 2%.

– The import filter for Bruker XWin processed data where the TITLE file was absent gave an incorrect error message and got stuck in an endless loop. The error message was corrected and the endless loop was avoided.

– Some non-reproducible crashes from the BR command were corrected with a redefinition of data pointer during the reduce and expand points routines.

/2 and *2
– NUTS has had a command (brickwall or /2) which when used without arguments reduces the data set by eliminating one quarter of the data points at each end of the spectrum. When used with an argument, the command eliminates the number of points defined by the argument at each end of the dataset.

A new command has been added (expand or *2) which, when used without arguments, expands the data set to the next power of two data points by adding points to each end of the spectrum. When used with an argument, the data set is expanded by adding the number of data points define in the argument to each end of the spectrum.

BR –
A new command was added to help when processing Bruker digitally filtered data. This new command removes the very ends of the spectrum after FT so that the typical sharp curves at the spectrums end were eliminated. This makes many of NUTS’s commands – like QA, QP and AP – work better. When the two lettered command “BR” or the non-2-lettered command “BRUKER” is given without arguments the program reduces the spectral data size by 2% on each end, does a BC operation, an RI operation, another BC operation, another RI operation and expands the data set to the next power of two size with zeros on each end. When the command is given with an argument the argument is used as the number of data points to adjust on each end.

AP –
The AP routine was hanging when doing an auto-phasing operation on a data set which was not a power of two in size. A trap was added so that an error message was given to the user instead of the program hanging.

IM –
Many users were reporting that Bruker XWIN NMR data files were importing such that the spectra were requiring an SR after an FT. The import filter was changed to invert the imaginaries on import thereby eliminating the need for the SR.

ID and PP –
An error in NUTS which was causing NUTS to not read any ID list or PP list saved in a type 3 header was corrected.

– When some fields were blank when a file was imported then these fields were left unchanged; i.e.; the same as the previous file’s field. Examples included comment, UID and similar fields. This was changed such that if the field is blank when the file is opened or imported the field will be made blank and not retain the previous files information.

IM –
New import filters for 3D NMR data required changing the routines to write out the imported data to a new file. Some older import filters were affected and only imported one data point of data. This was corrected by making all dimensions of imported data to have the point count set to one as a minimum.

GA –
The Macintosh file opening routines were misidentifying NUTS format data with type I or type II header styles. This was corrected.

– The FB and FX baseline correcting routines can be used while in a zoomed display mode. When so used, the baselines of the regions outside the zoomed display region can be adjusted in DC value to prevent a discontinuity in the total spectral. The default mode NUTS uses can be set in the NUTS.INI file:

baseline is DC adjusted

baseline is NOT DC adjusted

Inside of NUTS the “-c” argument can be used to set the current mode of operation. The non-2-lettered commands:

FB -c on
enables the DC adjustment of the baseline

FB -c off
disables the DC adjustment of baseline outside the current zoomed display region and leave a baseline discontinuity at the ends of the zoomed region.

One of the reasons for the different modes of operation is that sometimes, the user would rather have the baseline become discontinuous and therefore the integral values outside of the zoomed display region are not changed by a DC baseline adjustment

MH and auto PP
– When NUTS is in its base level of operation and the right mouse button is pressed then a target crosshair is displayed on the screen. While the crosshair is being displayed, the “M” sub-command resets the MH value to the level of the horizontal crosshair. It is sometimes convenient to have NUTS automatically do a new PP command when the M sub-command is given. The default action can be set in the NUTS.INI with the line:


This action can also be set while running NUTS with the MH command while in the non-2-lettered command mode”
MH -p on
Sets NUTS to do the PP when the MH level is reset with the “M” sub-command.

MH -p off
Sets NUTS to NOT do the PP when the MH level is reset with the “M” sub-command.

– Previously, the non 2-letter command “tilt” started in the middle of the slices and shifted each slice one point per slice, thereby tilting the 2D data set 45 degrees by points. This could be done in either the clockwise or counter-clockwise direction by using a “c” or “cc” argument. Another argument could be given to set the number of points per slice to shift the data, however, only integers could be entered. Thi
s was modified to allow the entry of fractional points. When a fractional point is used, the points are shifted only when the cumulative amount becomes more than a fraction. A feature was also added to allow NUTS to do the 45 degree shifting by hertz instead of points.

Example commands:

tilt cc 0.1
This command would tilt the 2D spectrum 0.1 point per slice (in other words, 1 point every 10th slice) in the counter-clockwise direction.

tilt c 0.1
This command would tilt the 2D spectrum 0.1 point per slice in the clockwise direction.

tilt 0.1
This command would tilt the 2D spectrum 0.1 point per slice in the counter-clockwise direction (the default direction).

This command will calculate the hertz per point in the 1st dimension and the hertz per slice in the 2nd dimension and use this information to tilt the spectrum 45 degrees by hertz in the default counter-clockwise direction.

tilt c
This command will calculate the hertz per point in the 1st dimension and the hertz per slice in the 2nd dimension and use this information to tilt the spectrum 45 degrees by hertz in the clockwise direction.

The ability to do issue the “tilt” command without arguments with the two-lettered command “TL” was added.

– The user has always been able to set the 1D and 2D axis dimension types by (from the 1D display mode) selecting View/Type from the main menu. A coding error was found which caused the contour and intensity plot modes to ignore the 2nd dimension value and use only the 1st dimension type for both dimension axis. This was corrected.

– The integral labeling routine was modified to allow the integral labels for broken integrals to be either horizontal or vertical. In the ID sub-routine an “H” sub-command sets the font orientation to horizontal and a “V” sub-command sets the font orientation to vertical. In the macro routines, the command to change the integral label font size was changed to accommodate horizontal and vertical orientation. The old macro command:

is now either

In addition to changing the font size it sets the integral font labels to the indicated orientation.

The default orientation for the font label can be set in the NUTS.INI with the line:


– A generalized error in the import filter caused the PulProg parameter of XWinNMR data to be read correctly and ignored. This was corrected.

– A fix for when users had multi-line comments in imported files (particularly Tecmag) was added previously. This fix looked at up to 100 lines and quit when the next line of the header started with #. Some users that used multi-line comments used comment lines starting with #. NUTS was modified to stop reading multi-line comments when the first two characters of the next line of the header were #.

– When adding the GA change from 10/29/2002 a coding error disabled all file readings except from a Professional license. The error in module FILE.CPP was corrected.

– When a particular file extension was associated with NUTS and a file with that extension was selected, NUTS would sometimes fail to locate the file. The issue was a combination of spaces in the directory or file name and the operating system’s use of quotes for these path names. A work-around was developed to correct the problems and the file associations now work with or without spaces.

– The new “pairwise” arrayed mode now includes provision for TPPI data. To use this, first be sure you are in non-arrayed mode, and open the unprocessed data. Then type (in the non-2-letter command mode):

ar tppi2pairwise

This new argument for the AR command does 2 things. The pairwise arrayed mode is entered, and zeroes are loaded into the “B” half of the data. The process type is automatically set to “2D_TPPI”, and the TD will do no swapping of data pairs.

NUTS-Pro can now process phase-sensitive data of all types (hypercomplex, echo-antiecho, TPPI and States-TPPI) so that phasing in both dimensions can be done on the final 2D spectrum. See details.

Tailer Read
– When “auto tailer read” was turned on, and a 2D file which had a peak pick list was opened while not in the arrayed mode, the program would crash if the three point peak interpolation was turned on. The code was changed to read the slices in and do the three point interpolation while not in the arrayed mode.

– The reading of a file which had been saved by NUTS with a Process Type (PT) was modified to detect the Process Type and enter the correct arrayed mode. All versions of NUTS except NUTS professional return an error when opening files of this type.

– When MF (make spectrum full scale) was placed inside of a macro or link which also contained a command that changed the vertical size of the displayed data (like an FT), the scaling factors were not updated. The symptom was that the “MF” command needed to be issued twice in the macro or link to have the desired affect. This was corrected.

– An error in memory allocation when sending integral lists to the clipboard while using tab separators was identified and corrected. A similar problem with peak pick list to clipboard was also corrected.

Offset Information
– Added a NUTS.INI section to allow the user to set the default methods used when setting the chemical shift offset. When in the target display mode (crosshair on the screen) pressing “V” brings up the Offset Information dialog box. The user then enters the chemical shift information for the current crosshair position. By default, the system uses a three point Peak Interpolation for setting the chemical shift. Also by default, the system will “snap to tallest nearby peak” when setting the chemical shift. The user can set the set the default modes below by removing the comment semi-colon and setting the argument to either TRUE or FALSE. The Peak Interpolation is also used by the peak picking routine when reporting peak positions. The two new entries to the NUTS.INI are:


– Added a method to increment a file name extension in a macro or link when exporting a series of files. This can be done with the new 2 letter command “EI” or the macro command:


– A problem was observed involving the FB subroutine. If FB was executed in the full display mode, and repeated in the zoomed display mode, the data was either zeroed or the program crashed. This was traced to a pointer to the data not being zeroed when exiting the FB routine, and has been corrected.

– A problem causing a crash was found when the following conditions were met:

When a spectrum was processed in Pairwise Complex Arrayed mode.
The spectrum had a 2D peakpick list.
The spectrum was saved.
The spectrum was recalled with auto tailer read turned on.
Peak interpolation was turned on.

The problem was a pointer to the data in the peak interpolation routine was not pointing to pairwise data but to a NULL pointer. The code was changed to point to the correct data for this mode of operation.

– If the user wants to use a different NUT.INI file when NUTS starts, it is signaled by a “-i” option argument and the next argument must be the path to the nuts.ini file to use enclosed in double or single quotes.

If the user wants to run a macro it is signaled by a “-m” option and the next argument must be the path to the macro enclosed in double or single quotes.

If user wants to load a file it is signaled by a “-f” option and the next argument must be the path to the file enclosed in double
or single quotes.

If there is a lone argument (not following an option signal “-“), it is assumed to be a path to a file to load when NUTS is run and is space insensitive.

projection or proj
– This non-2-letter command has been modified. Its new format requires at least two arguments. The first argument defines which side projection is the focus of the command. Allowed 1st arguments are:

-t Top Projection

-r Right projection

-b Bottom projection

-l Left projection

The second required argument determines whether or not the specified projection is shown:


A third optional argument defines a file name to use for the specified side projection spectrum.

– XWin Bruker data imports had a problem when a pdata/1 directory existed, but did not contain a file called “title”. This caused the import routine to hang or crash. This was corrected so that the absence of the file “title” would be ignored by the import routine, but there will be no “Comment” in the imported data.

– The Autoexec and MacroDir entries in the NUTS.INI did not allow spaces. This was changed to allow spaces for these entries.

– The HI command was modified to force the outputted histogram file to have four figures after the decimal place. It was also modified to accept and optional second argument which is used as the histogram output file name.

– A routine to reread an exported mask file and allow continued editing was added under the FB File menu.

IM – The Bruker Xwin imports of time domain data was modified to look in the pdata/1 sub-directory for a file called “title”. If present, it is read as the imported Comment.

– (or equivalent, non-2-letter command histogram) This command generates a text file which is a list of intensity descriptors. The first item in each line of the descriptor file is the PPM value of the start of the descriptor. The second item is a relative sum of the intensity in the descriptor PPM range, which by default is 0.04 PPM wide. The descriptor file has the following characteristics:

All negative sums are zeroed
The sum of all descriptors is 1.0

By default, the size of each descriptor is 0.04 PPM. By default the total spectrum is used for the descriptor file and all data points in the file are used. In the non-2-lettered command mode, the command will take a file an argument which is the name for a descriptor properties template file. A sample file is below:

Descriptor_Size 0.1
Include 10.0 0.0
Eliminate 9.50 9.0
Eliminate 5.00 4.00

– A new method of baseline correction was added to the FB routine – Linear Spline. This method starts at the left side of the spectrum and un-dcs and un-tilts to the first selected region and then repeatly un-dcs and un-tilts from there to the next selected region until all selected regions have been corrected. The sub-command in the FB routine is “3”.

This mask can be saved and applied in the FX routine with either of the following non-2-letter commands

FX –s mask.name
FX –3 mask.name

where mask.name is the name of the previously saved mask file.

– This tool is a baseline correction routine similar to FB but using a mask file predefined and saved in the FB routine. Previously FX routine only did polynomial corrections. This was maintained as the default operation but an option was added for doing linear baseline “fudges” identical to the FB routine’s F sub-command.

FX mask.name
FX –p mask.name
FX –1 mask.name

Both these commands do a polynomial fit using a mask file called mask.name.

FX –f mask.name
FX –3 mask.name

This command does a series of linear fudges using a mask file called mask.name.

– When in the DC offset sub-routine, the value of the DC offset is printed in the upper left corner of the screen. Originally, it was printed to the right of the scroll bar, left-justified. Work on the axis caused this value to be printed right-justified so it was under the scroll bar. The printing of the value was forced to be right justified and is now visible to the right of the scroll bar.

– In a macro or link, the ZE command asked for user confirmation each time it was called. This was changed so that it asks only if you are not in a link or macro.

(or equivalent, non-2-letter command solvent ) This command was added to allow the user to set the solvent. The solvent string is stored in the NUTS header when using header type 3.

US –
The user field saved in a type 3 NUTS header was terminated with the first space when the file was recalled. This was changed to allow spaces and a length of 128 characters.

IF – The length of the Name fields was limited to 39 characters when a NUTS header type 3 was re-read. This was changed to allow a field length of 128 characters.

TB –
(or equivalent, non-2-letter command tabs ) This command changes the format for the peak pick and integral lists when they go to the clipboard. In the 2 lettered command mode it is a toggle between two table formats:

1) space-separated columns such that, when a fixed size font is used, the columns line up. (Best for pasting into Notepad)
2) tab-separated columns. (Best for pasting into a spreadsheet program).

The default mode can be set in the NUTS.INI file with the “UseTabs” line set to TRUE for tables using tabs and FALSE to use spaces.

PT –
(or equivalent, non-2-letter command ProcessType ) This command sets a flag to be used by the AR and TD commands. When the flag is set correctly, the proper arrayed mode is entered with the AR command and the proper transposition and swapping is done with the TD command.

Possible values for the ProcessType flag are: (note: these are not case-sensitive)


Without arguments, a dialog box is presented to the user for checking the processing type. The Process type is saved in the file header when the data is saved.

Cursor “Target” – M
When at base level with the left mouse button pressed, the user can set the minimum height for peak picking and auto-integration by placing the horizontal line at the desired level and typing “M”. In earlier versions, this action also redid a PP command; this automatic PP command was removed from this operation.

SO – This two letter command (non-2-letter command SMOOT
H) was added to do a smooth operation. With no arguments (or in the 2-letter command mode), a three point smooth is done. In the non-2-letter command mode, the first argument is used as the number of points to smooth. An optional second argument is the number of times to repeat the smooth operation.

AI – the Automatic Integration command was reworked. The operation was made dependent on the display mode. When doing a full display, any currently defined broken integrals are deleted and a new set of broken integrals is defined. When in a zoomed display, a new set of broken integrals is appended to any existing set.

The selection of the broken integral regions depends on the noise and peaks in spectral regions, and is very sensitive to the MH value. Also, any broken integral region crossing zero PPM is ignored. At the time the AI command is issued, the smallest integral region in the most recently displayed zoom region is set to 1.00.

PH – A marker for the pivot point position was added to the PH phasing display routine.

– The arrayed mode has been modified to retain the imaginary quadrants of 2D data, to allow phasing in both dimensions after processing. Use of this feature requires setting of a new parameter PT (processing type) so that NUTS can perform the correct sorting of data when transposing. See details.

– This non-2-lettered command was used to set or inspect the header type (1, 2 or 3) of a NUTS formatted file. It was expanded to take an additional argument “length” which will tell the user the length of the header on the current file.
Usage: header length<ENTER>

SE – New command to aid in the visual inspection of unknown data files. In the 2-lettered command mode, the command SE first brings up a dialog box and allows the user to select the file to look at. After this selection, another dialog box comes up which allows the user to specify how he wants to view the data. After selecting all the options and clicking OK, the data is imported without translation in that manner as a 1D file thereby allowing the user to visually “see”. This can aid if finding actual NMR data in unknown files. Hint – It is often useful to first load an NMR file with NMR data of about the vertical scale size the user expects and then do an FS to fix the scale. This allows all the “junk” to be imported and go off-scale without shrinking smaller NMR data so small as not to be seen.

In the non-2-lettered command mode, the SEE command with no arguments behaves as above. The user can give arguments as shown below to directly import the specified file as instructed in the arguments:

SEE [Bytes2Skip] [WordType] [Complex] [Endian] [FileName]

Bytes2Skip is the number of bytes to move into the file before starting to read the data
WordType is one of CHAR / SHORT / INT / FLOAT / DOUBLE
Complex is one of REAL / COMPLEX
Endian is one of BIG / LITTLE
FileName is the name of the file to import.

4/4/2002 1:23 PM
QUESTION in a macro
– It is possible to have a macro pause during execution to display a question and wait for user response. The question function was modified to work with the current code. It appeared to have been broken by some MACRO additions.
Each question needs to start with one line which is “QUESTION”. The following lines are for the question – up to 15 lines – then four addition lines
First line starts with YES_BUTTON <desired action>
Next line starts with NO_BUTTON <desired action>
Next line starts with CANCEL_BUTTON <desired action>
4th and LAST line needs to be END_QUESTION
<desired action> can be one of three things
3. New macro name to start

Sample macro:

Click YES to continue the macro execution with the next line after this question.
Click NO to abort the macro execution.
Click CANCEL to abort the macro execution.

– A new command (NoiseFigure or NF in the non-2-lettered command mode) has been added to calculate an NMR instrument’s noise figure. To use first replace the NMR spectrometer’s probe with a 50 Ohm metal film resistor. At the gain and frequency settings of interest for the NMR instrument take one scan of data with the resistor at room temperature and save the file with a file name like “HOT.NMR”. Cool the resistor in liquid nitrogen and take another scan and save this file with a file name like “COLD.NMR”. Enter the NF command and follow the directions. NUTS will load the two data files and calculate the system noise figure. In the non-2-lettered command mode the user can also enter the name of the hot file as argument 2 and the name of the cold file as argument 3.

More information on system noise figure can be found here.

– Work was done to improve the quality of the meta-objects created by nuts when the “A” sub-command is issued in the MO sub-routine.

– It is now possible to save a “mask” describing which regions of a spectrum should be used in calculating a polynomial baseline correction. This would be used for automated processing of very similar spectra.

The user selects the regions in the usual manner, then saves those selections to a text file with the sub-command M or by selecting File/Save Mask on the menu while in the FB routine.

FX – New command for polynomial baseline correction. In the normal (2-letter) command mode, or issued without arguments in the non-2-letter command mode, this command is an “array-aware version” of QB. That is, when applied to a 2D spectrum while in arrayed mode, it will execute a polynomial correction independently for each slice. In non-arrayed mode, it will correct just the currently displayed slice.

When in the non-2-letter command mode, the FX command accepts an argument which is the file name of a “mask” file to use when calculating the polynomial fit. The mask must first have been created in the FB subroutine. The mask must be for the same 1D data size as the current data. If the mask was done while in a zoomed display mode this command will use the same display region for the polynomial fit and NUTS will end up displaying that zoomed region when the command completes.

If polynomial corrections are made while in a zoomed display, then the data outside of the display will be DC-adjusted to keep the data set continuous with the ends of the corrected regions.

For 1D spectra, FX is equivalent to QB.

PH and PE
– An addition to the NUTS.INI file allows the user to change the mouse sensitivity for PH and PE (phase correction using the mouse) independently. The variables are:


In addition, the current mouse scaling is divided by 3 when the CONTROL key is depressed while using the mouse to make phase corrections.

– When saved inserts in the file header were being recalled, some were being read at the wrong Y position and therefore were being drawn off the screen and were not visible.

– The Font Selection for Inserts was being done but the information was not being used to draw the axis for the Inserts. Code was added to use the Font Information.

FB — When FB was used in a link, a code error in reading the NUTS.INI file for the default fitting type caused it to always be 2. This was corrected and FB is now useful in a Link or Macro.

– Some of the axis labels were slightly offset from the appropriate tick mark. The axis routine was modified to help align these labels and tick marks better.

— A flag was added to the NUTS.INI file which prevents NUTS from overwriting any existing file:


There is no way to force NUTS to overwrite a file if this option is activated. A different file name must be used, or the original file renamed or deleted. Use of this feature may prevent a file from being imported a second time, because the import process writes a nuts-format file.

If set to anything other than TRUE, it will be taken as FALSE. If commented out, the default operation of NUTS is FALSE.

– When using FB for a zoomed region, there was a set of conditions where round-off errors would cause one less segment to be chosen than could be fitted into the zoomed region. The round-off error was corrected.

This command was a toggle to turn on and off the display of the clipboard in the NUTS window. It was modified such that in the non-2-letter command mode it can accept arguments: “on” and “off”. Without arguments, it operation remains the same; i.e.,a toggle.

– The way NUTS starts from a command line was changed such that multiple arguments can be included in the NUTS command line. If any argument has a format described below it will cause the action described:

pathNUTS.INI to specify an alternate nuts.ini file to be used by NUTS for this session.

path*.MAC nuts will run this macro at startup. Macro files CANNOT be in the NUTS root directory. If no path is given the macro is assumed to be in the NUTSMAC directory.

Any other argument will be used by NUTS as a filename to be opened on startup.

– The DI command was changed to launch Notepad and show the list files in the current NUTS root directory. Previously, this command also emailed the file to “support” at Acorn NMR.

The equivalent non 2-letter command is DIR2.

– Using the A sub-command of LF with more than 1 selected line was causing memory corruption and usually a crash. This was found to be in the memory allocation used when locking some parameters for NO iteration. The memory allocation problem was corrected.

– a new non-2-letter command which is valid only in the arrayed mode 2D file processing. The command without arguments twists the data one point per slice in the clockwise direction. The first argument can be either a number (number of points to twist the data per slice) or the letter “C” (clockwise) or the letter “CC” (counter-clockwise). If the letter “C” or letters “CC” are the first argument then an optional second argument is a number (number of points to twist the data per slice) in the direction specified by the first argument. An invalid first argument is used as the number of points to shift and any second argument is ignored. The slice number_of_slices divided by two is taken as the “center” and is left unshifted.

IM – An import filter for Hitachi R-1500 files which have been exported from the native CP/M-68K operating system to a PC DOS file was added to NUTS imports.

– Bruker XWin 2D data files were not being imported with all the slices. This was an error in reading the wrong file for the 2D parameters which was created when a more robust search for all the different Bruker file names was implemented.

FB and QB
– It was possible to crash nuts if there were too few points in the spectral region being displayed. A error message was added with a more graceful exit.

– The Inset routine saving was modified to capture the Zoom limits and display condition (Full or Zoomed) of the display. When inserts are incorporated into a display and the file is saved, and the file is later recalled and the tailer read, the display will be returned to the Zoom limits and display type used when the file was saved.

– JCAMP NTUPLES export was changed to scale the data with the FACTOR variable to better reproduce data points with very large or very small magnitude.

– Any Inset plots in the display will be saved in the NUTS header when the file is saved when using Type 3 header. If the file is opened again the previous Insets can be re-displayed by reading the “tailer” by either having the Auto Tailer Read turned on or by doing a Tailer read All command (TA). Any existing Insets will be cleared and replaced by the Insets stored in the file header with this operation.

– Any composed NOTES being displayed when the file is saved are saved in the header when using NUTS header Type 3. If the file is opened again, the previous notes can be re-displayed by reading the “tailer” by either having the Auto Tailer Read turned on or by doing a Tailer read All command (TA). Any existing notes will be cleared and replaced by the NOTES stored in the file header with this operation.

– The file types to “force” a specific type of translation process were removed from the File menu. Use of a “force” type is almost always wrong and can cause import problems. The recommended import process is to do IM and let NUTS do its own auto identification process.

If you MUST force a type, the user can enter the non-2-letter command mode and enter a command like:

IM -type “force_type”

where allowed words for “force_type” are listed here.

– JCAMPDX imports. NUTS failed to import a JCAMP exported from a JEOL Alice system. Examining the file revealed a tab character was embedded in the strings. Filtering for the tab character was added to the JCAMP import filter and the file imports correctly.

contour levels – Previously, the threshold (level for the lowest contour) was changed by entering a new value for Minimum Height (MH). This has been supplemented by the addition of a scroll bar to the right of the 2D intensity or contour display which allows the user to interactively adjust the MH level. Due to the speed of contour plot recalculation on older PCs or with large 2D data sets, this is best done in the intensity display mode or in a zoomed region if in the contour display mode. The PageUp, PageDown, Arrow Up, Arrow Down, “<” key or “>” key are also active for these functions.

– The Aspect import filter was redone to improve the detection of FID versus spectrum. The previous filter was confused by any BC or EM done before the data was transferred as well as being
confused when some different means were used to transfer the data from the Aspect to the PC.

– Imports for a new file format for Philips Spectroscopy data was added to the import filters. The files need to have the naming system where there is a pair of files name.spar and name.sdat. The user selects the *.spar file for NUTS’s auto-id import feature to start when using the IM command.

– A class bug was found where if the axis is being displayed in Hertz and the undo command is active, then when NUTS plots it converts the axis to PPM before and after the plot. The bug was fixed. The work-around for older copies is to turn off undo before plotting.

– The FT command was modified to accept arguments in the non-2-letter command mode. The command can be “FT” or FourierTransform”. Allowed arguments are:


IM – Bruker XWIN Imports – The Bruker XWIN imports were updated to accommodate Bruker systems using Windows NT and SGI computers.

CmdLog – Command logging for MS was updated to capture the value of the phase shift for sine window function.

– The virtual spectrometer commands were made active in all versions of NUTS.

– Command logging for PH and PS were not correctly displaying the new total phase values. This was corrected.

The Pulse Width and Pulse Delay values were not always being read correctly when a NUTS file was opened. The variables in the header were modified throughout the program to pulse_delay from pd and d5 and pulse_width from pw, p2.

– The manner the comment is stored internally and in the header was changed to protect against buffer overflow with longer comments and multi-line comments both on file importing and under user control. Technically, the comment was changed from a public variable in the NMR parameter class to a private variable with the necessary class functions to modify and protect the variable.

OR cmdlog – The logging start/stop was changed from stopping when a Save command was issued to starting when a file is opened.

On screen indicators for mode of operation was added to the Add/Subtract routine, so it is clear whether the upper trace being displayed is the spectrum stored in the buffer, or the difference between spectrum and buffer. The menu was expanded to hit at the feature which allows shifting the spectrum left and right with the arrow keys.

OR cmdlog a non-2-letter command which controls the command logging operation of NUTS. When enabled, NUTS logs processing commands and writes them to the file header.

and CP – Having the 2D display as a sub-routine was causing a lot of confusion with users when they attempted to issue commands. Some of the commands were single letter commands typical of sub-routines, while other commands were 2-letter commands which could invoke other sub-routines. Additional confusion was arising by using <ENTER> to exit these additional sub-routines as well as the 2D display sub-routine. To address this issue, 2D display routines were changed from a sub-routine to a display mode. The user can enter the 2D display mode with commands like “CP”, “IP” or the new command “2D”. To revert back to the 1D display mode the user uses the command “1D”.

The following single letter sub-routine commands needed to be and were modified:

1 to P1 – display top projection
2 to P2 – display right projection
3 to P3 – display bottom projection
4 to P4 – display left projection
C to CP – contour plot or display
I to IP – intensity plot or display
Q to <escape> – interrupt the drawing of a contour or intensity plot
+ or = to C+ – positive contours only
– to C- – negative contours only
0 to C0 – both positive and negative contours
] to “plane +” move to next plane of 3D data
[ to “plane –” move to the previous plane of 3D data

– A new non-2-letter command which allows the comparison of a previously peak-picked 2D file to the current 2D display. The files do not need to be the same sweep widths, spectrometer frequencies or data sizes. The first data set must first undergo 2D peak picking. When the file is saved, the peak list is saved in the file header. Then a second 2D file is opened, and the compare command executed to display peak positions from th
e first data set, overlaid on the second.
See details.

or LoadCurrentFile – A command was added similar to GA except if, through other means, there has already been prepared a file name for FileA, the command does not ask for a filename but just loads the current FileA. If there is no current FileA name a dialog box pops up requesting the user to select a file for loading. In the non-2-letter command mode, an argument can be used as the file name to be loaded, making the command identical to GA with an argument.

– Elcint -Added the calculation of SW from “pixel bandwidth” in the Elcint header at group_number 0x0018 and element number 0x0095. The “pixel bandwidth” was taken as AT.

– the header search routine had problems when spaces existed in the key word field before the equal sign. The routine was modified so that when the desired search field has spaces before the equal sign it can be enclosed in double quotes and the routine works as expected.

– The “O” sub-command to optimize a single NMR line was causing a crash while the “A” sub-command to optimize all lines worked normally. This was fixed so both work as desired

– The color selection for fonts was not working. The problem was identified and code was added to let the user select the various font colors.

When the font for a 2D right hand vertical axis was made larger than 12 point, it changed to a horixontial font and would not go back to a vertical font without restarting NUTS. The code was checked and there was no coding error but it seems that the Windows Common Dialog routines for font selection do this on their own. Code was added to force vertical orientation whenever this font was changed

The HeaderSearch and UID search commands were changed to create the search results file which is displayed by Notepad.EXE to be created in the current windows defined TEMP directory. This should allow read-only CD-ROM archives to be searched.

– a new non-2-letter command was added, similar to the UID command, which allows the user to search for any sub-string in any header field. The command is “hdrsearch” or HeaderSearch and takes a first argument of the NUTS header field to be searched and a second argument of a sub-string in that header field to be matched. Examples:

hdrsearch ##TITLE benzene
HeaderSearch ##TITLE benzene

either command would allow the user to pick any file in a user specified directory. Then all NUTS files in that directory would be searched in the comment field (keyword ##TITLE in the NUTS header) for a sub-string case-insensitive match to “benzene”. Notepad will open in a windows and the search results displayed.

– A new field has been added to the Acquisition Parameters called UID for Unique IDentifier. It is a string for use by the user to identify a sample or set of samples. An example of its use could be to identify all spectra run for a specific job number or project. The UID is a text string. The UID is stored when a file is saved (type 3 header only) and is recalled when a file is read, if it exists in the header.The UID can be entered from the Acquisition Parameters screen or from the command line (in non-2-letter command mode).

To search for all files with sub-string matched to “SearchUID” (non-2-letter command):

uid -s SearchUID

and select any file in the desired search directory. Notepad will be opened and the results displayed.

Associated with this command is the non-2-letter command “passwd”. The idea is that the user can choose to restrict editing of the UID field by requiring a password to change it. If a password has been set, changing the UID requires the password to be input. The passwd command allows a password to be defined.

Examples of usage:

passwd <new password> <old password, if password currently exists>

if no password has been defined, or if UID does not now exist, the UID can be set regardless of password:

uid <UID>

if UID exists and password is set

uid <NEW_UID> <root passwd>

– Added Elcint Imager (now owned by GE Medical Systems) spectroscopy data import filter. To import the file double-click on the desired file. There are still a lot of open questions about this file import. As we gain more information we hope to improve the filter.

– Added Azara Unix Real Blocked data import filter. To import the file double-click on the text parameter file. The parameter file usually ends in “*.par”.

– (non-2-lettered command “EliminateDispersion”) was modified for ways to provide faster operation. In the 2-lettered command mode, or in the non-2-lettered command mode with no arguments, NUTS uses the zoom region to do a 1 parameter fit to amplitude using a fixed T2 = 10.0 and wo = 0.0

The command will take arguments when operating in the non-2-lettered command mode. Examples are:

ED 1 // same as default mode above
ED 1 20 // 1 parameter fit to amplitude using T2 = 20.0 and wo= zero.
ED 2 // 2 parameter fit to amplitude and T2 with wo= zero.
ED 3 // 3 parameter fit to amplitude, T2 and wo.

– (non-2-lettered command “EliminateDispersion“) A routine to reduce residual dispersion lines at the center of a water saturated spectrum was added at the request of Jerry Dallas
and Marc Alder at Berlex per the reference: Adler M., and Wagner, G. “A New Technique for the Removal of Baseline Distortions Caused by Strong Water Signals.” (1991) J. Magn. Reson. 91, 450

To use it zoom in on the residual water peak. That region will be used to fit a dispersion line:

I(w) = a*(wo-w) / ( (1/T2)2 + (wo-w)2 )

using three parameters wo, T2, and a. This fitted calculated dispersion line is subtracted from the entire spectrum (all real data points).

Some Unix NMR data files are in directories where the parameters are ASCII files with keywords. Reports and examples of parameter files with unexpected blank lines started being found. This may be the result of changes in the way the Vendors were writing to these files or due to corruption during data transfers between multiple computers. Changes were made to the NUTS importing filters to make the imports less sensitive to these unexpected blank lines.

– A problem with importing of JEOL Delta phase-sensitive 2D data was corrected.

Expert Mode
– A command to set the “expert mode” was added to the non 2-lettered command mode. Type “expertmode <ENTER” for usage.

IM or Import
– The Import command was expanded to work with the non 2-lettered command mode and be capable of taking an argument which is the filename to import.

4/25/2001 IM – Some corrections were added to the program to help prevent trouble when files with multi-line comments are imported.

IM –
Tecmag files were being incorrectly imported. The problem was structure alignment in C. All structures were forced to 2 byte alignment to sole the problem.

– The Forward Linear Prediction was causing non-reproducible crashes in the arrayed mode. It also showed a false picture of the data after completing the LN when it did not crash. The memory allocation routines were changed to a more conservative method which fixed the second problem and has avoided the crash in tests to date.

– Some Windows 9X systems were crashing after a file was imported, a plot was done, and another file was imported. This never occurred on Windows NT, Windows 2000 and did not happen on most Windows 9X systems. After much effort it appears that this is due to an OpenGL math floating point but in the Windows 9X operation systems. We made a change in the importing routines to “work-around” this problem. Hopefully the bug will stay dead!

In the process of developing this work-around and for other developmental considerations the importing code was removed from a DLL and incorporated into the NUTS executable program itself. Therefore the TRANLIB.DLL module is no longer required for NUTS operation.

– some changes were made to the JCAMP exports in response to a BARF and to be more compliant with JCAMPDX examples.

– The TranLib.DLL auto identification for JCAMP files was made less sensitive to spaces around the “=”.

EZ –
a default selection of the first zoom value allowed an <Enter> to close the dialog box

ID –
In the ID subroutine, the Menu Baseline / Apply Baseline Correction did not work. This was corrected.

– Bruker XwinNMR data with very long comments lines caused a fatal NUTS crash due to overrunning the allowed length of the comment. Fixed.

IM – Parameters for handling digitally filtered data were not being initialized to zero after Bruker data was imported, causing subsequent data imports to have incorrect values, leading NUTS to apply an RD operation when it was not needed. Fixed.

IS – The axis tick density adjustment was not working for Inserts. This was corrected.

– this command was broken by adding phase number readout to the PH routine. This was corrected again.

– A command (DI) to take a directory listing of the NUTS root directory and email it as an attachment was added to NUTS.

Checks for file errors in the Licensing configuration were added to the NUTS startup routines.

– A first pass at direct importing of JEOL Delta data files was added. Importing of some 2D files works, but not all, yet.

– A command was added to invert either the even or odd slices of a 2 or 3D dataset. This command works only in the non-two-lettered command mode and only during arrayed mode operation.
invert odd
The above command would invert every odd numbered slice of the current dataset.

invert even
The above command would invert every even numbered slice of the current dataset.

invert real
The above command would invert all reals for every slice of the current dataset.

invert imag
The above command would invert all imaginaries for every slice of the current dataset.

– The onscreen reported phasing done was not being updated when a TD was done or when a new file was loaded. Therefore, the reported phasing was incorrect after the first time it was used. The correct updating was added.

– Protection was added to the code for doing side projections to prevent a program crash when the user tried to use a spectrum which had no data points in the desired display range.

– The manual menu selection for File/Write would work only if a filename had been previously set in a macro. This was corrected to always force a file write dialog box when manually selected.

– The extract spectral region command was expanded to allow extraction of slices from a 2D data set. When in the non-arrayed mode or the two-lettered command mode, the command works as before and extracts to spectral region defined by the zoom limits.

When used for extracting slices of a 2D data set, the command works only in the Arrayed mode and only in the non-two-lettered command mode. It takes at least two arguments with an optional third argument. The base command can be XT or extract.

Extract –2 FirstHalf
This command would take the current data set and remove the last half of the data slices.

Extract –2 LastHalf
This command would take the current data set and remove the first half of the data slices.

Extract –2 128 256
This command would take the current data reduce it to the slices between 128 and 256 inclusively.

– The command to peak register data slices was modified to register on the largest absolute value point and not the largest positive point.

– When Nuts is in the non two-letter command mode, a file may be uuencoded or uudecoded with the following format of commands:
Uuencode FileNameIn FileNameOut
Uudecode FileNameIn FileNameOut

If the filenames do not contain a full path, then the path is assumed to be the NUTS root directory.

– When NUTS is in the non two-letter command mode, the command “axispen” may be used to change some of the characteristics of the axis line. Examples are:

Change the screen only axis line to a width of 2
axispen screen 2

Change the axis line to a width of 2 only when printing
axispen print 2

Change the axis line to a width of 2 for both screen display and printing
axispen both 2

Change the color of the axis line to red
axispen 255 0 0

Change the color of the axis line to green
axispen 0 255 0

Change the color of the axis line to blue
axispen 0 0 255

– When any GA, GB, or GC command was given, the current file name for File A was updated to the file name given. This was causing some problems when reading and interleaving a complex 2D data set when the reals and the imags were in separate files. This was changed so that the file name was not ALWAYS updated.

Interleave – A new command was written to interleave two data sets into a new data set. This command works only in the non-two-letter command mode and only for the Complex Arrayed Mode. The two data sets must have the same number of points and slices. The resulting data set will not have been saved. Syntax:

Interleave FileName1 FileName2

– The Inset plot routine was modified to include any DC offset the displayed spectrum had when the insert was created. In addition the “[” and “]” keys were activated when in the insert routine to add and subtract DC offset for the current insert.

– The menu selection under Edit for zeroing out the integrals did not do anything. The “Z” keystroke did work correctly. The menu choice was activated and now both the menu choice and the “z” keystroke work.

8/23/2000 5:03 PM
– There was a coding error in the sum routine, which put the sum of the reals into both the reals and imaginaries. This was corrected so that the sum of the reals goes into the reals and the sum of the imaginaries goes into the imaginaries.

– When used in the non-two-letter command mode, IE (or IncrementExt) can now take arguments. With no argument, the command acts as previously (increments the file extensions of FileA, FileB and the Import File name, if they have numerical file extensions which can be incremented).

The new functionality allows the use of arguments. If IE is followed by either “A” or “B” with no second argument, then the extension for file A or B, respectively, will be incremented by one. If there is a second argument it will be used as the amount by which the file extension is incremented. (e.g., If the second argument is “2” the file extension will be incremented by 2, etc.) Negative numbers are allowed as long as the decremented (negative increment) extension will be greater than zero.

IE [A or B] [amount]
IncrementExt [A or B] [amount]

It is important to understand the subtle distinction between the commands “IA” and “IE A”. IA increments the slice counter of a 2D file to the next slice. “IE A” changes the current name of file A by incrementing its file extension (provided file A’s name has a numerical file extension).

– A non-two-letter command which takes either one or two arguments. This is used with homonuclear 2D data to eliminate (zero out) all data points including and around the large diagonal peak.
If only one argument is given, then the command takes a 2D data set and zeros the diagonal plus and minus the number of points specified by the argument. If two arguments are given, then the 2D data set’s diagonal is zeroed plus the first argument number of points and minus the second argument number of points. Usage:
ZeroDiagonal [+ points] [-points]

RU – The ability to set the default directory for NUTS macros was added to the NUTS.INI

WP – The current default path for NUTS macros was added to the Which Paths (WP) command.

RU – The ability to set SW1 and SW2 was added to the DO MATH macro routines.

IM – Bruker JCAMPDX exported files were found to be non-compliant in the chemical shift (reference offset). These exported files also have incorrect values for FIRSTX. This combination of errors caused NUTS to have an incorrect shift reference value.
The import filter was changed to look for the ##$OFFSET value when importing a JCAMPDX file, and if found, to use it to set the referencing. If not found, the referencing is still set with the values from FIRSTX and LASTX.

– The Phase Increment (PI) command was expanded. In the non-two-letter command mode, the PI (or PhaseIncrement) command can take optional arguments. If one argument is given, it is used as the A phase value when doing the phase incrementing. If two arguments are given they are used as the A and B phase values when doing the phase incrementing. If three arguments are given they are used as the A, B and C phase values when doing the phase incrementing. In addition, if the first argument is “-cosy” the command does a special case of phase incrementing which allows the diagonal of a 2D data set to be phased to the desired addition three arguments as above.

– (Long command PhaseCorrect) Some filters on Varian and JEOL spectrometers create spectra which cannot be phased with only a zero and first order phase correction. TheNUTS phasing routines were modified to include a second-order phase correction. In the non 2-letter command mode, the PC (and PhaseCorrect) command can take 3 arguments. The first argument is the zero order phase amount, the second argument is the first order phase amount and the third argument is the second order phase amount.

PH – The PH mouse phasing routine was modified to allow a second-order correction to be applied. When second-order phase correction is applied, the pivot point is always the far left edge of the spectrum, for simplicity. To use this, type 2 on the keyboard while in the PH routine. Any mouse movement will result in application of second-order correction – Use Caution! Pressing either mouse button returns to the normal mode of applying zero- and first-order correction.

The values of zero-, first- and second-order cor
rection are shown at the left edge of the screen during phasing.

JJCarbon shift search – The non 2-letter command mode commands “pattern”, “name”, “range” and “reference” were changed to “cpattern”, “cname”, “crange” and “creference”. This is in preparation for adding the proton equivalents -“hpattern”, “hname”, “hrange” and “hreference”.

– a new command for the non 2-letter mode of operation was added. This command with no arguments (or, equivalently, SU in the 2-letter command mode) adds all slices of an arrayed data set and creates a single 1D data set which is the sum of the slices.

In the non 2-letter command mode, it can take two arguments:
Sum [start] [end]

Used with one argument, sum will create a 1D spectrum which is the sum of all remaining slices starting with slice [start].
Used with two arguments sum will create a 1D spectrum which is the sum of all slices from slice [start] to slice [end] inclusive.

DIVIDE – in non 2-letter command mode, this requires one argument and divides the current data set by that number. This can be used to normalize data after multiple slices are summed using the SUM command.

MULTIPLY – in non 2-letter command mode, this requires one argument and multiplies the current data set by that number.

VW – When viewing an arrayed data set in complex arrayed mode, a “Z” will zero the displayed slice.

– Data files that have had any contact with a Macintosh can end up contaminated with Macintosh “Resource Fork” (128 bytes added to the beginning of the file, without the user’s permission). With a type 3 NUTS header, the NUTS detection and reading routines were modified to ignore a Macintosh Resource Fork if it is present.

– The process of identifying a data file as a nuts file and reading of a Type 3 header was modified to be insensitive to multiple line comments.

LF – Reading a lines file in a non-macro mode failed to ask the user for a file name. This was corrected to bring up a dialog box for selecting the file name to open.

– A bug has been fixed which crashed NUTS when the F sub-command of the ZO sub-routine was issued, only on Windows 9x systems and only after printing.

– The reference offset (O1) was changed in the MacFID import filter.

– Processed Galactic SPC type III data saved as reals only was being imported with incorrect referencing. The TRANLIB.DLL was updated to get this information correct.

– Single letter sub-commands were added for the “Get Lines Information File” (G) and Write Lines Information File (W).

New macro commands were added to set the file names for these operations:
SET LF_GET_FILENAME = xxxxxxx.yyy


The operation of these commands were made Macro aware.

Another set of Macro Commands were added to increment any filename extensions for these file names (xxx.001 to xxx.002):



– Computer shimming was added to the SAM module. Two methods were added, one where the system shims like a person would (Sub-Command A) and another which uses Simplex(Sub-Command B). Both shim to the same Z level as Randomize Level is set to (Sub-Command E). If a spectrum is being displayed (Sub-Command S) then the Lock Level is used for shimming. If a FID is being displayed (Sub-Command F) then the power value of the FID points is used. When shimming with the A Sub-Command, a shim log (shimlog.txt) is created in the current NUTS data directory.

– For NUTS header type 3, the D1 (delay) list was neither saved nor read. This was changed to read and save any D1 list with the file. The TRANLIB.DLL was also updated to have this feature.

– peak lists can now be saved with the file in header type 3 when in arrayed mode. When re-loading the file the DP list will be loaded if NUTS is set to auto read the tailer or on the TA command.

– A code error on doing a Bruker FT with a non-power of 2 data set was corrected.

– An extra CR/LF was being added to the tailer with header types 1 and 2. This was causing a failure when the tailer was read from these files. Broken integrals and other tailer information could not be successfully recalled with the TA command. This problem was corrected.

– Edit Display Parameters – The old values for the margins were not being saved when the user entered the Edit Display Parameters from the Edit menu while in the IP or CP display routines. This caused the values to be set to zero if the user canceled with the CANCEL button. This was fixed.

– The IN command was modified to allow batch processing with the FF command to be done on files which do not have file name extensions which can be increment. For example:
Before the modification, links like the one above would fail if the file names could not be incremented even though the incremented filename was not being used. Now if NUTS is running a link with an FF command the IN command is aware of this process and responds accordingly.

Display Crash
– On some Windows NT 4.0 systems with the display running at 1280 x 1024 or higher resolution, making the NUTS window go to full screen was causing a memory violation. This happened only in the QD mode and not the SD mode. One user reported that it happened only sometimes and another reported that it happened every time. It only happened with NT 4.0 and only on some systems not on all NT 4.0 systems and never on a Windows 2000 or Windows 9x systems. We could not reproduce this in house on several NT 4.0 systems but did a fresh NT 4.0 SP6 installation on an old P90 system and got reproducible failures. The display compression code was found to be the area of the memory failure, but no coding or compiling errors were found. The drawing of the spectrum was changed from a single Polyline of screen width resolution to a series of Polylines of 256 steps per Polyline. This fixed the problem on our one problem test system.

DF — Digital Filter FT. Digitally filtered data needs to have the zeroes at the beginning of the data removed prior to FT. (See details.) This is done with the RD command. NUTS calculates the number of points to rotate based on values found in the data file. However, sometimes the information found in the data header is incorrect or insufficient for NUTS to determine the correct number of points. The DF command examines the beginning of the FID to determine where the “real” start of the data should be, and cyclically rotates the data by that number, then executes an FT. This will not work properly for all data, so users are advised to experiment.

– where # is a digit between 0 and 9. This routine registers an arrayed set of 1D spectra. The desired spectral region is selected by setting the region while in ZOom with the # key where # is a digit between 0 and 9. The corresponding R# command will use this region to find the tallest peak in the region and left or right shift the remaining spectra to make the tallest peak in each subsequent region have the same chemical shift. The ends of the shifted spectra are lost or set to zero. This routine works in the non-arrayed mode or Complex Arrayed Mode.
In the process of this change, the old command R2 for take the square root of the data was changed to RO.

Axis in SP
– Bug which caused the axis to be full x size in stacked plot was corrected to allow x size equal to the first spectrum.

– The MH command was modified to allow use in the non-two letter command mode. The command can be MH or MinHt and if it has no arguments then the standard dialog box comes up and allows the user to enter an MH value. If it has one argument that argument is converted to a number between zero and 100.0 and the MH value is set to that number. If it has two arguments and the second argument is “rms” then the first argument is converted to a number and the MH value is set to that argument times the current rms noise of the spectrum.

Linefit routine was modified to allow exclusion of some line parameters during the auto-fitting routine. The default was set to fit all parameters of each line except the Fraction Lorentzian lineshape parameter which is by default set to 1.

IM –
Some corrections were added to better handle some Bruker WinNMR data.

1/13/2000 Version 200001xx
JJ –
A new carbon pattern search routine was added to NUTS. This routine is documented in the help file.

Two macro features were recently added: sleep and loop.

The Sleep feature will pause the macro to allow the user to examine the screen. The time to sleep must first be set. The units for this are msec. The following line sets this to 2 sec.

Set sleeptime 2000

Then to implement sleep, insert the line

Do sleep

The Loop feature takes 2 parameters: the number of times the loop will be executed, and how many lines are included in the loop. For example, the following command will repeat the subsequent 10 lines 5 times:

Loop 5 10

10/18/99 Version 199910xx
The placement of peak labels displayed at the tops of peaks has been improved. The position did not adjust properly when DC or vertical scale was adjusted.

DPA menu check item under the DP / Edit menu was added to change the default behavior of the automatic peak picking for the labels On Top, applied to all peaks.

DP and PPA tendency for NUTS to falsely find a small peak to the right of an already selected negative peak was corrected.

Two errors in the Buffers sub-routine addition/subtraction/multiplication/division routines were corrected. Error 1 gave a frequency offset error when the two spectra had different SF values. Error 2 was an incorrect interpolation when the data points were unequal.

QBQB was modified to take optional parameters in the non-2-letter command mode.If no parameters are given, then the routine works as before and automatically selects regions and corrects the baseline by a least squares fifth order polynomial.

The new behavior allows a different type of baseline correction, involving “deducing” a baseline much as the user might do “by eye”, and then subtracting that baseline from the spectrum. Details can be found at https://www.acornnmr.com/archive/NutsHelp/deduced_baselines.htm

Use of QB for this type of correction takes up to 3 parameters, as follows:

If there is a first parameter, it is used as the block size in points for the segmented correction. (In the default QB and FB corrections, the segments are 1/64th of the spectrum.)The multiple of RMS noise used to distinguish peaks from noise is the value of RM set in the peak picking routines.

If a second argument is entered, it is used as the multiple of RMS noise, instead of using RM, to distinguish peaks from noise.

The only valid value for a third argument is “show”, which displays the “deduced” baseline. This action replaces the current data set with the deduced baseline.

10/6/99 Version 199910xx
– The use of header type three was creating some illegal memory errors when doing “some” TDs in the non-arrayed mode.This was worked around by eliminating some of the unused header information.

10/6/99 Version
PH and PE
– These commands were modified to be array mode aware. Phase while viewing a single command. On exiting the phase routine, the correction is automatically applied to all slices.

10/1/99 Version 199910xx

Windows 3.1 Memory allocations methods were changed to allow the Windows 3.1 Win32s version to be updated to the current level of NUTS.

8/17/99 Version 990728 (Win 95/98/NT)
Due to some reported errors encountered with the installer, we are no longer using an install program. Nuts95.exe for Win95/98/NT is simply a self-extracting zip file. Execute the file and supply the directory into which Nuts should be installed. It will create the subdirectories (data and mac).

8/4/99 Version 990728 (for PowerMacs)
Files that had been saved with the new Type 3 header were not being read correctly due to a byte-swap problem. This has been fixed.

7/14/99 Version 990715
Some changes were made in memory allocation to correct some reported problems with the 990701 version of NUTS. A variety of operations caused Nuts to crash, but the symptoms were different on each computer. The changes appear to have corrected all reported problems.

The following 2 errors, related to recent changes in 2D display, have been fixed:

Under some conditions, the text labels for each dimension were not being set correctly.

The “target” cursor routine was incorrectly determining cursor position when non-zero margins were set for the 2D plot. This caused incorrect frequencies to be displayed in the lower right corner of the screen, and incorrect values were shown when chemical shifts were set with “O”.

A command conflict has lead to changing the commands for toggling on/off display of projections along the edges of 2D plots. The commands are now numbers, starting at the top and moving around the plot clockwise.

Projection 	Old command 	      New command     top 		          T 			1   right 		          R 			2 bottom 		          B 			3    left 		          L 			4

The old commands prevented the use of some commands (PL, TD) while in the 2D display because these letters were being interpreted as toggle commands for the projections.

The S2 command was failing when trying to save a modified 2D file, due to having “lost” the name of the file. Fixed.

LF – If you opened the info box (I), and deleted the only existing line, Nuts crashed. Now, it deletes the line and closes the dialog box, since there is no longer any info to be viewed.

LF – If, within the info box, you changed absolute intensity or linewidth, area was not recalculated. Intuitively it seems that if you input a specific value for either of those, it should change the area. Now, if you hit APPLY or OK, area is recalculated.

Some menu choices in the IP menu did not perform the commands as advertised (-, T and L). This has been fixed.

Two new items can be set in macros to define parameters for RD.
SET RDpts n where n is the number of pts to rotate
SET RDdirection left (or right)

An error in the JCAMP export routine caused the LASTX value to be incorrectly set to zero. This was corrected.

7/9/99 Version 990709
Some changes were made in how memory is being allocated, to address some variable and non-reproducible bugs.

Some menu choices in the IP menu did not perform the commands as advertised (-, T and L). This has been fixed.

Two new items can be set in macros to define parameters for RD.
SET RDpts n where n is the number of pts to rotate
SET RDdirection left (or right)

7/1/99 Version 990701
An error in the JCAMP export routine caused the LASTX value to be incorrectly set to zero. This was corrected.

6/29/99 Version 991129
– The 2D display routine has been expanded to provide more options for displaying high resolution spectra on the borders. Spectra can now be placed at the top, bottom, left and/or right edges. These border spectra can now be clipped to allow small peaks to be more visible, while truncating larger peaks.

The 2D axes now have editable labels, so they can be more descriptive. They can be edited in the View / Spectral Parameters dialog box.

6/11/99 Version 9911xx
– Bruker Aspect imports changed to show date in Nuts as 4-digit year instead of 2-digit year. If year as read from file is <80, Nuts assumes this must be a date after 2000. Otherwise, it is assumed to be a date 19xx.

Bruker XWin-NMR import of 2D .ser files was modified to read the chemical shift offset for the indirect dimension from the proc2s file.

Bruker X32 imports changed to read PULPROG instead of AUNM for the name of the pulse program.

Bruker X32 1D imports changed to read OFFSET from procs file to get correct chemical shift reference.

Bruker XWin-NMR import was changed to swap real and imaginary halves of the data, as this seemed to always be required.

CR – A dialog box allowing the setting of the contour colors has been added.

LV – A dialog box allowing the setting of the contour levels has been added.

– There are 100 memory locations (even though the Math dialog box shows only the first 10). The memory registers above 9 in the math routines could not be transferred to a register. This was corrected so that Memory x to Register y works for x between 0 and 99 and y between 0 and 9 inclusively.

IP – Some changes have been made to display of projections or 1D spectra on the edges of contour plots. The Display menu now has commands to clip each projection to prevent the tall peaks from being drawn over the contours when the vertical display is increase enough to see small peaks. If a true projection is used, rather than a 1D spectrum, it can now be scaled and clipped also, and is no longer recalculated when the screen is redrawn.

XB and XR – These commands have been replaced by menu items inside the contour plot subroutine, and so have been eliminated.

Header Type 3 – the NUTS header type 3 is now ready for use. This header is a JCAMPDX style ASCII header with several NUTS specific options. The data remains binary
IEEE floats in Little Endian (Intel) format after a ^Z in the header.

NUTS can transparently read all NUTS header types and saves data according to a flag in the NUTS.INI. Header Type 3 is where most new features of NUTS will be supported and can expand indefinitely to allow for newer features. The header type can also be set and queried with the “header” command.

In bringing out this header, 2D and File C operations were extensively debugged for all headers.

6/1/99 Version 990601
Correction of various bugs associated with new features.

5/26/99 Version 9905xx
FB — A memory allocation error involving the FB and Zoom routines was corrected. This error could cause Nuts to crash when Zoom was entered following baseline correction of an expanded spectral region.

IMFiles from some programs which output files in Felix New format failed to import correctly. This was because these programs had a location in the header which indicated the wrong header type. NUTS was modified to just assume these were NUTS files of header type 1.

Close File C – A bug developed keeping track of File C pointers and name. This showed up mostly with header type 3, but was also present with other NUTS headers. Problems were most apparent when importing Bruker files with the RI on import flag set in the NUTS.INI file, or when zero filling (or processing with a FT on a non power of two points data set) in the non-arrayed mode.

5/15/99 Version 9905xx
2N and 2F
– Commands executed in the NUTS base level were originally two letter commands that automatically executed after entering the second character on the keyboard. A new mode has been created allowing longer commands, which requires <ENTER> to execute a command.
In this non two-letter command mode, commands can be longer than two letters. This mode can be toggled on and off while NUTS is running with the 2N (2 letter command mode oN) and 2F (2 letter command mode oFf).

If the flag below in the NUTS.INI file is set to TRUE then the default behavior is that an <ENTER> is required before the command is executed.


When this flag is set to TRUE all two letter commands will require an <ENTER> before they execute.

^C A bug which prevented copying to the clipboard with the Control C command was fixed.

IM – The GE/Nicolet NT import filter was modified to correct dates after 12/31/99. The NT software represents the year by 2 digits, and does not recognize 00 as a valid year. NT owners should set the spectrometer’s date to 1980 for the year 2000, and to 1981 for 2001, etc. When Nuts detects a date earlier than 1985, it will assume it is a false date, and will add 20 years to the date.

IM – The import filter for GE Medical Systems “raw” data from Signa systems was modified to read critical parameters from the file header.

An undo feature was added for the base level commands. Before any base level command is executed, a copy of the current file is saved to a temporary 10-layer file cache. After a base level command is executed, a Control-Z command can return the system to the state before the command was executed, by re-loading the previously saved copy. This feature does not work in the subroutines. The undo function can be turned on with the UN (Undo oN) command and turned off with the UF (Undo ofF) command. Its default state when NUTS is started is defined by a line in the NUTS.INI file which is


Note 1 – The unsave feature is automatically disabled when processing 2D files in the non-arrayed mode.
Note 2 – ^Z within the Zoom subroutine is a totally unrelated command.

Some further improvements in the Galactic SPC file import filter were added.

5/5/99 Version 990505
A new sub-command to the FB subroutine which selects all regions. Useful if it is easier to deselect a few regions than to select a lot of regions not automatically selected.

FB-F A new sub-command to the FB subroutine which is appropriately titled Fudge the baseline. It takes all the selected regions and corrects each one for dc and tilt in each selected regions. Unselected regions are corrected for DC and tilt based on the selected region before and after the unselected region, to avoid discontinuities. This is useful for very distorted baselines that cannot be fit with a polynomial. See example.

commands and vSpec menu were disabled in the Anazasi OEM copies of the NUTS program.

4/30/99 Version 9904xx
— Anasazi files were being imported in a manner requiring an SR after FT. This was corrected.

EF — Email File was added as a command on the File menu on the Windows platform only. If your system already has a Windows email client set up, you can email the current file to someone with this command. Since the disk copy of this file is what is emailed as an attachment, be sure to save the file if ANY processing has been done of the file since it was loaded from the disk.

WV — SH and VW caused problems while in the WV routine. These commands were disallowed while in the VW routine with an error message.

Y# —
A new routine was added to do block averaging of an arrayed file. If a series of 1D files are collected and stored as slices of a 2D file, then this routine can be used to average these files with peak registration to create a 1D file which is the sum of the slices. A region containing a peak to be used for registration is chosen while in the zoom routine and
assigned to a numbered zoom region by pressing a number key between 0 and 9.Then the command Y# is executed (# is a number with the same value as the chosen zoom region).The result will be a 1D spectrum in memory which is the sum of all individual slices with peak registration on the tallest peak in the chosen zoom region.

CF — A bug cause this routine to be broken. The bug was fixed.

The “splash screen” was not correctly displaying the support date, and this has been fixed.

Updated version of WinHelp for NUTS is now available. This includes the step-by-step instructions with screen captures which are also available here, and in the HTMLHelp which is the default version of NUTS Help. Read this for more information.

An updated User’s Guide is also available.

3/22/99 Version 990322
IM –
The Glactic Industries data format import filter was greatly expanded to support additional file types. JEOL .als 2D imports have been added. (Win version only at this time.)

License.NMR – The reading of the License.nmr file was changed with improved encryption.

2/18/99 Version 990218
– (Windows only so far) The ability to display gridlines on the screen and plots was added to NUTS. The display of gridlines can be toggled on and off with the Ctrl-G command. The default NUTS behavior is set in the NUTS.INI file with the parameter:
If this parameter is set to anything else, the gridlines will not be displayed by default, but can still be turned on with Ctrl-G.

IP — Right Projection – a bug was fixed which had caused the Right Projection not to be displayed on full-spectrum contour plots.

2/15/99 Version 990216
— In the non-arrayed mode, when a slice was loaded using SL, the parameters were not being reloaded. This created problems, particularly if processing of a slice included any operation which changed the number of points in the data set (such as ZF or RT). When a new slice was loaded, the parameters were incorrect. The program was changed to force a re-reading and updating of the parameters with each new slice. This slows the processing of 2D data in the non-arrayed mode a little but avoids operator confusion.

Cursor — A new feature was added to the cursor routine for read-out of frequencies. In difference mode, the new feature shows the average chemical shift between the marker and the current position, in addition to the frequency difference. This can be useful when measuring chemical shift of splitting patterns such as a doublet as well as the coupling constants.

The Searchable Archive and Virtual Spectrometer modules are now included in all versions 1D and above.

2/10/99 Version 990210
ZF, RT —
When used in a macro or link, these commands sometimes caused memory allocation problems, causing Nuts to crash. This has been fixed.

2/7/99 Version 990206
Macro — Added Macro commands to ask for the user to set values for the following processing parameters: LB, GF, T1, T2 and S#

— Added several macro commands to the MATH routines.

IM —
Added the import filter for Bruker XWINNMR 2RR files.

IM —
Added the Date to the import filter for Bruker X32 files.

IM — New import filters for JEOL AL files which have the extension *.als was added. These have been tested on 1D files only.

AR — Some new Arrayed Mode commands were added, as follows. These commands facilitate processing of gradient data which must be processed by adding or subtracting pairs of slices. (An example is Varian g_hsqc data, which uses the new C2 command.) These commands work only in arrayed mode with data sets which have an even number of slices.

C1 — This command adds the reals and imaginaries of even and odd slices and gives back a data set with half the number of slices.

C2 — This command adds the reals and subtracts the imaginaries of even and odd slices and gives back a data set with half the number of slices.

C3 — This command subtracts the reals and adds the imaginaries of even and odd slices and gives back a data set with half the number of slices.

C4 — This command subtracts the reals and subtracts the imaginaries of even and odd slices and gives back a data set with half the number of slices.

— Some New items were added to the MATH macro commands to facilitate setting of acqusition parameters.

IM —
Bruker Xwin NMR data files in directories with the sub-directory name was a number greater than 99 were being mis-identified as a different kind of Bruker file. This was changed to allow names to be numbers up to 999.

MO —
An axis font multiplier was added to the MO_Helper dialog. This is the factor by which the axis font will be multiplied when the inset plot is created. The axis font of the main plot is not affected.

1/14/99 Version 990109
Copying —
Metafiles were giving some problems with the size of the axis fonts depending on what was done with NUTS before the metafile was transferred to the clipboard or the a disk file. The metafile creation routine was rewritten to improve this situation. See Copying for details.

Shimming — NUTS now includes a shimming simulation subroutine similar to the SAM program. SM enters this subroutine. See Shimming for details.

11/4/98 Version 981104
– A bug was fixed which could cause Nuts to crash under specific conditions. If a peak list from a recent spectrum was retained for display when a new smaller spectrum was recalled, the program could crash when the program attempted to display peaks at data points beyond the end of the current data set.

– The import filters were enhanced to import to import the following JCAMP-DX5 formats.
XYDATA // For Reals only spectrums
BLOCKS // For Reals and Imag pairs
NTUPLES // For Reals and Imag pairs
Each of these JCAMP types can have five different forms of compression:
FIX or AFFN // Uncompressed ASCII
ASDF // Compressed ASCII
* PAC // Packed
* SQZ // Squeezed
* DIF // Difference
* DIFDUP // Difference with duplicate suppression
NUTS can export data as FIX XYData or NTUPLES. No form of compression is supported for export. 2D copies of NUTS can export 2D data sets as NTUPLES.

MA – A new routine for doing calculations (Math) was added. While the routine can be used as a calculator from the user interface, its utility is in use within macros. See Math for details.

SM – Shim. A small version of the shimming simulator (SAM) has been added to NUTS.

9/8/98 Version 98
– The memory allocation method used in the NS routine was causing some problems on some systems when doing 10, 11, and 12 spin simulations depending on which operating system was used and how much memory was available. This area was improved to cure the problems found.

– A bug was reported in the beta version which was tracked down to a problem when the file header needed to be updated. By default, any header writing to the disk copy of the file was done in the new format. The problem was tracked down to a few places where the header was updated (to the new file format) and the data part of the file was left as it was (in the old format). This was corrected.

IM – The Macintosh version of the import routine failed to identify and import the NMRi VAX data while the Windows version functioned correctly. This was due to a byte swap problem and was corrected.

8/31/98 Version 9808xx
– A menu specific to the IP/CP routine was added. Included on this menu is the ability to define the spectra to be used at the right and/or bottom edge of the 2D display. This method can be used in addition to XB and XR commands.

– A new Buffers subroutine was added to NUTS (full 1D and above – not available in NUTS Lite) which allows 10 memory buffers to be filled with the current displayed data (zoom region or full data set depending on display type). This buffer can then be displayed above any data set loaded into NUTS even if the point size or spectrometer frequency is different. The displays are registered in PPM with the current data set. Amplitude and vertical display position for each buffer can be adjusted in the BU routine. The current data set can also be added, subtracted or multiplied by any buffer. Since the number of data points in the current data set or any buffer does not have to be the same, the addition routines make an attempt interpolate between points to do the addition or subtraction. When the spectrum and buffers are very different the results are sometimes not as good as desired.

File format
– To make way for expansion of NUTS to more than 2D spectra, a new NUTS data format (NUTS data format Type 2) was developed from the original format (NUTS data format Type 1 or CDFF). NUTS can automatically read either format but will write the Type 2 format by default. There is a flag in the NUTS.INI allowing the user to tell NUTS to write the old type 1 format.

7/16/98 Version 9807xx
– The Insets (IS) routine was modified such that if in the IS routine an Insert is partially out of the current display it can still be moved with the mouse. Before, the entire Insert needed to be inside the current display before it could be moved.

PP and DP – A flag was put into the NUTS.INI file to allow the user to turn off the automatic peak label avoidance. This feature can also be invoked in the DP peak description dialog box the user gets when right clicking on peak label while in the DP routine.

– The NUTS help system was converted to HTML help.

For the PowerMac version only, correction of a byte-swapping problem with the Bruker Unix import filter has been fixed.

7/1/98 Version 980701
New HTML Help file
— For the Win95/NT version only, NUTS Help has been converted to the new HTMLHelp. This requires that the user have Microsoft Internet Explorer version 3 or newer already installed. See details.

IM – A new import filter for TecMag NTNMR data was added.

– A pointer to a memory allocation space was changed to eliminate a strange program crash. The crash was strange in that it did not happen every time and happened differently on different PCs.

LN – In arrayed mode, a call to free memory used the wrong pointer. While no errors were visible to the user, a memory leak was happening.

– The NMR spin-spin simulation routines were improved to be faster. For example with a Pentium Pro 200 computer the molecule propane (8 spins) took about 16 seconds to calculate. After the modification the calculation takes about 1.5 seconds. On the same computer butane (10 spins) took 54 minutes 16 seconds (3256 seconds) before and takes under a minute (55 seconds) after the code changes. The number of calculations required increases much faster with increasing spins than the number of spins. Therefore, the speed improvements are greater with a higher number of spins.

– A new type of Bruker file format was discovered. This type arises which the file is transferred from a Bruker Aspect computer to a PC with a file transfer method called BrukNet. This transfer starts with a file with a name like BASENAME.EXT. When transferred to the PC the user gets two files with names like:

BASENAME.EXT+ The binary data
p_BASENAME.EXT The parameters

An import filter for this file type was added. The user needs to select the parameter file and NUTS will auto-identify the new file format.

5/19/98 Version 980519
IP and CP –

Changes were made to the frequency read-out (cross-hair or “target” cursor) routines to make the initial position of the “target” cursor appear at the mouse cursor position instead of slightly above.


Cursor read-out – The printing of information at the bottom right of the display was modified to attempt to keep it from writing over the axis.

5/15/98 Version 980515
IM – Previously, Jeol Generic data were assumed always to be in double floating point format. However, the data can also be in long integer format. Detection for this was added to the IM routines so that both types of data import correctly.

D1 – The dialog box for the D1 list was failing to appear because of a misspelling in the code. This was corrected.

IM and GA

– Data files in CDFF (NUTS) format created by V_Helper and Jeol Delta systems were not being read correctly by NUTS in recent versions. The problem was caused by absence of a NULL terminator on strings in the header, and resulted in NUTS writing the strings over other header information. NULL termination is now forced when NUTS reads the data to prevent this problem.


– New commands were added which allow a macro to ask the user for the shift value to be assigned to a chosen peak. Ask Shift is now a valid macro command, and prompts the user for the chemical shift value to use with the Position Reference (PR) command. The PR command then sets the chemical shift of the tallest peak in the currently displayed region to the value returned from the Ask Shift macro command.

4/28/98 Version 9804xx
RD –

In previous versions, to use RD in a link or macro, it was necessary to execute an RD command before running the link or macro, so that the parameters would be correctly initialized. If this was not done, the RD command in the link or macro was ignored. This was corrected so that the default parameters are used if not se
t explicitly.

PH and PE – If the user was in the PH or PE subroutine and tried to do a QA, QP, or AP without exiting the PH or PE subroutine, the program crashed with a memory conflict. The PH and PE routines were changed to ignore all keyboard commands until the subroutine is exited.

4/22/98 Version
ZF —

When ZF is now used in the frequency domain, the following parameters are now updated to keep the spectrum’s chemical shifts and axis accurate:


number of points in the first dimension
sweep width
offset frequency


– New command (To Average). Brings up a dialog box allowing the viewing/editing/entry of the number of points to use when averaging the ends of regions used with baseline correction commands BF and FR.
An entry of zero lets the program automatically determine the number of points to average, according to the following:
If the selected region is more than 256 points then 16 points are used for averaging.
If the selected region is less than 256 points and greater than 64 points then 8 points are used for averaging.
If the selected region is less than 64 points and greater than 16 points then 2 points are used for averaging.
If the selected region is less than 16 points then the end points are used directly without averaging.
If the number of points set by the user is greater than the entire selected region then the entire selected region is averaged.


is a new macro command used to set the number of points to average when calling the BF or FR command. For example,


ZO –

A new feature of the ZO command is the ability to define ten different Zoom regions (zero through 9) which can be recalled later. To define a region, highlight the chosen zoom region and press a number key (0 to 9) while in the zoom routine. The regions are stored in PPM, not in points as the main Zoom region is stored. A defined Zoom region can be recalled with the Z0, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8 or Z9 commands. Note that regions #1 and #2 are the regions used by the PE command when phase correcting.

Zoom_Region – This new macro command can be used set the zoom regions in a macro. For example,

set ZOOM_REGION 1 2.30 1.10


ZOOM_REGION is the keyword for the set macro command
1 is the region number being set
2.30 is the starting PPM value for the region
1.10 is the ending PPM value for the region

X0 – X9

– Ten new commands which perform an extraction (similar to XT command) of a region previously defined by the corresponding Zoom region (defined using 0 – 9 while inside Zoom, or by the macro command Set Zoom_Region).


– This new macro command can be used extract a spectral region in a macro. For example,

do EXTRACT_PPM 2.30 1.10


EXTRACT_PPM is the keyword for the “do” macro command
2.30 is the starting PPM value for the extraction
1.10 is the ending PPM value for the extraction


– Flatten Region – This new command removes the baseline offset and tilt of the current zoom region. It is similar to the BF command, except the BF command makes an effort to keep the baseline at the ends of the zoom region continuous while the FR command does not.

New version available for PowerMac. Some problems were discovered in the previously released version related to file reading and writing, which have been fixed in this version.

4/6/98 Version 980406
– When the Notes function was modified to have the dialog box accept pasting from the clipboard the Windows 3.1 version stopped accepting any new notes. The paste from the clipboard was disallowed for the Windows 3.1 version.

Toolbar – The toolbar icons were enlarged 50%. Page Setup was added to the toolbar. The icons were replaced with icons which should imply the function called. The tooltips still indicate what the toolbar button does in plan language.

4/2/98 Version 980331
– The following values related to the Add/Subtract routine can now be set in the nuts.ini file:

AS_Mult = 1.0 (AS_Mult is the initial multiplier for the data in the AS buffer)
AS_DC = 33.0 (AS_DC is the initial percent vertical screen offset)

3/31/98 Version 9803xx
– The Notes routine was modified to allow pasting to the edit box from the clipboard (Ctrl-V in Windows, command-V on the Mac) and to allow vertical scrolling for longer text notes.

PE – The PE routine was modified to use the tallest peak in region 1 as a pivot point. Region 1 is then phase corrected by mouse movement with zero-order phase only. That same zero-order correction is automatically applied to region 2, and then linear correction is applied with mouse movement. This corrects a problem which sometimes caused the phase to change slightly on exiting the PE routine.

3/17/98 Version 9803xx
– Many changes were made to address the problems created by the addition of the toolbar.

3/16/98 Version 9803xx
AL and AS
— The AL and AS commands were made “array aware”. In the arrayed mode, AL now loads the entire matrix into a buffer when in arrayed mode. The AS command now adds/subtracts each slice of the current spectrum to the corresponding slice in the buffer.

IP and CP — The mouse selection of slices and zoom regions was being done incorrectly if the toolbar was turned on. This was updated.

3/15/98 Version 9803xx
— The spectrum name of an imported file was reported incorrectly on the plots. This was corrected.

IM — Importing of Chemagnetics SpinSight data was not getting the pulse width or recycle delay values correct. This was corrected.

RI — The RI command had a bug if the arrayed mode which was corrected.

3/10/98 Version 9803xx
– A tool bar was added to NUTS for a few basic functions. This can be turned off in the NUTS.INI file.

3/1/98 Version 9803xx
— Fid Play was writing a temporary file to the same directory as the NUTS Help files. This was creating some problems on restricted network installations of NUTS. This was corrected to write the file to the Windows temporary directory. The error messages in this routine were also expanded to help provide more useful feedback an system configurations having problems with playing the audio
of an FID.

2/27/98 Version 9802xx
PP and DP
— on the Macintosh versions of NUTS now supports the vertical font alignment of the peak labels.

Expert Mode – For people who like less questions and dialog boxes popping up, a flag has been added to the NUTS.INI file that stops NUTS for asking “Are You Sure??” type questions in a lot of areas.

DP – When NUTS is in the “Arrayed Mode”, the DP command can now automatically pick peaks in the 2D data set. This data can now be directly saved in the same format as SpecMan from Spectrum Research (subcommand lowercase s)as well as the standard NUTS peak data format(subcommand capital S). The data saved in the SpecMan format is ready to be used by NMRSAMS from Spectrum Research. It has been our experience that 2D automatic peak picking is more subject to false peaks than a standard 1D automatic peak picking. This is probably due to a combination of factors: lower digital resolution, lower signal to noise and increased presence of artifacts. NUTS does allow for quick graphical addition ( mouse click) and elimination (K subcommand of the DP) of automatically picked peaks.

AR – A new optional ($250) processing mode accessory has be added to NUTS. This option is called “Arrayed Mode” processing. It is intended for NUTS users who have more advanced PC systems with a lot of memory (greater than 32 Mbytes) where 2D processing speed is important. When NUTS is toggled into this processing mode with the AR command, the entire 2D data set is loaded into memory. Then NUTS commands which are “Arrayed Mode aware” operate on the entire data set when issued. For example, when the user enters the FT command all slices of the 2D data set are Fourier Transformed with the single command. This mode of operation provides a 12 fold speed improvement when processing a 2D data set. See Arrayed Mode Help for details.

Metafiles – Working with the GDI experts at Microsoft, the code for metafile creation was enhanced to greatly reduce the number of GDI instructions included in the metafile. Using several compression techniques, the enhancements create much smaller metafiles which seem to work better when placed into other Windows applications like Word. With previous versions of NUTS, Enhanced Metafiles seem to always print when placed inside Word but Placeable Metafiles failed to print properly after two or three spectra were added to the Word document. Even though the enhanced metafiles did print, they were much larger files than the current NUTS version generates and made Word operate slower.

It is our recommendation that, with the Windows versions of NUTS, metafiles be saved to the disk using the “Copy Printer DC Enhanced Metafile to File” option. The next best choice is “Copy Placeable Metafile to File”. In our hands these two choices insert into Word and print correctly. With the Macintosh versions of NUTS, the similar options to the clipboard should be used. The objects in the clipboard can then be pasted into Word from the clipboard.

2/6/98 Version 9802xx
DM and DS
— The work on DP peak labeling created an area where if a spectrum in a database did not have a peak list the search aborted with an error. This was corrected.

1/23/98 Version 980123
— In the IS routine and when right clicking on an Insert, a Tick Density for that Insert was added to the Dialog box.

— We have come across a Bruker XWINNMR Version 2.0 data set where the data was in floating point as opposed to integer. After examining the ACQUS for how to tell these two formats apart, we made a WAG (that’s Wild Ass Guess) and have the import filter working for the one example of this data that we have. Note that we have only tested this on one data set, so cannot be sure this will work in all cases.

E6 — New export for data in JCAMP format. NUTS supports the JCAMP-DX 5.0 standard data format for import and export. Two classes of data types are supported: XYDATA and NTUPLES. XYDATA is useful for data being displayed by some other display programs and contains only the real part of the spectrum. Processing data imported in this format requires doing a Hilbert Transform to create a complex fid from the reals only data.

NTUPLES supports RI pairs. Bruker software can import and export data in this format using extensions which are Bruker specific. NUTS follows this technique by using extensions to the JCAMP-DX standard which are specific to NUTS. Efforts have been made to make these extensions the same as the Bruker extensions whenever possible. This means that NUTS can import Bruker exported JCAMP-DX spectra and, hopefully, Bruker can import NUTS exported JCAMP-DX spectra.

NUTS can also export 2D spectra in the JCAMP-DX style. This is outside the JCAMP-DX standard definitions and is not supported by Bruker. If we become aware of any further definitions to the JCAMP-DX standard, we will make efforts to keep our exports faithful to the defined standard.

Even though NUTS does export values for TD and TD_2D in the parameters for the number of points in both dimensions of a data set, they are ignored on import, with the actual number of points being determined as the data is being imported.

1/16/98 Version 980116
New features added included a new subroutine for inset plots and a subroutine for text annotation, illustrated below.

NO — Notes subroutine. This allows the user to define multiple text boxes, which are “tied” to a point in the spectrum, but can be repostioned with the mouse. NO enters the routine (also from the Tools menu). Click or type A to add a text box and type in the text. The font can be set independently for each text box. C clears all notes boxes, S toggles display of all boxes on/off. P creates a new text box containing acquisition parameters. Click the right mouse button on a text box to edit that note. <Enter> will exit the subroutine. See details in Nuts Help section

IS — Inset plots subroutine. Use Zoom to select the region you want as an inset, but then Ctrl-F to display the whole spectrum. IS enters the routine (also from the Tools menu). A will add the previously defined region as an inset plot, which can be moved and re-sized. C clears all insets, S toggles display of all insets on/off. Click the right mouse button on an inset to edit its properties, including axis label, axis font and scale (Hz/cm) for plotting. Note that for some printers, this scaling needs to be fine-tuned. Print a test plot with an insert and measure the insert. The Printer Fudge box lets you enter a correction factor so that the inset plot is correctly scaled on your printer. Once this fudge factor is determined, it can be set in the nuts.ini file. <Enter> will exit the subroutine. See details in Nuts Help section.

IM — Importing of JEOL Alpha data was modified to accommodate an older version of Alpha data which has a smaller header (8704 bytes, rather than 16384).

WS — Window Size. This new command allows the user to set the size of the Nuts window in pixels. This is useful in copying spectra as bitmaps, by allowing a desired size to be set, so that the bitmap does not need to be resized in the target application, which can cause distortions.

12/27/97 Version 971227
More refining has been done on the new “overlap avoidance” routine in the DP subroutine.

New features such as WV and the DP and PP modifications have been ported to Win3.11 and to both Mac versions. The Mac does not allow peak labels to be displayed with a vertical font, which makes placing labels at the top of the page less useful, as they take up much more space.

12/22/97 Version 9712xx
QB (Win95/NT Version) — This command was added to do a Quick Baseline correction equivalent to an FB,L,A series of commands. This quick baseline correction is allowed in NUTS Lite whereas the full FB routine is not in NUTS Lite.

ID (Win95/NT Version) –The integral value display position algorithm was modified to display in three different positions:
1) At the end of the integral value( 1 = slightly above the integral end, 2 = at the integral end and 3 = = slightly below the integral end ).
2) at the top of the display centered in the x direction at the middle of the integral.
3) at the bottom of the display just above the axis centered in the x direction at the middle of the integral.
These three positions can be toggled through with the M sub-command while in the ID subroutine.

DP (Win95/NT Version) — The overlap avoidance algorithm was further refined with an option to fan the peak labels at the top of the display above the peaks.

PP (Win95/NT Version) — The PP routine was modified to use algorithms from the DP routine to label peaks automatically. These labels can be further modified in the DP routine. This command now labels picked peaks in the NUTS Lite whereas the full DP routine is not available in NUTS Lite.

ZL (Win95/NT Version) — This command was added to allow quick removal of all current peak label information. It is the equivalent of a DP, C series of commands.

12/05/97 Version 9712xx
DP (Win95/NT Version) — A routine was added to the DP routine to allow single line comments to be added to the displays and plots.

DP (Win95/NT Version) — The DP routine was enhanced with an overlap avoidance algorithm to keep the labels from writing over themselves.

Last updated: 04/24/10