The Virtual NMR Spectrometer

see "The Virtual NMR Spectrometer; a Computer Program for Efficient Simulation of NMR Experiments Involving Pulsed Field Gradients", J. Mag. Res. 145, 262-275, (2000), by Peter Nicholas, David Fushman*, Vladislav Ruchinsky, and David Cowburn

Supported by grants from the Camille & Henry Dreyfus Foundation and from the National Science Foundation.

OBJECTIVES -- Produce an accurate, extendable, user-friendly simulation of of modern high resolution NMR experiments for general education, and research use. Community based development of a widely acceptable research tool for non-commercial applications.

Version 3.5 features and future developments:
    (Click here to see the list of new features included in the version 3.5)

  • Translator that allows the user to input pulse sequences using the programming language of an actual experiment and/or to execute the same pulse programs used on actual spectrometers; the current version supports Bruker programming language (versions 2.5 and earlier); this module is written in Lex and Matlab,  It is intended (P. 1, Table below) to make it very general and extensible (e.g. include Varian pulse sequences).
  • Graphical User Interface that resembles an actual spectrometer interface (Click here to see it).
  • Spin System Setup module includes both text and graphical modes and relaxation-rate calculator to help the user define a desired spin system. We have started creating a library (P. 2) of typical spin systems (e.g. AMX, A3X, A3B2, some typical chemical compounds s including amino acids ) to be directly loaded from disk, to ease creation of the spin system.  This will be part (P. 3) of creating an optional simple interface for teaching purposes.
  • Simulator that executes the translated program code and produces an "experimental" data set. Currently allows simulation of single- and multichannel 1D, 2D, and 3D NMR experiments including rectangular and shaped RF pulses and pulsed field gradients. Other features include spin decoupling, power level selection and switching during experiment, direct or indirect detection of heteronuclei, and automatic or manual selection of fine steps for calculation of spin density evolution. Current version supports spin-1/2 nuclei (e.g. 1H, 15N, and 13C), the actual number of spins is limited only by the size of addressable memory. The user can add/simulate the effect of experimental noise. Suggested future modification include (P. 4) specific implementation of complex decoupling schemes and other arbitrary phase/amplitude/offset pulse trains.  In addition, we plan (P. 7) to incorporate specifically chemical exchange. 
  • Pulsed Field Gradients: this version includes two different computational approaches, which permit efficient treatment of experiments using pulsed field gradients for coherence selection: 
  • -- an explicit calculation of all coherence transfer pathways (CTP) in an experiment, and 
    -- a multi-layer ('Salami') approach.
    Future modifications will include (P. 6) transverse gradients.
  • Data Processing module that allows all typical spectrum processing features (such as apodization, zero-filling, linear phase correction, and phase sensitive detection by TPPI, States, States-TPPI, and echo-antiecho methods). A future modification (P. 8) will extend processing to arbitrary multiple dimensions and (P. 9) multiple acquisitions per pulse train. Once the data structure is defined properly, these features will be added into the simulator driver, the GUI setup, and the translator. The addition of other standard processing features like  (P. 14) Linear prediction are also possible. 
  • Visualization Modules that trace and display the spin density, expressed as a linear combination of basis operators, as it evolves during an experiment.  A future modification (P. 10) would be the visualization of coherence order during the sequence, which will require modifications to the simulator.
  • Interfaces to other software available in the current version allow the user to export simulated data in XWINNMR and NMRPipe formats and to import experimental data (from Bruker) in order to analyze them using the tools available in the Virtual Spectrometer package. 
  • In the future, additions are expected to involve (P. 11) extending the Hamiltonian used in the simulator to solids-specific features; (P. 12) extension to account for diffusion in PFGs; (P. 13) extensions, in a new module, to account for instrumental issues (filters, effects of digitization, RF inhomogeneties, Q instabilities)

Future features (NOT in priority order) Translator GUI Simulator PFG Processing Visualization Comment
1. Translator X Varian programs
2. Spin systems for teaching purposes X In development
3. Simplified teaching GUI X In development
4. Complex decoupling and other pulse mod. schemes X2 X1
5. Arbitary shaped RF pulses X2 X1 Phase & offset
6. Transverse gradients X3 X2 X1
7. Chemical exchange X
8. 3D and higher dimensions X3 X1 X2 Final testing of 3D
9. Arbitary acquisition X4 X5 X1 X2 X3
10. Coherence order display X3 X1 X2
11. Solid state NMR X2 X1
12. Explicit diffusion X2 X1 X3
13. Instrumental effects X2 X1 new module
14. Linear prediction etc X
15. Interfaces to commercial packages  In development
16. Interfaces to spectrometers X1 X2

If you are interested in using the program, are knowledgeable about NMR, and familiar with Matlab, perhaps you would consider being an BETA-tester of the program.  BETA-testers should, hopefully, be willing to put up with the testing of the developed code, documenting errors and inconsistencies of the code, and might even be willing to contribute to the development.  A general release of the program after ALPHA and BETA testing is expected around Summer 2004.

Please address questions and requests to David Fushman, phone: (301) 405-3461, fax. (301) 314-0386, e-mail:


Back to top


Updated 12/28/2003.