BrukerDataConversion

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.

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. [|http://fidtojcamp.sourceforge.net]
 * Updated Bruker FID File Format Conversion- 9/4/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.
 * New Bruker FID File Format Conversion- 9/3/09**



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

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 kevin.owens@drexel.edu

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

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:
 * Data File Format Conversion**

//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 (http://showme.physics.drexel.edu/owens/JSpecView) 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).

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.
 * Future Work**

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.
 * Acknowledgments**


 * File Downloads**