NMRPipe is a UNIX-based collection of programs and scripts for manipulating multidimensional Nuclear Magnetic Resonance (NMR) data. NMRPipe has its genesis as a spectral processing engine, and over the years has been augmented with a variety of facilities for spectral analysis and quantification, extraction of structural information from NMR data, and manipulation of molecular structures. The use of NMRPipe is noted in roughly 40% of all NMR structures accepted into the Protein Data Bank (PDB).
NMRPipe scripts are generally UNIX C-shell scripts, or TCL
scripts which use NMRPipe's customized interpreter
Some of NMRPipe's programs and scripts have interactive graphical interfaces, including NMRPipe's primary program for viewing
scroll.tcl for viewing strips from one or more 3D spectra, and
for viewing 1D and 2D spectral series. Many NMRPipe programs are operated from the UNIX command line,
and some, such as the
nmrPipe program itself, are almost always used from inside a shell script.
nmrWish script interpreter includes the standard features
and BLT, as well as many other NMR-related functions
that have been added.
Most of NMRPipe's programs and scripts have command-line options, which you can list by using the
For example, typing
nmrPipe -help will list the general command line arguments for
nmrPipe -help -fn ZF will display information about NMRPipe's Zero Fill function
Typical NMRPipe Workflow for Spectral Processing
The NMRPipe Demonstration Data Archive contains many
example schemes for spectral processing and quantification.
The typical NMRPipe processing workflow involves creating and editing
UNIX C-shell scripts, and frequent alternation between the UNIX command line and NMRPipe
programs such as the
nmrDraw graphical interface. For this reason, in order
to use NMRPipe you will need a working knowledge of UNIX,
including use of a text editor and creation of shell scripts.
Prepare a script to convert spectrometer format data to NMRPipe format via an interactive interface.
Execute the conversion script, and inspect the result via the
nmrDrawgraphical interface. Use the Proc/Auto Process 1D menu option to process the first 1D vector, and use the graphical interface to find a phase correction value.
At the UNIX command-line, use a text editor to create or adjust a processing script
containing the needed phase corrections etc. Commonly, the processing script is copied
from a previous case. Processing scripts can also be created via new general-purpose
Execute the processing script and read the processed result with
nmrDraw. View vectors from any of the dimensions, and choose new phase correction values as needed.
- Repeat steps 3 and 4 to adjust processing parameters as needed.
In the case of 3D data, create and inspect projections and view strips plots of the 3D
data to confirm that the data is processed and phased properly. Commands:
As needed, create and edit peak tables, and quantify spectral signals. Commands:
Since it is script-based, NMRPipe is highly customizable.
Some things that the software can do:
- NMRPipe includes special tools to help automate the conversion of time-domain data from Agilent, Bruker, Varian, and JEOL Delta, with adjustment for digital oversampling, and conversion of Non-Uniformly Sampled (NUS) Data.
- General-purpose data format conversion tools are provided, so that most any sequential data format can be used to generate input for NMRPipe, and processed data can be saved in other forms.
- NMRPipe includes comprehensive facilities to process, rephase and display conventional and NUS multidimensional data, including options for Iterative Soft Thresholding (IST), Linear Prediction (LP), Maximum Entropy Reconstruction (MEM), and Maximum Likelihood Frequency Maps (ML).
- Tools to resample spectral data are provided, to generate NUS-style data from conventional data for testing and demonstration purposes.
- Rigorous inverse processing facilities are provided for optimal use of special reconstruction methods and schemes.
- NMRPipe's pipeline-based processing schemes are intrinsically parallel, and multidimensional processing scripts can be modified for distributed processing in multi-CPU environments.
- NMRPipe includes flexible, effective methods to replace bad values in multidimensional data using Linear Prediction or Iterative Soft Thresholding.
- Common image processing and segmentation functions.
Spectral Display and Plotting
- The nmrDraw program can display multidimensional time- frequency- and interferogram data, and multiple 1D overlays. The program also provides real-time interactive phasing of multiple 1D spectra, with automated reconstruction of imaginary data.
- NMRDraw includes facilities for correlated cursors and data positioning for viewing two or more related spectra.
- Create and draw strip displays, projections, and overlays. Options include interactive strip displays for multiple spectra with differing PPM ranges, providing drag and drop options to adjust strip order.
- The specView graphic interface allows viewing of 1D or 2D spectral series in overlay, with interactive Principal Component Analysis (PCA) of any spectral region.
- Existing scripts can generate PostScript and PDF plots for strip displays of 3D data, and for 1D and 2D spectral series overlay. Custom scripts can be created to generate most any kind of spectral plot format.
Spectral Quantification and Analysis
- Rapid and effective automated peak detection for 1D-4D spectra.
- Automated 1D-4D lineshape fitting, for precise and convenient spectral quantification, including direct fitting of pseudo-3D data such as relaxation series or J-modulated series.
- Simulate time or frequency domain data, including qualitative simulations of common spectral types such as HNCA etc.
- Form linear combinations of time-domain data or spectra.
- Vector decomposition of spectral and imaging data using Principal Component Analysis (PCA).
- General-purpose tools for X,Y model fitting and statistics.
Chemical Shift Analysis, Dipolar Couplings, and NMR Homology
- Predict protein backbone angles based on backbone chemical shifts.
- Simulate and display protein backbone chemical shifts based on protein strucuture.
- Calculate J-couplings from Karplus parameters
- Extensive facilities to manipulate and visualize Dipolar Couplings, including restrained fitting and cross-validation of tensor parameters.
- Use NMR homology search to estimate protein alignment tensor parameters from measured dipolar couplings without prior knowledge of the structure.
- Visualize tensor parameters with respect to a PDB file.
- Extract structural information by NMR Homology Search (Molecular Fragment Replacement, MFR).
Molecular Structure Utilities
- List or display backbone and sidechain angles, visualize ramachandran trajectory for one or more proteins or fragments.
- Analyze Protein PDB for H-bonds, secondary structure and turn classification, mass, volume, and surface area.
- Find coordinate or torsion RMSD between two or more structures, form overlay.
- Simple Simulated annealing structure calculation, including NOEs, J-coupling, torsion restraints, absolute or relative atomic coordinate restraints, radius of gyration, pseudo-contact shifts, and dipolar couplings.
- Easily add Hydrogen atoms to a protein PDB file via simulated annealing.
- Since many NMRPipe facilities use input and output in the form of text tables, a variety of applications are available to manipulate tables as well as PDB files.
For Software Developers
- The NMRPipe distribution includes C source code for programs which read and write NMRPipe-format data, as a guide to development of software which maniupulates NMRPipe data.
- The NMRPipe distribution includes C source code for NMRPipe plug-in creation, so that developers can build their own processing functions for use in NMRPipe pipeline schemes.
Conversion of 3D and Processing of First 2D Plane:
#!/bin/csh var2pipe -in ./hnco.fid -noaswap \ -xN 1024 -yN 128 -zN 64 \ -xT 512 -yT 64 -zT 32 \ -xMODE Complex -yMODE Complex -zMODE Complex \ -xSW 8000.000 -ySW 1500.000 -zSW 1650.000 \ -xOBS 499.843 -yOBS 125.707 -zOBS 50.654 \ -xCAR 4.773 -yCAR 175.019 -zCAR 118.019 \ -xLAB HN -yLAB CO -zLAB N \ -ndim 3 -aq2D States \ -out fid/test%03d.fid -verb -ov nmrPipe -in fid/test001.fid \ | nmrPipe -fn SOL \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 2 -c 0.5 \ | nmrPipe -fn ZF -auto \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 43 -p1 0.0 -di \ | nmrPipe -fn EXT -x1 10.5ppm -xn 5.5ppm -sw \ | nmrPipe -fn TP \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 1.0 \ | nmrPipe -fn ZF -auto \ | nmrPipe -fn FT -verb \ | nmrPipe -fn PS -p0 -135 -p1 180 -di \ | nmrPipe -fn TP \ | nmrPipe -fn POLY -auto \ -verb -ov -out test.ft2
Typical 3D Processing and Automated Strip Display:
#!/bin/csh xyz2pipe -in fid/test%03d.fid -x -verb \ | nmrPipe -fn SOL \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 2 -c 0.5 \ | nmrPipe -fn ZF \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 43 -p1 0.0 -di \ | nmrPipe -fn EXT -x1 10.5ppm -xn 5.5ppm -sw \ | nmrPipe -fn TP \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 1.0 \ | nmrPipe -fn ZF \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 -135 -p1 180 -di \ | nmrPipe -fn TP \ | nmrPipe -fn POLY -auto \ | pipe2xyz -out ft/test%03d.ft2 -x xyz2pipe -in ft/test%03d.ft2 -z -verb \ | nmrPipe -fn SP -off 0.5 -end 0.98 -pow 1 -c 0.5 \ | nmrPipe -fn ZF \ | nmrPipe -fn FT \ | nmrPipe -fn PS -p0 0.0 -p1 0.0 -di \ | pipe2xyz -out ft/test%03d.ft3 -z proj3D.tcl -in ft/test%03d.ft3 -abs peakHN.tcl -proj -in ft/test%03d.ft3 -out hn.proj.tab -hi Full scroll.tcl -in ft/test%03d.ft3 -tab hn.proj.tab -hi Full
NMRPipe: a multidimensional spectral processing system based on UNIX pipes
Frank Delaglio, Stephan Grzesiek, Geerten. W. Vuister, Guang Zhu, John. Pfeifer, and Ad Bax, J. Biomol. NMR. 6, 277-293 (1995).