Once you log in to coreMRI and open the simulation platform, switch to the MR imaging mode (if not already there). In MR Imaging mode, the template of the simulation platform is in blue color (compared to the green color of the quantitative MR mode).
The MR imaging simulation requires an anatomical model and a pulse sequence. The coreMRI development team provides a few anatomical models and pulse sequences that can be used by any user. These objects 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).
For anatomical models, select the menu item "Anatomical Models" 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 anatomical model that you would like to "follow" (step 3 in image below).
Once you have followed these objects (both pulse sequence and anatomical model) that you would like to simulate on coreMRI, 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 anatomical model (step 3 in image below) and the computer system for your simulation (step 4 in image below). Once you do that, click on the button "Run Simulation" (step 5 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 output of each MR imaging simulation is a .mat file that consists of the following:
Mx_per_timestep: an array that holds the evolution of the x-component of the MR signal (Magnetization) recorded in the rotating frame when the receiver is ON.
My_per_timestep: an array that holds the evolution of the y-component of the MR signal (Magnetization) recorded in the rotating frame when the receiver is ON.
Mz_per_timestep: an array that holds the evolution of the z-component of the MR signal (Magnetization) recorded in the rotating frame when the receiver is ON.
Mfinal_x, Mfinal_y, Mfinal_z: variables that hold the components (x, y, z respectively) of the Magnetization at the end of the pulse sequence.
info: it is a structure that holds information about the entire process of simulation. More information can be found here (MR imaging: info structure)
For example, a simulation of a pulse sequence that fills 128 kspace lines, each one with 256 samples, will result in Mx_per_timestep, My_per_timestep and Mz_per_timestep matrices of size [1 x 32768], where the number 32768 results from the operation 128 x 256.
Currently coreMRI is based on .mat files (MATLAB files). The .mat file of the pulse sequence 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.
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).
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.
isInKspace: it is an array of non-zero elements with incrementing values for the time points when the receiver is ON. When the receiver is OFF, the corresponding time-points are 0. For example, given that thedt=0.000001 sec (1μsec), if the receiver turns ON from the timepoint 4μsec till the timepoint 6μsec, then it turns OFF from the timepoint 7μsec till the timepoint 8μsec and then turns ON again from the timepoint 9μsec till the timepoint 15μsec the isInKspace array will be [0,0,0,1,2,3,0,0,4,5,6,7,8,9,10]
info: it is a structure array that holds information for the pulse sequence and for the reconstruction.