The simulation parameters used in the pulseq-cest project are stored in the human readable yaml file format. These yaml/simulation files can be read and written using a simple text editor.
3T | T1 [s] | T2 [ms] | MTC fraction [%] | MTC k [Hz] | MTC T2 [µs] | pub |
---|---|---|---|---|---|---|
GM | 1.2 | 69 | 5.5/111 | 40 | 9 | van Zijl 2018 |
GM_vanZijl2018 | 1.2 | 69 | 5.5/111 | 40 | 9 | van Zijl 2018 |
WM | 1.05 | 39.8 | 15.42/111 | 29 | 9/0.23 | Heo 2016 |
GLIO | 1.5 | 70 | 6/111 | 29 | 9/0.23 | WM_001 adjusted to match Heo 2016 |
Below are multi B0 water properties from Zhu 2014 that are not in yaml files yet
3T | T1 [s] | T2 [ms] | MTC fraction [%] | MTC k [Hz] | MTC T2 [µs] | pub |
---|---|---|---|---|---|---|
WM | 0.939 | 62 | Zhu 2014 | |||
GM | 0.939 | 62 | Zhu 2014 |
7T | T1 [s] | T2 [ms] | MTC fraction [%] | MTC k [Hz] | MTC T2 [µs] | pub |
---|---|---|---|---|---|---|
WM | 1.222 | 37 | Zhu 2014 | |||
GM | 1.670 | 43 | Zhu 2014 |
9.4T | T1 [s] | T2 [ms] | MTC fraction [%] | MTC k [Hz] | MTC T2 [µs] | pub |
---|---|---|---|---|---|---|
WM | 1.429 | 29 | Zhu 2014 | |||
GM | 2002 | 35 | Zhu 2014 |
Here we give a detailed overview over the structure of the .yaml files and the parameters that must or can be defined. As an example, a filled bmsim.yaml file is presented and explained.
The header gives an overview over the pools that are defined in the file, some helpful information about the references for the chosen parameters as well as some general information about the different pool settings that can be adjusted:
####################################################################################
# ------ Simulation settings for (py)pulseq-cest BlochMcConnell simulations ------ #
# ------------------------ https://pulseq-cest.github.io/ ------------------------ #
####################################################################################
# Simulation parameters for gray matter at 3T with
# - 4 CEST pools
# - 1 NOE pool
# - a SuperLorentzian shaped MT pool
#
# sources/references for settings in this file:
# CEST pools: https://doi.org/10.1016/j.neuroimage.2017.04.045
###### Pool settings
# f: relative pool size fraction (float)
# t1: longitudinal relaxation time T1 = 1/R1 [s] (float)
# t2: transversal relaxation time T2 = 1/R2 [s] (float)
# k: exchange rate [Hz] to water pool (MT and CEST pools only) (float)
# dw: chemical shift (delta omega) relative to water [ppm] (MT and CEST pools only) (float)
# lineshape: lineshape of the MT Pool ('Lorentzian', 'SuperLorentzian' or 'None') (str)
The water pool is mandatory for all pulseq-cest based simulations. It's parameters and values are usually defined directly under the header:
water_pool: {
f: 1.0,
t1: 1.2,
t2: 0.069
}
The (exactly) three parameters that have to be defined are:
- f: the (relative) proton fraction (usually defined as 1 for the water pool) (float)
- t1: the longitudinal relaxation time T1 = 1/R1 [s] (float)
- t2: the transversal relaxation time T2 = 1/R2 [s] (float)
For relaxation times, it is also possible to use the inverse relaxation rates R1 and R2. The same water pool could therefore be defined with:
water_pool: {
f: 1.0,
r1: 0.8333,
r2: 14.4928
}
An arbitrary number of pools can be defined in the cest_pool section/dictionary. For every CEST pool, a unique name and its parameters have to be defined:
cest_pool: {
'amide': {
f: 0.00064865, # 72e-3 / 111,
t1: 1.3,
t2: 0.1,
k: 30,
dw: 3.5
},
'amine': {
f: 0.00018018, # 20e-3 / 111,
t1: 1.3,
t2: 0.2,
k: 5500,
dw: 3
},
'guanidinium': {
f: 0.00018018, # 20e-3 / 111,
t1: 1.3,
t2: 0.17,
k: 1100,
dw: 2
},
'hydroxyl': {
f: 0.00040541, #45e-3 / 111,
t1: 1.3,
t2: 0.055,
k: 2000,
dw: 0.9
},
'NOE': { #average of 5 NOE pools from https://doi.org/10.1016/j.neuroimage.2017.04.045
f: 0.0045, #500e-3 / 111,
t1: 1.3,
t2: 0.005,
k: 16,
dw: -2.75
}
}
Additionally to the three parameters (f, r1, r2), which have to be defined for the water pool, every CEST pool requires two more parameters. These are:
- dw: the chemical shift relative to water [ppm] (float)
- k: the exchange rate to the water pool [Hz] (float)
The (macromolecular) Magnetization Transfer (MT) pool is an optional pool:
mt_pool: {
f: 0.0495, # 5.5 / 111,
t1: 1.3,
t2: 9.0e-6,
k: 40,
dw: 0,
lineshape: 'SuperLorentzian'
}
Additionally to the five parameters (f, t1, t2, k, dw), which have to be defined for every CEST pool, the MT pool further requires the lineshape parameter:
- lineshape: string with MT lineshape. Can be either 'Lorentzian' or 'SuperLorentzian'.
Additionally to the pool settings, some scanner/field properties have to be defined:
b0: 3
gamma: 267.5153
b0_inhom: 0.0
rel_b1: 1
Please note the default values for gamma, b0_inhom and rel_b1 that are used if you don't define them:
- b0: magnetic field strength [T] (float)
- gamma: gyromagnetic ratio [rad / µT], default is 267.5153 (float)
- b0_inhom: B0 field inhomogeneity [ppm], default is 0.0 (float)
- rel_b1: relative B1 inhomogeneity/factor, default is 1.0 (float)
verbose: False
- verbose: True to enable additional output from the C++ code. Default is False (bool)
reset_init_mag: true
- reset_init_mag: True if magnetization should be reset after each ADC. Default is True (bool)
scale: 0.5
- scale: relative value (range [0, 1]) to scale the magnetization if
reset_init_mag: True
. Default is 1 (float)
max_pulse_samples: 200
- max_pulse_samples: defines the number of samples used for the simulation of shaped pulses. Default is 500 (int)