| Literature DB >> 27457481 |
Michael Norris1, Bayard Fetler1, Jan Marchant2,3, Bruce A Johnson4,5.
Abstract
NMRFx Processor is a new program for the processing of NMR data. Written in the Java programming language, NMRFx Processor is a cross-platform application and runs on Linux, Mac OS X and Windows operating systems. The application can be run in both a graphical user interface (GUI) mode and from the command line. Processing scripts are written in the Python programming language and executed so that the low-level Java commands are automatically run in parallel on computers with multiple cores or CPUs. Processing scripts can be generated automatically from the parameters of NMR experiments or interactively constructed in the GUI. A wide variety of processing operations are provided, including methods for processing of non-uniformly sampled datasets using iterative soft thresholding. The interactive GUI also enables the use of the program as an educational tool for teaching basic and advanced techniques in NMR data analysis.Entities:
Keywords: Data processing; NMR; Non-uniform sampling; Signal processing
Mesh:
Year: 2016 PMID: 27457481 PMCID: PMC4983292 DOI: 10.1007/s10858-016-0049-6
Source DB: PubMed Journal: J Biomol NMR ISSN: 0925-2738 Impact factor: 2.835
Fig. 1Screenshot of NMRFx graphical user interface. The main window is shown with the first processed first row of an HSQC spectrum. The smaller window shows the list of operations that are currently specified for processing of the first dimension. Selecting an operation in the list populates the area below with controls for adjusting parameters relevant to that operation. Inserting, moving or deleting operations or changing parameters immediately updates the displayed vector with application of the new processing scheme
Fig. 2Example of an NMRFx Processing Script. This script is used to process a 2D HSQC dataset. It includes reference commands and processes each dimension with sine-bell apodization, zero-filling, Fourier transform and phasing. The first dimension has an EXTRACT command to extract the signal-containing region
Common processing operations
| Operation | Description |
|---|---|
| AUTOPHASE | Automatic phasing of current vector |
| BCPOLY | Baseline correction with polynomial |
| BCWHIT | Baseline correction with smoothed line |
| CSHIFT | Circular shift |
| DC | Baseline correction by linear offset |
| EXPD | Apodization with exponential decay |
| EXTRACT | Extract a range of the spectrum (for example the left half of an amide detected spectrum) |
| FDSS | Frequency domain solvent suppression |
| FT | Fourier transform |
| GM | Apodization with Lorentz to Gauss transform |
| HFT | Hilbert tranform to recover imaginary components of real valued spectrum |
| IST | Iterative soft thresholding of a 1D vector (used for 2D datasets) |
| ISTMATRIX | Iterative soft thresholding of an nD matrix (used for 3D and higher datasets) |
| LP | Extend the vector with linear prediction |
| LPR | Replace starting points with linear prediction |
| MAG | Magnitude calculation |
| PHASE | Adjust the phase of the spectrum |
| POWER | Power calculation |
| REGIONS | Specify regions of the vector. Typically used prior to baseline correction. |
| REVERSE | Reverse the spectrum |
| SB | Apodization with a sine or cosine window |
| SCRIPT | Execute a Python script. The current vector is accessible as a Python object named “vec” |
| TDCOMB | Form linear combinations of time domain signal using specified coefficients |
| TDSS | Time domain solvent suppression |
| ZF | Zero fill |
Complete list in Online Resource 1
Fig. 3Flow chart of the NMRFx processing scheme. The Python script is interpreted by Jython (the Java version of Python that is embedded in NMRFx). This generates a set of Java operations, one for each processing command. The Java Processor in NMRFx replicates the list of Processes so that the processing can take advantage of multiple CPUs or CPU cores. The Processor also manages the reading and writing of data values
Examples of execution on multiple computer types
| Hardware | Operating system | Number of threads | Compute time (s) | |
|---|---|---|---|---|
| HNCO w/o LP | HNCO w/LP | |||
| MacBook Pro Intel i7 4 Core | Mac OS 10.10 | 4 | 1.7 | 18.3 |
| MacBook Pro Intel i7 4 Core | Windows 8 | 4 | 1.2 | 16.0 |
| Supermicro Workstation,2 Xeon 6 Core each | Ubuntu 12.04 | 12 | 3.6 | 20.1 |
| Supermicro Workstation,2 Xeon 6 Core each | Windows 7 | 12 | 1.9 | 15.0 |
These are examples of systems on which NMRFx is tested, but its operation is not limited to the systems listed. Compute times are calculated from processing of a 3D HNCO experiment using a benchmark program (see for example, Listing 3 in Online Resource 2). The number of threads used is chosen to correspond to the number of processing cores
Fig. 4Processing time as a function of the number of processing threads. a Three-dimensional HNCO spectrum. b Three-dimensional HNCO spectrum processed with linear prediction in the indirect dimensions. c Three-dimensional HNCO non-uniformly sampled spectrum processed with iterative soft thresholding. Two computers were used, a MacBook Pro with a 4-core Intel i7 processor running at 2.6 GHz with a solid-state storage drive and a Supermicro Desktop computer with two Intel Xeon 2630 6-core processors running at 2.3 GHz with a conventional disk drive
Fig. 5Simulated data with partial IST processing. A simulated FID is generated as if it was recorded on a 600 MHz spectrometer with a sweep width of 4000 Hz and line width of 10 Hz. An operation is included to simulate a non-uniform sampling schedule with 20 % sampling. Finally an IST operation is added to regenerate the unmeasured points. The display is shown with only 64 iterations of the algorithm. Approximately 500 iterations are required to fully reconstruct the data. Students can interactively adjust parameters such as the iteration count to observe the effect on the data