B0 & B1 mitigation using time-shifted spokes

From MGH/MIT Parallel Transmission Resources
Jump to navigation Jump to search

Citation

Coming up soon

What this code does

Coming up soon

Download files

Click here to download the Matlab code and here for the test dataset. You'll also need to download this zip file which contains a few utilities necessary to run the code (don't forget to add the un-zipped folder to your Matlab path). If you are wondering how exactly I obtained the B0 and through-slice B0 gradient maps, download this zip file.

Instructions

Fitting the through-slice B0 gradient map / preparing the B1+ maps

To perform this step, download and un-zip the file processPrescanData.zip. First, run the Matlab routine dump_g.m and then the routine dump_b1maps.m. These tools prepare the B1+ maps in a format adequate for pulse design and estimate the B0 through-slice gradient by linear fit (in the slice direction) of two 3D GRE acquisitions with slightly different TEs. For a detailed description of these steps, please refer to the paper in the Citation section.

NOTE #1: These tools will only work for data acquired on Siemens scanners equipped with the "step 2" pTx system. For other systems you may have to adapt the code yourself.

NOTE #2: These tools assume that there are two meas*.dat files in the working folder containing the raw data of two GRE acquisitions with TE # 1 = 6 ms and TE # 2 = 8 ms. I did not include my own files because they are too big for this Wiki. These meas*.dat files can be saved after you have acquired the GRE data using the Twix scanner utility. The file fieldMaps.fld is the standard file generated when clicking "save dataset" in the B1+ application of the Siemens "step 2" pTx system.

Time-shifted spoke pulse design

Un-zip the archives TimShiftedSpokes_test_dataset.zip (contains the data) and Spokes_SARPowerConst_deltatOpt_fmincon_v14.zip (contains the code). Change directory to TimShiftedSpokes_test_dataset. The file spokes_def.txt contains the main parameters of the spoke design problem -- all fields in this file should be self-explanatory. To run the pulse design, simply run the script RUN_SPOKES.m (you may have to change some of the code path in this file).

Design a 1-spoke pulse, then a 2-spoke pulse. Make sure that the SAR constraints are satisfied (local and global SAR of the final pulse are printed on screen at the end of the optimization). You can also play with the duty-cycle, the maximum allowed time-shift, maximum RF voltage and other parameters to get a feel of how the code works. Please refer to the paper in the Citation section for a more detailed explanation of the results.