LCModel Control file options

Hello experts

As a newbie in MRS, I just realized that LCModel does not only do the fitting/modelling but it also does some processing on the data such as frequency correction (shift), zero-order and first-order phase correction.

I have done all these corrections in my processing pipeline and now that I have realized thay are being done by LCModel, I was hoping to disable these inside LCModel to avoid redundancy.

Has anyone ever tried to switch these steps off?

Thank you so much

Best
Shah

You can fix the phases by setting DEGZER (the expectation value for the zero-order phase parameter), SDDEGZ (the standard deviation for the zero-order phase parameter), DEGPPM(the expectation value for the first-order phase parameter) and SDDEGP (the standard deviation for the first-order phase parameter) all to zero (See LCModel manual, section 9.7 and following). This should constrain both corrections. However, let me say that you might find that giving a little bit of phasing freedom to the modeling process will actually improve your phase estimate (I find it very difficult to near-impossible to reliably pre-phase a spectrum perfectly in an automated fashion!).

For the frequency correction, there’s two things happening here:

  • a global phase shift (based on the three singlets) estimated at the very beginning. I believe that you can (see Section 11.3. in the manual) deactivate that by setting FIXSHF=T and PPMSHF = 0.
  • frequency shifts applied to the individual metabolites. I believe these can be fixed by setting DESDSH=0. (which is the standard deviation of the estimated parameters, i.e., you’ll put an infinitely high penalty on applying a frequency shifts, Section 11.13) for the metabolites - for MMs and lipids, you’ll need to modify the definitions in the control file as well by setting the standard deviations of the shifts to 0 (see Section 11.7)
1 Like

Thanks Georg for sharing your experience
I could easily disable these corrections in the LCModel.

This global phase shift is actually what we also refer to as “zero-order phase correction”, right?
So, If I have understood correctly from the “OspreyProcess” function, you do the frequency shift using the “osp_XReferencing” function and then zero-order phase correction by applying a global phase estimated by “op_phaseCrCho”. Then you will let the LCModel handle the first-order phase corrections. Right?

I was wondering, since you do these steps externally (outside LCModel), do you still let LCModel do these corrections again?

Yeah, we do, because we primarily use our own linear-combination modeling algorithm instead of shipping the spectra off to LCModel. Both these steps (initial frequency referencing and an initial guess for the phase - yes you’re right that’s a zero-order phase correction) are never meant to be final or perfect… just to get the spectra roughly into the right ballpark before the fitting algorithm takes over.

Again, I think full modeling is actually the most informed way of doing frequency-and-phase adjustment, rather than just trying to fixate on a couple very narrow spectral features.

It’s not exactly the same problem to solve, but we’ve shown that 2D modeling can do better than ‘traditional’ frequency/phase alignment of individual transients. One reason this works so well is that you’re adding prior knowledge in the shape of perfectly phased simulated basis functions.

1 Like

Makes perfect sense.
Thanks