This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Converting Nmr Spectrum'S Ascii File To Peak List

I have some Bruker NMR spectra that i am using to create a program as part of a project. My program needs to work on the actual spectrum. So i converted the 1r files of the Bruker NMR spectra to ASCII. For Carnitine this is what the ascii file looks like(this is not the complete list. The complete list runs into thousands of lines. This is only a snapshot):

-0.807434    -23644    
-0.807067    -22980    
-0.806701    -22967    
-0.806334    -24513    
-0.805967    -27609    
-0.805601    -31145    
-0.805234    -33951    
-0.804867    -35553    
-0.804501    -35880    
-0.804134    -35240    
-0.803767    -34626    
-0.8034  -34613    
-0.803034    -34312    
-0.802667    -32411    
-0.8023  -28925    
-0.801934    -25177    
-0.801567    -22132    
-0.8012  -19395

and this is what the spectrum is: alt text

My program has to identify the peaks from this data. So i need to know how to interpret these numbers. And how exactly they are converted into their appropriate values in the spectrum. So far this is what i have learnt:

1.) The first column represents the spectral point position (ppm)

2.) The second column represents the intensity of each peak.

3.) notice that in the second column there are some numbers which are not perfectly aligned but are closer to the first column. Eg:-34613, -28925, -19395. I think this is significant.

For the sake of completeness- I am doing the programming in R.

EDIT: please see this post in stackoveflow. It is one solution that i found. I would appreciate any others.

structural programming r

uh ?! "I have also asked this in Biostar but i think i have a better chance of getting an answer here than there because not many people seem to be answering questions there."

Which tool do you use for converting? (IMHO negative intensity values are not normal.)

@PierreLidenbaum - Sorry but i have seen questions languishing here for days on end before someone with experience logs in and finds the question. Just my two cents. I might be wrong.

@sgibb- I used Mnova to save the 1r spectrum as a text file. Any better idea?

@PierreLidenbaum Of course now that i see answers here on my question I guess i am wrong. Things seem to have changed.

@sgibb yes. I do have those files in the raw data. Bruker's software is paid. I'm a student. Cant afford it.

@Guy: To use CompassXport you only have to register on bdal.com. (It's free of charge.) The fid file contains the intensities. You could investigate them by od -An -i -v -w4 fid | less. In the acqu file are some variables which you need to calculate the spectral positions. (I only know the calculation equation for Bruker's *flex devices.) Could you give us an example file?

This link contains some raw data. If you want i can extract it and upload specific files to some filesharing site.

If you want i can extract it and upload any specific files you want.

@Guy: Thanks. I have to recognize that this acqu file contains a lot of unknown (at least for me) variables. I never used NMR. But it seems link can import such files. Also I noticed that CompassXport can NOT convert NMR fid files.

But i am not using the fid files. I am using the 1r spectrum files.

@sgibb But i am not using the fid files. I am using the 1r spectrum files

2 answers

Do you really need to write the program yourself? There are many capable spectral data processing tools available. For starters, have a look at the ACDLabs www.acdlabs.com) offerings.

And please do not invent your own file format. The open standard for spectral data is JCAMP. It can encode both raw data and peak information. If you base your software on that, it will be much more valuable for future uses in other contexts.

As for your column alignment, I am pretty sure there is just a single tab character, which, depending on how wide the data item to the left is, aligns on a different tab stop.

I have not looked at ACDLabs yet. But i will. Does it provide a way to produce a peak list?

When you convert the 1r file to ASCII, what you may be getting is the FID (the time domain data) and not the frequency domain data that you want to analyze. Most NMR analysis software packages apply a fourier transform to the time domain data, as well as, as other processing algorithms. That's how you end up with data that looks like peaks at specific chemical shift values (ppm). I would consider using [?]NMRpipe[?] to process all of your raw data and export the finished spectra as ASCII. Then you should just have 2 columns, one for ppm and the other for intensity, or better yet, individual peaks after automatic peak picking.

but doesnt the fid file contain that time domain data? And i generated the mentioned ASCII file using MNOVA suite, but NMRPipe looks really interesting. Thank you for the link! Can you point me to a resource about what the exact processing algorithms used are when converting the time domain data to frequency domain data?

Oh, I see. Did you do "Export ASCII -> Hz + Re" in Mnova? Then what you have above is probably the frequency domain data after all. You just have the x-axis in hertz and not ppm. This is easy enough to change if you know the the operating frequency of the spectrometer and the frequency of the reference substance that was used (TMS or dH2O, etc.) Just use this equation from wikipedia. Mnova has all the basic processing functions: fourier transform, apodization, truncation, zero-filling.

Oh, I see. Did you do "Export ASCII -> Hz + Re" in Mnova? Then what you have above is probably the frequency domain data after all. You just have the x-axis in hertz and not ppm. This is easy enough to change if you know the the operating frequency of the spectrometer and the frequency of the reference substance that was used (TMS or dH2O, etc.) Just use this equation from http://en.wikipedia.org/wiki/Chemical_shift#Chemical_shift_referencing. Mnova has all the basic processing functions: fourier transform, apodization, truncation, zero-filling.

Log in to answer this question.