Nmrglue: an open source Python package for the analysis of multidimensional NMR data
Nmrglue, an open source Python package for working with multidimensional NMR data, is described. When used in combination with other Python scientific libraries, nmrglue provides a highly flexible and robust environment for spectral processing, analysis and visualization and includes a number of common utilities such as linear prediction, peak picking and lineshape fitting. The package also enables existing NMR software programs to be readily tied together, currently facilitating the reading, writing and conversion of data stored in Bruker, Agilent/Varian, NMRPipe, Sparky, SIMPSON, and Rowland NMR Toolkit file formats. In addition to standard applications, the versatility offered by nmrglue makes the package particularly suitable for tasks that include manipulating raw spectrometer data files, automated quantitative analysis of multidimensional NMR spectra with irregular lineshapes such as those frequently encountered in the context of biomacromolecular solid-state NMR, and rapid implementation and development of unconventional data processing methods such as covariance NMR and other non-Fourier approaches. Detailed documentation, install files and source code for nmrglue are freely available at http://nmrglue.com. The source code can be redistributed and modified under the New BSD license.
KeywordsNuclear magnetic resonance Solid-state NMR Data processing Data analysis Data visualization Python Open source
This work was supported in part by the National Science Foundation (CAREER Award MCB-0745754 to C.P.J.), the National Institutes of Health (R01GM094357 to C.P.J.), the Camille and Henry Dreyfus Foundation (Camille Dreyfus Teacher-Scholar Award to C.P.J.) and Eli Lilly and Company (Young Investigator Award to C.P.J.). The authors thank the current and former members of the Jaroniec research group (in particular P.S. Nadaud, M. Gao, C. Gupta, S.P. Pondaven, I. Sengupta, B. Wu and S. Mukherjee) for testing and providing valuable feedback on the early versions of nmrglue, and M. Fenwick and P. Semanchuk for reporting bugs and providing patches for the package. This work would not have been possible without the Scientific Python community, whose efforts have produced a powerful environment for scientific computing. The members of this community are too numerous to list here, however special thanks go to the late J.D. Hunter for his dedication to the community and contributions to creating the indispensable matplotlib package. J.J.H. also thanks J. Hoch (U. Connecticut Health Center) for supporting his continuing work on the development of nmrglue.
- Delsuc MA (1988) Spectral representation of 2D NMR spectra by hypercomplex numbers. J Magn Reson 77:119–124Google Scholar
- Goddard TD, Kneller DG (2008) SPARKY 3. University of California, San FranciscoGoogle Scholar
- Hoch JC, Stern A (1996) NMR data processing, 1st ed. Wiley-Liss, New YorkGoogle Scholar
- Jones E, Oliphant T, Peterson P, et al (2001) SciPy: open source scientific tools for Python. http://www.scipy.org/
- Keller RLJ (2004) The computer aided resonance assignment tutorial. Cantina Verlag, GoldauGoogle Scholar
- Lutz M (2011) Programming Python, 4th ed. O’Reilly Media, SebastopolGoogle Scholar
- Nadaud PS, Sengupta I, Helmus JJ, Jaroniec CP (2011) Evaluation of the influence of intermolecular electron-nucleus couplings and intrinsic metal binding sites on the measurement of 15N longitudinal paramagnetic relaxation enhancements in proteins by solid-state NMR. J Biomol NMR 51:293–302CrossRefGoogle Scholar
- Ni F, Scheraga HA (1986) Phase-sensitive spectral analysis by maximum entropy extrapolation. J Magn Reson 70:506–511Google Scholar
- Seabold S, Perktold J (2010) Statsmodels: econometric and statistical modeling with python. Proceedings of the 9th Python in science conference, pp 57–61Google Scholar
- States D, Haberkorn R, Ruben D (1982) A two-dimensional nuclear overhauser experiment with pure absorption phase in four quadrants. J Magn Reson 48:286–292Google Scholar
- Turk MJ, Smith BD, Oishi JS, Skory S, Skillman SW, Abel T, Norman ML (2011) yt: a multi-code analysis toolkit for astrophysical simulation data. Astrophys J (Suppl Ser) 192:9Google Scholar
- Van Rossum G (1995) Python tutorial, Technical Report CS-R9526Google Scholar