Additional modules can be installed via the module installer of the WebGUI (on the Configuration page). User modules are extracted into separate folders under the directory yarra/modules_user. The helper macro for referencing this folder is %bu. For example, when installing the Subtraction module, this binary can be called via %bu/Subtraction/Subtraction (the latter Subtraction refers to the executable name, while the former corresponds to the installation folder name).
This module provides a stable Matlab implementation of the GRASP DCE-MRI reconstruction technique. It requires Matlab R2016a or newer. If the Parallel Computing Toolbox has been installed, the reconstruction will be parallelized across slices depending on the available CPU cores. By default, all available cores will be used for the calculation.
When using the module, please cite the following publication:
Feng L, Grimm R, Block KT, Chandarana H, Kim S, Xu J, Axel L, Sodickson DK, Otazo R. Golden-angle radial sparse parallel MRI: combination of compressed sensing, parallel imaging, and golden-angle radial sampling for fast and flexible dynamic volumetric MRI. Magn Reson Med. 2014 Sep;72(3):707-17.
This module uses several open-source Matlab packages developed by other contributors, including the mapVBVD library by Philip Ehses, the NUFFT library developed by Jeff Fessler, and the inifile reader developed by Primoz Cermelj. Please give credit to these developers when using the module.
The ZIP archive contains a template for a mode file that shows how the module can be called. The module should be used in combination with the SetDCMTags module.
yarra_GRASP_basic [input folder] [input file] [output folder] [tmp folder] [mode file]
[Reconstruction] Bin=%hmb Args="-nodesktop -nosplash -r %hq try, addpath(genpath('%bu/GRASP_basic/')); yarra_GRASP_basic('%rid/','%rif','%rod','%tmp','%mc'); catch e, disp(e.message); end, quit; %hq"
Reconstruction settings can be configured in the [GRASP] section of the mode file. If settings are missing, the default values shown below will be used.
[GRASP] SpokesPerFrame=144 % Defines how many numbers should be used per frame Lambda=0.02 % Defines the strength of the temporal TV regularization MaxThreads=[all] % Defines how many CPU cores should be used. By default, all will be used ApplyKzFilter=true % Defines if k-space filtering along kz should be applied for partial Fourier scans CompressedChannels=10 % Defines when/if channel compression should be used and how many Eigenmodes should be used SliceFrom=0 % Allows restricting the range of slices to calculate (for faster testing) SliceTo=0
Performs a Compressed-Sensing-based 4D DCE-MRI reconstruction using the GRASP reconstruction technique. This module has been implemented in C++ and uses OpenMP parallelization to achieve high reconstruction speed.
Note: This module can only be downloaded after a C2P contract with Siemens has been signed. Please contact your local Siemens collaboration manager. Alternatively, the Matlab-based version of GRASP can be used.
GraspR [input Twix file] [ini file] [output folder] [tmp folder] [acc #]
[Reconstruction] Bin=%bu/GRASP/GraspR Args=%rid/%rif %rid/settings.ini %rod %tmp %vacc
The configuration for the GRASP module is done via an ini file (an example file comes with the module). It is recommended to use the example file as template and to overwrite the settings with help of the the IniPatch module (in this way, everything is stored in the .mode file and it is not necessary to maintain multiple ini files).
Patches the character set of the reconstructed DICOMs and encodes the patient name in the local patient name. Necessary when using the GRASP module with certain PACS systems.
PatchPatientName [input folder] [output folder] [TWIX file]
[PostProcessing] Bin1=%bu/PatchCharacterSet/PatchPatientName.sh Args1=%pid %pod %rid/%rif
The character set can be changed directly in the script PatchPatientName.sh.
Calculates subtraction images from reconstructed image series.
Subtraction [input folder] [output folder] [mode file]
[PostProcessing] Bin=%bu/Subtraction/Subtraction Args=%pid %pod %mc
In .mode file:
[Subtraction] BaselineSeries=2 KeepSourceImages=true SubtractionMode=0 IncludeSeries=3:end#4 ExcludeSeries=
If KeepSourceImages=false, then only the subtraction images will be sent. If KeepSourceImages=true, both the original images and subtraction images will be sent.
If SubtractionMode=0, then negative values will be discarded. If SubtractionMode=1, then the absolute value of the difference is calculated.
Using the parameter IncludeSeries, it is possible to specify for which time points subtractions should be calculated (by default, subtractions will be calculated for all images). It is possible to append multiple values using the comma separator (e.g., 4,7,9), and it is possible to specify ranges (e.g 3:7). The keyword end can be used to refer to the last time point, and it is possible to subtract integers (e.g. end-1 refers to the second-last time point). When using the syntax start:end#step, it is possible to specify a step width if a subtraction image should not be calculated for every frame (e.g., 3:end#4). Using the parameter ExcludeSeries, it is possible to exclude individual time points from the calculation. This setting will be evaluated after IncludeSeries.