This page describes how the FID data format native to the Bruker XTOF/XMASS v4 software (running on the Reflex III's Sun data system) can be converted to JCAMP format so it can be viewed using the JSpecView applet.

Updated Bruker FID File Format Conversion- 9/4/09
I've updated the program to now handle writing the FID data files allowing the user to choose whether the x-axis is in mass or TOF. To facilitate others who may be interested in the program, I've taken the development over to SourceForge and renamed the application FIDtoJCAMP (the current version is 0.5a). One of the biggest limits is the fact that it is written in the old Borland Pascal rather than something like JAVA- but maybe someone else out there can help in that respect. There are still some fairly serious limitations, but I'll keep working on improving it.

New Bruker FID File Format Conversion- 9/3/09
After much frustration in trying to extract flight time data from the Bruker FlexAnalysis software (which is apparently impossible- while MOST of the world is interested only in mass information, SOME interesting information can still be gotten from the data in the original TOF domain!), I wrote a program to convert the Bruker data (in FID format) to JCAMP format for display/ manipulation using the JSpecView application. Note that at the moment the x data is ONLY output in TOF format. Text from the ReadMe.txt file contained in the ZIP file here is reproduced below.

FIDtoJCAMP Bruker FID to JCAMP File Conversion Program
ver 0.4a 9/3/2009 K. Owens
Creative Commons v2.5 Share-and-Share Alike

This program is designed to convert a Bruker mass spectrum in FID format (collected on a Reflex or Ultraflex MALDI TOFMS) directly into a JCAMP file able to be viewed with JSpecView. The program is written in Borland TurboPascal v7.0 and upon execution will run in a DOS window. For data collected on an older Reflex (controlled using XACQ on a Sun computer), first transfer the data to a PC. Then place this program in the folder in the data file directory at the level of folders named 1Ref, 2Ref, etc. For data collected on a newer Ultraflex (using FlexControl software on a PC), place the program in the folder in the data file directory at the level of folders named 1, 2, 3, etc. (just under the folder level with folders named for the sample spot where data is collected).

When the program executes you will need to enter the name of the input folder (e.g., "1Ref" for Reflex files, "1" for Ultraflex files). The program will then read the appropriate parameter files and display information including the file acquisition date, comment lines, number of data points, and number of delay channels. By default, all data points collected will be written to the new JCAMP format file. If the number of data points is too large for display using JSpecView (you should keep file sizes<50000 points), you can select one of several different means of truncating or compressing the data. You can skip the first X data points, write out a subset Y of the total number of data points, or average Z data points from the original file together during the conversion process. Also note that you can do any combination of these several means of truncation. Enter the desired output file name, then Process the data. The JCAMP format output file will be written into the same directory where the conversion program is located.

Note that at present the X axis values are only output in time-of-flight; the units are us.

Please forward any bug reports or suggestions for improvements to me at

Version Control Info
version 0.3a (9/1/09)
- first external release
version 0.4a (9/3/09)
- rearranged the main program menu
- added ability to handle linear mode data files (named "1Lin")
- added automated multiple file conversion capability. When the program is executed it automatically reads the names of the directories (containingthe data files) in the home path. Select the appropriate processing parameters using the function keys as usual. Select M(ultConvert to convert all of the files simultaneously. The output filenames will automatically be set as the names of the input directories concatenated with 'JCAMP'.

Note: I have to offer props to the programmers at Bruker responsible for the data storage format used by both the older XACQ and newer FlexControl software. They COULD have created an impenetrable proprietary format... but instead chose to store the data in an accessible open format. The instrument control and data processing parameters are stored in a number of textfiles (e.g., acqus, proc, procs, etc.) that have a JCAMP-type format. The raw time-of-flight data itself is stored in the file FID in longint (32-bit integer) format. I can't say that I completely understand the folder hierarchy used by either of the programs, and it WOULD be nice to have a dictionary of terms for all of the parameters stored in the JCAMP-like files (along with knowing why there are so many files that have much but not complete overlap of coverage)... but overall creating this conversion program was quite straightforward.
K. Owens

Data File Format Conversion
The MALDI TOFMS data from the Bruker Reflex III can be converted from the native Bruker FID format to JCAMP format in one of a number of ways:

While the data is still on the Sun computer:

1) Using XMASS on the Sun computer taking data from the instrument:

As the ASCII data files are MUCH larger than the native Bruker format files, this method is not recommended because it greatly increases the size of the files that need to be transferred (and also increases the time for transfer).

After you've moved the data off the Sun onto a computer on the Owens Group Windows network:

2) Using Polymerix v2beta (Sierra Analytics, Inc.): Note that Polymerix can open up Bruker native-format files or ASCII XY files. Start the Polymerix program as usual. Click on the Spectrum button in the Import panel at the top left hand side of the page. A file dialog box will open. Select the folder containing the transferred experiment files. Once the folder is selected a list of files should appear in the bottom panel of the dialog box; comment line 1 from the Bruker datafile will be displayed. Select the desired file and click Open. Perform any desired spectral processing using the normal Polymerix tools. To export the file in ASCII format, on the File menu select Export Spectrum. A file dialog box will open. Enter the new ASCII filename and click Save. You must then convert the ASCII textfile containing the XY data pairs into a legitimate JCAMP-DX data file as described below.

3) Using GRAMS AI v7.01 (Thermo-Galactic, Inc.): Note that GRAMS cannot open the Bruker FID format files, you must first convert the data to ASCII XY format. Note that the most efficient way to do this is using method 2 above. Start the GRAMS program as usual. You will first need to Import the data into GRAMS. Under the File menu select Import/Export. When the Galactic File Converter dialog box opens, select the format ASCIIXYS ASCII X,Y Data Pair Format- non-even X spacing and click Import. In the Windows File Selection Dialog Box, select Files of Type All Files (*.*), then select the name of the file to convert (note that the ASCII XY files should have either a .PRN or .ASC extension). Click Open, select the output file type Spectra (.spc) then OK to convert the file. By default the program will preserve the file name and change the file extension. After the data is converted, it is now in a SpectraCalc format (.SPC) file in the same folder as the original ASCII file. Now under the File menu select Open Trace and select the name of the file you just converted. The data should open in the preview window; click Done for the data trace open in the main GRAMS window. As the JCAMP converter in GRAMS is unable to handle the non-evenly spaced X data, you will first need to convert the data from uneven X spacing to even X spacing. Select Applications, AB Program and then the array basic (AB) file XY2EVEN.AB from the list. This AB program will create a new spectrum with evenly spaced X values. You now need to save the file in JCAMP format. Under the File menu, select Import/Export and then Export. Select the JCAMP format from the list of file converters. Give the new JCAMP formatted file a filename (MS-MA####.dx, where MA#### is the matrix ID number) and click Save. While this is a JCAMP-DX data file, you need to add additional MALDI-related JCAMP data labels to it as described below.

Converting the ASCII XY File into a JCAMP-DX File
The first step is to determine the number of XY datapoints in the file. This can be done easily by reading your data into Notepad. Select Format and make sure that Word wrap is unchecked. Now put the cursor on the last line of the data file, select Edit and GoTo. A dialog box will appear that tells you the number of the line where your cursor is located in the datafile. As there is usually a text label on the first line of the file, the number of XY datapoints is 1 less than the line number.

You now need to add the required JCAMP-DX data labels. These are included in the BrukerMALDIMS-JCAMPHeader.txt file (available in the file download section below). Copy this file and rename it MS-MA####.dx where MA#### is the ID number of the matrix compound. Using Notepad or WordPad, you should copy the XY data points from the ASCII file created in steps 1 or 2 described above into the space allocated. Note that you must edit a number of the required JCAMP data labels to reflect the data that you have just copied. Make sure to change the value in the fields ##FIRSTX, ##LASTX, and ##FIRSTY to match the data in the datafile. You also need to change the value in the ##NPOINTS field to reflect the number of XY data pairs in the datafile (this is the number you found using the GoTo function in Notepad). While no other modifications are required, in order to fully document the data you wish to display using JSpecView, detailed information about the sample preparation as well as the TOFMS instrument parameter information should be added to the JCAMP file. Additional suggested JCAMP-DX data labels are included in the original BrukerMALDIMS-JCAMPHeader.txt file. As noted in the JCAMP specification, you may add user defined labels by preceeding the name with the characters ##$ (see JCAMP Definitions for additional details). As the three datafile format conversion routines described above do not transfer information about the instrument parameters (or even comment lines), these need to be added manually. If you open up one of the folders containing the native-Bruker data (e.g., 1Ref) you will find a subfolder named pdata and four files named acqu, acqus, sptype and fid. Open up the file named acqu using Notepad or Wordpad and you will find a JCAMP type formatted file listing all of the Bruker instrument parameters. See JCAMP Data Labels for a complete list of predefined JCAMP data labels. Be sure to save this file with a file name MS-MA####.dx, where MA#### is the matrix ID number.

Adding Additional JCAMP Data Labels to JCAMP-DX Files Created by GRAMS AI
Open the file GRAMSAI-JCAMPAdds.txt (available in the file downloads section below) using NotePad or WordPad and copy all of the contents to the Clipboard. Now open the JCAMP file created by GRAMS AI using Notepad or WordPad. Paste the additional JCAMP data labels from the clipboard into the JCAMP file after the line containing the ##TITLE data label. Edit the information contained in the newly pasted data labels appropriately. Note that the JCAMP file may already have ##XUNITS and ##YUNITS; in this case you should replace the existing lines with the lines pasted from the GRAMSAI-JCAMPAdds.txt file. Be sure to save the edited JCAMP file using the original filename.

Creating an HTML file to Load the MALDI JCAMP-DX File into JSpecView
You now need to create an html file that opens the newly created JCAMP file in the JSpecView applet. Copy the MS-JSpecViewTemplate.htm template file (located in the file downloads section below) and rename it for the molecule of interest (MS-MA####.htm, where MA#### is the ID number of the matrix). Edit the html title and header tags and add the appropriate JCAMP filename in the three JSpecView load calls in the html template using WordPad or Notepad. Upload both the .htm and JCAMP file to the JSpecView folder on the showme server ( using the WinSCP v3.82 program. Add the .htm file to the wiki page and be sure to test the spectral display.

Display of Multiple MS Spectra
If you plan to include more than one MS spectrum on the wiki page, add a letter as a suffix to the JCAMP/HTML filenames (e.g., MS-MA####A.dx/MS-MA####.htm).

Future Work
This process of file conversion and JCAMP editing could certainly be automated by someone who knows PERL very easily (although other programming languages could certainly be used). If you are interested in helping with this project please contact.

Many thanks to Robert Lancashire (University of the West Indies, Kingston, Jamaica) for help in how to convert our unevenly spaced ASCII XY time-of-flight mass spectrometer data files to a readable JCAMP format.

File Downloads