mt_sat : Correction of Magnetization transfer for RF inhomogeneities and T1Ā¶


% This m-file has been automatically generated using qMRgenBatch(mt_sat)
    % Command Line Interface (CLI) is well-suited for automatization
    % purposes and Octave.
    % Please execute this m-file section by section to get familiar with batch
    % processing for mt_sat on CLI.
    % Demo files are downloaded into mt_sat_data folder.
    % Written by: Agah Karakuzu, 2017
    % =========================================================================


qMRinfo('mt_sat'); % Describe the model
  mt_sat :  Correction of Magnetization transfer for RF inhomogeneities and T1

    MTsat is a semi-quantitative method. MTsat values depend on protocol parameters.

    MTw     3D MT-weighted data. Spoiled Gradient Echo (or FLASH) with MT
    T1w     3D T1-weighted data. Spoiled Gradient Echo (or FLASH)
    PDw     3D PD-weighted data. Spoiled Gradient Echo (or FLASH)
    (B1map)  B1+ map. B1map = 1 : perfectly accurate flip angle. Optional.
    (Mask)   Binary mask. DOES NOT ACCELERATE FITTING. Just for visualisation

    MTSAT         MT saturation map (%), T1-corrected
    T1            T1 map (s)

    B1 correction factor     Correction factor (empirical) for the transmit RF. Only
    corrects MTSAT, not T1. From Helms 2015 (below), the default value (0.4)
    was empirically determined for a Gaussian 4ms MT-pulse at 2kHz offset and 220 deg nominal flip angle.
    Weiskopf, N., Suckling, J., Williams, G., CorreiaM.M., Inkster, B., Tait, R., Ooi, C., Bullmore, E.T., Lutti, A., 2013. Quantitative multi-parameter mapping of R1, PD(*), MT, and R2(*) at 3T: a multi-center validation. Front. Neurosci. 7, 95.
    Helms, G., Correction for residual effects of B1+ inhomogeniety on MT saturation in FLASH-based multi-parameter mapping of the brain. Proceedings of the 23rd Annual Meeting of ISMRM 2015, 3360.

    MTw    [FA  TR  Offset]  flip angle [deg], TR [s], Offset Frequency [Hz]
    T1w    [FA  TR]          flip angle [deg], TR [s]
    PDw    [FA  TR]          flip angle [deg], TR [s]

    Example of command line usage:
    Model = mt_sat;  % Create class from model
    Model.Prot.MTw.Mat = txt2mat('MT.txt');  % Load protocol
    Model.Prot.T1w.Mat = txt2mat('T1.txt');
    Model.Prot.PDw.Mat = txt2mat('PD.txt');
    data = struct;  % Create data structure
    data.MTw = load_nii_data('MTw.nii.gz');
    data.T1w = load_nii_data('T1w.nii.gz');
    data.PDw = load_nii_data('PDw.nii.gz');  % Load data
    FitResults = FitData(data,Model); %fit data
    FitResultsSave_nii(FitResults,'MTw.nii.gz'); % Save in local folder: FitResults/

    For more examples: a href="matlab: qMRusage(mt_sat);"qMRusage(mt_sat)/a

    Author: Pascale Beliveau (

    Please cite the following if you use this module:
    Helms, G., Dathe, H., Kallenberg, K., Dechent, P., 2008. High-resolution maps of magnetization transfer with inherent correction for RF inhomogeneity and T1 relaxation obtained from 3D FLASH MRI. Magn. Reson. Med. 60, 1396?1407.
    Helms, G., Correction for residual effects of B1+ inhomogeniety on MT saturation in FLASH-based multi-parameter mapping of the brain. Proceedings of the 23rd Annual Meeting of ISMRM 2015, 3360.
    In addition to citing the package:
Karakuzu A., Boudreau M., Duval T.,Boshkovski T., Leppert I.R., Cabana J.F.,
Gagnon I., Beliveau P., Pike G.B., Cohen-Adad J., Stikov N. (2020), qMRLab:
Quantitative MRI analysis, under one umbrella doi: 10.21105/joss.02343

    Reference page in Doc Center
    doc mt_sat



a- create object

Model = mt_sat;

b- modify options

         |- This section will pop-up the options GUI. Close window to continue.
    |- Octave is not GUI compatible. Modify Model.options directly.
Model = Custom_OptionsGUI(Model); % You need to close GUI to move on.


a- load experimental data

         |- mt_sat object needs 5 data input(s) to be assigned:
    |-   MTw
    |-   T1w
    |-   PDw
    |-   B1map
    |-   Mask
data = struct();
    % MTw.nii.gz contains [128  128   96] data.
    % T1w.nii.gz contains [128  128   96] data.
    % PDw.nii.gz contains [128  128   96] data.

b- fit dataset

           |- This section will fit data.
FitResults = FitData(data,Model,0);
=============== qMRLab::Fit ======================
    Operation has been started: mt_sat
    Elapsed time is 0.331567 seconds.
    Operation has been completed: mt_sat

c- show fitting results

         |- Output map will be displayed.
    |- If available, a graph will be displayed to show fitting in a voxel.
    |- To make documentation generation and our CI tests faster for this model,
    we used a subportion of the data (40X40X40) in our testing environment.
    |- Therefore, this example will use FitResults that comes with OSF data for display purposes.
    |- Users will get the whole dataset (384X336X224) and the script that uses it for demo
    via qMRgenBatch(qsm_sb) command.
FitResults_old = load('FitResults/FitResults.mat');

d- Save results

         |-  qMR maps are saved in NIFTI and in a structure FitResults.mat
    that can be loaded in qMRLab graphical user interface
    |-  Model object stores all the options and protocol.
    It can be easily shared with collaborators to fit their
    own data or can be used for simulation.
FitResultsSave_nii(FitResults, 'mt_sat_data/MTw.nii.gz');
Warning: Directory already exists.


   |- This section can be executed to run simulations for mt_sat.

a- Single Voxel Curve

         |- Simulates Single Voxel curves:
    (1) use equation to generate synthetic MRI data
    (2) add rician noise
    (3) fit and plot curve
% Not available for the current model.

b- Sensitivity Analysis

         |-    Simulates sensitivity to fitted parameters:
    (1) vary fitting parameters from lower (lb) to upper (ub) bound.
    (2) run Sim_Single_Voxel_Curve Nofruns times
    (3) Compute mean and std across runs
% Not available for the current model.