The Spherical Mean Technique (SMT) is a clinically feasible method for microscopic diffusion anisotropy imaging. The purpose is to map microscopic features unconfounded by the effects of fibre crossings and orientation dispersion, which are ubiquitous in the brain. This technique requires only an off-the-shelf diffusion sequence with two (or more) b-shells achievable on any standard MRI scanner, thus facilitating its widespread use in neuroscience research and clinical neurology. So far, SMT comes in two flavours, a microscopic tensor model and a simple multi-compartment model. This software was developed and is maintained by Enrico Kaden from University College London.
Prebuilt SMT binaries are available for 64-bit Linux and macOS systems:
- Download the latest SMT release.
- Unpack the software archive.
- Set the path variable using
export PATH="/path/to/smt/bin:${PATH}"
(in bash) orsetenv PATH "/path/to/smt/bin:${PATH}"
(in csh).
SMT requires the following software (tested under Red Hat Enterprise Linux 6 and Apple macOS Mojave 10.14):
- git (version 1.9 or later)
- cmake (version 2.8 or later)
- GNU C/C++ compiler (version 4.9 or later), Clang C/C++ compiler (version 3.5 or later) or Intel C/C++ compiler (version 16.0 or later)
Clone the SMT repository and checkout the latest release:
git clone https://github.com/ekaden/smt.git
cd smt
git fetch -p
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
cd ..
Build the software:
mkdir smt-build
cd smt-build
cmake ../smt
make
If necessary, the C/C++ compiler can be set explicitly, for example:
cmake ../smt -DCMAKE_C_COMPILER=gcc-4.9 -DCMAKE_CXX_COMPILER=g++-4.9
make
The SMT programs are located in the build directory.
This utility software provides a voxelwise estimate of the Gaussian-distributed noise from, for example, a set of zero b-value images.
gaussianfit [options] <input> <output>
gaussianfit (-h | --help)
gaussianfit --license
gaussianfit --version
-
<input>
–– Input data set in NIfTI-1 format -
<output>
–– Output parameter maps in NIfTI-1 format, including:- Mean parameter (
mean
) - Standard deviation parameter (
std
)
- Mean parameter (
If the output name contains a placeholder {}
(e.g. output_{}.nii
), the parameter maps are written to separate files using the suffices given in parentheses. Otherwise the output parameter maps are stored in a single file.
-
--mask <mask>
–– Foreground mask [default: none]. Values greater than zero are considered as foreground. -
-h, --help
–– Help screen -
--license
–– License information -
--version
–– Software version
-
SMT_DEBUG=<true | positive integer
–– Debug information -
SMT_NOCOLOUR=<true | positive integer
orSMT_NOCOLOR=<true | positive integer
–– Suppress colour output -
SMT_NUM_THREADS=<positive integer>
–– Number of threads for parallel processing -
SMT_QUIET=<true | positive integer>
–– Verbosity (e.g. progress bar)
This utility software provides a voxelwise estimate of the Rician-distributed noise from, for example, a set of zero b-value images.
ricianfit [options] <input> <output>
ricianfit (-h | --help)
ricianfit --license
ricianfit --version
-
<input>
–– Input data set in NIfTI-1 format -
<output>
–– Output parameter maps in NIfTI-1 format, including:- Location parameter (
loc
) - Scale parameter (
scale
)
- Location parameter (
If the output name contains a placeholder {}
(e.g. output_{}.nii
), the parameter maps are written to separate files using the suffices given in parentheses. Otherwise the output parameter maps are stored in a single file.
-
--mask <mask>
–– Foreground mask [default: none]. Values greater than zero are considered as foreground. -
-h, --help
–– Help screen -
--license
–– License information -
--version
–– Software version
-
SMT_DEBUG=<true | positive integer
–– Debug information -
SMT_NOCOLOUR=<true | positive integer
orSMT_NOCOLOR=<true | positive integer
–– Suppress colour output -
SMT_NUM_THREADS=<positive integer>
–– Number of threads for parallel processing -
SMT_QUIET=<true | positive integer>
–– Verbosity (e.g. progress bar)
This microscopic model estimates the microscopic fractional anisotropy and other microscopic diffusion coefficients in tissue with complex directional architecture as in the brain.
fitmicrodt [options] <input> <output>
fitmicrodt (-h | --help)
fitmicrodt --licence
fitmicrodt --version
-
<input>
–– Input diffusion data set in NIfTI-1 format -
<output>
–– Output parameter maps in NIfTI-1 format, including:- Longitudinal microscopic diffusivity (
long
) - Transverse microscopic diffusivity (
trans
) - Microscopic fractional anisotropy (
fa
) - Microscopic fractional anisotropy to the third power (
fapow3
) - Microscopic mean diffusivity (
md
) - Zero b-value image (
b0
)
- Longitudinal microscopic diffusivity (
If the output name contains a placeholder {}
(e.g. output_{}.nii
), the parameter maps are written to separate files using the suffices given in parentheses. Otherwise the output parameter maps are stored in a single file.
-
--bvals <bvals>
–– Diffusion weighting factors (s/mm²), given in FSL format -
--bvecs <bvecs>
–– Diffusion gradient directions, given in FSL format -
--grads <grads>
–– Diffusion gradients (s/mm²), given in MRtrix format -
--graddev <graddev>
–– Diffusion gradient deviation [default: none], provided as NIfTI-1 tensor volume -
--mask <mask>
–– Foreground mask [default: none]. Values greater than zero are considered as foreground. -
--rician <rician>
–– Rician noise [default: none]. SMT assumes Gaussian noise by default. Alternatively, a Rician noise model may be chosen, in which case the signal measurements are adjusted to reduce the Rician-noise induced bias. The noise level can be specified either globally using a scalar value or voxel by voxel using a NIfTI-1 image volume. -
--maxdiff <maxdiff>
–– Maximum diffusivity (mm²/s) [default: 3.05e-3]. Typically the self/free-diffusion coefficient for a certain temperature is chosen. -
--b0
–– Model-based estimation of the zero b-value signal. By default, the zero b-value signal is estimated as the mean over the measurements with zero b-value. If this option is set, the zero b-value signal is fitted using the microscopic diffusion model. This is also the default behaviour when measurements with zero b-value are not provided. -
-h, --help
–– Help screen -
--license
–– License information -
--version
–– Software version
-
SMT_DEBUG=<true | positive integer
–– Debug information -
SMT_NOCOLOUR=<true | positive integer
orSMT_NOCOLOR=<true | positive integer
–– Suppress colour output -
SMT_NUM_THREADS=<positive integer>
–– Number of threads for parallel processing -
SMT_QUIET=<true | positive integer>
–– Verbosity (e.g. progress bar)
This model provides estimates of microscopic features specific to the intra- and extra-neurite compartments unconfounded by the effects of the potentially complex fibre orientation distribution.
fitmcmicro [options] <input> <output>
fitmcmicro (-h | --help)
fitmcmicro --licence
fitmcmicro --version
-
<input>
–– Input diffusion data set in NIfTI-1 format -
<output>
–– Output parameter maps in NIfTI-1 format, including:- Intra-neurite volume fraction (
intra
) - Intrinsic diffusivity (
diff
) - Extra-neurite transverse microscopic diffusivity (
extratrans
) - Extra-neurite microscopic mean diffusivity (
extramd
) - Zero b-value image (
b0
)
- Intra-neurite volume fraction (
If the output name contains a placeholder {}
(e.g. output_{}.nii
), the parameter maps are written to separate files using the suffices given in parentheses. Otherwise the output parameter maps are stored in a single file.
-
--bvals <bvals>
–– Diffusion weighting factors (s/mm²), given in FSL format -
--bvecs <bvecs>
–– Diffusion gradient directions, given in FSL format -
--grads <grads>
–– Diffusion gradients (s/mm²), given in MRtrix format -
--graddev <graddev>
–– Diffusion gradient deviation [default: none], provided as NIfTI-1 tensor volume -
--mask <mask>
–– Foreground mask [default: none]. Values greater than zero are considered as foreground. -
--rician <rician>
–– Rician noise [default: none]. SMT assumes Gaussian noise by default. Alternatively, a Rician noise model may be chosen, in which case the signal measurements are adjusted to reduce the Rician-noise induced bias. The noise level can be specified either globally using a scalar value or voxel by voxel using a NIfTI-1 image volume. -
--maxdiff <maxdiff>
–– Maximum diffusivity (mm²/s) [default: 3.05e-3]. Typically the self/free-diffusion coefficient for a certain temperature is chosen. -
--b0
–– Model-based estimation of the zero b-value signal. By default, the zero b-value signal is estimated as the mean over the measurements with zero b-value. If this option is set, the zero b-value signal is fitted using the microscopic diffusion model. This is also the default behaviour when measurements with zero b-value are not provided. -
-h, --help
–– Help screen -
--license
–– License information -
--version
–– Software version
-
SMT_DEBUG=<true | positive integer
–– Debug information -
SMT_NOCOLOUR=<true | positive integer
orSMT_NOCOLOR=<true | positive integer
–– Suppress colour output -
SMT_NUM_THREADS=<positive integer>
–– Number of threads for parallel processing -
SMT_QUIET=<true | positive integer>
–– Verbosity (e.g. progress bar)
If you use this software, please cite:
- General Spherical Mean Technique (SMT)
Kaden E, Kruggel F, and Alexander DC: Quantitative Mapping of the Per-Axon Diffusion Coefficients in Brain White Matter. Magnetic Resonance in Medicine, vol. 75, pp. 1752–1763, 2016. DOI: 10.1002/mrm.25734
- Microscopic diffusion tensor model
Kaden E, Kruggel F, and Alexander DC: Quantitative Mapping of the Per-Axon Diffusion Coefficients in Brain White Matter. Magnetic Resonance in Medicine, vol. 75, pp. 1752–1763, 2016. DOI: 10.1002/mrm.25734
- Multi-compartment microscopic diffusion model
Kaden E, Kelm ND, Carson RP, Does MD, and Alexander DC: Multi-compartment microscopic diffusion imaging. NeuroImage, vol. 139, pp. 346–359, 2016. DOI: 10.1016/j.neuroimage.2016.06.002
SMT is released under the BSD Two-Clause License. This software is based on or incorporates materials from third-party projects.