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

Abstract

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.

This is a preview of subscription content, log in to check access.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

References

  1. Bak M, Rasmussen JT, Nielsen NC (2000) SIMPSON: a general simulation program for solid-state NMR spectroscopy. J Magn Reson 147:296–330

    ADS  Article  Google 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–47

    ADS  Article  Google Scholar 

  3. Beazley DM (2003) Automated scientific software scripting with SWIG. Future Gener Comput Syst 19:599–609

    Article  Google 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–39

    Article  Google Scholar 

  5. Blanton WB (2003) BlochLib: a fast NMR C++ tool kit. J Magn Reson 162:269–283

    ADS  Article  Google Scholar 

  6. Brüschweiler R, Zhang F (2004) Covariance nuclear magnetic resonance spectroscopy. J Chem Phys 120:5253–5260

    ADS  Article  Google 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–1423

    Article  Google 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–293

    Article  Google Scholar 

  9. Delsuc MA (1988) Spectral representation of 2D NMR spectra by hypercomplex numbers. J Magn Reson 77:119–124

    Google Scholar 

  10. Goddard TD, Kneller DG (2008) SPARKY 3. University of California, San Francisco

    Google 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–208

    ADS  Article  Google 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:052314

    ADS  Article  Google 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–6289

    ADS  Article  Google 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–2403

    Article  Google 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–13937

    Article  Google Scholar 

  17. Hoch JC, Stern A (1996) NMR data processing, 1st ed. Wiley-Liss, New York

  18. Hunter JD (2007) Matplotlib: a 2D graphics environment. Comput Sci Eng 9:90–95

    Article  Google 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–10742

    Article  Google Scholar 

  20. Jones E, Oliphant T, Peterson P, et al (2001) SciPy: open source scientific tools for Python. http://www.scipy.org/

  21. Keller RLJ (2004) The computer aided resonance assignment tutorial. Cantina Verlag, Goldau

    Google 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–10817

    Article  Google Scholar 

  23. Lauterbur PC (2005) All science is interdisciplinary: from magnetic moments to molecules to men (Nobel Lecture). Angew Chem Int Ed 44:1004–1011

    Article  Google 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–S126

    Article  Google Scholar 

  25. Lutz M (2011) Programming Python, 4th ed. O’Reilly Media, Sebastopol

  26. Marquardt DW (1963) An algorithm for least-squares estimation of nonlinear parameters. J Soc Ind Appl Math 11:431–441

    MathSciNet  MATH  Article  Google 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–97

    ADS  Article  Google 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–120

    Article  Google 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–8120

    Article  Google 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–9563

    Article  Google 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–302

    Article  Google Scholar 

  32. Ni F, Scheraga HA (1986) Phase-sensitive spectral analysis by maximum entropy extrapolation. J Magn Reson 70:506–511

    Google 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–1189

    Article  Google 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–89

    Article  Google Scholar 

  35. Oliphant TE (2007) Python for scientific computing. Comput Sci Eng 9:10–20

    Article  Google 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–2830

    MathSciNet  Google 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–745

    Article  Google Scholar 

  38. Perez F, Granger BE (2007) IPython: a system for interactive scientific computing. Comput Sci Eng 9:21–29

    Article  Google Scholar 

  39. Peterson P (2009) F2PY: a tool for connecting Fortran and Python programs. Int J Comp Sci Eng 4:296

    Article  Google 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–452

    Article  Google Scholar 

  41. Seabold S, Perktold J (2010) Statsmodels: econometric and statistical modeling with python. Proceedings of the 9th Python in science conference, pp 57–61

  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–417

    Article  Google 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–7691

    Article  Google Scholar 

  44. Short T, Alzapiedi L, Brueschweiler R, Snyder D (2011) A covariance NMR toolbox for MATLAB and OCTAVE. J Magn Reson 209:75–78

    ADS  Article  Google Scholar 

  45. Shuker SB, Hajduk PJ, Meadows RP, Fesik SW (1996) Discovering high-affinity ligands for proteins: SAR by NMR. Science 274:1531–1534

    ADS  Article  Google 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–105

    Article  Google 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–292

    Google 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–447

    Article  Google 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–637

    ADS  Article  Google 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:9

    Google 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–26

    ADS  Article  Google Scholar 

  52. Van Rossum G (1995) Python tutorial, Technical Report CS-R9526

  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–282

    ADS  Article  Google 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–696

    Article  Google Scholar 

  55. Wassenaar TA et al (2012) WeNMR: structural biology on the grid. J Grid Comp 10:743–767

    Article  Google Scholar 

  56. Wüthrich K (2003) NMR studies of structure and function of biological macromolecules (Nobel Lecture). Angew Chem Int Ed 42:3340–3363

    Article  Google Scholar 

Download references

Acknowledgments

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.

Author information

Affiliations

Authors

Corresponding authors

Correspondence to Jonathan J. Helmus or Christopher P. Jaroniec.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (PDF 194 kb)

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Helmus, J.J., Jaroniec, C.P. Nmrglue: an open source Python package for the analysis of multidimensional NMR data. J Biomol NMR 55, 355–367 (2013). https://doi.org/10.1007/s10858-013-9718-x

Download citation

Keywords

  • Nuclear magnetic resonance
  • Solid-state NMR
  • Data processing
  • Data analysis
  • Data visualization
  • Python
  • Open source