Commit 0e71f3da authored by William Clarke's avatar William Clarke
Browse files

Update docs and changelog. Options added to MRSI.

parent e5d4cd8c
This document contains the FSL-MRS release history in reverse chronological order.
1.0.1 (Friday 19th June 2020)
--------------------------------
- Output folder in fsl_mrs_proc will now be created if it does not exist.
- fsl_mrs_proc now handles data with a singleton coil dimension correctly.
- --ind_scale and --disable_MH_priors options added to fsl_mrs and fsl_mrsi.
1.0.0 (Wednesday 17th June 2020)
--------------------------------
......
......@@ -25,7 +25,7 @@ copyright = f'{date.year}, Will Clarke & Saad Jbabdi, University of Oxford, Oxfo
author = 'William Clarke'
# The full version, including alpha/beta/rc tags
version = '1.0.0'
version = '1.0.1'
release = version
# From PM's fsleyes doc
......
......@@ -158,8 +158,10 @@ Below are detailed explanations of some of the optional arguments in the wrapper
Add macromolecule peaks at the following frequencies: 0.9, 1.2, 1.4, 1.7 ppm and a doublet at 2.08 & 3.0 ppm
:code:`--lorentzian`
By default the lineshape is a Voigt (lorentizian+gaussian). Use this flag to set to Lorentzian.
:code:`--ind_scale`
Allow independent scaling of specified basis spectra before fitting. For example this can be used to independently scale empirically measured macromolecules combined with simulated metabolite spectra.
:code:`--disable_MH_priors`
Disable the priors on the MH fitting. The priors are tuned for *in vivo* human brain spectroscopy. Use this option if your spectra has significantly different line widths, phases or large shifts. E.g. in liquid phase phantom or (potentially) pre-clinical systems.
The wrapper scripts can also take a configuration file as an input. For example, say we have a text file called :code:`config.txt` which contains the below:
......
......@@ -9,4 +9,10 @@ MRS specific questions may be better answered on the `MRSHub forums <https://for
1. Unable to find example data
If you installed FSL-MRS through conda the example data can be downloaded directly from the GitLab repository `folder <https://git.fmrib.ox.ac.uk/fsl/fsl_mrs/-/tree/master/example_usage>`_.
\ No newline at end of file
2. Poor fits
Two problems are commonley diagnosed when poor fits are seen:
1) Basis spectra are inconsistently scaled. For example empirically derived macromolecular basis spectra can be orders of magnitude larger than the other basis spectra. Before fitting, fsl_mrs(i) scales the magnitude of the data and basis spectra to a known range. Relative scales are preserved within the basis spectra. To permit fsl_mrs(i) to apply different scales to individual basis spectra use the :code:`--ind_scale` option with a list of basis names.
2) The data might have parameters unlike a 7T or 3T human *in vivo* brain spectrum. I.e. the spectrum originates from a pre-clinical system or from phantom. In this case the MCMC priors which are suitable for *in vivo* human case can be disabled using the :code:`--disable_MH_priors` option.
\ No newline at end of file
......@@ -10,10 +10,9 @@
import numpy as np
from fsl_mrs.core import MRS
from fsl_mrs.utils import mrs_io,plotting,fitting,misc
from fsl_mrs.utils import mrs_io, misc
import matplotlib.pyplot as plt
import nibabel as nib
import os.path as op
from fsl_mrs.utils.mrs_io.fsl_io import saveNIFTI
class MRSI(object):
......@@ -67,6 +66,7 @@ class MRSI(object):
self.rescale = False
self.keep = None
self.ignore = None
self.ind_scaling = None
self._store_scalings = None
......@@ -165,7 +165,7 @@ class MRSI(object):
mrs.check_FID(repair=True)
if self.rescale:
mrs.rescaleForFitting()
mrs.rescaleForFitting(ind_scaling=self.ind_scaling)
def plot(self,mask=True,ppmlim=(0.2,4.2)):
if mask:
......
......@@ -73,6 +73,12 @@ def main():
fitting_args.add_argument('--lorentzian', action="store_true",
help="Enable purely lorentzian broadening"
" (default is Voigt)")
fitting_args.add_argument('--ind_scale', default=None, type=str,
nargs='+',
help='List of basis spectra to scale'
' independently of other basis spectra.')
fitting_args.add_argument('--disable_MH_priors', action="store_true",
help="Disable MH priors.")
# ADDITONAL OPTIONAL ARGUMENTS
optional.add_argument('--TE', type=float, default=None, metavar='TE',
......@@ -195,6 +201,9 @@ def main():
else:
Fitargs['model'] = 'voigt'
if args.disable_MH_priors:
Fitargs['disable_mh_priors'] = True
# Echo time
if args.TE is not None:
echotime = args.TE*1E-3
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment