Journal of Biomolecular NMR

, Volume 55, Issue 4, pp 355–367 | Cite as

Nmrglue: an open source Python package for the analysis of multidimensional NMR data

  • Jonathan J. HelmusEmail author
  • Christopher P. JaroniecEmail author


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 The source code can be redistributed and modified under the New BSD license.


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

Supplementary material

10858_2013_9718_MOESM1_ESM.pdf (194 kb)
Supplementary material 1 (PDF 194 kb)


  1. Bak M, Rasmussen JT, Nielsen NC (2000) SIMPSON: a general simulation program for solid-state NMR spectroscopy. J Magn Reson 147:296–330ADSCrossRefGoogle Scholar
  2. Baldus M (2002) Correlation experiments for assignment and structure elucidation of immobilized polypeptides under magic angle spinning. Prog Nucl Magn Reson Spect 41:1–47ADSCrossRefGoogle Scholar
  3. Beazley DM (2003) Automated scientific software scripting with SWIG. Future Gener Comput Syst 19:599–609CrossRefGoogle Scholar
  4. Behnel S, Bradshaw R, Citro C, Dalcin L, Seljebotn DS, Smith K (2011) Cython: the best of both worlds. Comput Sci Eng 13:31–39CrossRefGoogle Scholar
  5. Blanton WB (2003) BlochLib: a fast NMR C++ tool kit. J Magn Reson 162:269–283ADSCrossRefGoogle Scholar
  6. Brüschweiler R, Zhang F (2004) Covariance nuclear magnetic resonance spectroscopy. J Chem Phys 120:5253–5260ADSCrossRefGoogle Scholar
  7. Cock PJA, Antao T, Chang JT, Chapman BA, Cox CJ, Dalke A, Friedberg I, Hamelryck T, Kauff F, Wilczynski B, De Hoon MJL (2009) Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics 25:1422–1423CrossRefGoogle Scholar
  8. Delaglio F, Grzesiek S, Vuister GW, Zhu G, Pfeifer J, Bax A (1995) NMRPipe: a multidimensional spectral processing system based on UNIX pipes. J Biomol NMR 6:277–293CrossRefGoogle Scholar
  9. Delsuc MA (1988) Spectral representation of 2D NMR spectra by hypercomplex numbers. J Magn Reson 77:119–124Google Scholar
  10. Goddard TD, Kneller DG (2008) SPARKY 3. University of California, San FranciscoGoogle Scholar
  11. Gorgolewski K, Burns CD, Madison C, Clark D, Halchenko YO, Waskom ML, Ghosh SS (2011) Nipype: a flexible, lightweight and extensible neuroimaging data processing framework in python. Front Neuroinform. doi: 10.3389/fninf.2011.00013 Google Scholar
  12. Günther UL, Ludwig C, Rüterjans H (2000) NMRLAB: advanced NMR data processing in Matlab. J Magn Reson 145:201–208ADSCrossRefGoogle Scholar
  13. Helmus JJ, Nadaud PS, Höfer N, Jaroniec CP (2008a) Determination of methyl 13C–15N dipolar couplings in peptides and proteins by three-dimensional and four-dimensional magic-angle spinning solid-state NMR spectroscopy. J Chem Phys 128:052314ADSCrossRefGoogle Scholar
  14. Helmus JJ, Surewicz K, Nadaud PS, Surewicz WK, Jaroniec CP (2008b) Molecular conformation and dynamics of the Y145Stop variant of human prion protein in amyloid fibrils. Proc Natl Acad Sci USA 105:6284–6289ADSCrossRefGoogle Scholar
  15. Helmus JJ, Surewicz K, Surewicz WK, Jaroniec CP (2010) Conformational flexibility of Y145Stop human prion protein amyloid fibrils probed by solid-state nuclear magnetic resonance spectroscopy. J Am Chem Soc 132:2393–2403CrossRefGoogle Scholar
  16. Helmus JJ, Surewicz K, Apostol MI, Surewicz WK, Jaroniec CP (2011) Intermolecular alignment in Y145Stop human prion protein amyloid fibrils probed by solid-state NMR spectroscopy. J Am Chem Soc 133:13934–13937CrossRefGoogle Scholar
  17. Hoch JC, Stern A (1996) NMR data processing, 1st ed. Wiley-Liss, New YorkGoogle Scholar
  18. Hunter JD (2007) Matplotlib: a 2D graphics environment. Comput Sci Eng 9:90–95CrossRefGoogle Scholar
  19. Jaroniec CP, Filip C, Griffin RG (2002) 3D TEDOR NMR experiments for the simultaneous measurement of multiple carbon-nitrogen distances in uniformly 13C,15N-labeled solids. J Am Chem Soc 124:10728–10742CrossRefGoogle Scholar
  20. Jones E, Oliphant T, Peterson P, et al (2001) SciPy: open source scientific tools for Python.
  21. Keller RLJ (2004) The computer aided resonance assignment tutorial. Cantina Verlag, GoldauGoogle Scholar
  22. Laage S, Lesage A, Emsley L, Bertini I, Felli IC, Pierattelli R, Pintacuda G (2009) Transverse-dephasing optimized homonuclear J-decoupling in solid-state NMR spectroscopy of uniformly 13C-labeled proteins. J Am Chem Soc 131:10816–10817CrossRefGoogle Scholar
  23. Lauterbur PC (2005) All science is interdisciplinary: from magnetic moments to molecules to men (Nobel Lecture). Angew Chem Int Ed 44:1004–1011CrossRefGoogle Scholar
  24. Lewis IA, Schommer SC, Markley JL (2009) rNMR: open source software for identifying and quantifying metabolites in NMR spectra. Magn Reson Chem 47:S123–S126CrossRefGoogle Scholar
  25. Lutz M (2011) Programming Python, 4th ed. O’Reilly Media, SebastopolGoogle Scholar
  26. Marquardt DW (1963) An algorithm for least-squares estimation of nonlinear parameters. J Soc Ind Appl Math 11:431–441MathSciNetzbMATHCrossRefGoogle Scholar
  27. Meissner A, Duus JO, Sørensen OW (1997) Spin-state-selective excitation. Application for E.COSY-type measurement of JHH coupling constants. J Magn Reson 128:92–97ADSCrossRefGoogle Scholar
  28. Nadaud PS, Helmus JJ, Jaroniec CP (2007) 13C and 15N chemical shift assignments and secondary structure of the B3 immunoglobulin-binding domain of streptococcal protein G by magic-angle spinning solid-state NMR spectroscopy. Biomol NMR Assign 1:117–120CrossRefGoogle Scholar
  29. Nadaud PS, Helmus JJ, Kall SL, Jaroniec CP (2009) Paramagnetic ions enable tuning of nuclear relaxation rates and provide long-range structural restraints in solid-state NMR of proteins. J Am Chem Soc 131:8108–8120CrossRefGoogle Scholar
  30. Nadaud PS, Helmus JJ, Sengupta I, Jaroniec CP (2010) Rapid acquisition of multidimensional solid-state NMR spectra of proteins facilitated by covalently bound paramagnetic tags. J Am Chem Soc 132:9561–9563CrossRefGoogle Scholar
  31. 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
  32. Ni F, Scheraga HA (1986) Phase-sensitive spectral analysis by maximum entropy extrapolation. J Magn Reson 70:506–511Google Scholar
  33. Nicholson JK, Lindon JC, Holmes E (1999) “Metabonomics”: understanding the metabolic responses of living systems to pathophysiological stimuli via multivariate statistical analysis of biological NMR spectroscopic data. Xenobiotica 29:1181–1189CrossRefGoogle Scholar
  34. Nowling RJ, Vyas J, Weatherby G, Fenwick MW, Ellis HJC, Gryk MR (2011) CONNJUR spectrum translator: an open source application for reformatting NMR spectral data. J Biomol NMR 50:83–89CrossRefGoogle Scholar
  35. Oliphant TE (2007) Python for scientific computing. Comput Sci Eng 9:10–20CrossRefGoogle Scholar
  36. Pedregosa F, Varoquaux G, Gramfort A, Michel V, Thirion B, Grisel O, Blondel M, Prettenhofer P, Weiss R, Dubourg V, Vanderplas J, Passos A, Cournapeau D, Brucher M, Perrot M, Duchesnay É (2011) Scikit-learn: machine learning in Python. J Mach Learn Res 12:2825–2830MathSciNetGoogle Scholar
  37. Pellecchia M, Bertini I, Cowburn D, Dalvit C, Giralt E, Jahnke W, James TL, Homans SW, Kessler H, Luchinat C, Meyer B, Oschkinat H, Peng J, Schwalbe H, Siegal G (2008) Perspectives on NMR in drug discovery: a technique comes of age. Nat Rev Drug Discov 7:738–745CrossRefGoogle Scholar
  38. Perez F, Granger BE (2007) IPython: a system for interactive scientific computing. Comput Sci Eng 9:21–29CrossRefGoogle Scholar
  39. Peterson P (2009) F2PY: a tool for connecting Fortran and Python programs. Int J Comp Sci Eng 4:296CrossRefGoogle Scholar
  40. Pons J-L, Malliavin TE, Delsuc MA (1996) Gifa V. 4: a complete package for NMR data set processing. J Biomol NMR 8:445–452CrossRefGoogle Scholar
  41. Seabold S, Perktold J (2010) Statsmodels: econometric and statistical modeling with python. Proceedings of the 9th Python in science conference, pp 57–61Google Scholar
  42. Sengupta I, Nadaud PS, Helmus JJ, Schwieters CD, Jaroniec CP (2012) Protein fold determined by paramagnetic magic-angle spinning solid-state NMR spectroscopy. Nat Chem 4:410–417CrossRefGoogle Scholar
  43. Shao H, Seifert J, Romano NC, Gao M, Helmus JJ, Jaroniec CP, Modarelli DA, Parquette JR (2010) Amphiphilic self-assembly of an n-type nanotube. Angew Chem Int Ed 49:7688–7691CrossRefGoogle Scholar
  44. Short T, Alzapiedi L, Brueschweiler R, Snyder D (2011) A covariance NMR toolbox for MATLAB and OCTAVE. J Magn Reson 209:75–78ADSCrossRefGoogle Scholar
  45. Shuker SB, Hajduk PJ, Meadows RP, Fesik SW (1996) Discovering high-affinity ligands for proteins: SAR by NMR. Science 274:1531–1534ADSCrossRefGoogle Scholar
  46. Smith SA, Levante TO, Meier BH, Ernst RR (1994) Computer simulations in magnetic resonance. An object-oriented programming approach. J Magn Reson A 106:75–105CrossRefGoogle Scholar
  47. 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
  48. Stevens TJ, Fogh RH, Boucher W, Higman VA, Eisenmenger F, Bardiaux B, Van Rossum B-J, Oschkinat H, Laue ED (2011) A software framework for analysing solid-state MAS NMR data. J Biomol NMR 51:437–447CrossRefGoogle Scholar
  49. Takegoshi K, Nakamura S, Terao T (2001) 13C–1H dipolar-assisted rotational resonance in magic-angle spinning NMR. Chem Phys Lett 344:631–637ADSCrossRefGoogle Scholar
  50. 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
  51. Van Beek JD (2007) matNMR: a flexible toolbox for processing, analyzing and visualizing magnetic resonance data in Matlab((R)). J Magn Reson 187:19–26ADSCrossRefGoogle Scholar
  52. Van Rossum G (1995) Python tutorial, Technical Report CS-R9526Google Scholar
  53. Veshtort M, Griffin RG (2006) SPINEVOLUTION: a powerful tool for the simulation of solid and liquid state NMR experiments. J Magn Reson 178:248–282ADSCrossRefGoogle Scholar
  54. Vranken WF, Boucher W, Stevens TJ, Fogh RH, Pajon A, Llinas M, Ulrich EL, Markley JL, Ionides J, Laue ED (2005) The CCPN data model for NMR spectroscopy: development of a software pipeline. Proteins Struct Funct Bioinf 59:687–696CrossRefGoogle Scholar
  55. Wassenaar TA et al (2012) WeNMR: structural biology on the grid. J Grid Comp 10:743–767CrossRefGoogle Scholar
  56. Wüthrich K (2003) NMR studies of structure and function of biological macromolecules (Nobel Lecture). Angew Chem Int Ed 42:3340–3363CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2013

Authors and Affiliations

  1. 1.Department of Chemistry and BiochemistryThe Ohio State UniversityColumbusUSA
  2. 2.Environmental Science DivisionArgonne National LaboratoryArgonneUSA

Personalised recommendations