You first need to check if your computer have Java Runtime Environment (JRE) installed. If not,
here is a detailed instruction.
If this is not the case, then your operating system does not associate .jar file with the corresponding Java program (javaw.exe).
To create such an association, here is a link to a detailed instruction
Peak list data (two or three columns separated by space, comma or semicolon);
The first two columns should be the x and y coordinates of the peak. The third column is optional. When provided,
it should be peak intensity or peak height values. More column will be ignored.
High-resolution spectral images (currently only support png format).
The peak list used for MetaboMiner is usually produced from an automatic peak-picking program such as
Bruker's AMIX , NMRPipe , etc. However, the process
cannot be performed blindly. An iterative process is recommended in order to get most peak signals and to avoid
obvious artifacts. In our evaluation, MetaboMiner can handle up to 5,000 peaks efficiently. Most artifacts in
TOCSY spectra can be eliminated using the built-in automatic peak processing procedure.
As for the spectral image, most spectra processing programs provide options to save the processed spectrum as postscript.
Programs such as ImageMagick ,
ps2png can be directly used for this purpose. Alternatively, you can
first convert the postscript into a pdf document using ps2pdf,
then convert pdf into png format using pdf2png.
There are many ways to process a 2D NMR spectra. We have outlined the steps using the popular NMRPipe package
and NMRDraw (the companion graphical interface for NMRPipe). The example processing scripts shown below are examples of those used to generate the input data used in the paper and should work in the majority of cases.
However, it the phasing values used will differ from the ones shown below and will need to be calculated for each individual spectrum.
Step 1. Convert the Varian or Bruker acquired data into NMRDraw readable format.
Open NMRDraw in the directory containing the Varian or Bruker fid and procar files. Convert the raw fid data into NMRDraw
readable format using the following steps:
- Right Click and select "Convert Varian" or "Convert Bruker" from the Proc menu.
- Click "Read Parameters" in the new TCL window.
- Confirm and/or change any of the yellow highlighted boxes.
- Click "Clear Script" then "Update Script" to make the changes to the conversion script.
These updates should be visible on the fly within the "Conversion script text".
- Once you are satisfied that the proper input variables are correct, click "Save Script" to
save the fid.com script then "Execute script". A new terminal should appear in which the
fid.com script runs.
An example of fid.com scripts generated on an 800MHz instrument are shown:
var2pipe -in ./fid -noaswap \
-xN 2048 -yN 512 \
-xT 1024 -yT 256 \
-xMODE Complex -yMODE Complex \
-xSW 11990.408 -ySW 11990.408 \
-xOBS 799.805 -yOBS 799.805 \
-xCAR 4.873 -yCAR 4.873 \
-xLAB H1 -yLAB H-ind \
-ndim 2 -aq2D States \
-out ./test.fid -verb -ov
Step 2: Process the NMR spectrum.
- Start by loading up the nmrpipe generated "*.fid" file.
- With the cursor on the empty spectrum window, enter "S" and select the fid file.
- Select "h" to draw a horizontal trace, then change the 'Y' value (located in the top menu underneath
the "Draw" and "1D' menu selections) to 1 in order to select the first horizontal trace.
- Right click the "Proc" menu and select "Auto-Process 1D". The user should now has an unphased 1D
spectrum of the t2 dimension.
- Now change the Phasing to 'On' and adjust the P0 and P1 sliders accordingly to acheive
a flat baseline with positive peaks. Record the P0 and P1 values for later use.
- Now right click on the "File" menu and choose "Macro Edit".
- Right click on the "Process 2D" menu and select "Basic 2D".
- Comment out the lines from the transpose function (indicated by the line containing "-fn TP")
down to, but NOT including, the final command that writes out the processes spectrum
(indicated by "-out test.ft2") by adding a pound sign (#) in front of each line to be not read in the script.
- In the first part of the spectrum processing script (that part not yet commented out) change
the -p0 and -p1 phasing values to those determined previously. If the -p1 value is anything but 0,
also apply circular point shifting by changing the -c value from 0.5 to 1 in the preceeding sinebell
apodization function (indicated by the line containing "-fn SP").
For example if the -fn PS line applies any -p1 phasing such as:
| nmrPipe -fn PS -p0 118.60 -p1 10.00 -di -verb \
the the preceding "-fn SP" line would be changed from
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 2 -c 0.5 \
| nmrPipe -fn SP -off 0.45 -end 0.95 -pow 2 -c 1.0 \
- You can now save the script and execute it from the menu button located at the top of the NMR processing macro window.
Once complete, the user can select the newly created "*.ft2" file and draw it out. At this point, a 2D spectum with
only an interfogram of the t1 dimension has been created.
- Now draw a vertical trace by placing the cursor in the spectral display window and selecting "v".
- Left click the mouse and drag the vertical trace to any of the interferograms and process it by right clicking on
the "Proc" menu and again selecting "Auto-Process 1D".
- Now find the -p0 and -p1 phasing values for the t1 dimension as outlined above. Again, record these values
and reopen the NMRDraw Processing Macro window.
- Uncomment the lines previously commented out (the user now obviously realizes these lines were necessary to
process the t1 dimension).
- Adjust the -p0 and -p1 values accordingly, then re-save and re-execute the new script. The test.ft2 file will
be overwritten, but needs to be reloaded and redrawn to be viewed.
An example of a 2D NMR processing script is shown below:
# Basic 2D Phase-Sensitive Processing:
# Cosine-Bells are used in both dimensions.
# Use of "ZF -auto" doubles size, then rounds to power of 2.
# Use of "FT -auto" chooses correct Transform mode.
# Imaginaries are deleted with "-di" in each dimension.
# Phase corrections should be inserted by hand.
nmrPipe -in test.fid \
| nmrPipe -fn SP -off 0.5 -end 0.99 -pow 1 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT -auto \
| nmrPipe -fn PS -p0 -63.00 -p1 0.00 -di -verb \
| nmrPipe -fn TP \
| nmrPipe -fn LP -fb \
| nmrPipe -fn SP -off 0.5 -end 0.99 -pow 2 -c 0.5 \
| nmrPipe -fn ZF -auto \
| nmrPipe -fn FT -auto \
| nmrPipe -fn PS -p0 11.5 -p1 0.00 -di -verb \
| nmrPipe -fn TP \
| nmrPipe -fn POLY -auto \
-ov -out test.ft2
At this point, the user should have a perfectly phased 2D NMR spectrum.
Various functions can also be employed and altered to further improve the
quality of the spectrum. As suggested above, the authors refer readers to
the respective manuals, tutorials and help files supplied by those programs
for complete and detailed usage.
First perform automatic metabolite screening using the automatically picked peaks, then refine the identified
compounds by examining the spectral images, if necessary.
- Go to the process view (the default view when MetaboMiner starts) or click the "Search" menuItem in the "Console" Menu
- Copy and paste the peak list into the text area by clicking the "Paste" button
- Set the parameters - experiment type, library, and options to clean the artifacts
- Click the "Process" button to start processing the query peaks (may take a while).
- Examine the processed the result displayed on the right panel. If necessary, you can manually select
and delete artifacts by visual examination of the peak patterns.
- You are now ready to search the library with "cleaned" data.
The choice of reference library is also very important. User should select a compound library that match their sample type. If it is not available,
the generic library can be used. However, user are suggested to create a customized compound library according to the metabolite composition of the
biofluids of interests.
MetaboMiner has built-in algorithms to process the query peaks. However, it is easy to manually delete the artifacts by visually examine the displayed
synthetic spectra. Simply select the peaks you want to delete, right click anywhere on the spectra, and choose "Remove" from the pop-up menu. If you edited
the original spectra, you will be prompted to re-process the edited query peak to have the same effect on the processed data. You can choose not to do any
process by checking off the checkbox of the processing options.
The compound identification is based on the 'minimal signature' peaks as discussed.
A compound can be identified only if 1) it is in the reference library; and 2) its peaks are unique enough to
form minimal signatures. For TOCSY library, there are still some common metabolites not covered. For example,
the TOCSY spectra of some metabolites contain only a single peak that overlap with other more abundant compound species.
These compounds will not be marked as present even they have matches.
By utilizing the innate symmetrical peak patterns found in TOCSY spectra, the number of false positive peaks could be substantially
reduced. But for certain compounds like serine and citrate, their cross peaks are very close to the diagonal line. These compounds
often turn out to be false positives. For HSQC spectra, no obvious spectral pattern can be employed to help remove artifacts, the problem of
false positive is more serious than TOCSY.
The search result reports not only the matched peaks but also when it is being identified. "R" means the compound was identified during the
reverse search process; while 'F' means it was identified during the forward search process. The latter should be treated with caution since it
searches with an expanded threshold than the reverse search process which uses an adaptive threshold based on the uniqueness score of the
peak. Users need to examine the raw scores and the matched patterns or peak intensities to make
their own judgments.
Go to the annotation view by one of the two following ways:
- Click the "Refine" button in the SearchView, or
- Under the "Console" menu, click "Annotate" menu item
Inside the annotation view:
- From the tool bar of the annotation view, select the "Load Image" button to load your spectral image.
- Click on the "Set Axis" button, a blue rectangle will show up along with an input panel at the bottom of the panel.
- Drag the edge of the rectangle to fit the boundaries of the spectrum as close as possible (zoom in for finer adjustment)
- Enter the range values for each axis at the bottom panel and then click "OK";
- The spectrum is now set up and ready for annotation.
Note, after you click 'OK', the blue rectangle will be anchored to the boundaries where you dragged. To active the blue rectangle, you need to
click the "Set Axis" button again, then double click any side of the rectangle, the frame will be draggable.
This is usually caused by the memory limit on the JVM (Java Virtual Machine) when loading large image files. To get around this problem,
you can either try to retart the program or
Linux users, try to increase the memory allocation by starting MetaboMiner as
>java -Xmx512m -jar MetaboMiner.jar
For Windows users, it is more difficult to change the JVM settings. We are creating an installer for Windows' user. Please email the author
to obtain a copy.
Go to the "Library"->"Browse" menu, and select the target library. Select the compound on the list
and click the "Edit" button, the peak editor will be displayed. Users can add/delete or edit peak
positions from this window.
Go to the "Library"->"Browse" sub-menu, now select the Library of interests. Clicking on the "Add" button on the bottom
of the compound list. Users can either create a new compound object from scratch or export a compound from a different library.
In both cases, the uniqueness values will be updated when users finish editing the library.
This function is only for picking peaks that produced by compounds in the library, but not covered by its current reference peaks.
Basically, you are doing peak picking and peak assignment at the same time. if you want to perform general purpose peak picking
without assignment, Sparky ,or
NMRPipe should be used for such task.
You can only insert peaks for compounds that are available in the library. If it is not in the library, you have to first create
a new compound as described. From the compound list on the left panel, first you need to select the compound that
generates the peak, then right click the peak position on the spectrum and select "Insert" from the popup window. A synthetic peak
will be inserted on the spot. For TOCSY experiment, the program will also generate the corresponding symmetrical peak
(and diagonal peaks if they are not already exist) to complete the spin system.
If you want to make permanent changes to the library, go to the library view and edit the compound in the library view.
If you intend to edit the current reference peaks to fit your experimental spectra, load the spectra image to the annotate view and set up axis properly.
You can simply drag the corresponding peaks to the real peak position to correct the chemical shift difference. To introduce new peaks, you need to
insert a peak to the current spectrum. To remove a reference peak, simple right click the peak and choose "Remove". Please note,
this edited compound spectra only for the current session.
Peak assignments can be performed in two places - at the library view or the annotate view. To perform peak assignment for library compounds, go to
the library view, select the compound, then double click a peak on the synthetic spectrum, a small text editor will be displayed.
Users can enter the peak assignment or other comment in the text box. Click anywhere on the Spectrum to save the assignment
after you finish. To assign peaks in a spectrum, load the spectra image in the annotation view, first make sure that
there is a synthetic peak on the peak position (the peak should be generated by the current library compound). Double click the synthetic
peak to enter your assignments. Click anywhere on the Spectrum to save the assignment when it is finished.
There are three graphics options available to change peak size, peak shape, and peak color. When peak intensities are used and the 'intensity'
display option is checked, the query peaks can only be in green background color (the added peaks will be in cyan). When the 'intensity' option
is not checked, different background colors can be specified. When annotating a spectral image, user should increase peak size and use solid circle
shape to enhance their visibilities because of the usually strong background.