DESPERATE: A Python library for processing and denoising NMR spectra

Adam R Altenhof,Harris Mason,Robert W Schurko
DOI: https://doi.org/10.1016/j.jmr.2022.107320
Abstract:NMR spectroscopy is an inherently insensitive technique with respect to the amount of observable signal. A common element in all NMR spectra is random thermal noise that is often characterized by a signal-to-noise ratio (SNR). SNR can be generically improved experimentally with repetitive signal averaging or during post-processing with apodization; the former of which often results in long experimental times and the latter results in the loss of spectral resolution. Denoising techniques can instead be used during post-processing to enhance SNR without compromising resolution. The most common approach relies on the singular-value decomposition (SVD) to discard noisy components of NMR data. SVD-based approaches work well, such as Cadzow and PCA, but are computationally expensive when used for large datasets that are often encountered in NMR (e.g., Carr-Purcell/Meiboom-Gill and nD datasets). Herein, we describe the implementation of a new wavelet transform (WT) routine for the fast and robust denoising of 1D and 2D NMR spectra. Several simulated and experimental datasets are denoised with both SVD-based Cadzow or PCA and WT's, and the resulting SNR enhancements and spectral uniformity are compared. WT denoising offers similar and improved denoising compared with SVD and operates faster by several orders-of-magnitude in some cases. All denoising and processing routines used in this work are included in a free and open-source Python library called DESPERATE.
What problem does this paper attempt to address?