Datasets
NMRViewJ has its own file format ".nv" that is typically generated by processing with nmrPipe and using the "pipe2xyz -nv" command. But, NMRViewJ can also directly read files generated by Bruker software (1r,2rr, 3rr), Azara, the Rowland NMR Toolkit, Felix, VNMR (phasefiles) and UCSF format files used by SPARKY. Dataset parameter files can often be set up so other data formats can be read.
All opened datasets are summarized in this table. You can view and change reference information and select one or more files to open and draw in a spectrum window. When you select multiple files you can display them all superimposed in one window, or in an appropriately sized grid of windows. Opened datasets consume very little memory so there is no limitation on how many can be opened. When actually displaying them memory use increases, but NMRViewJ uses memory mapping and other techniques to manage the use of many large (multi-gigabyte) files.
Interactive tools allow you to measure statistical properties of your dataset in specified regions.
NMRViewJ is not designed specifically as a processing program. Most of our users process their spectra with nmrPipe. That said, NMRViewJ has a rich library of mathematical and statistical tools that can be used to analyze and manipulate datasets. For example, vectors in any orientation can be interactively extracted from datasets, interactively phased, and then that phase applied to the complete dataset. This allows rephasing of spectra without needing to reprocess the data.
Spectra
There is no fundamental limit on the number of spectra that can be displayed. Multiple spectra can be displayed in separate "toplevel" windows, or packed into a grid within one toplevel window. Crosshairs are correlated between windows in an automatic and intuitive way.
You can prepare spectra displays for publication right within NMRViewJ. You have control over attributes such as the fonts used for axes and peaks, axis width, grid display, tic mark spacing, foreground and background colors
You can display an unlimited number of datasets within one spectra. A variety of predefined color schemes can be applied to the spectra to give sequential, divergent or qualitatively different colors for the spectra within a window. One button click saves the colors and contour level settings to a parameter file so that those datasets will be displayed with the same colors and contours when reopened. Colors of the datasets can be also be individually selected from a color chooser that gives you the option of using transparent colors.
Slices through datasets can be displayed on the contour plot and can represent vectors extracted in any orientation of 2D, 3D and 4D spectra.
When using datasets in a submatrix format (such as that used by NMRViewJ, Bruker, Felix and others) you can display spectra in any orientation. There is no performance limitation in the choice used, and interactive GUI and key bindings allow you to easily flip around. Here a grid of windows is shown with the same dataset in four different orientations.
NMRViewJ provides powerful features for coordinated analysis of spectra with its RunAbout tool (see below), but one often wants to set up an explicit display of a series of strips of one or more datasets. The Strips tool allows for an unlimited number of datasets to be displayed with varying offsets and rows. Here HNCA and HNCACB datasets are displayed in alternate columns of the first row, and HNCO and HNCACO datasets in alternate columns of the second row.
RunAbout and the Strips tool allow coordinated display of spectra, but you can also set up explicit synchronization of datasets. You can choose to synchronize any set of windows on one or more axes, using coordinates calculated in either PPM or points.
Projects
NMRView stores most all data within a STAR file format as used by the BioMagResBank. The molecular topology, picked peaks, chemical shift assignments, restraints, structural coordinates and other data is all stored together in one file that can be moved from one computer to another. Storing data in this format is preferred to exporting individual chemical shift files and peak lists as it ensures that all relevant information is saved.
NMRView can work with various files on an "ad hoc" basis, but it is very useful to use the new project structure. Projects are sub-directories of a main NMRViewJ project folder and contain folders STAR files, datasets, structures, and saved window states. Datasets can be stored within the project folder, or pointers direct NMRViewJ to other dataset directories. With projects you don't need to explicitly load datasets, as NMRViewJ can scan the dataset folders, including all sub-folders and find and open any NMR datasets. Opening the project will automatically load datasets and the latest STAR file. Saving the project will save relevant information into a STAR file with an automatically incremented name and will also save the state of all opened spectral windows. The Favorites icon on spectral windows will save the current window view to the projects windows folder. These can readily be opened from the Favorites menu.
Like what you see and want to come back to it later? Just click the Favorites Icon (the Heart) in the toolbar of any window and an NMRViewJ window file (extension ".nvw") will be saved into the "win" folder of your project. Select the Favorites menu item in the Window menu to see a list of all saved windows. Selecting a saved window and clicking open will create a window exactly like the saved one. If you're using the premium version you'll also see NMRViewJ canvas files (extension ".ncfx").
Peaks
NMRViewJ supports both automatic and manual peak picking. The automatic peak picker is simple and robust, identifying local maxima above the displayed contour threshold. A new noise thresholding tool can determine an estimate of the local noise value at each data point in the spectrum. In this mode the peak picker will ignore peaks in areas of high local noise, like stripes from the residual water, but find valid peaks immediately adjacent to the noisy region. Pseudo-3D spectra, for example a series of 2D HSQC spectra in one matrix, can be picked plane by plane. Manual picking can be done with the cursor in a mode that finds the local maxima or is restricted to the exact cursor location.
With the cursor in "selection" mode the positions of peaks and the size of the peak footprint can be interactively adjusted. Peak labels, which can be the peak number, or other values such as the assignment or residue number, can be interactively moved. Multiple peaks can be selected (selected peaks have a transparent yellow color) and then deleted.
The Peak Inspector displays detailed information about each peak such as assignments, intensities, volumes and chemical shifts (and can be expanded to show more information). Peaks can be manually assigned by typing in values into the label field. If a molecular structure is present the display will indicate assignments inconsistent with the sequence. Here a peak is labelled as G46, but the residue at position 46 is an Ala, not Gly. As shown here, peaks have both a label, and an explicit assignment to an atom in the molecular structure.
While the Peak Inspector gives detailed information about an individual peak, the Peak Table summarizes information about all peaks in a given peak list. Like all tables in NMRView the peak table can be sorted based on the information in one or more columns. Here it is sorted by the chemical shift of dimension one. There is a default set of columns displayed for peak tables, but with simple commands you can alter it to display any of the peak attributes. Highlighted peaks can be marked for deletion. Sorting by intensity and then highlighting and marking a range of peaks is an easy way to remove weak peaks.
The Peak Identification tool can be used to suggest assignments for any peak. Each peak list has attributes that describe the type of peaks expected (a pattern specifying the types of atoms and inter-dimensional relations specifying which dimensions specify chemically bonded atoms) and tolerances. The Peak Identifier finds atom assignments whose atom types and chemical shifts are consistent with the peak's position and the list's attributes. If a molecular structure (or family of structures) with coordinates is present then the Peak Identification table will provide information not only about the chemical shift alignment with the atoms, but also the interatomic distances in the structures.
Each dimension of each peak is linked to an internal NMRViewJ object known as a Resonance. Peaks that represent the same atom can be linked to a single resonance. Assignment of the peak label, actually assigns a label to the resonance, so that all linked peak dimensions are simultaneously assigned. NMRViewJ tools such as RunAbout make extensive use of the Resonance concept. Illustrated here is the Resonance Table that lists all the resonances present in the current project. The displayed chemical shift in the table is the average of all the shifts of the peak dimensions connected to that resonance. Double clicking on a table row allows you to "drill down" into the constituent peaks. Since peak lists can have a condition associated with them it is possible to use the Resonance table to get the average chemical shift for each resonance collected under a specific condition.
Sometimes one has an unassigned peak list, but a set of chemical shift assignments for a protein. Perhaps, you used NMRViewJ to read in the assignment table of a BMRB STAR file and now want to use those assignments to assign the peaks. The Peak Atom matcher is the tool for you. It calculates an optimal assignment between the set of peaks and the set of atom assignments. Resonances, see above, can be linked not only to peak dimensions but to specific atoms. After calculating and displaying the optimal assignment, you can link aligned peaks with their atoms, thereby transferring the chemical shift assignment to the peak.
The Peak Peak matcher works with the same underlying algorithm (a maximally weighted bipartite graph algorithm) to find the optimal matching of peaks in one list with peaks in another list. This can be useful, for example when matching up sets of peaks collected in aligned and unaligned media. The peak peak matcher can optimize the global offset in each dimension between the two peak lists. Again, when it's done, you can link peaks so that matched peaks share the same resonance. If one peak is assigned and one not, this will effectively transfer the assignments from the assigned list to the unassigned list.
The Peak Coupler finds peaks within a list that differ by a certain tolerance in each dimension and replaces them with a single peak at the average position. Typically one will use a tolerance larger than the expected coupling in one dimension, and smaller values corresponding to the random peak deviation in the other dimensions. This is often useful on NOE lists that are at high enough resolution to have a splitting from the amide - alpha coupling. Collapsing the coupled peaks to a single peak makes the assignment and quantification easier. The auto mode will do several rounds of coupling in each dimension as a way to collapse peaks in homonuclear COSY spectra.
The primary way to store store peak data in an ongoing NMRViewJ project is to use the STAR files. But if you want to import and export peak files to exchange information with other NMR analysis programs you can read and write in a variety of formats. Besides the NMRView peak list format it will read in files from SPARKY and generate XML format files for use with ARIA.
NMRViewJ can display with graphical charts any information you can extract from your data. There are built-in commands available in the Peak menu to allow you generate plots of peak intensities and volumes. These can be useful for getting an overall view of the thresholds used in peak picking.
NMR has a wide variety of possible experiments and each one can involve some sort of custom data analysis. NMRViewJ has built-in tools for various analysis routines. Illustrated here is the tool for analyzing heteronuclear NOE experiments. The tool takes peak positions from one peak list and then measures the peak intensity, in a variety of possible ways, in the datasets measured with and without the NOE effect active. Intensity ratios and errors are presented in a table that can be exported to a text file. This tool makes use of some simple scripts that combine analysis with a graphical user interface. You can create your own tools.
This is another experiment specific tool that can be used to determine residual dipolar couplings and export the calculated values into tables in several formats.
Did you do all your assignments with residue numbering starting at "1", and now realize you wish you had them all starting at "173". This shifter will adjust all atom and peak assignments by a specified residue offset.
Chemical Shifts
The chemical shift values for assigned atoms are displayed in the Atom Assignment Table. This table shows one row for each atom in your molecular structure. It's easy to limit the displayed atoms to a certain set ("*.C,N,CA for backbone atoms, 23.H* for the protons of residue 23, etc.). Not only is the assigned shift shown, but it also shows a reference chemical shift calculated in one of several ways. Built-in options include average values from the BMRB and random-coil values calculated with NMRViewJ. You can also import assigned chemical shifts from STAR files so you can compare your values with those from another assignment of that protein. The assigned shift, the reference shift, and various calculations (scaled by standard deviation from reference data, for example) of the deviation are shown. Like all NMRViewJ tables, it's sortable, so you could for example sort by deviation from standard values to look for outliers.
As with peak lists, you can import and export chemical shift assignments. For example, you can export in the format used by NMRViewJ, BMRB STAR2 and STAR3, ARIA (including the XML format), TALOS, and CYANA.
Assigned chemical shifts can be displayed as CSI plots. Thanks to contributions from our users there are a variety of reference shifts that can be used, including those relevant to unfolded proteins.
A relatively recent way of plotting protein chemical shifts is with the Linear Analysis of Chemical Shifts. NMRViewJ can generate this plot for CA, CB, HA, and C atoms. The fitted lines should intersect at 0,0 if your data is properly referenced so this is a good way to check your referencing, and to look for outliers.
One way to assess the effect of ligand binding without needing to assign the ligand bound state as well as the free state is with the Minimum Chemical Shift method. NMRViewJ has a tool for this that will give you a table indicating a lower limit on the amount each residue's peak has shifted.
Annotation and Figures
Spectral displays, and various plots, can be exported into a wide variety of graphical file formats. Vector formats are useful if you want to preserve the full resolution of the spectral display. Bitmaps are exported at the resolution the spectrum is currently displayed at and are useful for posting on web sites, for example.
One of the new premium features included if you are a paying support customer is the ability to create rich annotated displays directly in NMRViewJ. Spectra are displayed on a canvas and can be arranged in any way much like graphical objects in illustration programs. You're not limited to the normal grid display of the standard NMRViewJ window so you can have overlays and inset spectra. And you can add a wide variety of graphical objects, including annotation pointers, lines, rectangles, arcs, and formatted text with multiple fonts, superscripts, subscripts and any Unicode character. Charts are just one more graphical item so you can even add them. This illustration was done with a simple script that, on the fly, generated a plot from the intensities of a selected set of peaks.
Titration
One of the many useful capabilities of NMR is the ability to quantitatively analyze ligand binding in a site specific way. NMRViewJ provides a tool to facilitate the analysis of ligand experiments. The tool provides a way to measure the sequence of chemical shift changes across a set of experiments. This can be done automatically, by finding the most likely path through even overlapped regions. In heavily overlapped regions you can also explicitly select the peaks to be used in the titration fit.
NMRViewJ includes a robust non-linear regression algorithm that can fit a variety of equations. Peak position data can be scaled to account for differential shift ranges on the two axes. Each fit is accompanied by a Monte Carlo simulation to estimate the errors in the fitted parameters. NMRViewJ lets you specify any of the fitted parameters to be held (or bound) to a specific value in the fit (here the parameter A, the chemical shift delta at zero ligand concentration, is fixed to 0). By default (though you can choose a different equation) the titration tool fits the 10^Kd, so the fit value returned is the log(Kd). The Kd display will show you the non-log value. pH titration type data can be fit to a modified Henderson-Hasselbalch equation.
As you fit each peak you can add the fit values to a table. NMRViewJ will then display the average Kd and titration profiles for the peaks selected in the table. The fitted lines can be displayed as calculated using the individual Kd values, or the group average. This gives a visual assessment of whether the peaks are titrating with the same dissociation constant. All the accumulated titration information can be exported so you can do your fits and plots with other software if you prefer.
Rate Analysis
NMRViewJ allows you to directly fit data derived from experiments used for relaxation analysis (T1, T2 etc.). The analysis is done by picking peaks in one of the series of experiments, and then automatically extracting the intensities at the corresponding positions in the relaxation series. A variety of choices are available for how the intensities are measured. If you have two datasets collected at the same time point the tool can estimate the standard deviation by comparison of the intensities in these two experiments. A few button clicks and you can have the intensities measured, the standard deviation calculated, and all the values fit to your chosen equation.
NMRView includes several relevant equations including those for both two and three parameter exponential fits, J Modulation fits, and Relaxation Dispersion fits. Special settings are provided to normalize data to the first data point for the relaxation dispersion analysis. As you step through each peak the actual experimental data is shown as the peak regions for each dataset.
As with the titration analysis, all the measured and fit data is entered into a table. Highlighting one or more rows of the table shows you the experimental data points and the fitted curves.
Since NMRViewJ can generate statistical bar charts you can plot the measured relaxation rate and associated standard deviation for each peak, either as a function of peak number if you don't have assignments, or as residue number if you do.
RunAbout Assignment Tool
RunAbout is a tool combining visual display with computational analysis to obtain the complete chemical shift assignments of proteins. It is explicitly designed not to be a "One Button" tool, but rather to facilitate much of the process with computer power and let the user see and interact with the data. Central to the data visualization is the correlated display of related experiments so the user can integrate the data from multiple experiments in one display. Shown here is RunAbout in the Peak Display mode which is used to first get a visual assessment of the quality of the datasets, the peak picking and peak alignment.
A variety of computations can be initiated through this interface. For example, you can automatically align multiple triple resonance experiments, filter out artifactual peaks based on alignment with a reference list, trim weak peaks based on the expected number of peaks for each residue, and cluster peaks based on their common amide hydrogen and nitrogen frequencies.
Clusters are groups of peaks that share a common amide proton. They might be intra or inter-residue peaks representing CA, CB or C atoms. After computationally clustering peaks you can use the cluster editor to interactively view and change clusters. The cluster details window shows you all the peaks you would expect for the cluster, the peaks actually found, their chemical shift similarity, and the expected amino acid types based on the known chemical shift distributions. If you have prior knowledge of the cluster's amino acid type (perhaps from labeling experiments) you can click the check boxes to restrict the assignment to those types.
This graph takes the assembled cluster information and displays it as if you had a 2D CA-CB experiment. Each pair of adjacent residues should have two overlapping dots, blue and red for the intra and inter-residue peaks. Confirmed overlapped clusters are indicated by the presence of a black dot. The graph is interactive so you can zoom in, and confirm cluster pairs. Rectangular regions indicate the typical chemical shift ranges for the different amino acids.
Overlapping clusters corresponding to adjacent residues in the sequence are built up into fragments using the Link Editor. In this mode you not only see the actual aligned spectra, but a variety of quantitative information relating potentially linkable clusters. This includes information indicating whether the fragment that would be formed by linking the clusters could match to a position in the sequence. Fragments can be automatically extended if the quantitative scores are high enough.
RunAbout can use HCCH Tocsy information to assign side chain atoms. Peaks are clustered based on the HC shifts and then presented as possible matches to the existing backbone assignment data. A scan through the raw dataset data is done to find carbon shifts that have a proton intensity profile matching the that found for the HA or HB atoms. The atom table in this mode displays all the possible atoms for the current residue and the color and numerical score indicate the probability that the selected peak could be assigned to that atom type. In this mode you can also display a NH-NOESY experiment to provide confirmatory data for the assignment.
Side-chain Tocsy experiments that are detected through the amide proton can also be used in the analysis. Expected shift positions for protons and carbons for the current residue are displayed directly on the spectra and can be assigned with a few clicks of the mouse.
Constraints
The Constraints Tools provide features for both analyzing and generating constraints for structure generation, and for assigning NOE spectra. The tool can take one or more peak lists and generate possible assignments for the peaks. A first step in the analysis displays the number of peaks that can be assigned, including a count of those with an excessive number of assignment possibilities. An iterative procedure can be used to automatically adjust the assignment tolerance to match a target fractional assignment.
The constraint table displays a large amount of information about structural constraints. These constraints can be generated internally, through manual peak assignment, the peak identification tool, or the peak extract and assign mode of the constraint table. They can also be read in from external sources such as XPLOR constraint files, ARIA XML restraints files. The values displayed here were obtained upon reading in a merged STAR file from the BMRB containing assignments, constraints and a family of conformers.
Over 35 different values can be displayed for constraints. These include the atomic assignments, the origin peak, chemical shift violations, whether cross diagonal peaks were found, upper and lower distance constraints, and various distances both for the specific constraint, and averaged over all the constraints assigned to a peak. In addition there are columns for a network anchoring contribution, a distance violation contribution, and a summary value indicating the probability for the particular assignment. Bounds are graphically displayed within the table. The total amount of information can be somewhat overwhelming, so it is possible to turn on and off the display of each column.
Filters can be set so that only constraints involving a single or pair of residues are displayed. This table is shown with a small set of columns, including the graphical bounds which illustrate the lower and upper bounds with triangles, the range of distances in the set of structures with a colored region, and the mean distance with a single vertical line. If bounds are violated the bound region is colored orange or red, depending on the violation.
The residue-residue pattern of constraints is displayed in a map colored by the number of restraints between that residue pair. Clicking on an item in the map will filter the constraint table to show all constraints involving that pair of residues.
The Crescent Molecular viewer, a Java3D based viewer included with NMRViewJ Premium (support contract users) is integrated with the constraint table. If the viewer is active when a restraint map is created the restraints are displayed on the molecular structure.
If the molecular viewer is active then constraints for highlighted rows of the constraint table can be displayed on the molecular structure.
The dihedral constraint table shows any dihedral angle restraints. Triangles on the bounds display show the constraint values, and the shaded region shows the range of angles in the current set of structures. The table can generate all rows for all the phi, psi, and chi angles in the protein even if there are no constraints. This allows you to view the angle distribution in the existing structures.
Structures
Before assigning a molecule one should read in the molecular topology. This is defined in a sequence file. At its simplest this is a file with the three letter (or four for nucleotides) code, one residue per line. Three and four letter codes correspond to the names of ".prf" files in the NMRViewJ residue library. There are two libraries, one with IUPAC nomenclature and one with that followed by XPLOR. Integer values can follow the residue codes to provide numbering that doesn't start at "1". Complex molecular structures can be defined with hetero and homo-multimers, peptides, DNA, and RNA mixed together. Small molecule ligands can be specified as well. Once read in, the complete topology (including small molecule components) can be stored in the STAR file. A graphical interface also allows you to enter simple topologies swith the three letter or one letter codes.
Families of molecular coordinates can be read in from a single PDB file with multiple MODEL sections, or from a set of individual PDB files. If the current topology is in IUPAC nomenclature, but the PDB file is in XPLOR nomenclature, atom names will be swapped as they are read in. The structure tool displayed here can identify "core" regions of the structure, calculate superpositions using the specified residue and atom filters, and align all structures on a selected entry. In the calculate mode the "most representative" structure is identified (shown with an RMSD value of 0.0 in the table). RMSD values in the table are from each structure to that structure. The structure analysis tool is also used to activate and deactivate individual members of the family of structures. Deactivated ones will not be used in calculations involving, for example, NOE violations.
A plot of the atomic RMSD on a residue basis can be displayed. This same calculation is used in the core identification tool mentioned above
Clicking the Rama button will generate a Ramachandran (Phi-Psi) plot of the structures. Only those structures that are activated (have a value in the state column of "1" will be used. Each model is displayed with a different color and symbol and a legend is displayed to show this symbol-model match.
The molecular viewer can display one or more structures to allow you to view the family of structures.
Charts
NMRViewJ incorporates the powerful JFreeChart charting library. This library has been integrated so that charts can be displayed on the Tk/Swank canvas allowing you to combine charts with other graphical items. Any data you extract in NMRView, whether from datasets, peaks, structures or any where else, can be plotted with simple commands. This figure was made with two commands. The figure command creates a new toplevel figure window (you can have as many as you want) The plot command specifies the x and y values as well as some arguments to specify attributes like colors.
Bar plots (shown here) and statistical bar plots can be generated as well. All plots can be exported to any of a variety of vector and bitmap graphical file formats (the same as used by spectra).
NMRViewJ Software
NMRViewJ is written with its core routines, dataset reading, spectral display, peak picking etc., written in the Java programming language. This provides great advantages in the software development process, robust error handling, and excellent performance. The Java compiler generates a single executable that can be run on any computer with the Java virtual machine. This includes Mac OS x, Windows XP, Vista and 7, and Linux. The current version of NMRViewJ will run with Java version 1.5, but we recommend 1.6, and newer versions of NMRViewJ will probably require 1.6. NMRViewJ can run in both a graphical mode, and a lite-version is available that runs in a "headless" mode allowing one to use NMRViewJ's computations in a batch mode.
NMRViewJ is scripted using the amazing Tcl Dynamic Language and the Graphical User Interface is created with the companion Tk toolkit. Actually, that's not true (Tcl is amazing, but we actually use Jacl). Tcl is written in "C", so we use Jacl, the Java command language which implements Tcl syntax with Java based code. We wrote our own library, now an open source project named Swank, that implements much of Tk, and some additions, in Java. A fantastic feature of Jacl is that one can directly access Java code through the scripting interface. That means you can add libraries of Java code to NMRViewJ and work with them without writing a single line of Java.
Key and mouse actions in spectra are controlled through bindings linking actions like the press or release of keys and mouse buttons, to specific scripts written in Tcl(Jacl). You can see and edit the key bindings in the Key Binding Viewer.
Support
Of course there are. If there were millions, instead of thousands, of NMR spectroscopists, and if people would stop inventing new things to do with NMR, we could afford to make NMRViewJ completely bug free. But we can't. If you have a problem, don't hesitate to click the "Send Bug Report..." menu item in the Help menu and send us a bug report. And if you have an NMRView support contract the bugs will get fixed, and the feature requests implemented, faster.