Basis set file for FSL-MRS analysis

Hi Experts,
I have followed the following link to download the basis set https://juchem.bme.columbia.edu/content/mr-spectroscopy-basis-sets
However, our data was acquired using a PRESS sequence at the band width of 1200 Hz, TE 30 ms, in Siemens Skyra 3T MRI. Can someone provide with the basis set according to the above mentioned parameters or show us some pointers. We tried downloading the basis set at 2500 Hz; but the fitting was not proper.
Please advise

Thank you in advance
Regards
Himanshu

Hi,
Can someone provide with the basis set according to the below mentioned parameters or show us some pointers. our data was acquired using a PRESS sequence at the band width of 1200 Hz, TE 30 ms, in Siemens Skyra 3T MRI
Thanks
Himanshu

hi @anshuhim20,

Could you elaborate on how the fitting didn’t work? Can you share a html report of the fitting?

Thank you,
Please find the snapshots for troubleshooting.

Regards
Himanshu





@anshuhim20 Thanks for all this info. From this image:


it looks like the basis set you have is for the wrong field strength. Where did you source it from, and what field strength is the data from?

And the output corresponding to the mrs data:
*

mrs_tools info HS69_fmrs.nii.gz

NIfTI-MRS version 0.9
Data shape (1, 1, 1, 1024)
Dimension tags: [None, None, None]
Spectrometer Frequency: 123.225489 MHz
Dwelltime (Spectral bandwidth): 8.330E-04 s (1200 Hz)
Nucleus: 1H
Field Strength: 2.89 T

Thanks and Regards
Himanshu

Ok, that sounds right, how did you convert the basis set to the fsl standard? Perhaps the bandwidth/dwelltime of the basis has been set incorrectly.

Will

Hi @wclarke,
We have used the below command for conversion
basis_tools convert RawBasis_for_PRESSPhilips_TE_30_BW_2500_NPts_1024 --bandwidth 1200 --fieldstrength 3.0 fsl_basis_test

Thanks and regards
Himanshu

Hi, this parameter should be set to the bandwidth of the basis set 2500 not the data. Try again with --bandwidth 2500.

Thanks @wclarke, i tried the same
basis_tools convert RawBasis_for_PRESSPhilips_TE_30_BW_2500_NPts_1024 --bandwidth 2500 --fieldstrength 3.0 fsl_basis_test1
fsl_mrs --data HS69_BASE.nii.gz --basis fsl_basis_test1 --output HS69_svs --tissue_frac segmentation.json --report
the error is shown below:
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/core/basis.py”, line 317, in _resampled_basis
basis = misc.ts_to_ts_ft(self._raw_fids,
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/utils/misc.py”, line 255, in ts_to_ts_ft
raise InsufficentTimeCoverageError(‘Input data covers less time than is requested by interpolation.’
fsl_mrs.utils.misc.InsufficentTimeCoverageError: Input data covers less time than is requested by interpolation. Change interpolation points or dwell time.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/User/anaconda2/envs/py38/bin/fsl_mrs”, line 8, in
sys.exit(main())
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/scripts/fsl_mrs.py”, line 281, in main
conjugated = mrs.check_Basis(repair=True)
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/core/mrs.py”, line 626, in check_Basis
basis = self.basis
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/core/mrs.py”, line 231, in basis
return self._basis.get_formatted_basis(
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/core/basis.py”, line 238, in get_formatted_basis
formatted_basis = self._resampled_basis(1 / bandwidth, points)
File “/User/anaconda2/envs/py38/lib/python3.8/site-packages/fsl_mrs/core/basis.py”, line 327, in _resampled_basis
raise BasisHasInsufficentCoverage('The basis spectra covers too little time. ’
fsl_mrs.core.basis.BasisHasInsufficentCoverage: The basis spectra covers too little time. Please reduce the dwelltime, number of points or pad this basis.

Kindly suggest the needful

Hi @anshuhim20,

This is saying that the basis set simulations don’t cover the full period of your data FID, you can probably get around this by zero-padding the basis set data first, e.g. just double the number of points.

Apologies, I am new to MRS can you please elaborate your suggestion or provide me some link to follow on how to double the number of points and perform zero padding of the basis set

Thanks
Himanshu

Hi @anshuhim20 ,

Probably easiest is just to open the original files (from Christoph Juchem’s group) in your favourite program (matlab/python etc) and just pad each vector with zeros.

Hi @wclarke,
I am still not getting what do you mean by padding the vectors with zero. As I am using the following link to download basis set from Christoph Juchem’s group. What are the original files in this folder; you mean to say all the 35 .raw metabolite files must be padded?
I have seen padding using matlab using paddata command as shown in the link, however, it is still confusing how to apply this on original file/s of basis set.
Kindly help in this regard

Thanks and regards
Himanshu

Hi @wclarke,
Kindly share a pointer reference on how to execute zero padding of basis data.
Thanking you
Himanshu

Hi, this can be done with many numerical library functions. e.g. numpy.pad — NumPy v2.1 Manual or padarray