FID-A - Simulate ideal PRESS experiment

Hi everyone!

I want to use the FID-A software (GitHub - CIC-methods/FID-A: Toolbox for simulation and processing of in-vivo magnetic resonance spectroscopy (MRS) data) to generate simulated spectrums from the ideal PRESS experiment.

I am trying to use the sim_press.m function for that, but I’m facing some problems to understand the input parameters of this function:


I didn’t understand what values goes in the linewidth, sys and tau2 parameters.

I have a txt file with the parameters from a Philips Scanner PRESS experiment that I want to reproduce:

How can I find the information that is required for the linewidth, sys and tau2 parameters so I can synthetize spectrums from the PRESS experiment that I provided in the txt file?

Hi @Gabriel_Dias,

linewidth is the full-width, half-maximum (FWHM) the simulated spectral signals should have. Usually, 2 Hz is appropriate. sys is the spin system you want to simulate; for example, glutamate or GABA. tau1 and tau2 are timing parameters specific to your PRESS sequence. These will depend on the TE of the experiment. I don’t recall what these are for the Philips PRESS sequence, but I think tau1 is fixed at 13.4 ms.

I suggest using one of the example PRESS simulation scripts found in the exampleRunScripts/ folder (run_simPressShaped_fast_phCyc.m is what I’d use for faster and more accurate simulations).


1 Like

Hi @mmikkel,

Thank you for the explanation and suggestion, it really helped.

I would be grateful if you can help me with one more question about the spin system parameter.

Do I need to provide a list of spin systems from each one of the metabolites that I want to be present in the MRS synthetic signal?

Best regards,

Hi @Gabriel_Dias,

FID-A already defines most of the common spin systems you’re likely to need (and a few less likely ones); you can find them individually in simulationTools/metabolites, or collectively in spinSystems.mat (same folder). Of course you may also define your own systems using a similar pattern. In the example script @mmikkel suggested, you can see that it’s loaded around line 83

You’ll need to invoke this simulation function (and do something with the output) once for each spin system you wish to include. I use a pattern like this (choice of metabolites could be adapted to your needs):


load spinSystems

for metab_ix=1:length(simulate_metabs)


  sys=eval(['sys' spinSys]);


Hope this helps.


1 Like