Once you log in to coreMRI and open the simulation platform, switch to the quantitative MR mode (if not already there). In quantitative MR mode, the template of the simulation platform is in green color (compared to the blue color of the MR Imaging mode).
The simulation in quantitative MR mode requires a pulse sequence and the definition of a spin model. The coreMRI development team provides a few pulse sequences that can be used by any user. These pulse sequences are available through the public repository and need to be "transferred" or "followed" in order to be used in the simulations. In pulse sequences, select the menu item "Library" from the left-side menu (step 1 in image below), then click on the tab "Public Repository" (step 2 in image below) and then click on the toggle button of the pulse sequence that you would like to "follow" (step 3 in image below).
The next step involves the definition of the spin model, such as the range of relaxation constants, the range of B0-inhomogeneity, etc. In order to do so, select the menu-item "General Configurations" from the left-side menu (step 1 in image below), open the tab "qMR Basic Description" and make the selections that appear in image below.
Once you have followed these steps, select the menu-item "Simulation" from the left-side menu (step 1 in image below), select the pulse sequence (step 2 in image below), the computer system for your simulation (step 3 in image below) and then click on the button "Run Simulation" (step 4 in image below).
You can check the progress of your simulation at page "Experiments". Once the simulation has been successfully completed, you can download the results of the MR simulation by clicking on the download icon.
The user can further accelerate the performance of simulations by "compressing" the pulse sequence through the reduction of the total number of discrete time-steps. Before you upload your pulse sequence on coreMRI, run the MATLAB function coreMRI_qMR_pulse_optimization() and save your pulse sequence with the matrices and variables extracted from this function. Follow these steps:
Load the pulse sequence in MATLAB
Download the MATLAB function coreMRI_qMR_pulse_optimization (click HERE) and save it into the MATLAB working directory
Execute the following command in the command window: [pulse_sequence, times_fitting_single_point, soft_crushers, N_pulse] = coreMRI_qMR_pulse_optimization(pulse_sequence, times_fitting_single_point, soft_crushers, N_pulse);
Save the variables found in the workspace under a new .mat file
The output of each quantitative MR simulation is a .mat file that consists of the database with the simulated signals. Given that N different tissue types have been simulated and the MR signal has been sampled for T timepoints, the output of the simulation is in the following format:
experiments_lookuptable_corrected [N x T]: A matrix (database-like) where each row represents a different tissue type (as defined in the matrix spin_model). Each column represents the magnitude of the acquired, noise-free, simulated MR signal for a single time-point (as defined from the structure of the pulse sequence).
experiments_lookuptable_corrected_real [N x T]: A matrix (database-like) where each row represents a different tissue type (as defined in the matrix spin_model). Each column represents the real part of the acquired, noise-free, simulated complex MR signal for a single time-point (as defined from the structure of the pulse sequence).
experiments_lookuptable_corrected_imag [N x T]: A matrix (database-like) where each row represents a different tissue type (as defined in the matrix spin_model). Each column represents the imaginary part of the acquired, noise-free, simulated complex MR signal for a single timepoint (as defined from the structure of the pulse sequence).
experiments_lookuptable_corrected_Mz [N x T]: A matrix (database-like) where each row represents a different tissue type (as defined in the matrix spin_model). Each column represents the z component of the noise-free magnetization recorded for a single time-point (as defined from the structure of the pulse sequence).
spin_model [N x T]: A matrix that holds the spin model of the different tissue types. Each row represents a different tissue type. The first column holds the T1 value (in sec), the second column holds the T2 value (in sec) and the third column holds the off resonance of the spin from the Larmor frequency (in Hz).
Currently coreMRI is based on .mat files (MATLAB files). All the coordinates are given in the Device Coordinate System (DCS). The .mat file should include the following variables:
dt: is the temporal step of the MR simulation experiment (in sec)
N_pulse: it holds the number of the total timesteps of the pulse sequence
pulse_sequence: it is an [8xN_pulse] matrix. The first row (pulse_sequence(1,:)) holds the time sequence of the magnitude of the RF events (B1), the second row (pulse_sequence(2,:)) holds the time sequence of the phase of the RF events (RFP), the third row (pulse_sequence(3,:)) holds the time sequence of the frequency of the RF events (RFfreq), the fourth row (pulse_sequence(4,:)) holds the time sequence of the gradients on the x axis, the fifth row (pulse_sequence(5,:)) holds the time sequence of the gradients on the y axis and the sixth row (pulse_sequence(6,:)) holds the time sequence of the gradients on the z axis. The last two rows are identical and each one is an array with increasing number from 1 to N_pulse (pulse_sequence(7,:) = 1:N_pulse and pulse_sequence(8,:) = 1:N_pulse). The last two rows are being used by an algorithm that allows for compression of the pulse sequence in order to accelerate the MR simulations (read more here CODE\fast-algorithm).
B1 is given in T (Tesla), RFP is given in radians, RFfreq is given in Hz and gradients are given in T/m (Tesla per meter).
times_fitting_single_point: it is an array of the timepoints for which the MR signal will be recorded in the database/dictionary of the simulated signals (for example the times_fitting_single_point = [1000, 2000, 3000, 4000, 5000] will record the simulated MR signal for timepoints 1000, 2000, 3000, 4000 and 5000. For a dt=0.000001 sec (1μsec), the simulated MR signal will be recorded for t = 1msec, 2msec, 3msec, 4msec and 5msec.)
soft_crushers: it is an array of 0s or 1s and of size [1xN_pulse]. This array is pointing out when a nullification of the transverse components of the magnetization should be induced. It is being used to avoid the introduction of strong gradients in the pulse sequence.
Extra parameters:
gamma: the gyromagnetic ratio in Hz/T. For example, the gyromagnetic ratio for the hydrogen nucleus is 42560000 Hz/T.
coordCenterSlice_mm: it is a [1x3] array that holds the center of the slice in millimeters.
normalVectorSlice: it is a [1x3] array that holds the normal vector of the slice. For example, a transversal slice would have a normalVectorCenterSlice equal to [0,0,1] in the DCS.
The left menu of the user interface at the MR Imaging mode consists of the following 5 menu items:
Pulse Sequences
Library
Sequence Designer
General Configurations
Simulation
Experiments
Pulse Sequences - Library
This menu item holds the list of the pulse sequences that are available for simulation on the coreMRI simulation platform. A more detailed description can be found here.
Pulse Sequences - Sequence Designer
This menu item holds the Graphical User Interface of the pulse sequence Designer. A more detailed description can be found here.
General Configurations
This page holds modules that describe several features of the MR simulation. A list of all the available modules is available here.
Simulation
In this page, the user defines the MR Imaging experiment (pulse sequence and computer system)
Experiments
This page presents a list of past and current simulations whereas the results of the MR simulations are available for download. A more detailed description can be found here.