925-456-1020 info@acornnmr.com




NMR Simulation

This NUTS subroutine calculates and displays a spectrum based on user-input values for chemical shifts and coupling constants. NUTS makes the assumption that in most cases, the user wants to fit a calculated spectrum to a real spectrum. Therefore, the NS routine uses the values of Spectrometer Frequency, Sweep Width, Spectrum Offset and Number of Points from the current spectrum for its calculation. (It is possible to change these values; see below.) Subcommands can be accessed via the menus or by typing single-letter commands which can be found next to the corresponding operation in the menu displays. Show me how to use NS.

To begin, type NS or select Simulation from the Tools menu to enter the simulation subroutine. From the Edit menu, choose Add/Edit Simulation Data. This brings up a dialog box for entering data. First enter the number of spins, then enter chemical shifts (in either Hz or PPM; set units in lower left corner). To enter coupling constants, click on the button in the lower right corner. When finished, click on Accept and Recalculate, which closes the dialog box, performs the simulation and displays the resulting spectrum. Repeat this process to adjust the input parameters.

To enter data for degenerate spins (eg., a methyl group), enter each as a separate spin with the same value for chemical shift and couplings to other nuclei. (The couplings among degenerate spins are zero.)

Within the data input dialog box is a box labeled Nuclei. By default, all nuclei are taken to be H, on the assumption that this is the most common situation. The actual label is irrelevant; the only important point is whether or not all spins have the same label. If the Nuclei labels of 2 of the spins are set to be different, second order interactions between those 2 spins are ignored. (This can be used to compare the results obtained for a given set of input parameters with and without consideration of second order effects.) To simulate a heteronuclear case, simply make the chemical shift of the heteronucleus very different from the others, and the Nuclei labels need not be changed.

To compare real and simulated spectra, choose Both from the Display menu. The vertical scale of both spectra can be adjusted in the usual way, with either the right-hand scroll bar, Page UP/Page Down keys or the < > keys. To adjust the scale of just the simulated spectrum, type L or choose change LB/Amplitude from the Edit menu, which brings up a dialog box allowing the linewidth and/or scale of the simulated spectrum to be adjusted, without having to re-do the entire calculation. When the simulation subroutine is exited (with ENTER), the input data are not lost. This means the simulation routine can be exited and re-entered without losing data. It may be easier to view real and calculated spectra if the DC offset of the real spectrum is adjusted so that the 2 spectra do not overlap. It is possible to exit NS, change DC and re-enter NS. To change the Spectrometer Frequency, exit NS, type SF, enter a new value, then re-enter NS. The input parameters are still active, but the spectrum is not automatically recalculated on re-entering NS. To recalculate the spectrum, choose Recalculate from the Edit menu or type R.

While in the simulation subroutine, the cursor readout works as usual. With both real and simulated spectra displayed, the cursor can be used to measure shifts and coupling constants from the real spectrum for input in the parameter input dialog box. This can be repeated until all starting parameters are input before investing time to calculate the spectrum by selecting Accept Changes in the dialog box.

Within the simulation subroutine, it is possible to enter Zoom to change the displayed region. This is done by typing Z or by choosing Enter Zoom from the Display menu. The cursor changes to the Zoom crosshair while in Zoom. Typing Enter exits the Zoom routine and returns to NS. Note that not all Zoom options are available. The calculated spectrum is not digitized in the way a real spectrum is, but the Zoom routine operates at the current digital resolution. This means that if the real spectrum being fit is poorly digitized, there may be limits on the ability to Zoom in on a narrow spectral region within NS.

To experiment with spectrum simulations not matching a real spectrum, it may be desirable to change the values of Spectrometer Frequency, Sweep Width, Spectrum Offset and Number of Points. With the exception of Number of Points, these parameters can simply be changed by bringing up the parameter dialog box from the Parameters menu and entering new values. To change Number of Points, choose File New from the File menu (or type FN), which brings up a dialog box allowing parameters to be set. On re-entering NS, any previously calculated spectrum is displayed, but this does not reflect the changes in parameters. Execute Recalculate to implement changes. Note that the time required to calculate a spectrum is independent of the Number of Points.

The simulation data can be saved as a text file containing both the input parameters and the calculated data as a list of frequencies and intensities. An example of such a text file is shown below. A previously saved simulation file can be opened from within the simulation subroutine and the resulting spectrum displayed. Note that if the current value for SF is different from that which was saved with the simulation file, the 2 spectra (real and simulated) cannot be compared until the simulation is recalculated. Regardless of whether the chemical shifts were entered as Hz or PPM, they are saved in the simulation file as PPM. This option is available from the File menu.

The simulated spectrum can also be saved as an FID. The resulting file can be manipulated in the same manner as real data. The FID is created from the calculated transition frequencies and intensities. The time required to generate the FID depends on the current Number of Points. Be sure that the current digital resolution (Number of Points/SW) is sufficient to adequately digitize the calculated spectrum, or artifacts may appear in the spectrum generated this way.

The spectrum can be printed by choosing Print from the File menu. Whatever is currently displayed (eg., the simulated spectrum or both real and simulated spectra) is what will appear on the plot. The currently displayed screen can also be copied to the Windows clipboard for pasting into a document using the Copy Screen option from the Edit menu.

The simulation subroutine includes the option of performing a Simplex optimization of spectral parameters to match a real spectrum. This is available from the Optimize menu or by typing O. Be advised that this process involves a huge number of calculations and so can be very time-consuming. It is best to adjust parameters manually first to be as close as possible before attempting optimization. Note that the optimization is not constrained to keeping shifts or coupling constants of degenerate spins the same, so that after optimization degenerate spins may have slightly different values. These can be adjusted manually and, if desired, the optimization repeated.

The time required to calculate a spectrum depends on the number of spins and on the speed of the computer. Calculations involving up to about 8 spins take just a few seconds, but the time required goes up dramatically for each spin added. A 10-spin simulation takes about a minute on a reasonably fast Pentium.  (We have not had the patience to time a 12-spin calculation!)  Optimization is therefore practical only on smaller spin systems.

For spin systems with a lot of symmetry (eg, an isopropyl group, with 6 equivalent Hs), the
matrix diagonalization may fail.  The NS routine has 2 matrix diagonalization algorithms. NUTS defaults to an algorithm called QL (using Householder, if you want to look it up in Recipes in C) that attempts to diagonalize half of the matrix, which is faster, but this fails in some cases. However, there is another algorithm called Jacobi, which can be employed in this situation.  Selection of the Jacobi algorithm can be done from the Parameters dialog box in the NS routine (as of 7/10/08).  For earlier versions, selection of the Jacobi algorithm must be done from the Base Level of NUTS, before entering NS. First, exit the 2-letter command mode with 2F. Then start NS with the command “NS jacobi”. This must be done each time NS is re-entered. 


The following subcommands are active within the NMR Simulation subroutine. They are single-letter commands which are executed immediately. All commands can also be accessed via the menus.

A Add/Edit simulation data; opens a dialog box for setting shift and coupling values
B Display Both simulated and real spectra
C Display Calculated spectrum only
D Display Digitized calculated spectrum
F Generate FID from calculated transition frequencies and intensities.
G Get simulation data from file
Q Quit drawing spectrum. Interrupts a slow drawing operation.
R Re-calculate spectrum based on input data
S Save simulated data to text file
Z Enter ZOOM subroutine to alter displayed frequency range. Not all ZOOM functions are active.
^C Copy currently displayed spectrum to Windows clipboard
(minus sign) Display difference between real and calculated spectra

Sample Simulation File

When a simulation is saved from within the NMR Simulation subroutine, a text file is created which looks like the example below (which is for ODCB). This file can be read into the Windows Notepad or any word processor for editing and printing. It includes the shifts and couplings from which the spectrum was calculated, and the transition frequencies and intensities which resulted from the calculation. Chemical shifts, labeled V(i) are in ppm. Coupling constants, labeled J(i,j), are in Hz. The Spectrometer Frequency is included for reference only. When this file is read into the NS routine, SF is not changed. The SF value can be changed by exiting NS, resetting SF, re-entering NS and executing Recalculation.

NUTSsimulation Scale =  10000.00 Spectrometer Frequency =   90.000000  MHz LineWidth =     0.250  Hz Spins = 4  V(1) =    7.23  PPM  V(2) =    7.23  PPM J(1,2) =   0.30  Hz  V(3) =    6.97  PPM J(1,3) =   1.50  Hz J(2,3) =   8.10  Hz  V(4) =    6.97  PPM J(1,4) =   8.10  Hz J(2,4) =   1.50  Hz J(3,4) =   7.50  Hz   Number   Transitions(Hz)  Transitions(PPM)    Intensities      1       660.331          7.3370           0.121     2       659.535          7.3282           0.137     3       656.446          7.2938           1.241     4       656.057          7.2895           1.281     5       652.630          7.2514           2.886     6       650.680          7.2298           1.659     7       649.768          7.2196           1.863     8       646.846          7.1872           2.759     9       646.376          7.1820           2.978    10       642.961          7.1440           0.501    11       642.863          7.1429           0.572    12       635.137          7.0571           0.572    13       635.039          7.0560           0.501    14       631.624          7.0180           2.978    15       631.154          7.0128           2.759    16       628.232          6.9804           1.863    17       627.320          6.9702           1.659    18       625.388          6.9488           2.886    19       621.943          6.9105           1.281    20       621.554          6.9062           1.241    21       618.465          6.8718           0.137    22       617.669          6.8630           0.121   End NUTS Simulation File

FN — File New

Used in conjunction with spectral simulation, this command allows the user to change the values of Spectrometer Frequency, Sweep Width, Spectrum Offset and Number of Points. Choosing File New from the File menu (or typing FN) brings up a dialog box allowing these parameters to be set.


Main Help page

Command Index


Last updated: 7/10/08.