The MEXICO Suite of Programs for

NMR Chemical Exchange Lineshape Calculation

version 3.0

April 2002


    Many NMR spectra show the effects of dynamics. Lines in a spectrum are broadened or averaged because the nuclei are exchanging magnetic environments. For simple cases, the lineshapes are easy to understand and calculate with well-known equations. However, there is also a need for more sophisticated calculations which can be applied to general spin systems. Furthermore, it is usually desirable to fit the calculated spectrum to experimental data, in order to extract exchange rates. See the introduction to exchange for more details. A program that will vary the parameters in order to get a best fit is also necessary. The MEXICO suite of programs is designed to meet those needs.

    MEXICO will calculate lineshapes for systems of spin-1/2. This is relatively simple for systems without spin-spin coupling, since there is a one-to-one relation between lines in the spectrum and nuclei. Coupled spin systems are more challenging, and require a full density-matrix calculation. For this reason, the program for uncoupled sites will accept a general kinetic scheme, whereas the coupled version is restricted to two-site exchange. Both the coupled and uncoupled versions of the program are available in non-iterative and iterative versions. See the  Manual for more details.

    The programs are based on the idea of a complex-valued line position and transition probability (Bain and Duns, Can. J. Chem. 74 819-824, 1996). We are familiar with the frequency of an NMR line, and its intensity. The position, or frequency, of a line is given by the imaginary part of a complex frequency, and the width is given by the real part. In a similar way, the real and imaginary parts of a complex transition probability define the intensity and phase of the line. A chemical exchange lineshape, no matter how bizarre, is made up of a series of lines with complex frequencies and transition probabilities.

    The main problem with these programs is how to do the input and output in a convenient and efficient manner. One approach is to work with ASCII, which makes the program portable, but not very visual. The other version of the program is designed to use the data structures of Bruker's XWINNMR program, so that the simulations can be inspected, compared and plotted using that program. A version using the Varian data structures is in development.

    The programs are written in standard C, and should compile and run on almost any computer that supports that language. The text-based versions have been tested on Windows, Sun, SGI and Linux systems. The Bruker versions have been used on SGI, Windows NT and Linux. For  good compilations of Linux programs, check out Linux4Chemistry or  Scientific Applications of Linux. For a summary of lots of NMR-related software, see A Compilation of Educational NMR Software. .


    The programs are distributed as executables, but the source code is also available unter the terms of the GNU public licence . Click on the following links to download the appropriate package.

BEWARE- there is a bug in the program for unequally-populated sites! The equlibrium constants for the coupled version of the program are the wrong way around. The uncoupled version does things correctly and works.


    There are always bugs, and things that need improvement. Please let me know. Thanks.

Back to Alex Bain's home page

may 27, 2002; adb