Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

qMT-SPGR

Quantitative MT · BIDS suffix QMTSPGR

Config name
model: qmt_spgr BIDS suffix
QMTSPGR Method family
Quantitative MT Acquired volumes
10 Fit granularity
voxelwise

Two-pool quantitative magnetization transfer from a spoiled gradient-echo sequence with off-resonance saturation sampled across a grid of saturation flip angles and frequency offsets. A free-water pool exchanges magnetization with a restricted macromolecular pool; fitting the sampled Z-spectrum recovers the bound-pool fraction and the exchange rate. Two steady-state solutions are available — Ramani’s closed form and the Sled–Pike rectangular-pulse approximation — and B1, B0 and R1 maps constrain the fit when supplied.

Signal model

dMfdt=R1f(M0fMf)kfMf+krMrWf(Δ,α)MfdMrdt=R1r(M0rMr)+kfMfkrMrWr(Δ,α)MrF=M0r/M0f,kfF=kr\begin{aligned} \frac{dM_f}{dt} &= R_{1f}\left(M_{0f} - M_f\right) - k_f M_f + k_r M_r - W_f(\Delta, \alpha)\,M_f \\ \frac{dM_r}{dt} &= R_{1r}\left(M_{0r} - M_r\right) + k_f M_f - k_r M_r - W_r(\Delta, \alpha)\,M_r \\ F &= M_{0r}/M_{0f}, \qquad k_f F = k_r \end{aligned}
SymbolQuantityUnit
FBound-pool fraction M0r/M0f
krExchange rate, restricted to free pool1/s
R1fFree-pool longitudinal relaxation rate1/s
R1rRestricted-pool longitudinal relaxation rate1/s
T2fFree-pool transverse relaxation times
T2rRestricted-pool transverse relaxation times

What the model reads

A series of 10 volumes indexed by Angle, Offset. Volumes are matched to these identities by value, so reordering the acquisition yields an identical fit.

#AngleOffset
1142443
2426443
31421088
44261088
51422732
64262732
71426862
84266862
914217235
1042617235

Where the protocol comes from

In a BIDS dataset these values are resolved for you:

Protocol parameterSourceKeyResolved
Anglesidecar fieldAngleper volume
Offsetsidecar fieldOffsetper volume

Inputs

The 10 acquired volumes, each labeled with the identity the model reads it by.

Figure 1:The 10 acquired volumes, each labeled with the identity the model reads it by.

Auxiliary maps and the mask applied to this fit.

Figure 2:Auxiliary maps and the mask applied to this fit.

Auxiliary maps

InputRequiredBIDS suffixCLI flag
R1mapoptionalR1map--r1map
B1mapoptionalTB1map--b1map
B0mapoptionalB0map--b0map

Outputs

MapBIDS suffixUnitFit boundsFitted
FFmap0.0001 … 0.5free
krkRmap1/s0.0001 … 100free
R1fR1Fmap1/s0.05 … 5fixed
R1rR1Rmap1/s0.05 … 5fixed
T2fT2Fmaps0.003 … 0.5free
T2rT2Rmaps3e-06 … 5e-05free
Diagnostic outputs

Reported by the fit but not written as BIDS derivatives: they describe the fit rather than the tissue, and have no BIDS suffix to be written under.

Output
kf
resnorm
Fitted maps for one example subject.

Figure 3:Fitted maps for one example subject.

Usage

BIDS
Without BIDS
Simulation
Browser

The acquisition comes from the sidecars, so recipes/bids/qmt_config_ramani.yaml carries only algorithm options:

# qMT-SPGR (Ramani) recipe for `qmrust fit --bids-dir`.
# The acquisition table (per-volume Angle/Offset) is NOT listed here: it is
# read from the BIDS sidecars via the model's protocol_schema() and composed
# into the fit. Only algorithm options + fixed timing/pulse/fitting live here.
# Aux maps (R1map/B1map/B0map) are resolved from the dataset by suffix.

model: qmt_spgr
qmt_spgr:
  protocol:
    timing:
      tmt: 0.0102
      TR: 0.025
  pulse:
    shape: gausshann
    bandwidth: 200.0
  lineshape: SuperLorentzian
  model: Ramani
  read_pulse_alpha: 7.0
  fitting:
    st:
    - 0.16
    - 30.0
    - 1.0
    - 1.0
    - 0.03
    - 0.000013
    lb:
    - 0.0001
    - 0.0001
    - 0.05
    - 0.05
    - 0.003
    - 3e-6
    ub:
    - 0.5
    - 100.0
    - 5.0
    - 5.0
    - 0.5
    - 0.00005
    fx:
    - false
    - false
    - true
    - true
    - false
    - false
    use_r1map_to_constrain_r1f: true
    fix_r1r_eq_r1f: false
    fix_r1f_t2f: false
    r1f_t2f: 0.055

# BIDS mask selection: restrict the fit to this dataset mask (same as the IR
# recipe). Remove this block to fit the whole volume.
mask:
  desc: brain
qmrust fit --bids-dir ds-mydata \
  --config recipes/bids/qmt_config_ramani.yaml --output-dir out

Fitted maps are written as BIDS derivatives:

out/derivatives/qmrust/sub-01/anat/
  sub-01_Fmap.nii.gz
  sub-01_Fmap.json
  sub-01_kRmap.nii.gz
  sub-01_kRmap.json
  sub-01_R1Fmap.nii.gz
  sub-01_R1Fmap.json
  sub-01_R1Rmap.nii.gz
  sub-01_R1Rmap.json
  sub-01_T2Fmap.nii.gz
  sub-01_T2Fmap.json
  sub-01_T2Rmap.nii.gz
  sub-01_T2Rmap.json
One voxel’s measured data with the model’s forward signal at the fitted parameters. The curve is computed by the same Rust code that does the fitting.

Figure 4:One voxel’s measured data with the model’s forward signal at the fitted parameters. The curve is computed by the same Rust code that does the fitting.

Implementation

Fully-resolved configuration

Every default materialized, as qmrust dump-config prints it.

model: qmt_spgr
qmt_spgr:
  protocol:
    mtdata:
    - - 142.0
      - 443.0
    - - 426.0
      - 443.0
    - - 142.0
      - 1088.0
    - - 426.0
      - 1088.0
    - - 142.0
      - 2732.0
    - - 426.0
      - 2732.0
    - - 142.0
      - 6862.0
    - - 426.0
      - 6862.0
    - - 142.0
      - 17235.0
    - - 426.0
      - 17235.0
    timing:
      tmt: 0.0102
      TR: 0.025
  pulse:
    shape: gausshann
    bandwidth: 200.0
  lineshape: SuperLorentzian
  model: Ramani
  read_pulse_alpha: 7.0
  fitting:
    st:
    - 0.16
    - 30.0
    - 1.0
    - 1.0
    - 0.03
    - 0.000013
    lb:
    - 0.0001
    - 0.0001
    - 0.05
    - 0.05
    - 0.003
    - 3e-6
    ub:
    - 0.5
    - 100.0
    - 5.0
    - 5.0
    - 0.5
    - 0.00005
    fx:
    - false
    - false
    - true
    - true
    - false
    - false
    use_r1map_to_constrain_r1f: true
    fix_r1r_eq_r1f: false
    fix_r1f_t2f: false
    r1f_t2f: 0.055

References

Ramani et al. (2002) Sled & Pike (2001) Cabana et al. (2015)

References
  1. Ramani, A., Dalton, C., Miller, D. H., Tofts, P. S., & Barker, G. J. (2002). Precise estimate of fundamental in-vivo MT parameters in human brain in clinically feasible times. Magnetic Resonance Imaging, 20(10), 721–731.
  2. Sled, J. G., & Pike, G. B. (2001). Quantitative imaging of magnetization transfer exchange and relaxation properties in vivo using MRI. Magnetic Resonance in Medicine, 46(5), 923–931.
  3. Cabana, J.-F., Gu, Y., Boudreau, M., Levesque, I. R., Atchia, Y., Sled, J. G., Narayanan, S., Arnold, D. L., Pike, G. B., Cohen-Adad, J., Duval, T., Vuong, M.-T., & Stikov, N. (2015). Quantitative magnetization transfer imaging made easy with qMTLab: Software for data simulation, analysis, and visualization. Concepts in Magnetic Resonance Part A, 44(5), 263–277.