Whole brain atlas construction
Ex vivo susceptibility
Whole brain susceptibility
Here, an algorithm based on the maximum corollary of Green’s theorem is proposed to remove shadows in quantitative susceptibility mapping while preserving the edge of the brain. This method is referred to as maximum Spherical Mean Value, or mSMV
.
Clone the repository with:
git clone https://github.com/agr78/mSMV.git
For ease of use with the MEDI Toolbox
(included in mSMV/code/dependencies/MEDI_functions/
), the function mSMV
accepts the following arguments:
in_file
Input file containing the field map after background field removal (by PDF
, VSHARP
, LBV
, etc.)
out_file
Output file containing mSMV
filtered field map
radius
Prefilter radius (default 5mm)
maxk
Maximum number of iterations with minimum kernel radius (default 5)
vr
Frangi filter vessel radius, see MATLAB's fibermetric
function for further details
pf
Optional disabling of the prefilter step (typically used with SHARP
, RESHARP
, VSHARP
, etc.)
All necessary toolboxes are included in mSMV/code/dependencies/
. If these toolboxes are already installed, mSMV/code/mSMV_functions/
can be added to the MATLAB path. To update an existing MEDI
installation, see prerelease
.
If an installation of MEDI
already exists, pull the msmv
branch and modify the QSM reconstruction as follows:
QSM = MEDI_L1('filename', 'RDF.mat', 'lambda', 1000, 'merit', 'msmv');
If starting from a simple clone of this repository, run:
% Import complex field data
[iField,voxel_size,matrix_size,CF,delta_TE,TE,B0_dir,files]=Read_DICOM('DICOM');
% Generate the magnitude image
iMag = squeeze(sqrt(sum(abs(iField).^2,4)));
% Compute brain mask
Mask = BET(iMag,matrix_size,voxel_size);
% Estimate noise and normalize field
if (~exist('noise_level','var'))
noise_level = calfieldnoise(iField, Mask);
end
iField = iField/noise_level;
% Estimate the frequency offset in each of the voxel using complex fitting
[iFreq_raw,N_std] = Fit_ppm_complex(iField);
% Fit R2* map
R2s = arlo(TEk,abs(iField));
% CSF zero-reference
Mask_CSF = extract_whole_CSF(R2s,Mask,voxel_size);
% Unwrap phase using ROMEO
iFreq = romeo(iFreq_raw, iMag, Mask);
% Background field removal
[RDF,shim] = PDF(iFreq,N_std,Mask,matrix_size,voxel_size,B0_dir,0,100);
% Save local field generated by PDF
save RDF.mat RDF iFreq iFreq_raw iMag N_std Mask matrix_size...
voxel_size delta_TE CF B0_dir Mask_CSF R2s;
% Reconstruct QSM
QSM = MEDI_L1('filename', 'RDF.mat', 'lambda', 1000, 'merit', 'msmv', 5);
- The vessel mask requires an
$R_2^*$ map for generation, if this variable is missing inin_file
, this step will be skipped. - The default phase unwrapping algorithm is
ROMEO
, called from a MATLABmex
file compiled on Windows 10. On different operating systems,unwrapPhase.m
will be used. - The
mrm
branch contains code needed to reproduce figures in the paper.
If this code is used, please cite the following:
Magnetic Resonance in Medicine Article: A. G. Roberts et al., "Maximum Spherical Mean Value (mSMV) Filtering for Whole Brain Quantitative Susceptibility Mapping," Magnetic Resonance in Medicine, 2024, DOI: 10.1002/mrm.29963
Preprint: A. G. Roberts et al., "Maximum Spherical Mean Value (mSMV) Filtering for Whole Brain Quantitative Susceptibility Mapping," arXiv pre-print server, 2023-04-22 2023, arxiv:2304.11476
@article{Roberts_mSMV_2024,
author = {Roberts, Alexandra G. and Romano, Dominick J. and Şişman, Mert and Dimov, Alexey V. and Nguyen, Thanh D. and Kovanlikaya, Ilhami and Gauthier, Susan A. and Wang, Yi and Spincemaille, Pascal},
title = {Maximum spherical mean value filtering for whole‐brain QSM},
journal = {Magnetic Resonance in Medicine},
volume = {91},
number = {4},
pages = {1586-1597},
ISSN = {0740-3194},
DOI = {10.1002/mrm.29963},
url = {https://dx.doi.org/10.1002/mrm.29963},
year = {2024},
type = {Journal Article}
}
Please direct questions to Alexandra Roberts at agr78@cornell.edu.