Corrections and additions to NUTS NMR processing software

britLine.GIF (1250 bytes)

2/9/08
IM -
Importing of GE Med Systems version 14 files was added. 

1/27/08
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.

12/14/07
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. 

12/12/2007
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. 

11/14/07
LP -
Display of parameters on the spectrum was modified to stay in the upper left corner of the plot regardless of the zoom limits.

7/6/07
DT -
fixed a bug that could cause NUTS to crash when a data table or parts of the table were deleted.

6/20/07
nutsini
- 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. 

6/13/2007
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); 

5/30/07
Notes
- 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.

3/30/07
IM
- 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.

3/28/07
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.

3/14/07
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.

2/8/07
PH
- 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.

2/1/07
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.

1/29/07
PE -
added status bar notation when entering PE subroutine.

1/24/07
IP/CP -
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.

1/17/07
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.

12/8/06
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.

11/23/06
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.

11/10/06
Zoom
- d and u subcommands disabled

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

9/7/06
IP/CP -
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

8/17/06
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.

7/18/06
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.

7/12/2006
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. 

5/2/06
VW -
Added a menu for this subroutine

3/6/06
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.

2/22/06
IM -
The pulse angle parameter was not being initialized before a data file was read. This caused the value from 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.

2/20/06
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.

2/15/06
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.

2/8/06
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.

10/19/05
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.

9/14/05
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.

8/29/05
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.

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

7/7/05
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.

6/24/05 
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.

6/23/05
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.

6/22/05
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-reading the nuts.ini file. An error was causing the current data to be deleted when this command was executed. This has been corrected. 

6/14/05 
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.

6/8/05
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.

5/13/05
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.

4/20/05
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. 

4/13/05
cmdlog -
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.

4/6/05
macros -
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!

NUTSMACRO 
2f
solvent,
2n,
if strcmp cdcl3 
SZ
end

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.

NUTSMACRO 
2f
nucleus,
2n,
if strcmp 13C 
set LB 2
end

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.

NUTSMACRO 
; the program will jump to the ":theend" label 
; and bypass the ft command
goto theend
ft
:theend
end

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.

4/4/05
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.

3/30/05
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.

2/16/05
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.

2/9/05
IM
- 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.

2/4/2005 
IM
- 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.

1/26/2005
IM -
An Import filter was added for Siemens RDA data.

1/26/2005 
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.

1/25/2005 
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

1/19/05
cmdlog
- Several changes were made to the Command Log function to correct errors and capture more parameters.

12/10/04
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.

11/11/04 
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.

11/07/04 
IM –
Importing of JEOL Delta data was enhanced to get more parameters.

11/05/04 
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.

11/2/2004 
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.

10/11/2004 
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.

10/9/2004 
SQUARE2D -
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

10/8/2004 
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.

10/8/2004
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.

10/8/2004 
IM -
The JCAMPDX imports were modified to read a chemical shift reference value with FIDs and spectra used by Varian JCAMPDX exports.

9/30/2004 
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. 
Usage:
ERNST <Total Recycle Time (sec)> < T1 (sec) >

9/29/2004 
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.

9/4/04
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.

8/17/2004 
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

8/17/2004 
BU -
The buffers routine was updated to have different user settable pen widths for the screen and printer.

8/17/2004 
ED -
The ED command was updated to work with data in the pairwise arrayed mode.

8/17/2004 
IM -
Philips changed their type 2 header file. The import routine was changed to correctly identify both types when importing.

6/17/2004 
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.

6/16/2004 
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.

6/8/2004 
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.

6/8/2004  
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.

5/15/2004
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.

5/11/2004 
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.

5/3/2004 
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 versions.

1/27/2004
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.

1/26/2004
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.  

1/26/2004 
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.

1/23/2004
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.

1/6/2004 
ML
- A routine called MoLecule (ML) was added to display Molfiles as structures on the screen.  See details.

1/3/2004 
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.

12/30/2003
Command Aliases
- The use of a COMMAND.INI file to assign command aliases was removed from NUTS

12/29/2003 
IM -
The import filter for GE Medical Systems spectroscopy data was expanded to cover versions 7.x, 8.x and 9.x.

7/24/2003 
BU -
The ability to save a spectrum with the current Buffers was added to the File menu of the BUffer routine.

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

5/25/2003 
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.

5/10/2003 
MR or MRI or IMAGE
- 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.

4/28/2003 
TL or TILT
- 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. 

4/23/2003 
Title Bar
- The files comment was added to the NUTS application title bar at the top of the NUTS window.

3/12/2003
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.

3/11/2003 
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.

3/11/2003 
BR, JE
- 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.

3/8/2003 
AP, QP, QA
- 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 step size for the first order phase.

AP A
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.

AP RMS #
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%.

2/24/2003 
IM
- 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.

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

2/13/2003 
/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.

2/12/2003 
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. 

2/12/2003
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. 

2/12/2003 
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. 

2/12/2003 
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. 

2/10/2003 
IM, GA, GB
- 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.

2/7/2003
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.

2/6/2003
GA -
The Macintosh file opening routines were misidentifying NUTS format data with type I or type II header styles. This was corrected.

2/5/2003 
FB, FX
- 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:

CONTINUOUS_BASELINE = TRUE 
 baseline is DC adjusted

CONTINUOUS_BASELINE = FALSE 
 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

1/30/2003 
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:

DO_PP_WITH_M = TRUE

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.

11/28/2002 
TILT
- 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. This 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).

tilt
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.

11/26/2002
Axis
- 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.

11/18/2002 
ID
- 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: 

SET FONT_INTEGRAL +10
is now either
SET FONT_INTEGRAL_HORIZONTAL +10
or
SET FONT_INTEGRAL_VERTICAL +10

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:

ID_HORIZONTAL_FONT=FALSE
or
ID_HORIZONTAL_FONT=TRUE

11/15/2002 
IM
- A generalized error in the import filter caused the PulProg parameter of XWinNMR data to be read correctly and ignored. This was corrected.

11/12/2002 
IM
- 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 #.

11/7/2002 
GA
- 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.

11/6/2002 
NUTS
- 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.

11/6/2002
AR
- 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.

10/30/2002
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.

10/29/2002
GA
- 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.

10/29/2002
MF
- 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.

10/29/2002
TB
- 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.

10/19/2002
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:

INTERPOLATE_PEAKS=FALSE
SNAP_TO_PEAK=FALSE

10/17/2002
Exports
– 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:

do INCREMENT_EXPORT_FILENAME

8/4/2002
FB
– 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.

8/4/2002
AR
– 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.

7/25/2002
StartUp
- 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.

7/24/2002
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:

-1
-top
-t Top Projection

-2
-right
-r Right projection

-3
-bottom
-b Bottom projection

-4
-left
-l Left projection

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

-on
-off

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

7/8/2002
IM
- 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.

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

7/1/02
HI
– 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.

6/20/02 
FB
– 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.

6/19/2002 
HI
- (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:

Histogram_Template
Descriptor_Size 0.1
Include 10.0 0.0
Eliminate 9.50 9.0
Eliminate 5.00 4.00

6/18/02
FB, FX
– 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.

6/14/02
FX
– 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.

6/12/2002
DC
- 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.

6/11/2002
ZE
- 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.

5/17/2002
SV
(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.

5/17/2002
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.

5/17/2002
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.

5/10/2002 
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)

1D
2D_Magnitude
2D_TPPI
2D_HyperComplex
2D_EchoAntiEcho
2D_SatesTPPI
3D_Generic

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.

5/3/2002 
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 SMOOTH) 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.

4/24/02
AR
- 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.

4/5/2002
Header
– 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]

where:
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
1. ABORT
2. CONTINUE
3. New macro name to start

Sample macro:

nutsmacro 
QUESTION
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.
YES_BUTTON CONTINUE
NO_BUTTON ABORT
CANCEL_BUTTON ABORT
END_QUESTION
ft
end

3/28/2002 
NF
– 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.

3/18/2002 
MO
– 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.

3/15/2002 
FB
– 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. 

3/13/2002 
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:

MOUSE_SCALING_PE = 500
MOUSE_SCALING_PH = 500

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

3/13/2002 
Inserts
– 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.

Inserts – 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.

3/12/2002 
Axis
– 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.

3/10/2002 
NUTS.INI
-- A flag was added to the NUTS.INI file which prevents NUTS from overwriting any existing file:

NO_FILE_OVERWRITE = TRUE

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.

3/1/2002 
FB
– 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.

2/25/2002 
CB
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.

2/21/2002 
Start
– 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:

path\NUTS.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 NUTS\MAC directory.

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

1/15/2002
DI
– 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. 

1/7/2002 
LF
– 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.

12/27/2001 
tilt
– 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.

12/20/2001 
IM
– 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.

12/17/2001 
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.

12/17/2001
IS
- 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.

12/16/2001
E6
- 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.

12/7/2001 
IS
- 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.

12/6/2001
NO
- 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.

12/6/2001
IM
- 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.

12/5/2001 
IM
- 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.

12/2/2001 
2D
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.

11/30/2001 
IM
- 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.

11/16/2001 
IM
- 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.

11/13/2001 
Undo
- 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.

11/1/2001 
FT
- 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:

complex
complex_norotate
complex_nosort
hilbert
inverse
real
sequential

10/10/2001 
IM - Bruker XWIN Imports - The Bruker XWIN imports were updated to accommodate Bruker systems using Windows NT and SGI computers. 

10/8/2001
CmdLog - Command logging for MS was updated to capture the value of the phase shift for sine window function.

9/28/2001
ZG, VP, GS
- The virtual spectrometer commands were made active in all versions of NUTS.

9/28/2001 
CmdLog
- Command logging for PH and PS were not correctly displaying the new total phase values. This was corrected.

9/26/2001
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.

9/24/2001
Comment
- 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.

9/14/2001
commandlog
OR cmdlog - The logging start/stop was changed from stopping when a Save command was issued to starting when a file is opened.

9/12/2001 
AS -
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.

8/31/2001
commandlog
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.

8/29/2001
IP
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

8/27/2001
compare
- 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 the first data set, overlaid on the second. 
See details.

8/24/2001
LC
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.

8/22/2001
IM
- 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.

8/15/2001 
hdrsearch
- 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.

8/14/2001 
LF
- 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

8/9/2001
Fonts
- 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.

8/8/2001
FA
-  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

7/12/2001 
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.

7/11/2001 
HeaderSearch
- 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.

7/10/2001
UID
- 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> \

/4/2001 
IM
- 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.

7/4/2001 
IM
- 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".

6/30/2001 
ED
- (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.

6/28/2001 
ED
- (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).

6/26/2001 
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.

4/28/01
IM
- A problem with importing of JEOL Delta phase-sensitive 2D data was corrected.

4/25/2001 
Expert Mode
- A command to set the "expert mode" was added to the non 2-lettered command mode.  Type "expertmode <ENTER" for usage.

4/25/2001 
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.

3/9/2001 
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.

3/6/2001 
LN
- 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.

2/27/2001 
IM
– 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. 

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

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

2/1/2001
EZ -
a default selection of the first zoom value allowed an <Enter> to close the dialog box

2/1/2001 
ID -
In the ID subroutine, the Menu Baseline / Apply Baseline Correction did not work. This was corrected.

11/28/2000 
IM
- 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.

10/24/2000
PS
– this command was broken by adding phase number readout to the PH routine. This was corrected again.

10/24/2000  
DI
- A command (DI) to take a directory listing of the NUTS root directory and email it as an attachment was added to NUTS.  

10/23/2000  
Checks for file errors in the Licensing configuration were added to the NUTS startup routines.

10/22/2000  
IM
- A first pass at direct importing of JEOL Delta data files was added.  Importing of some 2D files works, but not all, yet. 

10/13/2000  
invert
– 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. 
Examples: 
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.

10/6/2000  
PH
– 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.

9/27/2000  
IP
- 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.

9/25/2000  
LF
– 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.

9/21/2000  
XT
- 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. 
Examples:

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.

9/21/2000  
Yn
- The command to peak register data slices was modified to register on the largest absolute value point and not the largest positive point.

9/3/2000 
UUENCODE AND UUDECODE
- 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.

9/2/2000 
AxisPen
- 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

8/24/2000 
GB
- 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

8/24/2000 
IS
- 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.

8/24/2000 
ID
- 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 
SUM
- 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.

8/21/2000 
IE
- 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).

8/18/2000
ZeroDiagonal
- 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.

8/5/2000
PI
- 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.

8/1/2000 
PC
- (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 correction are shown at the left edge of the screen during phasing.

JJ - Carbon 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".

7/23/2000 
SUM
- 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.

7/20/2000
GA
- 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.

7/19/2000 
GA
- 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.

7/16/2000 
ZO
- 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.

7/11/2000 
IM
- The reference offset (O1) was changed in the MacFID import filter.

7/7/2000 
IM
- 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.

7/7/2000  
LF
- 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 

SET LF_WRITE_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): 

DO INCREMENT_LF_GET_FILENAME 

DO INCREMENT_LF_WRITE_FILENAME

6/14/2000 
SM
- 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.

6/12/2000 
IM
- 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.

6/1/2000
2D DP
- 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.

5/29/2000 
BT
- A code error on doing a Bruker FT with a non-power of 2 data set was corrected.

5/24/2000 
TA
- 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.

5/18/2000 
IP/CP
- 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.

5/12/2000 
IN
– 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:
FF FT PS SA IN
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.

5/11/2000
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.  

4/22/2000 
R#
- 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