Error using Custom metabolites in GUI

Hello - I am very new to MRS and am learning as I try to process data using the new version of Osprey for SVS PRESS 30 data. I can successfully process data if I use the default settings in the GUI. However, I would like to quantify alcohol. In the GUI, when I select the Custom option for metabolites and check the EtOH box, I get this error (see below) when trying the ‘Model data’ step. I have played around and it works if I select ‘Default’ or ‘Full’ metabolites in the GUI, which includes EtOH. This brings me to a second question. I noticed the quantification/values of metabolites is different when comparing the output from using the default set versus full set of metabolites. Is that to be expected? My (very elementary) understanding is that the numbers should be the same even if different metabolites are included to be quantified. I am now not sure which value for glutamate (for example) should I use if I have two different numbers?

Thank you!

Timestamp August 09, 2022 15:17:56 Osprey 2.3.0 OspreyFit
Error using /
Matrix dimensions must agree.

Error in osp_fitInitialise (line 165){kk} = max(real(dataToScale.specs)) / max(max(max(real(basisSet.specs))));

Error in OspreyFit (line 50)
[MRSCont] = osp_fitInitialise(MRSCont);

Error in osp_onFit (line 35)
MRSCont = OspreyFit(MRSCont);

Error while evaluating UIControl Callback.

Hi @bstennett,

Thanks for picking up Osprey and reaching out.

You could also try to set up your analysis by using the example job files. In there, you have an entry with You could try replacing the {‘default’} entry with:

{‘Asc’,‘Asp’,‘Cr’,‘CrCH2’, ‘EtOH’ …
,‘GABA’,‘GPC’,‘GSH’,‘Gln’,‘Glu’ …
,‘mI’,‘Lac’,‘NAA’,‘NAAG’,‘PCh’,‘PCr’,‘PE’ …
,‘sI’,‘Tau’,‘MM09’ …

And see whether this works. I’ll, in the meantime, check whether there is an issue with the GUI that is causing your problem.

Could you also tell me which vendor, sequence and echotime you are using?

About the second question. This is a whole topic of ongoing research on linear-combination modeling. If you, for example, include all metabolites in the basis set (Full) the algorithm will try to find all those metabolites in your spectrum. However, this also includes, for example, Cystathionine which is a tumor marker that is not found in healthy tissue. The model algorithm does not know that this is the case and due to the considerable overlap of the signals, they will all ‘compete’ with each other. Therefore, your results will be heavily dependent on the list of metabolites in your basis set. Usually, you would only include metabolites that you assume to be found in your spectrum (e.g. default includes all commonly found brain metabolites observable at 3T in the healthy brain). I hope this clears up your question a bit.

If you want to learn more about this, you can look into the recent consensus papers in NMR Biomed or this paper here ( These are good starting points.


Hi Helge,
Thank you so much for your quick response! I created a job file and then made sure the metabolite list is as you listed and I received the same error.
I am using a Siemens Prisma 3T; PRESS single voxel sequence; TE = 30ms, TR = 3000ms.
Let me know if you need any other information and thank you for the explanation about ‘competing’ signals. That definitely makes sense. I am working my way through the expert consensus papers and I will read the paper you sent as well.

Hello again @Helge - I wanted to follow up to see if you had a chance to see if there is an issue with the GUI or any other causes for not being able to use the custom choices.

I did download the newer version (2.4.0) and tried it again but received the same error.

Hi @bstennett,

I’ve just added a fix to the develop branch on GitHub. You should now be able to include EtOH in your .json jobfile. Let me know if this works for you.


Hi @Helge - That worked! Thank you so much!

Hi @Helge
I wanted to follow up on which metabolites to include the basis set for the data I am trying to analyze. As I mentioned before, I want to detect EtOH in the sample, and thanks to your fix, I am successfully doing that now. A little background for this data set, participants complete 2 sessions, one session where they consume alcohol and another session where they do not receive any alcohol. For the alcohol session data, I am using the default basis set and adding EtOH. Given the concept that the algorithm with ‘look’ for the metabolites included, would I not include EtOH in the basis set for the session where they do not receive alcohol on the premise that EtOH is not expected?
As a follow up question, when I run the alcohol session data with and without EtOH in the basis set, I get slightly different numbers. If my goal is to compare the no-alcohol session to alcohol session data, what is the best practice suggested for this situation?
I have tried searching the literature, but am not finding a clear answer. I appreciate any help or suggestions! - Bethany