Quick links  Main page
Installation OMA OPA File formats


To install just unpack the zipfile (creates a folder "dist/" ). To start double click on the "omaopa.jar" icon inside the folder. From the command line you can start the program using

java -jar /path/to/dist/omaopa.jar

Note: To make OMA & OPA run correctly, the oma.lib file (and the molecule images) must be in the same folder as the omaopa.jar file!



Oligonucleotide Mass Assembler (OMA)


This application calculates all possible precursor and product ion fragments for the given input oligonucleotide sequence(s) and stores them to a reference database used later by OPA.


On the top left there are two text fields to enter oligonucleotide sequences (1). The sequence has to be entered in the "Sugar-Base-Backbone" triplet format:

1. A letter for the sugar ring (e.g. "r" for ribose)

2. A letter for the attached base (e.g. "C" for cytosine)

3. A character for the backbone/linker to the next sugar (e.g. "-" for phosphate)

Thus, a regular cytosine RNA 6-mer writes as "rC-rC-rC-rC-rC-rC".

The combo boxes on the left and right of the sequence fields (2) are used to define custom 5' and 3' endings. By default hydroxyl termini are selected, but actually all backbones defined in oma.lib are also available for selection (2, right). So if there is for example a phosphate terminus one can select "-H" from the combo box selection.

The "Insert" buttons (3) open for each sequence a helper window (7), which lists the available items. The "Add" button of this helper window inserts the character of the selected item at the current sequence cursor position.

If required, adducts (4) can be taken into the calculation. When selected, the adducts are added to all fragments but only stored if the charge of the modified fragment is still negative. Currently OMA handles 1 - 2 Na+, 1 - 2 K+ or [Pt(NH3)3]2+ ions.

The output file specifies the location where OMA stores the resulting reference file (5).

Pressing the "Run" button (6) causes OMA to check the correctness of the input sequences and to start generating all possible ions for the input (see next paragraph). A short generation summary is displayed in the log window.

Created Fragments


The following rules were applied for all peak types mentioned further below:

- For each fragment ion all charge states from 1 - "Number of fragment backbones" proton losses are simulated. So for a w5 fragment the ions [w5]-1 to [w5]-4 are created.

- In the second step, where the selected adducts are appended to the fragments, the peaks are only stored if the net charge is negative.

- All calculations are carried out for monoisotopic and average masses (_m and _a suffixes).

Precursor ion fragments

The whole-ion series are calculated for the entered input sequence. They are named [M] in the output.
When two sequences are entered, the naming changes slightly: The whole-ion series for each single strand are named [M1] and [M2]. OMA then generates the deprotonated duplex ion series too, using [D] as root name.
In both cases also base losses (one for all bases occurring in the sequence) are calculated. The naming is according to the removed base, e.g. [M-C] for a cytosine loss.

Product ion fragments

For the CID product ions all a,b, c, d, w, x, y, z and a-B fragments are created first, following the naming convention of McLuckey (JASMS 1992). If there were two input sequences the fragments are prefixed with the strand number, e.g. ss1[w4] or ss2[b2].

Next all possible internal fragments (two breaks in a strand) are enumerated. The peaks are denoted by the absolute 5' break position and the absolute 3' break position separated by a dash. As example the fragment "w-B3-B4-d" of a hexamer is written as [w5=>d4].
Usually there are several internal fragments with the same mass, especially in redundant sequences. This leads to long annotations. To enhance clarity "compositional peaks" are created. Their name contains the ending types plus a list of fragment items in curly brackets. Let's look at an example: In case of a RNA cytosine hexamer the "w5-d4" fragment contains a w-phosphate and a d-phosphate end, two riboses, two cytosines and one complete phosphate in between. This leads to the "compositional peak" [w-{-rrCC}d-]. When OPA is run with "internal fragments" selected, it makes sure that these peaks are written in the beginning of the annotation to enhance convenience of internal fragment analysis.


Fragment types:

- M M1 M2 single strand precursor ions

- D duplex precursor ions

- M-G D-C precursor ion base losses

- a1 b2 c3 d4 a5-B w6 x7 y8 z9 product ions

- w4=>a5 internal fragments

- z-{--GGTddd}d- composition of internal fragments

- w4+2Na fragment with sodium adduct

Naming scheme:

Strand [ Name +Adduct ] Charge _ monoisotopic or average mass

Example: ss1[y5=>a2+Na]-2_m

- ss1 = from first strand of entered sequences

- y5=>a2 = internal fragment (with "y" and "a" ends)

- +Na = one sodium adduct

- -2 = charge

- m = monoisotopic mass


Oligonucleotide Peak Analyzer (OPA)


This program annotates peaks in a mass spectrum with the information given in the reference database(s) created with OMA.


On the top one can define one or even a list of reference files (1) which are later compared to the input spectrum. With the "Add file" button a file selection window appears and allows to select a reference file, which was previously created with OMA. If one does not have a reference yet, the "Create" button can be used to start OMA. For convenience this list is stored on program exit and restored on restarting.

Hint: Ensure that the reference is in the correct format.

The check boxes in the peak selection panel (2) allow to choose which peak types from the references are included in the analysis. There is a "Quick" selection combo box for rapid selection of frequently used peak combinations.
To set a spectrum to analyze (3) one can either select a file by using "Choose", enter a path manually or leave it blank to read the spectrum from the clipboard. The last function is useful when reading the spectrum from a spreadsheet program or Xcalibur.

Hint: Also here, ensure that the spectrum is in the correct format.


The same also applies for the output file (4). Additionally there are several output handling options:


One can choose to write out either the "full spectrum" to get back the input plus the annotated peaks, or "only annotated peaks" to get only the peaks which have been found in at least one reference database. Latter option produces more clearly arranged output.

Hint: Be careful when using "only annotated", especially in combination with leaving spectrum and output blank simultaneously (=from and to clipboard) and repeatedly. You could loose peaks/information!


The annotations can be extended to include the exact "reference mass" or the difference between reference and spectrum peak, in "amu" and/or "ppm" units. A resulting annotation is for example "[w5]-4 (399.5923,0.34amu,1.2ppm)".


The "tolerance" setting allows the search to compensate for measurement incertitude. For a well calibrated experiment a value between 1 and 2 ppm is usually a good start.

Exclude charge mismatches

Most instrumental software include a charge state estimation for peaks. OPA compares the estimated and the calculated peak charges. If they mismatch the peak is annotated with a question mark '?'. If the "exclude mismatches" option is selected the mismatching peaks are skipped and not written out.

Hint: Handle this option with care since charge estimation is not always accurate.

Hitting "Run" (5) starts to compare the spectrum with given references and shows a result summary in the log window.


File Formats


OMA & OPA exclusively use and produce files in the "tab separated value" format, which is very simple and widespread (similar to the "comma separated value" CSV format). It is a plain text based format, thus such files can be edited in any text editor but it is also well supported in spreadsheet programs like OpenOffice Calc or Microsoft Excel. The basic format is like this:

value11 <tab> value12 <tab> value13 <newline>
value21 <tab> value22 <tab> value23 <newline>

oma.lib (OMA input)

This file contains the items (sugars, bases and backbones/linkers) that are available for calculations with OMA. For sugar and bases entries require 4 columns:

- One character for the type (S or B, case sensitive)

- One abbreviation character (no duplicates allowed)

- The full name

- The full formula (written as Element;Num;Element2;Num2)

Backbone/Linker entries need 'L' as type and 4 more additional formulas for a/w b/x c/y and d/z fragments. These formulas are relative to the full formula in the 4th column. For example if phosphate appears as a regular backbone element, OMA uses the formula from the 4th column for the mass calculation (H;2;O;4;P;1). But if the current fragment has a y-phosphate end the formula of the last column is subtracted from the root formula in the 4th (H;2;O;4;P;1 - H;1;O;1 = HPO4).

Lines beginning with '#' are ignored.

Hint: Be careful when modifying this file. Already small typos (e.g. too many tabs) or inserting an unknown chemical element (like Rb) can lead to errors.

OMA output

The reference database files have three columns. The first contains the peak name (description), the second the charge (with sign) and the third column the mass of the peak. Usually these files don't have to be modified. Example:

[M]-2_a                 -2   690.9644
[M-C]-3_a               -3   423.2729
[a2-B]-1_m              -1   386.0753
[w3]-2_a                -2   441.7725
[y3]-3_a                -3   267.5190
[w3=>a4]-1_m            -1   577.0849
[y3=>d4]-3_a            -3   197.7850
[x4=>a3]-2_a            -2   279.1663
[w-{-CCdd}b-]-2_m       -2   297.0438
[y-{--CCddd}a-B-]-2_a   -2   337.2239
[x-{--CCCddd}b-]-2_a    -2   432.7648

OPA input

To run correctly, OPA actually only needs a list of m/z values including a header named "m/z" (case sensitive). Minimal working example:


However, to gain access to full OPA functionality, one can add a second column with estimated charges (from the instrumental software) using the header "Charge" (case sensitive). Thus, following example spectrum is fully functional:


m/z       Charge
314.1082  1
316.294   0
317.0468  2
321.0487  1


Hint: Excess white space is automatically trimmed, additional headers and columns are ignored (=redirected to output without change).

Xcalibur Qual Browser

When using the Xcalibur Qual Browser, a spectrum suitable for OPA can be created very easily:

- Switch to "Spectrum List" view (1).

- Export the resulting list to the clipboard (2).

- To read from clipboard in OPA just leave the "Spectrum" field empty (OPA, 3).


Example Xcalibur output / OPA input which works fine:

RT: 0.03-3.02


m/z       Intensity Relative Charge

110.0361  5205.8    6.21     1
125.0357  14167.1   16.9     1
126.0391  464.7     0.55     0
133.0156  2735      3.26     1



A spectrum from Analyst can be imported as follows:

- Open the Spectrum List view.

- Right-click to open the popup menu, select "Save As Text" (1).

- Open the stored file in a text editor and manually add a header to assign the column types ("m/z", "Charges", 2).

- The modified file can be used as input spectrum in OPA.




OPA output

The output spectrum format contains the input spectrum format plus

- The reference file names, added to the header

- one additional column with annotations per reference file

If "only annotated peaks" is chosen only the peaks which have at least one annotation from one of the references are written out. This makes the output smaller but input peaks get lost. To prevent this the "full spectrum" option has to be selected. Here all input peaks are written out, so the output can be re-used for a further OPA run. See also OPA.
Hint: It is recommended to transfer the output into a spreadsheet program. This allows then further peak data processing and analysis.