Converting Osprey basis set to FSL-MRS

Hi all,

I’m a beginner here with MRS analysis, so apologies for any mistaken terminology or duplicate questions. I’m putting together an FSL-MRS-based pipeline for our data, and my current procedure for getting a basis set is to use one from Osprey (osprey/fit/basissets/3T/siemens/unedited/press/30 at develop · schorschinho/osprey · GitHub) and convert it to FSL-MRS format.

Is this approach recommended, compared to simulating a basis set within FSL-MRS? I started to simulate a basis set myself but didn’t have the exact pulse timings, so instead I tried to find an existing basis set with the parameters of our sequence (Siemens, PRESS, 30ms TE, SW=2000Hz, BW=2000Hz, n_points = 2048), hence the use of the Osprey one. The conversion script I’m using implements the following steps for each metabolite in the basis set:

  1. Multiply FID by ‘scale’ field
  2. Shift FID by ppm necessary (1.65) to account for different center frequencies in Osprey (3.0) vs FSL-MRS (4.65)
  3. Truncate and downsample to get to same time-frequency space as my data
  4. Phase normalize to ensure zero-order phase = 0

Is that all correct and sufficient?
Thanks so much for any feedback!

Hi @dani ,

The osprey basis sets are absolutely fine to use. I have a short notebook s hoiwng how I converted a HERCULES basis set here: convert_osprey_basis.ipynb · main · William Clarke / HERCULES in FSL-MRS · GitLab

Don’t worry about truncating and downsampling. The FSL fitting module will handle that.

Thanks so much! I’m also wondering if there’s a standard set of metabolites to include. The Osprey basis set includes [‘Ala’, ‘Asc’, ‘Asp’, ‘Cit’, ‘Cr’, ‘CrCH2’, ‘EtOH’, ‘GABA’, ‘GPC’, ‘GSH’, ‘Glc’, ‘Gln’, ‘Glu’, ‘Gly’, ‘H2O’, ‘mI’, ‘Lac’, ‘NAA’, ‘NAAG’, ‘PCh’, ‘PCr’, ‘PE’, ‘Phenyl’, ‘sI’, ‘Ser’, ‘Tau’, ‘Tyros’, ‘bHB’, ‘bHG’, ‘MM09’, ‘MM12’, ‘MM14’, ‘MM17’, ‘MM20’, ‘Lip09’, ‘Lip13’, ‘Lip20’], but it seems like it’s recommended to use only a subset of those? I’m most interested in Glu for my data.