Home » SCRUB

SCRUB and nmr_wash


SCRUB is an algorithm for the suppression of artifacts in NMR spectra obtained from sparsely sampled data. NMR data collection for high-resolution 3D and 4D data can be dramatically accelerated using sparse sampling in the time domain, but Fourier transformation of sparsely sampled data generates large aliasing artifacts due to violation of the Nyquist sampling theorem. SCRUB can routinely produce high-quality spectra with input data sampled at ~1% of the conventional level, and can achieve a dynamic range of more than 10000:1 in favorable cases. Typical calculation times on recent modern desktop computers vary from five minutes to two hours depending on the dimensionality and size of the spectrum, and the extent of artifacts.

For more information on SCRUB, see:

B.E. Coggins, J.W. Werner-Allen, A. Yan, and P. Zhou. "Rapid Protein Global Fold Determination Using Ultrasparse Sampling, High-Dynamic Range Artifact Suppression, and Time-Shared NOESY." J. Am. Chem. Soc., 134, 18619-18630 (2012). PubMed, JACS Website, PDF

nmr_wash is a software package implementing SCRUB as well as the earlier CLEAN algorithm. It is written in C++ and should compile and run on all common platforms. It interfaces directly with NMRPipe and can also read and write data in the NMRView, UCSF/Sparky, and XEASY file formats.


Getting Started

Download precompiled binaries and/or source code of the most recent release here:

If you would like the current development source code, it can be downloaded as a git repository from BitBucket.

We recommend reading the Installation Instructions and User's Manual, both of which are included in the package, for advice on how to get started using this software to process NMR data.


Readme, License, and Installation Instructions

Installation Instructions

User's Manual

User's Manual (HTML)
User's Manual (PDF)

Man Pages for Command-Line Programs

scrub Man Page
clean Man Page
pipewash Man Page

Reporting Bugs

You can email the author (bec2 -AT- duke.edu) or submit the bug report directly on the BitBucket issue tracker.